aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/datetime/zic.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-10-02 19:26:40 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-10-02 19:28:44 +0200
commit712654d4c023a2ab13190c6905d313e0ba897965 (patch)
treeb8505b420d6621022fa6a46271340071d8881322 /tests/unit/datetime/zic.scm
parentMade displayln into a library export. (diff)
downloadcalp-712654d4c023a2ab13190c6905d313e0ba897965.tar.gz
calp-712654d4c023a2ab13190c6905d313e0ba897965.tar.xz
Rewrite test running system.
Diffstat (limited to '')
-rw-r--r--tests/unit/datetime/zic.scm (renamed from tests/test/zic.scm)134
1 files changed, 68 insertions, 66 deletions
diff --git a/tests/test/zic.scm b/tests/unit/datetime/zic.scm
index 99247cf1..19af169c 100644
--- a/tests/test/zic.scm
+++ b/tests/unit/datetime/zic.scm
@@ -37,8 +37,8 @@ Link Europe/Zurich Europe/Vaduz
(test-equal "Basic Rule"
(list ((@@ (datetime zic) make-rule)
'US 1967 1973 4 '(last 0)
- ((@ (datetime zic) make-timespec) #02:00:00 '+ #\w)
- ((@ (datetime zic) make-timespec) #01:00:00 '+ #\d)
+ ((@ (datetime zic) make-timespec) (time hour: 02 minute: 00 second: 00) '+ #\w)
+ ((@ (datetime zic) make-timespec) (time hour: 01 minute: 00 second: 00) '+ #\d)
"D"))
(call-with-input-string "Rule US 1967 1973 - Apr lastSun 2:00w 1:00d D"
parse-zic-file))
@@ -47,7 +47,7 @@ Link Europe/Zurich Europe/Vaduz
(test-equal "Basic Zone"
(list ((@@ (datetime zic) make-zone) "Asia/Amman"
(list ((@@ (datetime zic) make-zone-entry)
- (make-timespec #02:00:00 '+ #\w)
+ (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w)
'Jordan "EE%sT" #f))))
(call-with-input-string
@@ -58,10 +58,10 @@ Link Europe/Zurich Europe/Vaduz
(test-equal "Basic Zone with continuation"
(list ((@@ (datetime zic) make-zone) "America/Menominee"
(list ((@@ (datetime zic) make-zone-entry)
- (make-timespec #05:00:00 '- #\w)
- #f "EST" #1973-04-29T02:00:00)
+ (make-timespec (time hour: 05 minute: 00 second: 00) '- #\w)
+ #f "EST" (datetime year: 1973 month: 04 day: 29 hour: 02 minute: 00 second: 00))
((@@ (datetime zic) make-zone-entry)
- (make-timespec #06:00:00 '- #\w)
+ (make-timespec (time hour: 06 minute: 00 second: 00) '- #\w)
'US "C%sT" #f))))
;; Why can't I single read a zone with an until field?
(call-with-input-string
@@ -73,20 +73,20 @@ Link Europe/Zurich Europe/Vaduz
(test-equal "Rules and Zone"
(list ((@@ (datetime zic) make-zone) "America/Menominee"
(list ((@@ (datetime zic) make-zone-entry)
- (make-timespec #05:00:00 '- #\w)
- #f "EST" #1973-04-29T02:00:00)
+ (make-timespec (time hour: 05 minute: 00 second: 00) '- #\w)
+ #f "EST" (datetime year: 1973 month: 04 day: 29 hour: 02 minute: 00 second: 00))
((@@ (datetime zic) make-zone-entry)
- (make-timespec #06:00:00 '- #\w)
+ (make-timespec (time hour: 06 minute: 00 second: 00) '- #\w)
'US "C%sT" #f)))
((@@ (datetime zic) make-rule)
'US 1967 1973 dec '(last 0)
- (make-timespec #02:00:00 '+ #\w)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
"D")
((@@ (datetime zic) make-rule)
'US 1967 2006 nov '(last 0)
- (make-timespec #02:00:00 '+ #\w)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"S"))
(call-with-input-string
"# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
@@ -119,79 +119,79 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
(list ((@@ (datetime zic) make-link) "Europe/Vaduz" "Europe/Zurich")
((@@ (datetime zic) make-zone) "Europe/Zurich"
(list ((@@ (datetime zic) make-zone-entry)
- (make-timespec #00:34:08 '+ #\w)
- #f "LMT" #1853-07-16T00:00:00)
+ (make-timespec (time hour: 00 minute: 34 second: 08) '+ #\w)
+ #f "LMT" (datetime year: 1853 month: 07 day: 16 hour: 00 minute: 00 second: 00))
((@@ (datetime zic) make-zone-entry)
- (make-timespec #00:29:45 '+ #\w) ; NOTE that the .50 is discarded
- #f "BMT" #1894-06-01T00:00:00)
+ (make-timespec (time hour: 00 minute: 29 second: 45) '+ #\w) ; NOTE that the .50 is discarded
+ #f "BMT" (datetime year: 1894 month: 06 day: 01 hour: 00 minute: 00 second: 00))
((@@ (datetime zic) make-zone-entry)
- (make-timespec #01:00:00 '+ #\w)
- 'Swiss "CE%sT" #1981-01-01T00:00:00)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
+ 'Swiss "CE%sT" (datetime year: 1981 month: 01 day: 01 hour: 00 minute: 00 second: 00))
((@@ (datetime zic) make-zone-entry)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
'EU "CE%sT" #f)))
((@@ (datetime zic) make-rule) 'EU 1996 'maximum 10 '(last 0)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")
((@@ (datetime zic) make-rule) 'EU 1981 'maximum 3 '(last 0)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
"S")
((@@ (datetime zic) make-rule) 'EU 1979 1995 9 `(last ,sun)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")
((@@ (datetime zic) make-rule) 'EU 1978 'only 10 1
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")
((@@ (datetime zic) make-rule) 'EU 1977 'only 9 `(last ,sun)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")
((@@ (datetime zic) make-rule) 'EU 1977 1980 4 `(> ,sun 1)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
"S")
((@@ (datetime zic) make-rule) 'Swiss 1941 1942 10 `(> ,mon 1)
- (make-timespec #02:00:00 '+ #\w)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")
((@@ (datetime zic) make-rule) 'Swiss 1941 1942 5 `(> ,mon 1)
- (make-timespec #01:00:00 '+ #\w)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
"S"))
(call-with-input-string big-sample
parse-zic-file)))
(test-group "rule->dtstart"
(test-equal "last sunday"
- #1967-04-30T02:00:00
+ (datetime year: 1967 month: 04 day: 30 hour: 02 minute: 00 second: 00)
(rule->dtstart
((@@ (datetime zic) make-rule)
'US 1967 1973 4 '(last 0)
- ((@ (datetime zic) make-timespec) #02:00:00 '+ #\w)
- ((@ (datetime zic) make-timespec) #01:00:00 '+ #\d)
+ ((@ (datetime zic) make-timespec) (time hour: 02 minute: 00 second: 00) '+ #\w)
+ ((@ (datetime zic) make-timespec) (time hour: 01 minute: 00 second: 00) '+ #\d)
"D")))
(test-equal "sunday >= 1"
- #1977-04-03T01:00:00Z
+ (datetime year: 1977 month: 04 day: 03 hour: 01 minute: 00 second: 00 tz: "UTC")
(rule->dtstart
((@@ (datetime zic) make-rule) 'EU 1977 1980 4 `(> ,sun 1)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
"S")))
;; Max and min uses dummy dates, which is slightly wrong
;; but shouldn't cause any real problems
(test-equal "Minimum time"
- #0000-10-30T01:00:00Z
+ (datetime year: 0000 month: 10 day: 30 hour: 01 minute: 00 second: 00 tz: "UTC")
(rule->dtstart
((@@ (datetime zic) make-rule) 'EU 'minimum 2000 10 '(last 0)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
(test-equal "Maximum time"
@@ -199,8 +199,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
hour: 1 tz: "UTC")
(rule->dtstart
((@@ (datetime zic) make-rule) 'EU 'maximum 2000 10 '(last 0)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
""))))
(test-group "zone-format"
@@ -228,12 +228,12 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
(test-equal "Get rules returns correctly, and in order"
;; Rules are sorted
(list ((@@ (datetime zic) make-rule) 'Swiss 1941 1942 5 `(> ,mon 1)
- (make-timespec #01:00:00 '+ #\w)
- (make-timespec #01:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\w)
"S")
((@@ (datetime zic) make-rule) 'Swiss 1941 1942 10 `(> ,mon 1)
- (make-timespec #02:00:00 '+ #\w)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
""))
(get-rule zoneinfo 'Swiss))))
@@ -246,8 +246,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
bymonth: (list oct))
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 'maximum 10 '(last 0)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")
))
@@ -255,8 +255,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
#f
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 'only 10 '(last 2)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
(test-equal "with definitive to year"
@@ -264,11 +264,11 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
freq: 'YEARLY interval: 1 wkst: mon
byday: (list (cons -1 tue))
bymonth: (list oct)
- until: #2000-01-01T00:00:00)
+ until: (datetime year: 2000 month: 01 day: 01 hour: 00 minute: 00 second: 00))
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 2000 10 '(last 2)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
(test-equal "on being a month day"
@@ -278,8 +278,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
bymonth: (list oct))
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 'maximum 10 2
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
(test-equal "on being first day after date"
@@ -289,8 +289,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
bymonth: (list oct))
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 'maximum 10 `(> ,mon 2)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
(test-equal "Crash on counting backwards from date"
@@ -299,8 +299,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
(lambda ()
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 'maximum 10 `(< ,mon 2)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
list))
@@ -310,8 +310,10 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00
(lambda ()
(rule->rrule
((@@ (datetime zic) make-rule) 'EU 1996 'minimum 10 `(< ,mon 2)
- (make-timespec #01:00:00 '+ #\u)
- (make-timespec #00:00:00 '+ #\w)
+ (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\u)
+ (make-timespec (time hour: 00 minute: 00 second: 00) '+ #\w)
"")))
list))
)
+
+'((datetime zic))