aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/model.lisp18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/model.lisp b/tests/model.lisp
index 7ea41c6..0fd8be4 100644
--- a/tests/model.lisp
+++ b/tests/model.lisp
@@ -25,3 +25,21 @@
(define-test model-test
:depends-on ((cantedraw/tests/macros macro-test)
(cantedraw/tests/functions function-test)))
+
+(define-test (model-test int->suit)
+ :compile-at :execute
+ (fail (int->suit nil))
+ (fail (int->suit "Not a number"))
+ ;; Proving int->suit splits 0-51 perfectly between the 4 suits
+ (let ((mapping (rev-map #'int->suit (range 0 53))))
+ (is eq 5 (length mapping))
+ (let ((spades (alist-val :spades mapping))
+ (hearts (alist-val :hearts mapping))
+ (clubs (alist-val :clubs mapping))
+ (diamonds (alist-val :diamonds mapping))
+ (jokers (alist-val :joker mapping)))
+ (is eq 1 (length jokers))
+ (is eq 1 (->> (list spades hearts clubs diamonds)
+ (mapcar #'length)
+ remove-duplicates
+ length)))))