diff options
| author | Tobias Klauser <tklauser@distanz.ch> | 2024-01-23 17:36:06 +0100 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-02-08 22:59:40 +0000 |
| commit | 7c4ee1b1659cec7eb9218fe2fd54e0587ab1dbd9 (patch) | |
| tree | dda41134d7655929d46d5c4199f146aa24e25ff7 /src/sort | |
| parent | 643d816c8b4348850a8a2a622d73256beea104cd (diff) | |
| download | go-7c4ee1b1659cec7eb9218fe2fd54e0587ab1dbd9.tar.xz | |
sort: use math/rand/v2 in tests and benchmarks
This allows to drop the use of deprecated rand.Seed in benchmarks.
Fixes #61142
Change-Id: I628848c0d4a500dc9a361930c393e47c3361a95c
Reviewed-on: https://go-review.googlesource.com/c/go/+/551155
Reviewed-by: Eli Bendersky <eliben@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/sort')
| -rw-r--r-- | src/sort/sort_slices_benchmark_test.go | 16 | ||||
| -rw-r--r-- | src/sort/sort_test.go | 14 |
2 files changed, 15 insertions, 15 deletions
diff --git a/src/sort/sort_slices_benchmark_test.go b/src/sort/sort_slices_benchmark_test.go index 37f3b1bc7e..069536df03 100644 --- a/src/sort/sort_slices_benchmark_test.go +++ b/src/sort/sort_slices_benchmark_test.go @@ -5,7 +5,7 @@ package sort_test import ( - "math/rand" + "math/rand/v2" "slices" . "sort" "strconv" @@ -18,10 +18,10 @@ import ( // package). func makeRandomInts(n int) []int { - rand.Seed(42) + r := rand.New(rand.NewPCG(42, 0)) ints := make([]int, n) for i := 0; i < n; i++ { - ints[i] = rand.Intn(n) + ints[i] = r.IntN(n) } return ints } @@ -92,14 +92,14 @@ func BenchmarkSlicesIsSorted(b *testing.B) { // makeRandomStrings generates n random strings with alphabetic runes of // varying lengths. func makeRandomStrings(n int) []string { - rand.Seed(42) + r := rand.New(rand.NewPCG(42, 0)) var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") ss := make([]string, n) for i := 0; i < n; i++ { var sb stringspkg.Builder - slen := 2 + rand.Intn(50) + slen := 2 + r.IntN(50) for j := 0; j < slen; j++ { - sb.WriteRune(letters[rand.Intn(len(letters))]) + sb.WriteRune(letters[r.IntN(len(letters))]) } ss[i] = sb.String() } @@ -156,10 +156,10 @@ func (s myStructs) Less(i, j int) bool { return s[i].n < s[j].n } func (s myStructs) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func makeRandomStructs(n int) myStructs { - rand.Seed(42) + r := rand.New(rand.NewPCG(42, 0)) structs := make([]*myStruct, n) for i := 0; i < n; i++ { - structs[i] = &myStruct{n: rand.Intn(n)} + structs[i] = &myStruct{n: r.IntN(n)} } return structs } diff --git a/src/sort/sort_test.go b/src/sort/sort_test.go index ccb89873af..ba757a845a 100644 --- a/src/sort/sort_test.go +++ b/src/sort/sort_test.go @@ -9,7 +9,7 @@ import ( "fmt" "internal/testenv" "math" - "math/rand" + "math/rand/v2" "slices" . "sort" "strconv" @@ -110,7 +110,7 @@ func TestSortLarge_Random(t *testing.T) { } data := make([]int, n) for i := 0; i < len(data); i++ { - data[i] = rand.Intn(100) + data[i] = rand.IntN(100) } if IntsAreSorted(data) { t.Fatalf("terrible rand.rand") @@ -198,7 +198,7 @@ func TestNonDeterministicComparison(t *testing.T) { }() td := &nonDeterministicTestingData{ - r: rand.New(rand.NewSource(0)), + r: rand.New(rand.NewPCG(0, 0)), } for i := 0; i < 10; i++ { @@ -442,13 +442,13 @@ func testBentleyMcIlroy(t *testing.T, sort func(Interface), maxswap func(int) in case _Sawtooth: data[i] = i % m case _Rand: - data[i] = rand.Intn(m) + data[i] = rand.IntN(m) case _Stagger: data[i] = (i*m + i) % n case _Plateau: data[i] = min(i, m) case _Shuffle: - if rand.Intn(m) != 0 { + if rand.IntN(m) != 0 { j += 2 data[i] = j } else { @@ -648,7 +648,7 @@ func TestStability(t *testing.T) { // random distribution for i := 0; i < len(data); i++ { - data[i].a = rand.Intn(m) + data[i].a = rand.IntN(m) } if IsSorted(data) { t.Fatalf("terrible rand.rand") @@ -704,7 +704,7 @@ func countOps(t *testing.T, algo func(Interface), name string) { maxswap: 1<<31 - 1, } for i := 0; i < n; i++ { - td.data[i] = rand.Intn(n / 5) + td.data[i] = rand.IntN(n / 5) } algo(&td) t.Logf("%s %8d elements: %11d Swap, %10d Less", name, n, td.nswap, td.ncmp) |
