MCPcopy Create free account
hub / github.com/cockroachdb/swiss / TestBasic

Function TestBasic

map_test.go:212–285  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

210}
211
212func TestBasic(t *testing.T) {
213 test := func(t *testing.T, m *Map[int, int]) {
214 const count = 100
215
216 e := make(map[int]int)
217 require.EqualValues(t, 0, m.Len())
218 require.EqualValues(t, 0, m.dir.At(0).growthLeft)
219
220 // Non-existent.
221 for i := 0; i < count; i++ {
222 _, ok := m.Get(i)
223 require.False(t, ok)
224 }
225
226 // Insert.
227 for i := 0; i < count; i++ {
228 m.Put(i, i+count)
229 e[i] = i + count
230 v, ok := m.Get(i)
231 require.True(t, ok)
232 require.EqualValues(t, i+count, v)
233 require.EqualValues(t, i+1, m.Len())
234 require.Equal(t, e, m.toBuiltinMap())
235 }
236
237 // Update.
238 for i := 0; i < count; i++ {
239 m.Put(i, i+2*count)
240 e[i] = i + 2*count
241 v, ok := m.Get(i)
242 require.True(t, ok)
243 require.EqualValues(t, i+2*count, v)
244 require.EqualValues(t, count, m.Len())
245 require.Equal(t, e, m.toBuiltinMap())
246 }
247
248 // Delete.
249 for i := 0; i < count; i++ {
250 m.Delete(i)
251 delete(e, i)
252 require.EqualValues(t, count-i-1, m.Len())
253 _, ok := m.Get(i)
254 require.False(t, ok)
255 require.Equal(t, e, m.toBuiltinMap())
256 }
257 }
258
259 t.Run("normal", func(t *testing.T) {
260 test(t, New[int, int](0))
261 })
262
263 t.Run("degenerate", func(t *testing.T) {
264 testDegenerate := func(t *testing.T, h uintptr) {
265 m := New[int, int](0,
266 WithHash[int, int](func(key *int, seed uintptr) uintptr {
267 return h
268 }),
269 WithMaxBucketCapacity[int, int](8))

Callers

nothing calls this directly

Calls 7

NewFunction · 0.85
LenMethod · 0.80
PutMethod · 0.80
toBuiltinMapMethod · 0.80
DeleteMethod · 0.80
AtMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…