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
4 changes: 2 additions & 2 deletions exercises/practice/strain/.meta/generator.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
strain))

{{#test_cases.keep}}
(deftest retain_test_{{idx}}
(deftest ^:retain retain_test_{{idx}}
(testing {{context}}
(is (= {{expected}}
(strain/retain {{input.predicate}}
{{input.list}})))))
{{/test_cases.keep}}

{{#test_cases.discard}}
(deftest discard_test_{{idx}}
(deftest ^:discard discard_test_{{idx}}
(testing {{context}}
(is (= {{expected}}
(strain/discard {{input.predicate}}
Expand Down
4 changes: 3 additions & 1 deletion exercises/practice/strain/project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
(defproject strain "0.1.0-SNAPSHOT"
:description "strain exercise."
:url "https://github.com/exercism/clojure/tree/main/exercises/practice/strain"
:dependencies [[org.clojure/clojure "1.12.0"]])
:dependencies [[org.clojure/clojure "1.12.0"]]
:test-selectors {:retain :retain
:discard :discard})
28 changes: 14 additions & 14 deletions exercises/practice/strain/test/strain_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,85 +3,85 @@
[clojure.string :as str]
strain))

(deftest retain_test_1
(deftest ^:retain retain_test_1
(testing "keep on empty vector returns empty vector"
(is (= []
(strain/retain (fn [_] true)
[])))))

(deftest retain_test_2
(deftest ^:retain retain_test_2
(testing "keeps everything"
(is (= [1 3 5]
(strain/retain (fn [_] true)
[1 3 5])))))

(deftest retain_test_3
(deftest ^:retain retain_test_3
(testing "keeps nothing"
(is (= []
(strain/retain (fn [_] false)
[1 3 5])))))

(deftest retain_test_4
(deftest ^:retain retain_test_4
(testing "keeps first and last"
(is (= [1 3]
(strain/retain odd?
[1 2 3])))))

(deftest retain_test_5
(deftest ^:retain retain_test_5
(testing "keeps neither first nor last"
(is (= [2]
(strain/retain even?
[1 2 3])))))

(deftest retain_test_6
(deftest ^:retain retain_test_6
(testing "keeps strings"
(is (= ["zebra" "zombies" "zealot"]
(strain/retain (fn [x] (str/starts-with? x "z"))
["apple" "zebra" "banana" "zombies" "cherimoya" "zealot"])))))

(deftest retain_test_7
(deftest ^:retain retain_test_7
(testing "keeps vectors"
(is (= [[5 5 5] [5 1 2] [1 5 2] [1 2 5]]
(strain/retain (fn [x] (boolean (some #{5} x)))
[[1 2 3] [5 5 5] [5 1 2] [2 1 2] [1 5 2] [2 2 1] [1 2 5]])))))

(deftest discard_test_1
(deftest ^:discard discard_test_1
(testing "discard on empty vector returns empty vector"
(is (= []
(strain/discard (fn [_] true)
[])))))

(deftest discard_test_2
(deftest ^:discard discard_test_2
(testing "discards everything"
(is (= []
(strain/discard (fn [_] true)
[1 3 5])))))

(deftest discard_test_3
(deftest ^:discard discard_test_3
(testing "discards nothing"
(is (= [1 3 5]
(strain/discard (fn [_] false)
[1 3 5])))))

(deftest discard_test_4
(deftest ^:discard discard_test_4
(testing "discards first and last"
(is (= [2]
(strain/discard odd?
[1 2 3])))))

(deftest discard_test_5
(deftest ^:discard discard_test_5
(testing "discards neither first nor last"
(is (= [1 3]
(strain/discard even?
[1 2 3])))))

(deftest discard_test_6
(deftest ^:discard discard_test_6
(testing "discards strings"
(is (= ["apple" "banana" "cherimoya"]
(strain/discard (fn [x] (str/starts-with? x "z"))
["apple" "zebra" "banana" "zombies" "cherimoya" "zealot"])))))

(deftest discard_test_7
(deftest ^:discard discard_test_7
(testing "discards vectors"
(is (= [[1 2 3] [2 1 2] [2 2 1]]
(strain/discard (fn [x] (boolean (some #{5} x)))
Expand Down
Loading