diff options
Diffstat (limited to 'tests/stdlib/tcritbits.nim')
-rw-r--r-- | tests/stdlib/tcritbits.nim | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/stdlib/tcritbits.nim b/tests/stdlib/tcritbits.nim new file mode 100644 index 000000000..51cbb7bf2 --- /dev/null +++ b/tests/stdlib/tcritbits.nim @@ -0,0 +1,61 @@ +import sequtils, critbits + + +var r: CritBitTree[void] +r.incl "abc" +r.incl "xyz" +r.incl "def" +r.incl "definition" +r.incl "prefix" +r.incl "foo" + +doAssert r.contains"def" + +r.excl "def" +assert r.missingOrExcl("foo") == false +assert "foo" notin toSeq(r.items) + +assert r.missingOrExcl("foo") == true + +assert toSeq(r.items) == @["abc", "definition", "prefix", "xyz"] + +assert toSeq(r.itemsWithPrefix("de")) == @["definition"] +var c = CritBitTree[int]() + +c.inc("a") +assert c["a"] == 1 + +c.inc("a", 4) +assert c["a"] == 5 + +c.inc("a", -5) +assert c["a"] == 0 + +c.inc("b", 2) +assert c["b"] == 2 + +c.inc("c", 3) +assert c["c"] == 3 + +c.inc("a", 1) +assert c["a"] == 1 + +var cf = CritBitTree[float]() + +cf.incl("a", 1.0) +assert cf["a"] == 1.0 + +cf.incl("b", 2.0) +assert cf["b"] == 2.0 + +cf.incl("c", 3.0) +assert cf["c"] == 3.0 + +assert cf.len == 3 +cf.excl("c") +assert cf.len == 2 + +var cb: CritBitTree[string] +cb.incl("help", "help") +for k in cb.keysWithPrefix("helpp"): + doAssert false, "there is no prefix helpp" |