MCPcopy
hub / github.com/cilium/cilium / TestInsertOrderedMap_Quick

Function TestInsertOrderedMap_Quick

pkg/container/insert_ordered_map_test.go:42–118  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

40}
41
42func TestInsertOrderedMap_Quick(t *testing.T) {
43 err := quick.Check(func(keys []int) bool {
44 if len(keys) < 1 {
45 // We need some keys to test with.
46 return true
47 }
48
49 m := NewInsertOrderedMap[int, int]()
50 for _, k := range keys {
51 m.Insert(k, k)
52 }
53
54 // Update the keys in random order. This does not affect the
55 // iteration order.
56 randomized := slices.Clone(keys)
57 rand.Shuffle(len(randomized), func(i, j int) {
58 randomized[i], randomized[j] = randomized[j], randomized[i]
59 })
60 for _, k := range randomized {
61 m.Insert(k, k*2)
62 }
63 keysCopy := slices.Clone(keys)
64 numUnique := 0
65 for k, v := range m.All() {
66 numUnique++
67 expected := keys[0]
68 keys = keys[1:]
69 if k != expected || v != expected*2 {
70 t.Logf("Unexpected order or value: key=%v (expected %v), value=%v (expected %v)",
71 k, expected, v, expected*2)
72 return false
73 }
74
75 v, found := m.Get(k)
76 if !found {
77 t.Logf("%v not found", k)
78 return false
79 }
80 if v != k*2 {
81 t.Logf("value %v not the expected %v", v, k*2)
82 }
83 }
84 if m.Len() != numUnique {
85 t.Logf("Len() returned %d, expected %d", m.Len(), numUnique)
86 return false
87 }
88 keys = keysCopy
89
90 // Delete a random key. Ordering should not be affected and all keys are found.
91 if !m.Delete(randomized[0]) {
92 t.Logf("Delete did not return true")
93 }
94 for i, k := range keys {
95 if k == randomized[0] {
96 keys = slices.Delete(keys, i, i+1)
97 break
98 }
99 }

Callers

nothing calls this directly

Calls 10

NewInsertOrderedMapFunction · 0.85
KeysMethod · 0.80
CheckMethod · 0.65
InsertMethod · 0.65
AllMethod · 0.65
GetMethod · 0.65
LenMethod · 0.65
DeleteMethod · 0.65
CloneMethod · 0.45
LogfMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…