import ../src/ndspkg/types/hashtable import ../src/ndspkg/types/ndstring proc equal*(l, r: string): bool = l == r proc testHashtables* = var tbl = newTable[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 "Hashtable test finished"