summary refs log tree commit diff stats
path: root/tests/stdlib
diff options
context:
space:
mode:
authorJason Beetham <beefers331@gmail.com>2021-02-18 18:33:28 -0700
committerGitHub <noreply@github.com>2021-02-18 17:33:28 -0800
commit35ded020748641379f68adf68c23d1f0aa167c2a (patch)
treea21af43dd37152fcb57ec33eb7e720af4c0d997c /tests/stdlib
parent148e5ba2a5e51f19c51e2c11150e6986c04990ba (diff)
downloadNim-35ded020748641379f68adf68c23d1f0aa167c2a.tar.gz
Add setutils.complement, setutils.fullSet (#17066)
Diffstat (limited to 'tests/stdlib')
-rw-r--r--tests/stdlib/tsetutils.nim34
1 files changed, 27 insertions, 7 deletions
diff --git a/tests/stdlib/tsetutils.nim b/tests/stdlib/tsetutils.nim
index d99807f92..faf427210 100644
--- a/tests/stdlib/tsetutils.nim
+++ b/tests/stdlib/tsetutils.nim
@@ -1,14 +1,34 @@
 discard """
   targets: "c js"
+  disabled: "bsd" # pending #17093
 """
 import std/setutils
-
+type 
+  Colors = enum
+    red, green = 5, blue = 10
+  Bar = enum
+    bar0 = -1, bar1, bar2
 template main =
-  doAssert "abcbb".toSet == {'a', 'b', 'c'}
-  doAssert toSet([10u8, 12, 13]) == {10u8, 12, 13}
-  doAssert toSet(0u16..30) == {0u16..30}
-  type A = distinct char
-  doAssert [A('x')].toSet == {A('x')}
-  
+  block: # toSet
+    doAssert "abcbb".toSet == {'a', 'b', 'c'}
+    doAssert toSet([10u8, 12, 13]) == {10u8, 12, 13}
+    doAssert toSet(0u16..30) == {0u16..30}
+    type A = distinct char
+    doAssert [A('x')].toSet == {A('x')}
+
+  block: # fullSet
+    doAssert fullSet(Colors) == {red, green, blue}
+    doAssert fullSet(char) == {0.chr..255.chr}
+    doAssert fullSet(Bar) == {bar0, bar1, bar2}
+    doAssert fullSet(bool) == {true, false}
+
+  block: # complement
+    doAssert {red, blue}.complement == {green}
+    doAssert (complement {red, green, blue}).card == 0
+    doAssert (complement {false}) == {true}
+    doAssert {bar0}.complement == {bar1, bar2}
+    doAssert {range[0..10](0), 1, 2, 3}.complement == {range[0..10](4), 5, 6, 7, 8, 9, 10}
+    doAssert {'0'..'9'}.complement == {0.char..255.char} - {'0'..'9'}
+
 main()
 static: main()
\ No newline at end of file