mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-20 14:25:23 +00:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user