branch: externals/gnosis
commit a3d379e5aa29ad996bf3a0fc63b33969e31b4f00
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>
tests: Add tests for algorithm date.
---
tests/gnosis-test-algorithm.el | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/tests/gnosis-test-algorithm.el b/tests/gnosis-test-algorithm.el
index 02e09b870a..18d434a776 100644
--- a/tests/gnosis-test-algorithm.el
+++ b/tests/gnosis-test-algorithm.el
@@ -681,4 +681,46 @@
:lethe 3)
'(0.1 0.5 1.7))))
+(ert-deftest gnosis-test-algorithm-date ()
+ "Test gnosis-algorithm-date returns correct format and offsets."
+ ;; No offset returns today
+ (let ((today (gnosis-algorithm-date)))
+ (should (= (length today) 3))
+ (should (integerp (nth 0 today))) ; year
+ (should (integerp (nth 1 today))) ; month
+ (should (integerp (nth 2 today)))) ; day
+ ;; Offset 0 equals no offset
+ (should (equal (gnosis-algorithm-date 0) (gnosis-algorithm-date)))
+ ;; Positive offset is in the future
+ (let ((today (gnosis-algorithm-date))
+ (tomorrow (gnosis-algorithm-date 1)))
+ (should (= (gnosis-algorithm-date-diff today tomorrow) 1)))
+ ;; Negative offset is in the past
+ (let ((yesterday (gnosis-algorithm-date -1))
+ (today (gnosis-algorithm-date)))
+ (should (= (gnosis-algorithm-date-diff yesterday today) 1)))
+ ;; Larger offsets
+ (let ((today (gnosis-algorithm-date))
+ (future (gnosis-algorithm-date 30)))
+ (should (= (gnosis-algorithm-date-diff today future) 30)))
+ ;; Non-integer offset signals error
+ (should-error (gnosis-algorithm-date 1.5))
+ (should-error (gnosis-algorithm-date "3")))
+
+(ert-deftest gnosis-test-algorithm-date-diff ()
+ "Test gnosis-algorithm-date-diff calculations."
+ ;; Same date returns 0
+ (should (= (gnosis-algorithm-date-diff '(2025 1 1) '(2025 1 1)) 0))
+ ;; Simple differences
+ (should (= (gnosis-algorithm-date-diff '(2025 1 1) '(2025 1 2)) 1))
+ (should (= (gnosis-algorithm-date-diff '(2025 1 1) '(2025 1 31)) 30))
+ ;; Cross-month
+ (should (= (gnosis-algorithm-date-diff '(2025 1 31) '(2025 2 1)) 1))
+ ;; Cross-year
+ (should (= (gnosis-algorithm-date-diff '(2024 12 31) '(2025 1 1)) 1))
+ ;; Larger span
+ (should (= (gnosis-algorithm-date-diff '(2025 1 1) '(2025 12 31)) 364))
+ ;; date2 < date signals error
+ (should-error (gnosis-algorithm-date-diff '(2025 1 2) '(2025 1 1))))
+
(ert-run-tests-batch-and-exit)