diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-06-15 18:49:34 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-06-15 18:49:34 +0200 |
commit | c507dc9e34ee1951a1a4e887f868b6fefb4b1ba8 (patch) | |
tree | 56831bd8898a9ef8774bf6c5229608f1e9b989b7 /tests/tz.scm | |
parent | Fix multi-valued fields. (diff) | |
download | calp-c507dc9e34ee1951a1a4e887f868b6fefb4b1ba8.tar.gz calp-c507dc9e34ee1951a1a4e887f868b6fefb4b1ba8.tar.xz |
Clarify and fix TZ stuff in (datetime).
Diffstat (limited to 'tests/tz.scm')
-rw-r--r-- | tests/tz.scm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/tz.scm b/tests/tz.scm new file mode 100644 index 00000000..321bb960 --- /dev/null +++ b/tests/tz.scm @@ -0,0 +1,49 @@ +(((datetime) + parse-ics-datetime + datetime date time + datetime->unix-time + unix-time->datetime + get-datetime) + ((util) let-env)) + +;; London alternates between +0000 and +0100 +(let-env ((TZ "Europe/London")) + (test-equal "London winter" + #2020-01-12T13:30:00 + (get-datetime (parse-ics-datetime "20200112T133000Z"))) + (test-equal "London summer" + #2020-06-12T14:30:00 + (get-datetime (parse-ics-datetime "20200612T133000Z")))) + +;; Stockholm alternates between +0100 and +0200 +(let-env ((TZ "Europe/Stockholm")) + (test-equal "Stockholm winter" + #2020-01-12T14:30:00 + (get-datetime (parse-ics-datetime "20200112T133000Z"))) + (test-equal "Stockholm summer" + #2020-06-12T15:30:00 + (get-datetime (parse-ics-datetime "20200612T133000Z"))) ) + +(test-equal + -10800 + (datetime->unix-time + (parse-ics-datetime "19700101T000000" "Europe/Tallinn"))) + +(test-equal + -3600 + (datetime->unix-time + (parse-ics-datetime "19700101T000000" "Europe/Stockholm"))) + +(test-equal + 0 + (datetime->unix-time (parse-ics-datetime "19700101T000000Z"))) + +;; yes, really +(test-equal + -3600 + (datetime->unix-time + (parse-ics-datetime "19700101T000000" "Europe/London"))) + +(test-equal + #1970-01-01T00:00:00Z + (unix-time->datetime 0)) |