Skip to content

Commit b7882f5

Browse files
authored
Test cons (#780)
This closes #203.
1 parent 6bcd5d9 commit b7882f5

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

test/clojure/core_test/cons.cljc

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
(ns clojure.core-test.cons
2+
(:require [clojure.test :refer [deftest testing is are]]
3+
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
4+
5+
(when-var-exists cons
6+
(deftest test-cons
7+
8+
(testing "finite seqs"
9+
(are [x seq expected] (= expected (cons x seq))
10+
1 [2 3] [1 2 3]
11+
1 '(2 3) [1 2 3]
12+
\1 "23" [\1 \2 \3]
13+
1 (sorted-set 1 2 3) [1 1 2 3]
14+
1 {:2 2 :3 3} [1 [:2 2] [:3 3]]
15+
[0 1] '(2 3) [[0 1] 2 3]))
16+
17+
(testing "infinite seqs"
18+
(is (= -1 (first (cons -1 (range))))))
19+
20+
(testing "nil and empty"
21+
(are [x seq expected] (= expected (cons x seq))
22+
nil nil [nil]
23+
1 nil [1]
24+
1 "" [1]
25+
1 '() [1]
26+
1 #{} [1]
27+
1 {} [1]
28+
1 [] [1]))
29+
30+
(testing "bad shape"
31+
(are [seq] (thrown? #?(:cljs js/Error :default Exception) (cons 1 seq))
32+
:k
33+
42
34+
3.14
35+
true
36+
false
37+
cons))))

0 commit comments

Comments
 (0)