Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion exercises/concept/card-games/project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
(defproject bird-watcher "0.1.0-SNAPSHOT"
:description "card-games exercise."
:url "https://github.com/exercism/clojure/tree/main/exercises/concept/card-games"
:dependencies [[org.clojure/clojure "1.12.0"]])
:dependencies [[org.clojure/clojure "1.12.0"]]
:test-selectors {:task-1 :task-1
:task-2 :task-2
:task-3 :task-3
:task-4 :task-4
:task-5 :task-5
:task-6 :task-6
:task-7 :task-7
:rounds :rounds
:concat-rounds :concat-rounds
:contains-round? :contains-round?
:card-average :card-average
:approx-average? :approx-average?
:average-even-odd? :average-even-odd?
:maybe-double-last :maybe-double-last})
14 changes: 7 additions & 7 deletions exercises/concept/card-games/test/card_games_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
(:require [clojure.test :refer [deftest is testing]]
card-games))

(deftest rounds-test
(deftest ^{:task-1 true :rounds true} rounds-test
(is (= '((0 1 2) (1 2 3) (10 11 12)
(27 28 29) (99 100 101) (666 667 668))
(map card-games/rounds '(0 1 10 27 99 666)))))

(deftest concat-rounds-test
(deftest ^{:task-2 true :concat-rounds true} concat-rounds-test
(is (= '(() (0 1) (1 2) (1 2)
(27 28 29 35 36)
(1 2 3 4 5 6))
Expand All @@ -16,29 +16,29 @@
((1) (2)) ((27 28 29) (35 36))
((1 2 3) (4 5 6)))))))

(deftest contains-round-test
(deftest ^{:task-3 true :contains-round? true} contains-round-test
(is (= '(false false false true true true)
(map #(apply card-games/contains-round? %)
'(([], 1), ([1, 2, 3], 0), ([27, 28, 29, 35, 36], 30),
([1], 1), ([1, 2, 3], 1), ([27, 28, 29, 35, 36], 29))))))

(deftest card-average-test
(deftest ^{:task-4 true :card-average true} card-average-test
(is (= '(1.0 6.0 2.5 37.0)
(map card-games/card-average '((1) (5 6 7) (1 2 3 4) (1 10 100))))))

(deftest approx-average-test
(deftest ^{:task-5 true :approx-average? true} approx-average-test
(is (= '(false false false false true true true true)
(map card-games/approx-average?
'((0 1 5) (3 6 9 12 150) (1 2 3 5 9)
(2 3 4 7 8) (1 2 3) (2 3 4)
(2 3 4 8 8) (1 2 4 5 8))))))

(deftest average-even-odd-test
(deftest ^{:task-6 true :average-even-odd? true} average-even-odd-test
(is (= '(false false true true true)
(map card-games/average-even-odd?
'((5 6 8) (1 2 3 4) (1 2 3) (5 6 7) (1 3 5 7 9))))))

(deftest maybe-double-last-test
(deftest ^{:task-7 true :maybe-double-last true} maybe-double-last-test
(is (= '((1 2 22) (5 9 22) (5 9 10) (1 2 3))
(map card-games/maybe-double-last
'((1 2 11) (5 9 11) (5 9 10) (1 2 3))))))
Loading