aboutsummaryrefslogtreecommitdiff
path: root/tests/test/datetime-compare.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-03-07 15:31:00 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-03-07 20:29:14 +0100
commitf7716ac1a87649cad96242f2d5bf0a987d7f430c (patch)
treeb4b84951ef468fd644c42e9e0fee535d879f0387 /tests/test/datetime-compare.scm
parentCleanup in (hnh util path). (diff)
downloadcalp-f7716ac1a87649cad96242f2d5bf0a987d7f430c.tar.gz
calp-f7716ac1a87649cad96242f2d5bf0a987d7f430c.tar.xz
Add new tests.
Diffstat (limited to 'tests/test/datetime-compare.scm')
-rw-r--r--tests/test/datetime-compare.scm145
1 files changed, 145 insertions, 0 deletions
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)))
+
+