diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-16 19:39:12 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-16 19:40:24 +0200 |
commit | 22f28015981295660ff98b43789f8c4c99134f36 (patch) | |
tree | e6d43c74a23843212e0fc183a1e09ca2b5d2fa17 /tests/unit | |
parent | Add `not` case to type validators. (diff) | |
download | calp-22f28015981295660ff98b43789f8c4c99134f36.tar.gz calp-22f28015981295660ff98b43789f8c4c99134f36.tar.xz |
Move timespec and recur-rule to new object system.
Diffstat (limited to '')
-rw-r--r-- | tests/unit/coverage-supplement.scm | 8 | ||||
-rw-r--r-- | tests/unit/datetime/zic.scm | 16 | ||||
-rw-r--r-- | tests/unit/vcomponent/recurrence-advanced.scm | 100 | ||||
-rw-r--r-- | tests/unit/vcomponent/recurrence-simple.scm | 23 | ||||
-rw-r--r-- | tests/unit/vcomponent/rrule-serialization.scm | 9 |
5 files changed, 81 insertions, 75 deletions
diff --git a/tests/unit/coverage-supplement.scm b/tests/unit/coverage-supplement.scm index bd8a9717..09a04312 100644 --- a/tests/unit/coverage-supplement.scm +++ b/tests/unit/coverage-supplement.scm @@ -15,4 +15,10 @@ 1 18) ("module/hnh/util/atomic-stack.scm" "147b45d2216c378c35d5c3ed0228be393b6c287f2a5515802928040f2087378e" - 1 13 29)) + 1 13 29) + ("module/hnh/util/type.scm" + "f670542b9b404125224fd4c702be99e2c1c3fd55d862b18228e8772264ef3189" + 1 ; Module declaration + 12 34 44 46 ; Macros + 53) ; false? == not + ) diff --git a/tests/unit/datetime/zic.scm b/tests/unit/datetime/zic.scm index 19af169c..f9fd6531 100644 --- a/tests/unit/datetime/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) (time hour: 02 minute: 00 second: 00) '+ #\w) - ((@ (datetime zic) make-timespec) (time hour: 01 minute: 00 second: 00) '+ #\d) + (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w) + (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)) @@ -171,8 +171,8 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00 (rule->dtstart ((@@ (datetime zic) make-rule) 'US 1967 1973 4 '(last 0) - ((@ (datetime zic) make-timespec) (time hour: 02 minute: 00 second: 00) '+ #\w) - ((@ (datetime zic) make-timespec) (time hour: 01 minute: 00 second: 00) '+ #\d) + (make-timespec (time hour: 02 minute: 00 second: 00) '+ #\w) + (make-timespec (time hour: 01 minute: 00 second: 00) '+ #\d) "D"))) (test-equal "sunday >= 1" @@ -240,7 +240,7 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00 (test-group "rule->rrule" (test-equal "Basic example, and to = maximum" - ((@ (vcomponent recurrence internal) make-recur-rule) + ((@ (vcomponent recurrence internal) recur-rule) freq: 'YEARLY interval: 1 wkst: mon byday: (list (cons -1 sun)) bymonth: (list oct)) @@ -260,7 +260,7 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00 ""))) (test-equal "with definitive to year" - ((@ (vcomponent recurrence internal) make-recur-rule) + ((@ (vcomponent recurrence internal) recur-rule) freq: 'YEARLY interval: 1 wkst: mon byday: (list (cons -1 tue)) bymonth: (list oct) @@ -272,7 +272,7 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00 ""))) (test-equal "on being a month day" - ((@ (vcomponent recurrence internal) make-recur-rule) + ((@ (vcomponent recurrence internal) recur-rule) freq: 'YEARLY interval: 1 wkst: mon bymonthday: (list 2) bymonth: (list oct)) @@ -283,7 +283,7 @@ Zone America/Menominee -5:00 - EST 1973 Apr 29 2:00 ""))) (test-equal "on being first day after date" - ((@ (vcomponent recurrence internal) make-recur-rule) + ((@ (vcomponent recurrence internal) recur-rule) freq: 'YEARLY interval: 1 wkst: mon byday: (list (cons 1 mon)) bymonth: (list oct)) diff --git a/tests/unit/vcomponent/recurrence-advanced.scm b/tests/unit/vcomponent/recurrence-advanced.scm index 1bd4311a..41e4770e 100644 --- a/tests/unit/vcomponent/recurrence-advanced.scm +++ b/tests/unit/vcomponent/recurrence-advanced.scm @@ -15,7 +15,7 @@ :use-module (srfi srfi-64) :use-module (srfi srfi-88) :use-module ((vcomponent recurrence) - :select (make-recur-rule)) + :select (recur-rule)) :use-module ((vcomponent recurrence generate) :select (generate-recurrence-set)) :use-module ((vcomponent recurrence display) @@ -74,7 +74,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'DAILY count: 10) x-summary: @@ -96,7 +96,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'DAILY until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC")) x-summary: @@ -221,7 +221,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'DAILY interval: 2) x-summary: @@ -253,7 +253,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'DAILY interval: 10 count: 5) @@ -271,7 +271,7 @@ dtstart: (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY until: (datetime year: 2000 month: 01 day: 31 hour: 14 minute: 00 second: 00 tz: "UTC") bymonth: (list jan) @@ -378,10 +378,10 @@ dtstart: (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'DAILY until: (datetime year: 2000 month: 01 day: 31 hour: 14 minute: 00 second: 00 tz: "UTC") - bymonth: 1) + bymonth: (list jan)) x-summary: "dagligen, till och med den 31 januari, 2000 kl. 14:00" x-set: @@ -484,7 +484,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY count: 10) x-summary: @@ -506,7 +506,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC")) x-summary: @@ -535,7 +535,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY interval: 2 wkst: sun) @@ -568,7 +568,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY until: (datetime year: 1997 month: 10 day: 07 hour: 00 minute: 00 second: 00 tz: "UTC") wkst: sun @@ -592,7 +592,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY count: 10 wkst: sun @@ -616,7 +616,7 @@ dtstart: (datetime year: 1997 month: 09 day: 01 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY interval: 2 until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC") @@ -656,7 +656,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY interval: 2 count: 8 @@ -679,7 +679,7 @@ dtstart: (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY count: 10 byday: (list (cons 1 fri))) @@ -702,7 +702,7 @@ dtstart: (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC") byday: (list (cons 1 fri))) @@ -719,7 +719,7 @@ dtstart: (datetime year: 1997 month: 09 day: 07 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY interval: 2 count: 10 @@ -744,7 +744,7 @@ dtstart: (datetime year: 1997 month: 09 day: 22 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY count: 6 byday: (list (cons -2 mon))) @@ -763,7 +763,7 @@ dtstart: (datetime year: 1997 month: 09 day: 28 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY bymonthday: (list -3)) x-summary: @@ -795,7 +795,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY count: 10 bymonthday: (list 2 15)) @@ -818,7 +818,7 @@ dtstart: (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY count: 10 bymonthday: (list 1 -1)) @@ -841,7 +841,7 @@ dtstart: (datetime year: 1997 month: 09 day: 10 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY interval: 18 count: 10 @@ -865,7 +865,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY interval: 2 byday: (list tue)) @@ -898,7 +898,7 @@ dtstart: (datetime year: 1997 month: 06 day: 10 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY count: 10 bymonth: (list 6 7)) @@ -921,7 +921,7 @@ dtstart: (datetime year: 1997 month: 03 day: 10 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY interval: 2 count: 10 @@ -945,7 +945,7 @@ dtstart: (datetime year: 1997 month: 01 day: 01 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY interval: 3 count: 10 @@ -969,7 +969,7 @@ dtstart: (datetime year: 1997 month: 05 day: 19 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY byday: (list (cons 20 mon))) x-summary: @@ -1001,7 +1001,7 @@ dtstart: (datetime year: 1997 month: 05 day: 12 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY byweekno: (list 20) byday: (list mon)) @@ -1034,7 +1034,7 @@ dtstart: (datetime year: 1997 month: 03 day: 13 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY bymonth: (list mar) byday: (list thu)) @@ -1067,7 +1067,7 @@ dtstart: (datetime year: 1997 month: 06 day: 05 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY byday: (list thu) bymonth: (list 6 7 8)) @@ -1103,7 +1103,7 @@ (as-list (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00))) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY byday: (list fri) bymonthday: (list 13)) @@ -1136,7 +1136,7 @@ dtstart: (datetime year: 1997 month: 09 day: 13 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY byday: (list sat) bymonthday: (list 7 8 9 10 11 12 13)) @@ -1169,7 +1169,7 @@ dtstart: (datetime year: 1996 month: 11 day: 05 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY interval: 4 bymonth: (list nov) @@ -1204,7 +1204,7 @@ dtstart: (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY count: 3 byday: (list tue wed thu) @@ -1221,7 +1221,7 @@ dtstart: (datetime year: 1997 month: 09 day: 29 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY byday: (list mon tue wed thu fri) bysetpos: (list -2)) @@ -1239,7 +1239,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'HOURLY interval: 3 until: (datetime year: 1997 month: 09 day: 02 hour: 17 minute: 00 second: 00 tz: "UTC")) @@ -1255,7 +1255,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MINUTELY interval: 15 count: 6) @@ -1274,7 +1274,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MINUTELY interval: 90 count: 4) @@ -1291,7 +1291,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'DAILY byhour: (list 9 10 11 12 13 14 15 16) byminute: (list 0 20 40)) @@ -1324,7 +1324,7 @@ dtstart: (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MINUTELY interval: 20 byhour: (list 9 10 11 12 13 14 15 16)) @@ -1357,7 +1357,7 @@ dtstart: (datetime year: 1997 month: 08 day: 05 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY interval: 2 count: 4 @@ -1376,7 +1376,7 @@ dtstart: (datetime year: 1997 month: 08 day: 05 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'WEEKLY interval: 2 count: 4 @@ -1395,7 +1395,7 @@ dtstart: (datetime year: 2007 month: 01 day: 15 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY bymonthday: (list 15 30) count: 5) @@ -1416,7 +1416,7 @@ (as-list (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00))) rrule: - (make-recur-rule + (recur-rule freq: 'MONTHLY byday: (list fri wed) bymonthday: (list 13)) @@ -1449,7 +1449,7 @@ dtstart: (datetime year: 1997 month: 05 day: 12 hour: 09 minute: 00 second: 00) rrule: - (make-recur-rule + (recur-rule freq: 'YEARLY byweekno: (list 20) byday: (list mon wed)) @@ -1479,7 +1479,7 @@ (vevent summary: "Each second, for ever" dtstart: (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 00) - rrule: (make-recur-rule freq: 'SECONDLY) + rrule: (recur-rule freq: 'SECONDLY) x-summary: "varje sekund" x-set: (list (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 00) (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 01) @@ -1506,7 +1506,7 @@ (vevent summary: "Exdates are applied AFTER rrule's" dtstart: (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) - rrule: (make-recur-rule freq: 'DAILY count: 5) + rrule: (recur-rule freq: 'DAILY count: 5) exdate: (as-list (list (datetime year: 2022 month: 06 day: 12 hour: 10 minute: 00 second: 00))) x-summary: "dagligen, totalt 5 gånger" x-set: (list (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) @@ -1518,7 +1518,7 @@ (vevent summary: "RDATE:s add to the recurrence rule" dtstart: (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) - rrule: (make-recur-rule freq: 'DAILY count: 5) + rrule: (recur-rule freq: 'DAILY count: 5) rdate: (as-list (list (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00))) x-summary: "dagligen, totalt 5 gånger" x-set: (list (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) @@ -1532,7 +1532,7 @@ (vevent summary: "RDATE:s add to the recurrence rule" dtstart: (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) - rrule: (make-recur-rule freq: 'DAILY count: 5) + rrule: (recur-rule freq: 'DAILY count: 5) exdate: (as-list (list (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00))) rdate: (as-list (list (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00))) x-summary: "dagligen, totalt 5 gånger" diff --git a/tests/unit/vcomponent/recurrence-simple.scm b/tests/unit/vcomponent/recurrence-simple.scm index dff57346..1c778223 100644 --- a/tests/unit/vcomponent/recurrence-simple.scm +++ b/tests/unit/vcomponent/recurrence-simple.scm @@ -21,17 +21,15 @@ :select (warnings-are-errors warning-handler)) :use-module ((vcomponent recurrence) :select (parse-recurrence-rule - make-recur-rule + recur-rule generate-recurrence-set))) -(define recur-rule make-recur-rule) - ;;; Test that basic parsing or recurrence rules work. -(test-equal (make-recur-rule freq: 'HOURLY wkst: mon interval: 1) +(test-equal (recur-rule freq: 'HOURLY wkst: mon interval: 1) (parse-recurrence-rule "FREQ=HOURLY")) -(test-equal (make-recur-rule freq: 'HOURLY count: 3 interval: 1 wkst: mon) +(test-equal (recur-rule freq: 'HOURLY count: 3 interval: 1 wkst: mon) (parse-recurrence-rule "FREQ=HOURLY;COUNT=3")) ;;; Test that recurrence rule parsing fails where appropriate @@ -39,10 +37,10 @@ (parameterize ((warnings-are-errors #t) (warning-handler (lambda _ ""))) (test-error "Invalid FREQ" - 'warning + 'wrong-type-arg (parse-recurrence-rule "FREQ=ERR;COUNT=3")) (test-error "Negative COUNT" - 'warning + 'wrong-type-arg (parse-recurrence-rule "FREQ=HOURLY;COUNT=-1")) (test-error "Invalid COUNT" 'wrong-type-arg @@ -228,11 +226,12 @@ ;;; Earlier I failed to actually parse the recurrence parts, in short, 1 ≠ "1". -(test-assert "Test that xcal recur rules are parseable" - ((@@ (vcomponent formats xcal parse) handle-value) - 'recur - 'props-are-unused-for-recur - '((freq "WEEKLY") (interval "1") (wkst "MO")))) +;;; TODO this should be part of the xCal tests +;; (test-assert "Test that xcal recur rules are parseable" +;; ((@@ (vcomponent formats xcal parse) handle-value) +;; 'recur +;; 'props-are-unused-for-recur +;; '((freq "WEEKLY") (interval "1") (wkst "MO")))) (define ev (vevent diff --git a/tests/unit/vcomponent/rrule-serialization.scm b/tests/unit/vcomponent/rrule-serialization.scm index 540c5bd2..fe990e0b 100644 --- a/tests/unit/vcomponent/rrule-serialization.scm +++ b/tests/unit/vcomponent/rrule-serialization.scm @@ -44,7 +44,7 @@ (@@ (vcomponent recurrence internal) field->string)) -(let ((rule (parse-recurrence-rule "BYDAY=MO,TU,WE"))) +(let ((rule (parse-recurrence-rule "FREQ=WEEKLY;BYDAY=MO,TU,WE"))) (test-equal "Direct return of parsed value" "MO,TU,WE" @@ -55,10 +55,10 @@ (filter (lambda (pair) (eq? 'byday (car pair))) (keyword-flatten - '(interval byday wkst) + '(interval byday wkst freq) (recur-rule->rrule-sxml rule))))) -(let ((rule (parse-recurrence-rule "BYDAY=+1MO,1TU,-2FR"))) +(let ((rule (parse-recurrence-rule "FREQ=WEEKLY;BYDAY=+1MO,1TU,-2FR"))) (test-equal "Direct return of parsed value" "1MO,1TU,-2FR" @@ -68,8 +68,9 @@ '((byday "1MO") (byday "1TU") (byday "-2FR")) (filter (lambda (pair) (eq? 'byday (car pair))) + ;; TODO why is keyword-flatten used here? (keyword-flatten - '(interval byday wkst) + '(interval byday wkst freq) (recur-rule->rrule-sxml rule))))) |