@@ -6,87 +6,13 @@ package maps
6
6
7
7
import (
8
8
"math"
9
- "slices"
10
- "sort"
11
9
"strconv"
12
10
"testing"
13
- "unsafe"
14
11
)
15
12
16
13
var m1 = map [int ]int {1 : 2 , 2 : 4 , 4 : 8 , 8 : 16 }
17
14
var m2 = map [int ]string {1 : "2" , 2 : "4" , 4 : "8" , 8 : "16" }
18
15
19
- func keysForBenchmarking [M ~ map [K ]V , K comparable , V any ](m M , s []K ) {
20
- keys (m , unsafe .Pointer (& s ))
21
- }
22
-
23
- func TestKeys (t * testing.T ) {
24
- want := []int {1 , 2 , 4 , 8 }
25
-
26
- got1 := Keys (m1 )
27
- sort .Ints (got1 )
28
- if ! slices .Equal (got1 , want ) {
29
- t .Errorf ("Keys(%v) = %v, want %v" , m1 , got1 , want )
30
- }
31
-
32
- got2 := Keys (m2 )
33
- sort .Ints (got2 )
34
- if ! slices .Equal (got2 , want ) {
35
- t .Errorf ("Keys(%v) = %v, want %v" , m2 , got2 , want )
36
- }
37
-
38
- // test for oldbucket code path
39
- // We grow from 128 to 256 buckets at size 832 (6.5 * 128).
40
- // Then we have to evacuate 128 buckets, which means we'll be done evacuation at 832+128=960 elements inserted.
41
- // so 840 is a good number to test for oldbucket code path.
42
- var want3 []int
43
- var m = make (map [int ]int )
44
- for i := 0 ; i < 840 ; i ++ {
45
- want3 = append (want3 , i )
46
- m [i ] = i * i
47
- }
48
-
49
- got3 := Keys (m )
50
- sort .Ints (got3 )
51
- if ! slices .Equal (got3 , want3 ) {
52
- t .Errorf ("Keys(%v) = %v, want %v" , m , got3 , want3 )
53
- }
54
- }
55
-
56
- func valuesForBenchmarking [M ~ map [K ]V , K comparable , V any ](m M , s []V ) {
57
- values (m , unsafe .Pointer (& s ))
58
- }
59
-
60
- func TestValues (t * testing.T ) {
61
- got1 := Values (m1 )
62
- want1 := []int {2 , 4 , 8 , 16 }
63
- sort .Ints (got1 )
64
- if ! slices .Equal (got1 , want1 ) {
65
- t .Errorf ("Values(%v) = %v, want %v" , m1 , got1 , want1 )
66
- }
67
-
68
- got2 := Values (m2 )
69
- want2 := []string {"16" , "2" , "4" , "8" }
70
- sort .Strings (got2 )
71
- if ! slices .Equal (got2 , want2 ) {
72
- t .Errorf ("Values(%v) = %v, want %v" , m2 , got2 , want2 )
73
- }
74
-
75
- //test for oldbucket code path
76
- var want3 []int
77
- var m = make (map [int ]int )
78
- for i := 0 ; i < 840 ; i ++ {
79
- want3 = append (want3 , i * i )
80
- m [i ] = i * i
81
- }
82
-
83
- got3 := Values (m )
84
- sort .Ints (got3 )
85
- if ! slices .Equal (got3 , want3 ) {
86
- t .Errorf ("Values(%v) = %v, want %v" , m , got3 , want3 )
87
- }
88
- }
89
-
90
16
func TestEqual (t * testing.T ) {
91
17
if ! Equal (m1 , m1 ) {
92
18
t .Errorf ("Equal(%v, %v) = false, want true" , m1 , m1 )
@@ -256,29 +182,3 @@ func TestCloneWithMapAssign(t *testing.T) {
256
182
}
257
183
}
258
184
}
259
-
260
- func BenchmarkKeys (b * testing.B ) {
261
- m := make (map [int ]int , 1000000 )
262
- for i := 0 ; i < 1000000 ; i ++ {
263
- m [i ] = i
264
- }
265
- b .ResetTimer ()
266
-
267
- slice := make ([]int , 0 , len (m ))
268
- for i := 0 ; i < b .N ; i ++ {
269
- keysForBenchmarking (m , slice )
270
- }
271
- }
272
-
273
- func BenchmarkValues (b * testing.B ) {
274
- m := make (map [int ]int , 1000000 )
275
- for i := 0 ; i < 1000000 ; i ++ {
276
- m [i ] = i
277
- }
278
- b .ResetTimer ()
279
-
280
- slice := make ([]int , 0 , len (m ))
281
- for i := 0 ; i < b .N ; i ++ {
282
- valuesForBenchmarking (m , slice )
283
- }
284
- }
0 commit comments