From a32cda7a4c8840f7c404cbb8dd06af2ca62a8b97 Mon Sep 17 00:00:00 2001 From: Damian Gryski Date: Wed, 27 Apr 2022 10:31:34 -0700 Subject: [PATCH] testdata: move map growth test to map.go --- main_test.go | 1 - testdata/map.go | 66 ++++++++++++++++++++++++++++++++++++++++++ testdata/map.txt | 1 + testdata/mapgrowth.go | 66 ------------------------------------------ testdata/mapgrowth.txt | 1 - 5 files changed, 67 insertions(+), 68 deletions(-) delete mode 100644 testdata/mapgrowth.go delete mode 100644 testdata/mapgrowth.txt diff --git a/main_test.go b/main_test.go index 01835a2c..3b088ada 100644 --- a/main_test.go +++ b/main_test.go @@ -57,7 +57,6 @@ func TestBuild(t *testing.T) { "json.go", "map.go", "math.go", - "mapgrowth.go", "print.go", "reflect.go", "slice.go", diff --git a/testdata/map.go b/testdata/map.go index 7d9ee6ae..e4eb6da5 100644 --- a/testdata/map.go +++ b/testdata/map.go @@ -126,6 +126,8 @@ func main() { println("tested growing of a map") floatcmplx() + + mapgrow() } func floatcmplx() { @@ -205,3 +207,67 @@ func testBigMap(squares map[int]int, n int) { } } } + +func mapgrow() { + m := make(map[int]int) + + const ( + Delete = 500 + N = Delete * 2 + ) + + for i := 0; i < Delete; i++ { + m[i] = i + } + + var deleted bool + for k, v := range m { + if k == 0 { + // grow map + for i := Delete; i < N; i++ { + m[i] = i + } + + // delete some elements + for i := 0; i < Delete; i++ { + delete(m, i) + } + deleted = true + continue + } + + // make sure we never see a deleted element later in our iteration + if deleted && v < Delete { + println("saw deleted element", v) + } + } + + if len(m) != N-Delete { + println("bad length post grow/delete", len(m)) + } + + seen := make([]bool, 500) + + var mcount int + for k, v := range m { + if k != v { + println("element mismatch", k, v) + } + if k < Delete { + println("saw deleted element post-grow", k) + } + seen[v-Delete] = true + mcount++ + } + + for _, v := range seen { + if !v { + println("missing key", v) + } + } + + if mcount != N-Delete { + println("bad number of elements post-grow:", mcount) + } + println("done") +} diff --git a/testdata/map.txt b/testdata/map.txt index 366f6467..6bf04c80 100644 --- a/testdata/map.txt +++ b/testdata/map.txt @@ -79,3 +79,4 @@ tested growing of a map 2 2 2 +done diff --git a/testdata/mapgrowth.go b/testdata/mapgrowth.go deleted file mode 100644 index 5a37303a..00000000 --- a/testdata/mapgrowth.go +++ /dev/null @@ -1,66 +0,0 @@ -package main - -func main() { - - m := make(map[int]int) - - const ( - Delete = 500 - N = Delete * 2 - ) - - for i := 0; i < Delete; i++ { - m[i] = i - } - - var deleted bool - for k, v := range m { - if k == 0 { - // grow map - for i := Delete; i < N; i++ { - m[i] = i - } - - // delete some elements - for i := 0; i < Delete; i++ { - delete(m, i) - } - deleted = true - continue - } - - // make sure we never see a deleted element later in our iteration - if deleted && v < Delete { - println("saw deleted element", v) - } - } - - if len(m) != N-Delete { - println("bad length post grow/delete", len(m)) - } - - seen := make([]bool, 500) - - var mcount int - for k, v := range m { - if k != v { - println("element mismatch", k, v) - } - if k < Delete { - println("saw deleted element post-grow", k) - } - seen[v-Delete] = true - mcount++ - } - - for _, v := range seen { - if !v { - println("missing key", v) - } - } - - if mcount != N-Delete { - println("bad number of elements post-grow:", mcount) - } - println("done") -} diff --git a/testdata/mapgrowth.txt b/testdata/mapgrowth.txt deleted file mode 100644 index 19f86f49..00000000 --- a/testdata/mapgrowth.txt +++ /dev/null @@ -1 +0,0 @@ -done