Skip to content

Commit

Permalink
Add tests for interleave/interpose (#69)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
jake-jake-jake authored Feb 8, 2025
1 parent 7580dea commit 3075e42
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
35 changes: 35 additions & 0 deletions test/clojure/core_test/interleave.cljc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
(ns clojure.core-test.interleave
(:require [clojure.test :as t :refer [deftest testing is are]]
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))

(when-var-exists
clojure.core/interleave
(deftest test-interleave
(testing "common cases"
(are [in ex] (= (apply interleave in) ex)
[[1 2 3]] [1 2 3]
[[1 2 3] ["a" "b" "c"]] [1 "a" 2 "b" 3 "c"]
[[1 2 3]
["a" "b" "c"]
[\a \b \c]] [1 "a" \a 2 "b" \b 3 "c" \c]
[#{1} #{"a"}] [1 "a"]
[(sorted-set 1 2 3)
(sorted-set "a" "b" "c")] [1 "a" 2 "b" 3 "c"]
[(sorted-map :a 1 :b 2)
["a" "b"]] [[:a 1] "a" [:b 2] "b"]
['(1 2 3) '("a" "b" "c")] [1 "a" 2 "b" 3 "c"]
["123" "abc"] [\1 \a \2 \b \3 \c]
[[:a] [nil]] [:a nil]
[[nil] [:a] [nil]] [nil :a nil])
(testing "Differing sequence sizes, nil inputs"
(are [in ex] (= (apply interleave in) ex)
[[1 2]
["a" "b" "c"]
"1234567"] [1 "a" \1 2 "b" \2]
[[1 2 3 4 5]
["a" "b" "c"]
"12"] [1 "a" \1 2 "b" \2]
['(1 2 3) '("a" "b")] [1 "a" 2 "b"]
[(range) '("a" "b")] [0 "a" 1 "b"]
[(range) nil] []
[nil (range)] [])))))
25 changes: 25 additions & 0 deletions test/clojure/core_test/interpose.cljc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
(ns clojure.core-test.interpose
(:require [clojure.test :as t :refer [deftest testing is are]]
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))

(when-var-exists
clojure.core/interpose
(deftest test-interpose
(testing "common cases"
(is (fn? (interpose "a")))
(are [in ex] (= (apply interpose in) ex)
["a" [1 2 3]] [1 "a" 2 "a" 3]
[#{1} #{"a"}] ["a"]
[(sorted-set 1 2 3)
(sorted-set "a" "b" "c")] ["a" (sorted-set 1 2 3)
"b" (sorted-set 1 2 3)
"c"]
["a"
(sorted-map :a 1 :b 2)] [[:a 1] "a" [:b 2]]
[1 '("a" "b" "c")] ["a" 1 "b" 1 "c"]
["1" "abc"] [\a "1" \b "1" \c]
[[:a] [nil]] [nil])
(testing "nil inputs"
(are [in ex] (= (apply interpose in) ex)
[nil [1 2 3]] [1 nil 2 nil 3]
[1 nil] '())))))

0 comments on commit 3075e42

Please # to comment.