nondescript/tests/ndtable.nim

50 lines
1.3 KiB
Nim

import ../src/ndspkg/types/ndtable
import ../src/ndspkg/types/ndstring
import ../src/ndspkg/types/stringutils
proc equal*(l, r: string): bool =
l == r
proc testNdtables* =
var tbl = newNdTable[string, int]()
var val: int
assert tbl.tableSet("hello", 1) == false
assert tbl.tableGet("hello", val) == true
assert val == 1
assert tbl.tableSet("hello", 4) == true
assert tbl.tableGet("hello", val) == true
assert val == 4
assert tbl.tableGet("hellw", val) == false
assert val == 4
assert tbl.tableDelete("hello") == true
val = 0
assert tbl.tableGet("hello", val) == false
assert val == 0
for i in countup(0, 10000):
assert tbl.tableSet($i, i) == false
assert tbl.tableget($i, val) == true
assert val == i
assert tbl.tableSet($i, i * 2) == true
assert tbl.tableget($i, val) == true
assert val == i * 2
assert tbl.tableSet($i, i * 4) == true
assert tbl.tableget($i, val) == true
assert val == i * 4
if i mod 5 == 0:
assert tbl.tableDelete($i) == true
assert tbl.tableDelete($i) == false
for i in countup(0, 10000):
if i mod 5 == 0:
assert tbl.tableGet($i, val) == false
else:
assert tbl.tableGet($i, val) == true
assert val == i * 4
tbl.free()
echo "ndtable test finished"