From f7716ac1a87649cad96242f2d5bf0a987d7f430c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 7 Mar 2022 15:31:00 +0100 Subject: Add new tests. --- tests/test/datetime-compare.scm | 145 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 tests/test/datetime-compare.scm (limited to 'tests/test/datetime-compare.scm') diff --git a/tests/test/datetime-compare.scm b/tests/test/datetime-compare.scm new file mode 100644 index 00000000..0d07c52f --- /dev/null +++ b/tests/test/datetime-compare.scm @@ -0,0 +1,145 @@ +;;; Commentary: +;; Tests that all ordering predicates for dates, +;; times, and datetimes hold. +;;; Code: + +(define-module (test datetime-compare) + :use-module (srfi srfi-64) + :use-module (srfi srfi-88) + :use-module ((datetime) + :select (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)) + +;; In UTC+2 (CEST) the below datetime overflows into midnight the following +;; day. Earlier versions of this program only looked at the time component +(test-assert + "date/-time< TZ overflow" + (date/-time< + #2020-04-05 + (datetime + date: + #2020-04-05 + time: + #22:00:00 + tz: + "UTC"))) + +(test-assert + "date/-time< time-only" + (date/-time< + #00:00:00 + #10:00:00)) + +(test-assert + (not (date/-time< + #2018-11-30T08:10:00 + #2014-04-13T16:00:00))) + + -- cgit v1.2.3