File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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))))
You can’t perform that action at this time.
0 commit comments