aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrantisek Sodomka <fsodomka@gmail.com>2009-03-24 20:51:15 +0000
committerFrantisek Sodomka <fsodomka@gmail.com>2009-03-24 20:51:15 +0000
commitfc055ef08ff723df9abbf02ec79ff82bbe97ac6d (patch)
tree7c39098afbfc043e2a576636749c41f014274917
parent55dc30a8745b6138d50aae4be49194ab40c52f67 (diff)
test-clojure: test set/intersection
-rw-r--r--src/clojure/contrib/test_clojure/clojure_set.clj49
1 files changed, 46 insertions, 3 deletions
diff --git a/src/clojure/contrib/test_clojure/clojure_set.clj b/src/clojure/contrib/test_clojure/clojure_set.clj
index 7864cff5..33e9f2c3 100644
--- a/src/clojure/contrib/test_clojure/clojure_set.clj
+++ b/src/clojure/contrib/test_clojure/clojure_set.clj
@@ -20,7 +20,7 @@
(set/union #{1}) #{1}
(set/union #{1 2 3}) #{1 2 3}
- ; 2 sets, union with empty set
+ ; 2 sets, at least one is empty
(set/union #{} #{}) #{}
(set/union #{} #{1}) #{1}
(set/union #{} #{1 2 3}) #{1 2 3}
@@ -34,7 +34,7 @@
(set/union #{1 2} #{3}) #{1 2 3}
(set/union #{1 2} #{2 3}) #{1 2 3}
- ; 3 sets, union with empty set(s)
+ ; 3 sets, some are empty
(set/union #{} #{} #{}) #{}
(set/union #{1} #{} #{}) #{1}
(set/union #{} #{1} #{}) #{1}
@@ -61,7 +61,50 @@
))
-; intersection
+(deftest test-intersection
+ ; at least one argument is needed
+ (is (thrown? IllegalArgumentException (set/intersection)))
+
+ (are (= _1 _2)
+ ; identity
+ (set/intersection #{}) #{}
+ (set/intersection #{1}) #{1}
+ (set/intersection #{1 2 3}) #{1 2 3}
+
+ ; 2 sets, at least one is empty
+ (set/intersection #{} #{}) #{}
+ (set/intersection #{} #{1}) #{}
+ (set/intersection #{} #{1 2 3}) #{}
+ (set/intersection #{1} #{}) #{}
+ (set/intersection #{1 2 3} #{}) #{}
+
+ ; 2 sets
+ (set/intersection #{1 2} #{1 2}) #{1 2}
+ (set/intersection #{1 2} #{3 4}) #{}
+ (set/intersection #{1 2} #{1}) #{1}
+ (set/intersection #{1 2} #{2}) #{2}
+ (set/intersection #{1 2 4} #{2 3 4 5}) #{2 4}
+
+ ; 3 sets, some are empty
+ (set/intersection #{} #{} #{}) #{}
+ (set/intersection #{1} #{} #{}) #{}
+ (set/intersection #{1} #{1} #{}) #{}
+ (set/intersection #{1} #{} #{1}) #{}
+ (set/intersection #{1 2} #{2 3} #{}) #{}
+
+ ; 3 sets
+ (set/intersection #{1 2} #{2 3} #{5 2}) #{2}
+ (set/intersection #{1 2 3} #{1 3 4} #{1 3}) #{1 3}
+ (set/intersection #{1 2 3} #{3 4 5} #{8 2 3}) #{3}
+
+ ; different types of sets
+ (set/intersection (hash-set 1 2) (hash-set 2 3)) #{2}
+ (set/intersection (sorted-set 1 2) (sorted-set 2 3)) #{2}
+ (set/intersection
+ (hash-set 1 2) (hash-set 2 3)
+ (sorted-set 1 2) (sorted-set 2 3)) #{2} ))
+
+
; difference
;
; select