Skip to content

Commit 3075e42

Browse files
Add tests for interleave/interpose (#69)
* Add tests for interleave * Add tests for interpose * Remove reader macro exception cases * Macro for function? test * Remove cljs branch * Wrap require in reader conditional * Cleaner * Re-include broken reader macros * Remove bad input tests
1 parent 7580dea commit 3075e42

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
(ns clojure.core-test.interleave
2+
(:require [clojure.test :as t :refer [deftest testing is are]]
3+
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
4+
5+
(when-var-exists
6+
clojure.core/interleave
7+
(deftest test-interleave
8+
(testing "common cases"
9+
(are [in ex] (= (apply interleave in) ex)
10+
[[1 2 3]] [1 2 3]
11+
[[1 2 3] ["a" "b" "c"]] [1 "a" 2 "b" 3 "c"]
12+
[[1 2 3]
13+
["a" "b" "c"]
14+
[\a \b \c]] [1 "a" \a 2 "b" \b 3 "c" \c]
15+
[#{1} #{"a"}] [1 "a"]
16+
[(sorted-set 1 2 3)
17+
(sorted-set "a" "b" "c")] [1 "a" 2 "b" 3 "c"]
18+
[(sorted-map :a 1 :b 2)
19+
["a" "b"]] [[:a 1] "a" [:b 2] "b"]
20+
['(1 2 3) '("a" "b" "c")] [1 "a" 2 "b" 3 "c"]
21+
["123" "abc"] [\1 \a \2 \b \3 \c]
22+
[[:a] [nil]] [:a nil]
23+
[[nil] [:a] [nil]] [nil :a nil])
24+
(testing "Differing sequence sizes, nil inputs"
25+
(are [in ex] (= (apply interleave in) ex)
26+
[[1 2]
27+
["a" "b" "c"]
28+
"1234567"] [1 "a" \1 2 "b" \2]
29+
[[1 2 3 4 5]
30+
["a" "b" "c"]
31+
"12"] [1 "a" \1 2 "b" \2]
32+
['(1 2 3) '("a" "b")] [1 "a" 2 "b"]
33+
[(range) '("a" "b")] [0 "a" 1 "b"]
34+
[(range) nil] []
35+
[nil (range)] [])))))

test/clojure/core_test/interpose.cljc

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
(ns clojure.core-test.interpose
2+
(:require [clojure.test :as t :refer [deftest testing is are]]
3+
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
4+
5+
(when-var-exists
6+
clojure.core/interpose
7+
(deftest test-interpose
8+
(testing "common cases"
9+
(is (fn? (interpose "a")))
10+
(are [in ex] (= (apply interpose in) ex)
11+
["a" [1 2 3]] [1 "a" 2 "a" 3]
12+
[#{1} #{"a"}] ["a"]
13+
[(sorted-set 1 2 3)
14+
(sorted-set "a" "b" "c")] ["a" (sorted-set 1 2 3)
15+
"b" (sorted-set 1 2 3)
16+
"c"]
17+
["a"
18+
(sorted-map :a 1 :b 2)] [[:a 1] "a" [:b 2]]
19+
[1 '("a" "b" "c")] ["a" 1 "b" 1 "c"]
20+
["1" "abc"] [\a "1" \b "1" \c]
21+
[[:a] [nil]] [nil])
22+
(testing "nil inputs"
23+
(are [in ex] (= (apply interpose in) ex)
24+
[nil [1 2 3]] [1 nil 2 nil 3]
25+
[1 nil] '())))))

0 commit comments

Comments
 (0)