aboutsummaryrefslogtreecommitdiff
path: root/tests/model.lisp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-24 23:52:21 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-24 23:52:21 +0000
commit191ef054015143a73e214a49f07b01ec7b2ea75b (patch)
tree6c8e5b73b1e84951c5343767ce111a492501b540 /tests/model.lisp
parent7d7987cdc218bf1e2bff269c46e503fad0da45d8 (diff)
downloadcantedraw-191ef054015143a73e214a49f07b01ec7b2ea75b.tar.gz
cantedraw-191ef054015143a73e214a49f07b01ec7b2ea75b.tar.bz2
cantedraw-191ef054015143a73e214a49f07b01ec7b2ea75b.zip
Implement test for card->int
Diffstat (limited to 'tests/model.lisp')
-rw-r--r--tests/model.lisp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/model.lisp b/tests/model.lisp
index 6ffdff9..e5f416d 100644
--- a/tests/model.lisp
+++ b/tests/model.lisp
@@ -132,3 +132,27 @@
:do (true (every (lambda (c) (eq :joker (card-suit c))) inp)
"Are jokers.")))
+(define-test (model-test card->int)
+ :depends-on ((cantedraw/tests/functions range))
+ :compile-at :execute
+ (fail (card->int nil))
+ (fail (card->int 1738))
+ (fail (card->int "not a card"))
+ (fail (card->int :still-not-a-card))
+ (let ((ranks (append (range 2 11) (list :jack :queen :king :ace))))
+ (let ((res (->> (loop :for suit :in (list :diamonds :clubs :hearts :spades)
+ :nconc
+ (mapcar (lambda (rank) (make-card :rank rank :suit suit)) ranks))
+ (mapcar #'card->int))))
+ (true (every #'integerp res) "Every mapped element is an integer.")
+ (true (every #'(lambda (x) (<= 0 x)) res) "Every mapped element is positive")
+ (is eq (length res) (length (remove-duplicates res))
+ "All mapped integers are unique."))
+ (let ((res (->> (loop :for rank :in ranks
+ :collect (make-card :rank rank :suit :joker))
+ (mapcar #'card->int))))
+ (true (every #'integerp res) "Every mapped element is an integer.")
+ (true (every (lambda (n) (or (< n 0) (> n 51))) res)
+ "Every mapped element is outside of [0,51]")
+ (is eq (length res) (length (remove-duplicates res))
+ "All mapped integers are unique."))))