diff options
Diffstat (limited to 'tests/stdlib/tenumutils.nim')
-rw-r--r-- | tests/stdlib/tenumutils.nim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/stdlib/tenumutils.nim b/tests/stdlib/tenumutils.nim index dd5da1974..2662a660d 100644 --- a/tests/stdlib/tenumutils.nim +++ b/tests/stdlib/tenumutils.nim @@ -1,9 +1,11 @@ discard """ + matrix: "--mm:refc; --mm:orc" targets: "c js" """ import std/enumutils from std/sequtils import toSeq +import std/assertions template main = block: # items @@ -12,5 +14,36 @@ template main = doAssert A.toSeq == [a0, a1, a2] doAssert B[float].toSeq == [B[float].b0, B[float].b1] + block: # symbolName + block: + type A2 = enum a20, a21, a22 + doAssert $a21 == "a21" + doAssert a21.symbolName == "a21" + proc `$`(a: A2): string = "foo" + doAssert $a21 == "foo" + doAssert a21.symbolName == "a21" + var a = a22 + doAssert $a == "foo" + doAssert a.symbolName == "a22" + + type B = enum + b0 = (10, "kb0") + b1 = "kb1" + b2 + let b = B.low + doAssert b.symbolName == "b0" + doAssert $b == "kb0" + static: doAssert B.high.symbolName == "b2" + + block: + type + Color = enum + Red = "red", Yellow = "yellow", Blue = "blue" + + var s = Red + doAssert symbolName(s) == "Red" + var x: range[Red..Blue] = Yellow + doAssert symbolName(x) == "Yellow" + static: main() main() |