func TestHashTrieMap(t *testing.T) { … } func TestHashTrieMapBadHash(t *testing.T) { … } func TestHashTrieMapTruncHash(t *testing.T) { … } func testHashTrieMap(t *testing.T, newMap func() *HashTrieMap[string, int]) { … } func testAll[K, V comparable](t *testing.T, m *HashTrieMap[K, V], testData map[K]V, yield func(K, V) bool) { … } func expectPresent[K, V comparable](t *testing.T, key K, want V) func(got V, ok bool) { … } func expectMissing[K, V comparable](t *testing.T, key K, want V) func(got V, ok bool) { … } func expectLoaded[K, V comparable](t *testing.T, key K, want V) func(got V, loaded bool) { … } func expectStored[K, V comparable](t *testing.T, key K, want V) func(got V, loaded bool) { … } func expectDeleted[K, V comparable](t *testing.T, key K, old V) func(deleted bool) { … } func expectNotDeleted[K, V comparable](t *testing.T, key K, old V) func(deleted bool) { … } func testDataMap(data []string) map[string]int { … } var testDataSmall … var testData … var testDataLarge … func init() { … } func dumpMap[K, V comparable](ht *HashTrieMap[K, V]) { … } func dumpNode[K, V comparable](ht *HashTrieMap[K, V], n *node[K, V], depth int) { … }