From d6b1dddeb255053332b5059f4b5dcfa7112d96e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 19 Feb 2020 01:28:02 +0100 Subject: Update tests to remove srfi-19. --- tests/datetime-compare.scm | 67 ++++++++++++++++++++++ tests/datetime-util.scm | 25 ++++++++ tests/datetime.scm | 124 ++++++++++++++++++++++++++++++++++++++++ tests/recurring.scm | 4 +- tests/run-tests.scm | 5 +- tests/srfi-19-alt-compare.scm | 67 ---------------------- tests/srfi-19-alt.scm | 124 ---------------------------------------- tests/srfi-srfi-19-alt-util.scm | 25 -------- 8 files changed, 221 insertions(+), 220 deletions(-) create mode 100644 tests/datetime-compare.scm create mode 100644 tests/datetime-util.scm create mode 100644 tests/datetime.scm delete mode 100644 tests/srfi-19-alt-compare.scm delete mode 100644 tests/srfi-19-alt.scm delete mode 100644 tests/srfi-srfi-19-alt-util.scm (limited to 'tests') diff --git a/tests/datetime-compare.scm b/tests/datetime-compare.scm new file mode 100644 index 00000000..0548ac25 --- /dev/null +++ b/tests/datetime-compare.scm @@ -0,0 +1,67 @@ +(((datetime) + date + datetime time + date< date<= + date> date>= + date/-time< + time< + )) + +(test-assert "date< empty" + (date<)) + +(test-assert "date< single" + (date< #2020-01-10)) + +(test-assert "date< double" + (date< #2020-01-10 #2020-01-11)) + +(test-assert "date< tripple" + (date< #2020-01-10 #2020-01-11 #2020-01-12)) + +(test-assert "date< tripple negate" + (not (date< #2020-01-10 #2020-01-12 #2020-01-11))) + +(test-assert "date<= empty" + (date<=)) + +(test-assert "date<= single" + (date<= #2020-01-10)) + +(test-assert "date<= double" + (date<= #2020-01-10 #2020-01-11)) + +(test-assert "date<=" + (not (date<= #2020-01-01 #2018-05-15 #2020-01-31))) + +(test-assert "date<= equal" + (date<= #2018-05-15 #2018-05-15)) + +(test-assert "date<" + (not (date< #2020-01-01 #2018-05-15 #2020-01-31))) + +(test-assert "date>" + (not (date> #2020-01-31 #2018-05-15 #2020-01-01 ))) + +(test-assert "date>=" + (not (date>= #2020-01-31 #2018-05-15 #2020-01-01))) + +(test-assert "time< simple" + (time< #05:00:00 #10:00:00)) + +(test-assert "time<" + (time< (time) #10:00:00)) + +(test-assert "date/-time<" + (date/-time< #2020-01-01 #2020-01-02)) + +(test-assert "not date/-time<" + (not (date/-time< #2020-01-01 #2020-01-01))) + +(test-assert "date/-time< only other dt" + (date/-time< #2020-01-01 #2020-01-02T10:00:00)) + +(test-assert "date/-time< other dt, same date" + (date/-time< #2020-01-01 #2020-01-01T10:00:00)) + +(test-assert (not (date/-time< #2018-11-30T08:10:00 #2014-04-13T16:00:00))) diff --git a/tests/datetime-util.scm b/tests/datetime-util.scm new file mode 100644 index 00000000..6e5ce170 --- /dev/null +++ b/tests/datetime-util.scm @@ -0,0 +1,25 @@ +(((datetime) date time) + ((datetime util) month-stream in-date-range?) + ((srfi srfi-41) stream->list stream-take + )) + +(test-assert "jan->dec" + (stream->list (stream-take 11 (month-stream #2020-01-01)))) + +(test-assert "dec->jan" + (stream->list (stream-take 2 (month-stream #2020-12-01)))) + +(test-assert "dec->feb" + (stream->list (stream-take 3 (month-stream #2020-12-01)))) + +(test-assert "20 months" + (stream->list (stream-take 20 (month-stream #2020-01-01)))) + +(test-equal "Correct months" + (list #2020-02-01 #2020-03-01 #2020-04-01 #2020-05-01 #2020-06-01 #2020-07-01 #2020-08-01 #2020-09-01 #2020-10-01 #2020-11-01 #2020-12-01 #2021-01-01) + + (stream->list (stream-take 12 (month-stream #2020-02-01)))) + +(test-assert "in-date-range?" + (not ((in-date-range? #2020-01-01 #2020-02-29) + #2018-02-02))) diff --git a/tests/datetime.scm b/tests/datetime.scm new file mode 100644 index 00000000..b678edad --- /dev/null +++ b/tests/datetime.scm @@ -0,0 +1,124 @@ +(((datetime) date+ date- + time+ time- + year month day + date time + datetime + datetime+ + datetime<=? + datetime-difference + leap-year? + ) + ((ice-9 format) format) + ) + +(test-equal "empty time" + (time) #00:00:00) + +(test-assert "Synatx date" + #2020-01-01) + +(test-assert "Test year type" + (integer? (year (date year: 2020)))) + +(test-assert "Test mmnth type" + (integer? (month (date month: 1)))) + +(test-assert "Test day type" + (integer? (day (date day: 1)))) + +(test-equal "Manual print (any)" + "2020-10-10" + (let ((d (date year: 2020 month: 10 day: 10))) + (format #f "~a-~a-~a" + (year d) (month d) (day d)))) + +(test-equal "Manual print (number)" + "2020-10-10" + (let ((d (date year: 2020 month: 10 day: 10))) + (format #f "~d-~d-~d" + (year d) (month d) (day d)))) + +(test-equal "Date print" + "2020-01-01" + (format #f "~a" (date year: 2020 month: 1 day: 1))) + +(test-equal "Syntax date=" + (date year: 2020 month: 1 day: 1) + #2020-01-01) + +(test-equal "Syntax time=" + (time hour: 13 minute: 37 second: 0) + #13:37:00) + +(test-equal "Syntax Datetime=" + (datetime year: 2020 month: 1 day: 1 hour: 13 minute: 37 second: 0) + #2020-01-01T13:37:00) + +(test-equal #2020-02-28 (date- #2020-03-05 (date day: 6))) +(test-equal #2020-02-29 (date- #2020-03-05 (date day: 5))) +(test-equal #2020-03-01 (date- #2020-03-05 (date day: 4))) + +(test-equal "date+ day" #2020-10-10 (date+ #2020-10-01 (date day: 9))) +(test-equal "date+ month" #2020-10-10 (date+ #2020-01-10 (date month: 9))) +(test-equal "date+ day/month" #2020-10-10 (date+ #2020-01-01 (date day: 9 month: 9))) +;; (test-equal "date+ year" #4040-10-10 (date+ #2020-10-10 (date year: 2020))) + +(test-assert "date+ first literal" (date+ #2020-01-01 (date day: 0))) +(test-assert "date+ second literal" (date+ (date year: 1 month: 1 day: 1) #0001-00-00)) +(test-assert "date+ both literal" (date+ #2020-01-01 #0000-00-00)) + +(test-equal "date+ year overflow" #2019-01-01 (date+ #2018-12-31 (date day: 1))) +(test-equal "date- year overflow" #2018-12-31 (date- #2019-01-01 (date day: 1))) + +;; (test-equal "date+ large" #4040-10-10 (date+ #2020-05-03 #2020-05-07)) + +(test-equal "date- large" #0001-01-01 (date- #2020-01-01 #2019-00-00)) + +;; Datum är spännande +(test-equal "date- equal" (date year: -1 month: 11 day: 31) + (date- #2020-01-01 #2020-01-01)) + +(test-equal #2020-01-01T10:00:00 (datetime date: #2020-01-01 + time: #10:00:00)) +(test-equal #2020-01-01T10:00:00 + (datetime+ (datetime date: #2020-01-01) + (datetime time: #10:00:00))) + + +(test-equal #2020-03-10 + (date+ #2020-03-01 + (date day: 4) + (date day: 5))) + + +(test-equal "time- self" + #00:00:00 + (time- #10:20:30 #10:20:30)) + +(test-equal "datetime-difference self" + #0000-00-00T00:00:00 + (datetime-difference (datetime date: #2020-01-01) (datetime date: #2020-01-01))) + +;; (test-assert +;; (datetime- #2018-01-17T10:00:00 +;; #2018-01-17T08:00:00)) + + +;; (test-assert +;; (datetime<=? (datetime time: (time hour: 24)) +;; (datetime- #2018-01-17T10:00:00 +;; #2018-01-17T08:00:00))) + + +;; TODO +;; at the time of writing this returns #2020-02-00 +;; The general question is, how is the last in a month handled? +;; (test-equal +;; (date+ #2019-12-31 (date month: 1))) + +(test-assert (leap-year? 2020)) + +(test-equal "Add to Leap day" + #2020-02-29 (date+ #2020-02-28 (date day: 1))) + + diff --git a/tests/recurring.scm b/tests/recurring.scm index da6e18a8..0871d38d 100644 --- a/tests/recurring.scm +++ b/tests/recurring.scm @@ -1,7 +1,5 @@ (((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) + ((datetime util) day-stream) ((vcomponent base) extract attr) ((vcomponent) parse-calendar) diff --git a/tests/run-tests.scm b/tests/run-tests.scm index 8d99eef7..ded94cc5 100755 --- a/tests/run-tests.scm +++ b/tests/run-tests.scm @@ -16,7 +16,10 @@ (ice-9 sandbox) (srfi srfi-64) ; test suite (srfi srfi-88) ; suffix keywords - ((util) :select (for awhen))) + ((util) :select (for awhen)) + ;; datetime introduces the reader extensions for datetimes, + ;; which leaks into the sandboxes below. + (datetime)) (define files (scandir here diff --git a/tests/srfi-19-alt-compare.scm b/tests/srfi-19-alt-compare.scm deleted file mode 100644 index 5ee7e63d..00000000 --- a/tests/srfi-19-alt-compare.scm +++ /dev/null @@ -1,67 +0,0 @@ -(((srfi srfi-19 alt) - date - datetime time - date< date<= - date> date>= - date/-time< - time< - )) - -(test-assert "date< empty" - (date<)) - -(test-assert "date< single" - (date< #2020-01-10)) - -(test-assert "date< double" - (date< #2020-01-10 #2020-01-11)) - -(test-assert "date< tripple" - (date< #2020-01-10 #2020-01-11 #2020-01-12)) - -(test-assert "date< tripple negate" - (not (date< #2020-01-10 #2020-01-12 #2020-01-11))) - -(test-assert "date<= empty" - (date<=)) - -(test-assert "date<= single" - (date<= #2020-01-10)) - -(test-assert "date<= double" - (date<= #2020-01-10 #2020-01-11)) - -(test-assert "date<=" - (not (date<= #2020-01-01 #2018-05-15 #2020-01-31))) - -(test-assert "date<= equal" - (date<= #2018-05-15 #2018-05-15)) - -(test-assert "date<" - (not (date< #2020-01-01 #2018-05-15 #2020-01-31))) - -(test-assert "date>" - (not (date> #2020-01-31 #2018-05-15 #2020-01-01 ))) - -(test-assert "date>=" - (not (date>= #2020-01-31 #2018-05-15 #2020-01-01))) - -(test-assert "time< simple" - (time< #05:00:00 #10:00:00)) - -(test-assert "time<" - (time< (time) #10:00:00)) - -(test-assert "date/-time<" - (date/-time< #2020-01-01 #2020-01-02)) - -(test-assert "not date/-time<" - (not (date/-time< #2020-01-01 #2020-01-01))) - -(test-assert "date/-time< only other dt" - (date/-time< #2020-01-01 #2020-01-02T10:00:00)) - -(test-assert "date/-time< other dt, same date" - (date/-time< #2020-01-01 #2020-01-01T10:00:00)) - -(test-assert (not (date/-time< #2018-11-30T08:10:00 #2014-04-13T16:00:00))) diff --git a/tests/srfi-19-alt.scm b/tests/srfi-19-alt.scm deleted file mode 100644 index de6f6750..00000000 --- a/tests/srfi-19-alt.scm +++ /dev/null @@ -1,124 +0,0 @@ -(((srfi srfi-19 alt) date+ date- - time+ time- - year month day - date time - datetime - datetime+ - datetime<=? - datetime-difference - leap-year? - ) - ((ice-9 format) format) - ) - -(test-equal "empty time" - (time) #00:00:00) - -(test-assert "Synatx date" - #2020-01-01) - -(test-assert "Test year type" - (integer? (year (date year: 2020)))) - -(test-assert "Test mmnth type" - (integer? (month (date month: 1)))) - -(test-assert "Test day type" - (integer? (day (date day: 1)))) - -(test-equal "Manual print (any)" - "2020-10-10" - (let ((d (date year: 2020 month: 10 day: 10))) - (format #f "~a-~a-~a" - (year d) (month d) (day d)))) - -(test-equal "Manual print (number)" - "2020-10-10" - (let ((d (date year: 2020 month: 10 day: 10))) - (format #f "~d-~d-~d" - (year d) (month d) (day d)))) - -(test-equal "Date print" - "2020-01-01" - (format #f "~a" (date year: 2020 month: 1 day: 1))) - -(test-equal "Syntax date=" - (date year: 2020 month: 1 day: 1) - #2020-01-01) - -(test-equal "Syntax time=" - (time hour: 13 minute: 37 second: 0) - #13:37:00) - -(test-equal "Syntax Datetime=" - (datetime year: 2020 month: 1 day: 1 hour: 13 minute: 37 second: 0) - #2020-01-01T13:37:00) - -(test-equal #2020-02-28 (date- #2020-03-05 (date day: 6))) -(test-equal #2020-02-29 (date- #2020-03-05 (date day: 5))) -(test-equal #2020-03-01 (date- #2020-03-05 (date day: 4))) - -(test-equal "date+ day" #2020-10-10 (date+ #2020-10-01 (date day: 9))) -(test-equal "date+ month" #2020-10-10 (date+ #2020-01-10 (date month: 9))) -(test-equal "date+ day/month" #2020-10-10 (date+ #2020-01-01 (date day: 9 month: 9))) -;; (test-equal "date+ year" #4040-10-10 (date+ #2020-10-10 (date year: 2020))) - -(test-assert "date+ first literal" (date+ #2020-01-01 (date day: 0))) -(test-assert "date+ second literal" (date+ (date year: 1 month: 1 day: 1) #0001-00-00)) -(test-assert "date+ both literal" (date+ #2020-01-01 #0000-00-00)) - -(test-equal "date+ year overflow" #2019-01-01 (date+ #2018-12-31 (date day: 1))) -(test-equal "date- year overflow" #2018-12-31 (date- #2019-01-01 (date day: 1))) - -;; (test-equal "date+ large" #4040-10-10 (date+ #2020-05-03 #2020-05-07)) - -(test-equal "date- large" #0001-01-01 (date- #2020-01-01 #2019-00-00)) - -;; Datum är spännande -(test-equal "date- equal" (date year: -1 month: 11 day: 31) - (date- #2020-01-01 #2020-01-01)) - -(test-equal #2020-01-01T10:00:00 (datetime date: #2020-01-01 - time: #10:00:00)) -(test-equal #2020-01-01T10:00:00 - (datetime+ (datetime date: #2020-01-01) - (datetime time: #10:00:00))) - - -(test-equal #2020-03-10 - (date+ #2020-03-01 - (date day: 4) - (date day: 5))) - - -(test-equal "time- self" - #00:00:00 - (time- #10:20:30 #10:20:30)) - -(test-equal "datetime-difference self" - #0000-00-00T00:00:00 - (datetime-difference (datetime date: #2020-01-01) (datetime date: #2020-01-01))) - -;; (test-assert -;; (datetime- #2018-01-17T10:00:00 -;; #2018-01-17T08:00:00)) - - -;; (test-assert -;; (datetime<=? (datetime time: (time hour: 24)) -;; (datetime- #2018-01-17T10:00:00 -;; #2018-01-17T08:00:00))) - - -;; TODO -;; at the time of writing this returns #2020-02-00 -;; The general question is, how is the last in a month handled? -;; (test-equal -;; (date+ #2019-12-31 (date month: 1))) - -(test-assert (leap-year? 2020)) - -(test-equal "Add to Leap day" - #2020-02-29 (date+ #2020-02-28 (date day: 1))) - - diff --git a/tests/srfi-srfi-19-alt-util.scm b/tests/srfi-srfi-19-alt-util.scm deleted file mode 100644 index 7343bfa3..00000000 --- a/tests/srfi-srfi-19-alt-util.scm +++ /dev/null @@ -1,25 +0,0 @@ -(((srfi srfi-19 alt) date time) - ((srfi srfi-19 alt util) month-stream in-date-range?) - ((srfi srfi-41) stream->list stream-take - )) - -(test-assert "jan->dec" - (stream->list (stream-take 11 (month-stream #2020-01-01)))) - -(test-assert "dec->jan" - (stream->list (stream-take 2 (month-stream #2020-12-01)))) - -(test-assert "dec->feb" - (stream->list (stream-take 3 (month-stream #2020-12-01)))) - -(test-assert "20 months" - (stream->list (stream-take 20 (month-stream #2020-01-01)))) - -(test-equal "Correct months" - (list #2020-02-01 #2020-03-01 #2020-04-01 #2020-05-01 #2020-06-01 #2020-07-01 #2020-08-01 #2020-09-01 #2020-10-01 #2020-11-01 #2020-12-01 #2021-01-01) - - (stream->list (stream-take 12 (month-stream #2020-02-01)))) - -(test-assert "in-date-range?" - (not ((in-date-range? #2020-01-01 #2020-02-29) - #2018-02-02))) -- cgit v1.2.3