Table fixes. fixes #4901

* added `==` for OrderedTable, CountTable and the *Ref types
 * added missing documentation to all `==` procs
 * fixed clear() for OrderedTables, which did not work because `var`
   does not work well with `|`
 * added tests
This commit is contained in:
Felix Krause
2016-10-23 11:21:52 +02:00
parent 5cb50364eb
commit 73b0bb52bb
2 changed files with 70 additions and 4 deletions

View File

@@ -95,9 +95,24 @@ block orderedTableTest1:
for key, val in mpairs(t): val = 99
for val in mvalues(t): assert val == 99
block orderedTableTest2:
var
s = initOrderedTable[string, int]()
t = initOrderedTable[string, int]()
assert s == t
for key, val in items(data): t[key] = val
assert s != t
for key, val in items(sorteddata): s[key] = val
assert s != t
t.clear()
assert s != t
for key, val in items(sorteddata): t[key] = val
assert s == t
block countTableTest1:
var s = data.toTable
var t = initCountTable[string]()
for k in s.keys: t.inc(k)
for k in t.keys: assert t[k] == 1
t.inc("90", 3)
@@ -115,6 +130,24 @@ block countTableTest1:
else: break
inc i
block countTableTest2:
var
s = initCountTable[int]()
t = initCountTable[int]()
assert s == t
s.inc(1)
assert s != t
t.inc(2)
assert s != t
t.inc(1)
assert s != t
s.inc(2)
assert s == t
s.inc(1)
assert s != t
t.inc(1)
assert s == t
block mpairsTableTest1:
var t = initTable[string, int]()
t["a"] = 1