aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-06-28 16:22:08 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-07-07 21:14:09 +0200
commit10d6dfd0de4ca42fb6a493bb905c64a4ba2ca9ed (patch)
tree3fbe18e7e63dc23a0c7cbf8aa129d1cb10677645
parentRemove case*. (diff)
downloadcalp-10d6dfd0de4ca42fb6a493bb905c64a4ba2ca9ed.tar.gz
calp-10d6dfd0de4ca42fb6a493bb905c64a4ba2ca9ed.tar.xz
Add time[+-] overflow tests.
-rw-r--r--tests/test/datetime.scm25
1 files changed, 24 insertions, 1 deletions
diff --git a/tests/test/datetime.scm b/tests/test/datetime.scm
index b1501adb..2a5ac141 100644
--- a/tests/test/datetime.scm
+++ b/tests/test/datetime.scm
@@ -760,7 +760,30 @@ date/-time> date/-time>? date/-time>= date/-time>=?
(test-equal "Add" #22:00:00 (time+ #20:00:00 (time hour: 2)))
(test-equal "Remove" #20:00:00 (time- #22:00:00 (time hour: 2)))))
- ))
+ (test-group "Overflowing cases"
+ (test-group "Addition"
+ (test-group "Single overflow"
+ (call-with-values (lambda () (time+ #20:00:00 (time hour: 5)))
+ (lambda (result overflow)
+ (test-equal "Time" (time hour: 1) result)
+ (test-equal "Overflow" 1 overflow))))
+ (test-group "Mulitple overflows"
+ (call-with-values (lambda () (time+ #20:00:00 (time hour: 5) (time hour: 24)))
+ (lambda (result overflow)
+ (test-equal "Time" (time hour: 1) result)
+ (test-equal "Overflow" 2 overflow)))))
+
+ (test-group "Subtraction"
+ (test-group "Single overflow"
+ (call-with-values (lambda () (time- #20:00:00 (time hour: 25)))
+ (lambda (result overflow)
+ (test-equal "Time" (time hour: 19) result)
+ (test-equal "Overflow" 1 overflow))))
+ (test-group "Mulitple overflows"
+ (call-with-values (lambda () (time- (time hour: 4) (time hour: 10) (time hour: 24)))
+ (lambda (result overflow)
+ (test-equal "Time" (time hour: 18) result)
+ (test-equal "Overflow" 2 overflow))))))))
;; TODO
datetime+ datetime-