summaryrefslogtreecommitdiff
path: root/test/clojure/test_clojure
diff options
context:
space:
mode:
Diffstat (limited to 'test/clojure/test_clojure')
-rw-r--r--test/clojure/test_clojure/data_structures.clj30
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))))
+