From f852c30bcef530d18a474ab6ab8350a3ef93d563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 30 Jan 2020 22:51:45 +0100 Subject: Once again compiles. --- tests/recurring.scm | 137 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 127 insertions(+), 10 deletions(-) (limited to 'tests/recurring.scm') diff --git a/tests/recurring.scm b/tests/recurring.scm index b32759ba..da6e18a8 100644 --- a/tests/recurring.scm +++ b/tests/recurring.scm @@ -1,6 +1,7 @@ -(((srfi srfi-41) stream-take stream-map stream->list) - ((srfi srfi-19) date->time-utc time-utc->date) - ((srfi srfi-19 util) day-stream) +(((srfi srfi-41) stream-take stream-map stream->list stream-car) + ;; ((srfi srfi-19) date->time-utc time-utc->date) + ;; ((srfi srfi-19 util) day-stream) + ((srfi srfi-19 alt util) day-stream) ((vcomponent base) extract attr) ((vcomponent) parse-calendar) @@ -11,12 +12,15 @@ (define ev (call-with-input-string "BEGIN:VEVENT -DTSTART;20190302 +DTSTART:20190302 RRULE:FREQ=DAILY END:VEVENT" parse-calendar)) (test-assert "Generate at all" + (stream-car (generate-recurrence-set ev))) + +(test-assert "Generate some" (stream->list (stream-take 5 (generate-recurrence-set ev)))) (test-equal "Generate First" @@ -26,9 +30,8 @@ END:VEVENT" (generate-recurrence-set ev)))) (stream->list (stream-take - 5 (stream-map date->time-utc - (day-stream - (time-utc->date (attr ev 'DTSTART))))))) + 5 (day-stream + (attr ev 'DTSTART))))) ;; We run the exact same thing a secound time, since I had an error with ;; that during development. @@ -40,11 +43,125 @@ END:VEVENT" (generate-recurrence-set ev)))) (stream->list (stream-take - 5 (stream-map date->time-utc - (day-stream - (time-utc->date (attr ev 'DTSTART))))))) + 5 (day-stream + (attr ev 'DTSTART))))) + + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART:20190302T100000 +RRULE:FREQ=DAILY +END:VEVENT" + parse-calendar) ) + +(test-assert "daily 10:00" + (stream-car (generate-recurrence-set ev))) + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART:20190302T100000 +DTEND:20190302T120000 +RRULE:FREQ=DAILY +END:VEVENT" + parse-calendar)) + +(test-assert "daily 10-12" + (stream-car (generate-recurrence-set ev))) + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART:20190302T100000 +DTEND:20190302T120000 +RRULE:FREQ=WEEKLY +END:VEVENT" + parse-calendar)) +(test-assert "weekly 10-12" + (stream-car (generate-recurrence-set ev))) ;;; TODO, also test: ;;; - limited repetition ;;; - weird rules + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART;TZID=Europe/Stockholm:20190302T100000 +DTEND;TZID=Europe/Stockholm:20190302T120000 +RRULE:FREQ=WEEKLY +END:VEVENT" + parse-calendar)) + +(test-assert "weekly TZ 10-12" + (stream-car (generate-recurrence-set ev))) + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART;TZID=Europe/Stockholm:20190302T100000 +DTEND;TZID=Europe/Stockholm:20190302T120000 +RRULE:FREQ=WEEKLY +SEQUENCE:1 +END:VEVENT" + parse-calendar)) + +(test-assert "weekly TZ SEQUENCE 10-12" + (stream-car (generate-recurrence-set ev))) + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART;TZID=Europe/Stockholm:20190302T100000 +RRULE:FREQ=WEEKLY +DTEND;TZID=Europe/Stockholm:20190302T120000 +SEQUENCE:1 +LOCATION:Here +END:VEVENT" + parse-calendar)) + +(test-assert "weekly TZ SEQUENCE LOCATION 10-12" + (stream-car (generate-recurrence-set ev))) + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART:20180117T170000 +RRULE:FREQ=WEEKLY +LOCATION:~ +END:VEVENT" + parse-calendar)) + +(test-assert "Just location" + (stream-car (generate-recurrence-set ev))) + + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART;TZID=Europe/Stockholm:20180117T170000 +DTEND;TZID=Europe/Stockholm:20180117T200000 +RRULE:FREQ=WEEKLY +END:VEVENT" + parse-calendar)) + +(test-assert "Same times" + (stream-car (generate-recurrence-set ev))) + +(define ev + (call-with-input-string + "BEGIN:VEVENT +DTSTART;TZID=Europe/Stockholm:20180117T170000 +RRULE:FREQ=WEEKLY +DTEND;TZID=Europe/Stockholm:20180117T200000 +SEQUENCE:1 +LOCATION:~ +END:VEVENT" + parse-calendar)) + +;; errer in dtend ? + +(test-assert "Full test" + (stream-car (generate-recurrence-set ev))) -- cgit v1.2.3