Skip to content

Commit a32cda7

Browse files
dgryskideadprogram
authored andcommitted
testdata: move map growth test to map.go
1 parent b251ce7 commit a32cda7

File tree

5 files changed

+67
-68
lines changed

5 files changed

+67
-68
lines changed

main_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ func TestBuild(t *testing.T) {
5757
"json.go",
5858
"map.go",
5959
"math.go",
60-
"mapgrowth.go",
6160
"print.go",
6261
"reflect.go",
6362
"slice.go",

testdata/map.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ func main() {
126126
println("tested growing of a map")
127127

128128
floatcmplx()
129+
130+
mapgrow()
129131
}
130132

131133
func floatcmplx() {
@@ -205,3 +207,67 @@ func testBigMap(squares map[int]int, n int) {
205207
}
206208
}
207209
}
210+
211+
func mapgrow() {
212+
m := make(map[int]int)
213+
214+
const (
215+
Delete = 500
216+
N = Delete * 2
217+
)
218+
219+
for i := 0; i < Delete; i++ {
220+
m[i] = i
221+
}
222+
223+
var deleted bool
224+
for k, v := range m {
225+
if k == 0 {
226+
// grow map
227+
for i := Delete; i < N; i++ {
228+
m[i] = i
229+
}
230+
231+
// delete some elements
232+
for i := 0; i < Delete; i++ {
233+
delete(m, i)
234+
}
235+
deleted = true
236+
continue
237+
}
238+
239+
// make sure we never see a deleted element later in our iteration
240+
if deleted && v < Delete {
241+
println("saw deleted element", v)
242+
}
243+
}
244+
245+
if len(m) != N-Delete {
246+
println("bad length post grow/delete", len(m))
247+
}
248+
249+
seen := make([]bool, 500)
250+
251+
var mcount int
252+
for k, v := range m {
253+
if k != v {
254+
println("element mismatch", k, v)
255+
}
256+
if k < Delete {
257+
println("saw deleted element post-grow", k)
258+
}
259+
seen[v-Delete] = true
260+
mcount++
261+
}
262+
263+
for _, v := range seen {
264+
if !v {
265+
println("missing key", v)
266+
}
267+
}
268+
269+
if mcount != N-Delete {
270+
println("bad number of elements post-grow:", mcount)
271+
}
272+
println("done")
273+
}

testdata/map.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,4 @@ tested growing of a map
7979
2
8080
2
8181
2
82+
done

testdata/mapgrowth.go

Lines changed: 0 additions & 66 deletions
This file was deleted.

testdata/mapgrowth.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)