v/vlib/builtin/hashmap/hashmap_test.v

35 lines
607 B
V

module hashmap
import rand
fn test_random_strings() {
mut m := new_hashmap(1000)
for i in 0..1000 {
mut buf := []byte
for j in 0..10 {
buf << byte(rand.next(int(`z`) - int(`a`)) + `a`)
}
s := string(buf)
//println(s)
m.set(s, i)
assert m.get(s) == i
}
m.set('foo', 12)
val := m.get('foo')
assert val == 12
}
fn test_large_hashmap() {
N := 300 * 1000
mut nums := new_hashmap(N)
for i := 0; i < N; i++ {
key := i.str()
nums.set(key, i)
}
println('nr collisions: $nums.nr_collisions')
for i := 0; i < N; i++ {
key := i.str()
assert nums.get(key) == i
}
}