summary refs log tree commit diff stats
path: root/tests/sets
diff options
context:
space:
mode:
authordef <dennis@felsin9.de>2014-07-15 02:16:12 +0200
committerdef <dennis@felsin9.de>2014-07-15 02:16:12 +0200
commit54d61d2f665d47e361cad6c6c1075a9aca2de4d3 (patch)
treecbe371a88c672e2944f1cff19cba9a5095d07d24 /tests/sets
parent68c3c8ebfafbcd169bceaf2bebed8f7af8dbf124 (diff)
downloadNim-54d61d2f665d47e361cad6c6c1075a9aca2de4d3.tar.gz
Add TSet difference tests
Diffstat (limited to 'tests/sets')
-rw-r--r--tests/sets/tsets3.nim21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/sets/tsets3.nim b/tests/sets/tsets3.nim
index d2b15d72d..f599f8e7d 100644
--- a/tests/sets/tsets3.nim
+++ b/tests/sets/tsets3.nim
@@ -74,8 +74,27 @@ block symmetricDifference:
   assert((s3 -+- s3) == initSet[int]())
   assert((s3 -+- s1) == s1_s3)
 
+block difference:
+  let
+    s1_s2 = difference(s1, s2)
+    s1_s3 = difference(s1, s3)
+    s2_s3 = s2 - s3
+
+  assert s1_s2.len == 2
+  assert s1_s3.len == 5
+  assert s2_s3.len == 3
+
+  for i in s1:
+    assert i in s1_s2 xor i in s2
+    assert i in s1_s3 xor i in s3
+  for i in s2:
+    assert i in s2_s3 xor i in s3
+
+  assert((s2 - s2) == initSet[int]())
+  assert((s1 - s3 - s1) == s1 -+- s3)
+
 block disjoint:
   assert(not disjoint(s1, s2))
   assert disjoint(s1, s3)
   assert(not disjoint(s2, s3))
-  assert(not disjoint(s2, s2))
\ No newline at end of file
+  assert(not disjoint(s2, s2))