-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenmap_test.go
61 lines (49 loc) · 1.05 KB
/
genmap_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package genmap_test
import (
"github.com/iofic/genmap"
"testing"
)
func TestMap(t *testing.T) {
const (
_ int = iota
val1
val2
)
m := genmap.New[string]()
ik := genmap.NewKey[int, string]("int key")
genmap.Store[int, string](m, ik, val1)
v, ok := genmap.Load[int, string](m, ik)
if v != val1 || !ok {
t.Errorf("Load() = %v %t, want %v %t", v, ok, val1, true)
}
genmap.Store[int, string](m, ik, val2)
v, ok = genmap.Load[int, string](m, ik)
if v != val2 || !ok {
t.Errorf("Load() = %v %t, want %v %t", v, ok, val2, true)
}
genmap.Delete[int, string](m, ik)
v, ok = genmap.Load[int, string](m, ik)
if v != 0 || ok {
t.Errorf("Load() = %v %t, want %v %t", v, ok, 0, false)
}
}
func FuzzMap(f *testing.F) {
keys := []struct {
key string
value int
}{
{
key: "a",
value: 1,
},
}
m := genmap.NewStringMap()
for _, k := range keys {
f.Add(k.key, k.value)
}
f.Fuzz(func(t *testing.T, key string, value int) {
ik := genmap.NewStringKey[int](key)
genmap.StoreS(m, ik, value)
_, _ = genmap.LoadS(m, ik)
})
}