From 0d9474920c3db4466cca8633a6f7f45b288f404d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 23 Jun 2022 05:01:15 +0200 Subject: Reformat test/datetime.scm --- tests/test/datetime.scm | 281 +++++++++++++++++------------------------------- 1 file changed, 101 insertions(+), 180 deletions(-) diff --git a/tests/test/datetime.scm b/tests/test/datetime.scm index d646052d..b2b97d45 100644 --- a/tests/test/datetime.scm +++ b/tests/test/datetime.scm @@ -14,206 +14,149 @@ :use-module ((ice-9 i18n) :select (make-locale)) :use-module ((guile) :select (LC_CTYPE LC_TIME))) -(test-equal - "A new time is empty" - (time) - #00:00:00) +(test-group + "Syntax" -(test-equal "A new date is empty" - (date) - #0000-00-00) + (test-equal "A new time is empty" + (time) #00:00:00) -(test-assert - "Datetime have syntax" - #2020-01-01) + (test-equal "A new date is empty" + (date) #0000-00-00) + (test-assert "Datetime have syntax" + #2020-01-01) -(test-group "The syntax for <> is equivalent to manually creating them" - (test-equal - "dates" - (date year: 2020 month: 1 day: 1) - #2020-01-01) + (test-group "The syntax for <> is equivalent to manually creating them" + (test-equal "dates" + (date year: 2020 month: 1 day: 1) + #2020-01-01) - (test-equal - "times" - (time hour: 13 minute: 37 second: 0) - #13:37:00) + (test-equal "times" + (time hour: 13 minute: 37 second: 0) + #13:37:00) - (test-equal - "datetimes" - (datetime year: 2020 month: 1 day: 1 - hour: 13 minute: 37 second: 0) - #2020-01-01T13:37:00)) + (test-equal "datetimes" + (datetime year: 2020 month: 1 day: 1 + hour: 13 minute: 37 second: 0) + #2020-01-01T13:37:00))) -(test-equal - "Date- over leap year month shift" +(test-equal "Date- over leap year month shift" #2020-02-28 (date- #2020-03-05 (date day: 6))) -(test-equal - "Date- land on leap day" +(test-equal "Date- land on leap day" #2020-02-29 (date- #2020-03-05 (date day: 5))) -(test-equal - "Date- within month" +(test-equal "Date- within month" #2020-03-01 (date- #2020-03-05 (date day: 4))) -(test-equal - "date+ day" +(test-equal "date+ day" #2020-10-10 (date+ #2020-10-01 (date day: 9))) -(test-equal - "date+ month" +(test-equal "date+ month" #2020-10-10 (date+ #2020-01-10 (date month: 9))) -(test-equal - "date+ day/month" +(test-equal "date+ day/month" #2020-10-10 (date+ #2020-01-01 (date day: 9 month: 9))) -(test-assert - "date+ first literal" +(test-assert "date+ first literal" (date+ #2020-01-01 (date day: 0))) -(test-assert - "date+ second literal" +(test-assert "date+ second literal" (date+ #0001-01-01 #0001-00-00)) -(test-assert - "date+ both literal" +(test-assert "date+ both literal" (date+ #2020-01-01 #0000-00-00)) -(test-equal - "date+ year overflow" +(test-equal "date+ year overflow" #2019-01-01 (date+ #2018-12-31 (date day: 1))) -(test-equal - "date- year overflow" +(test-equal "date- year overflow" #2018-12-31 (date- #2019-01-01 (date day: 1))) -(test-equal - "date- large" +(test-equal "date- large" #0001-01-01 (date- #2020-01-01 #2019-00-00)) -(test-equal - "date- equal" +(test-equal "date- equal" (date year: -1 month: 11 day: 31) (date- #2020-01-01 #2020-01-01)) -(test-equal - "Simple datetime construction" +(test-equal "Simple datetime construction" #2020-01-01T10:00:00 - (datetime - date: - #2020-01-01 - time: - #10:00:00)) + (datetime date: #2020-01-01 time: #10:00:00)) -(test-equal - "Datetime add date-only and time-only." +(test-equal "Datetime add date-only and time-only." #2020-01-01T10:00:00 (datetime+ - (datetime - date: - #2020-01-01) - (datetime - time: - #10:00:00))) + (datetime date: #2020-01-01) + (datetime time: #10:00:00))) -(test-equal - "Datetime subtract time" +(test-equal "Datetime subtract time" #2020-10-09T14:00:00 - (datetime- - #2020-10-10T00:00:00 - (datetime - time: - #10:00:00))) + (datetime- #2020-10-10T00:00:00 + (datetime time: #10:00:00))) -(test-equal - "Datetime subtract datetime" +(test-equal "Datetime subtract datetime" #2020-09-24T14:00:00 - (datetime- - #2020-10-10T00:00:00 - #0000-00-15T10:00:00)) + (datetime- #2020-10-10T00:00:00 + #0000-00-15T10:00:00)) -(test-equal - "Date+ multiple" +(test-equal "Date+ multiple" #2020-03-10 (date+ #2020-03-01 (date day: 4) (date day: 5))) -(let ((diff overflow - (time- #10:20:30 - #10:20:30))) - (test-equal - "time- self" - #00:00:00 - diff) +(let ((diff overflow (time- #10:20:30 #10:20:30))) + (test-equal "time- self" + #00:00:00 diff) (test-equal "time- self overflow" 0 overflow)) -(let ((diff overflow - (time- #10:00:00 - #10:00:01))) - (test-equal - "time- overflow 1s" - #23:59:59 - diff) - (test-equal - "time- overflow 1s overflow" - 1 - overflow)) - -(let ((diff overflow - (time- #10:00:00 - (time hour: (+ 48 4))))) - (test-equal - "time- overflow multiple" - #06:00:00 - diff) - (test-equal - "time- overflow multiple overflow" - 2 - overflow)) +(let ((diff overflow (time- #10:00:00 #10:00:01))) + (test-equal "time- overflow 1s" + #23:59:59 diff) + (test-equal "time- overflow 1s overflow" + 1 overflow)) -(test-equal - "datetime-difference self" +(let ((diff overflow (time- #10:00:00 (time hour: (+ 48 4))))) + (test-equal "time- overflow multiple" + #06:00:00 diff) + (test-equal "time- overflow multiple overflow" + 2 overflow)) + +(test-equal "datetime-difference self" #0000-00-00T00:00:00 (datetime-difference - (datetime - date: - #2020-01-01) - (datetime - date: - #2020-01-01))) + (datetime date: #2020-01-01) + (datetime date: #2020-01-01))) ;; NOTE ;; at the time of writing this returns #2020-02-00 ;; The general question is, how is the last in a month handled? ;; TODO -(test-equal - "Date+ over year end" +(test-equal "Date+ over year end" #2020-01-31 (date+ #2019-12-31 (date month: 1))) @@ -221,121 +164,100 @@ (test-assert "leap-year?" (leap-year? 2020)) -(test-equal - "Add to Leap day" +(test-equal "Add to Leap day" #2020-02-29 (date+ #2020-02-28 (date day: 1))) -(test-equal - "Parse ISO" +(test-equal "Parse ISO" #2021-12-30T13:53:33 (string->datetime - "2021-12-30T13:53:33" - "~Y-~m-~dT~H:~M:~S")) + "2021-12-30T13:53:33" + "~Y-~m-~dT~H:~M:~S")) -(test-equal - "Parse ical date-time" +(test-equal "Parse ical date-time" #2021-12-30T13:53:33 (string->datetime - "20211230T135333" - "~Y~m~dT~H~M~S")) + "20211230T135333" + "~Y~m~dT~H~M~S")) -(test-equal - "Parse single hour (padded)" +(test-equal "Parse single hour (padded)" (time hour: 5) (string->time "05" "~H")) -(test-equal - "Parse single hour (non-padded)" +(test-equal "Parse single hour (non-padded)" (time hour: 5) (string->time "5" "~H")) -(test-equal - "Parse month (swedish)" +(test-equal "Parse month (swedish)" (date month: 5) (string->date - "Maj" - "~b" - (make-locale (list LC_CTYPE LC_TIME) "sv_SE.UTF-8"))) + "Maj" + "~b" + (make-locale (list LC_CTYPE LC_TIME) "sv_SE.UTF-8"))) -(test-equal - "Parse month (english)" +(test-equal "Parse month (english)" (date month: 5) (string->date - "May" - "~b" - (make-locale (list LC_CTYPE LC_TIME) "en_US.UTF-8"))) + "May" + "~b" + (make-locale (list LC_CTYPE LC_TIME) "en_US.UTF-8"))) -(test-equal - "AM/PM AM" +(test-equal "AM/PM AM" (time hour: 10) (string->time "10 AM" "~H ~p")) -(test-equal - "AM/PM PM" +(test-equal "AM/PM PM" (time hour: 22) (string->time "10 PM" "~H ~p")) -(test-equal - "AM/PM AM 12" +(test-equal "AM/PM AM 12" (time hour: 0) (string->time "12 AM" "~H ~p")) -(test-equal - "AM/PM PM 12" +(test-equal "AM/PM PM 12" (time hour: 12) (string->time "12 PM" "~H ~p")) -(test-equal - "AM/PM PM (prefix)" +(test-equal "AM/PM PM (prefix)" (time hour: 22) (string->time "PM 10" "~p ~H")) -(test-equal - "Parse complicated 1" +(test-equal "Parse complicated 1" #2021-12-30T10:56:00 (string->datetime - "Dec. 30, 2021, 10:56" - "~b. ~d, ~Y, ~H:~M" - (make-locale LC_TIME "en_US.UTF-8"))) + "Dec. 30, 2021, 10:56" + "~b. ~d, ~Y, ~H:~M" + (make-locale LC_TIME "en_US.UTF-8"))) -(test-equal - "Parse complicated 2" +(test-equal "Parse complicated 2" #2021-12-30T10:56:00 (string->datetime - "Dec. 30, 2021, 10:56 a.m." - "~b. ~d, ~Y, ~H:~M" - (make-locale LC_TIME "en_US.UTF-8"))) + "Dec. 30, 2021, 10:56 a.m." + "~b. ~d, ~Y, ~H:~M" + (make-locale LC_TIME "en_US.UTF-8"))) -(test-equal - "Parse complicated 3" +(test-equal "Parse complicated 3" #2021-12-30T22:56:00 (string->datetime - "Dec. 30, 2021, 10:56 p.m." - "~b. ~d, ~Y, ~H:~M ~p" - (make-locale LC_TIME "en_US.UTF-8"))) + "Dec. 30, 2021, 10:56 p.m." + "~b. ~d, ~Y, ~H:~M ~p" + (make-locale LC_TIME "en_US.UTF-8"))) -(test-equal - "Parse date single digit day" +(test-equal "Parse date single digit day" (date day: 6) (string->date "6" "~d")) -(test-equal - "Parse date single digit day, trailing comma" +(test-equal "Parse date single digit day, trailing comma" (date day: 6) (string->date "6," "~d,")) -(test-equal - "Parse date single digit day, trailing comma + space" +(test-equal "Parse date single digit day, trailing comma + space" (date day: 6) (string->date "6, " "~d, ")) -(define en_US - (make-locale (list LC_CTYPE LC_TIME) "en_US.UTF-8")) - -(define sv_SE - (make-locale (list LC_CTYPE LC_TIME) "sv_SE.UTF-8")) +(define en_US (make-locale (list LC_CTYPE LC_TIME) "en_US.UTF-8")) +(define sv_SE (make-locale (list LC_CTYPE LC_TIME) "sv_SE.UTF-8")) (test-equal "Week day name" "söndag" (week-day-name sun locale: sv_SE)) @@ -372,7 +294,6 @@ #2020-12-31)) - (test-error "Construct invalid date (year)" 'wrong-type-arg (date year: #f)) -- cgit v1.2.3