Skip to content

Commit 2e8995a

Browse files
committed
add tests for when, when-not, when-let and if-let
1 parent 91f6077 commit 2e8995a

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

tests/test-forms.pxi

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
(ns pixie.tests.test-forms
2+
(require pixie.test :as t))
3+
4+
(t/deftest test-when
5+
(t/assert= (when false :never) nil)
6+
(t/assert= (when nil :never) nil)
7+
(t/assert= (when (= 3 4) :never) nil)
8+
9+
(t/assert= (when true :always) :always)
10+
(t/assert= (when (+ 3 4) :always) :always)
11+
(t/assert= (when {} :always) :always)
12+
13+
(let [c (atom 0)]
14+
(when (= 3 3)
15+
(swap! c inc)
16+
(swap! c inc)
17+
(swap! c inc))
18+
(t/assert= @c 3)))
19+
20+
(t/deftest test-when-not
21+
(t/assert= (when-not false :always) :always)
22+
(t/assert= (when-not nil :always) :always)
23+
(t/assert= (when-not (= 3 4) :always) :always)
24+
25+
(t/assert= (when-not true :never) nil)
26+
(t/assert= (when-not (+ 3 4) :never) nil)
27+
(t/assert= (when-not {} :never) nil)
28+
29+
(let [c (atom 0)]
30+
(when-not (= 3 4)
31+
(swap! c inc)
32+
(swap! c inc)
33+
(swap! c inc))
34+
(t/assert= @c 3)))
35+
36+
(t/deftest test-when-let
37+
(t/assert= (when-let [v false] :never) nil)
38+
(t/assert= (when-let [v nil] :never) nil)
39+
(t/assert= (when-let [v (= 3 4)] :never) nil)
40+
41+
(t/assert= (when-let [v true] :always) :always)
42+
(t/assert= (when-let [v (+ 3 4)] :always) :always)
43+
(t/assert= (when-let [v {}] :always) :always)
44+
45+
(let [c (atom 0)]
46+
(when-let [v @c]
47+
(swap! c inc)
48+
(swap! c inc)
49+
(swap! c inc))
50+
(t/assert= @c 3)))
51+
52+
(t/deftest test-if-let
53+
(t/assert= (if-let [v false] :yay :nay) :nay)
54+
(t/assert= (if-let [v false] :yay) nil)
55+
(t/assert= (if-let [v nil] :yay :nay) :nay)
56+
(t/assert= (if-let [v nil] :yay) nil)
57+
(t/assert= (if-let [v (= 3 4)] :yay :nay) :nay)
58+
(t/assert= (if-let [v (= 3 4)] :yay) nil)
59+
60+
(t/assert= (if-let [v true] :yay :nay) :yay)
61+
(t/assert= (if-let [v true] :yay) :yay)
62+
(t/assset= (if-let [v (+ 3 4)] v :nay) 7)
63+
(t/assset= (if-let [v (+ 3 4)] v) 7)
64+
(t/assert= (if-let [v {}] v :nay) {})
65+
(t/assert= (if-let [v {}] v) {}))

0 commit comments

Comments
 (0)