Skip to content

Commit 2ccd794

Browse files
authored
Add tests for vector (#846)
1 parent 45e1c79 commit 2ccd794

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

test/clojure/core_test/vector.cljc

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
(ns clojure.core-test.vector
2+
(:require [clojure.test :as t :refer [deftest is testing]]
3+
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
4+
5+
(when-var-exists vector
6+
(deftest test-vector
7+
(testing "empty vector"
8+
(is (= [] (vector)))
9+
(is (vector? (vector))))
10+
11+
(testing "single element"
12+
(is (= [1] (vector 1)))
13+
(is (= [:a] (vector :a)))
14+
(is (= ["string"] (vector "string")))
15+
(is (= [nil] (vector nil)))
16+
(is (= [\a] (vector \a)))
17+
(is (= [true] (vector true)))
18+
(is (= [false] (vector false))))
19+
20+
(testing "multiple elements"
21+
(is (= [1 2 3] (vector 1 2 3)))
22+
(is (= [:a :b :c] (vector :a :b :c)))
23+
(is (= ["zz" "a" "42"] (vector "zz" "a" "42"))))
24+
25+
(testing "multiple data structures"
26+
(is (= [[1 2] [3 4]] (vector [1 2] [3 4])))
27+
(is (= ['(1 2) '(3 4)] (vector '(1 2) '(3 4))))
28+
(is (= [{:a 1} {:b 2}] (vector {:a 1} {:b 2})))
29+
(is (= [#{1 2} #{3 4}] (vector #{1 2} #{3 4})))
30+
(is (= [[]] (vector [])))
31+
(is (= [{}] (vector {})))
32+
(is (= [#{}] (vector #{}))))
33+
34+
(testing "preserves duplicates"
35+
(is (= [1 1 1] (vector 1 1 1)))
36+
(is (= [:a :a] (vector :a :a)))
37+
(is (= [nil nil nil] (vector nil nil nil))))
38+
39+
(testing "large vectors"
40+
(is (= (into [] (range 100)) (apply vector (range 100)))))
41+
42+
(testing "different types together"
43+
(is (= [1 2.5 3N 4M] (vector 1 2.5 3N 4M)))
44+
(is (= [1 :a "b" \c true nil '() [] #{} {}]
45+
(vector 1 :a "b" \c true nil '() [] #{} {}))))
46+
47+
(testing "variadic args"
48+
(is (= [1 2 3 4 5 6 7 8 9 10] (vector 1 2 3 4 5 6 7 8 9 10)))
49+
(is (= [1 2 3 4 5 6 nil] (vector 1 2 3 4 5 6 nil))))))
50+

0 commit comments

Comments
 (0)