Unittests for hash implementations of set.
test suite test hash set
test case test mutable set()
set : hash set[string] • new()
assert setis empty
assert !setis not empty
assert setsize == 0
set2 : hash set[string] • new()
set2add("value")
assert set2size == 1
assert !set2is empty
assert set2is not empty
assert set2contains("value")
assert !set2contains("notfound")
set2add("value")
assert set2size == 1
assert !set2is empty
assert set2is not empty
assert set2contains("value")
assert !set2contains("notfound")
set2add("value2")
assert set2size == 2
assert !set2is empty
assert set2is not empty
assert set2contains("value")
assert set2contains("value2")
assert !set2contains("notfound")
set3 : set2frozen copy()
set2add("value3")
assert set2size == 3
assert set3size == 2
assert !set3is empty
assert set3is not empty
assert set3contains("value")
assert set3contains("value2")
assert set2contains("value3")
assert !set3contains("value3")
removed2 : set2remove("value2")
assert removed2
assert set2size == 2
assert set2is not empty
assert set2contains("value")
assert !set2contains("value2")
assert set2contains("value3")
removed3 : set2remove("value3")
assert removed3
assert set2size == 1
assert set2is not empty
assert set2contains("value")
assert !set2contains("value2")
assert !set2contains("value3")
not removed : set2remove("foo")
assert !not removed
assert set2size == 1
assert set2is not empty
removed : set2remove("value")
assert removed
assert set2is empty
assert !set2is not empty
assert set2size == 0
assert !set2contains("value")
assert !set2contains("value2")
assert !set2contains("value3")
test case test set updates()
set : hash set[string] • new()
for var nonnegative max : 0; max < 68; max += 1
setadd("v" ++ max)
assert setsize == max + 1
for var nonnegative i : 0; i <= max; i += 1
assert setcontains("v" ++ i)
set copy : setfrozen copy()
assert set copysize == max + 1
for var nonnegative i : 0; i <= max; i += 1
assert set copycontains("v" ++ i)
test case test set add all()
set1 : hash set[string] • new()
set1add("a")
set1add("b")
set1add("c")
assert set1size == 3
assert set1contains("a")
assert set1contains("b")
assert set1contains("c")
assert !set1contains("d")
set2 : hash set[string] • new()
set2add("b")
set2add("c")
set2add("d")
assert set2size == 3
assert !set2contains("a")
assert set2contains("b")
assert set2contains("c")
assert set2contains("d")
set1add all(set2)
assert set1size == 4
assert set1contains("a")
assert set1contains("b")
assert set1contains("c")
assert set1contains("d")
assert !set1contains("e")