diff options
Diffstat (limited to 'test/clojure/test_clojure')
-rw-r--r-- | test/clojure/test_clojure/data_structures.clj | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/clojure/test_clojure/data_structures.clj b/test/clojure/test_clojure/data_structures.clj index ee4fd41a..0ea8deca 100644 --- a/test/clojure/test_clojure/data_structures.clj +++ b/test/clojure/test_clojure/data_structures.clj @@ -517,6 +517,35 @@ {} {:a 1 :b 2} #{} #{1 2} )) +(deftest test-get + (let [m {:a 1, :b 2, :c {:d 3, :e 4}, :f nil, :g false, nil {:h 5}}] + (is (thrown? IllegalArgumentException (get-in {:a 1} 5))) + (are [x y] (= x y) + (get m :a) 1 + (get m :e) nil + (get m :e 0) 0 + (get m :b 0) 2 + (get m :f 0) nil + + (get-in m [:c :e]) 4 + (get-in m '(:c :e)) 4 + (get-in m [:c :x]) nil + (get-in m [:f]) nil + (get-in m [:g]) false + (get-in m [:h]) nil + (get-in m []) m + (get-in m nil) m + + (get-in m [:c :e] 0) 4 + (get-in m '(:c :e) 0) 4 + (get-in m [:c :x] 0) 0 + (get-in m [:b] 0) 2 + (get-in m [:f] 0) nil + (get-in m [:g] 0) false + (get-in m [:h] 0) 0 + (get-in m [:x :y] {:y 1}) {:y 1} + (get-in m [] 0) m + (get-in m nil 0) m))) ;; *** Sets *** @@ -798,3 +827,4 @@ (range 1 6) (-> EMPTY (into (range 7)) pop)))) + |