aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-06-15 18:49:34 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-06-15 18:49:34 +0200
commitc507dc9e34ee1951a1a4e887f868b6fefb4b1ba8 (patch)
tree56831bd8898a9ef8774bf6c5229608f1e9b989b7 /tests
parentFix multi-valued fields. (diff)
downloadcalp-c507dc9e34ee1951a1a4e887f868b6fefb4b1ba8.tar.gz
calp-c507dc9e34ee1951a1a4e887f868b6fefb4b1ba8.tar.xz
Clarify and fix TZ stuff in (datetime).
Diffstat (limited to 'tests')
-rw-r--r--tests/tz.scm49
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))