aboutsummaryrefslogtreecommitdiff
path: root/src/sort/sort_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/sort/sort_test.go')
-rw-r--r--src/sort/sort_test.go23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/sort/sort_test.go b/src/sort/sort_test.go
index 862bba2d44..ccb89873af 100644
--- a/src/sort/sort_test.go
+++ b/src/sort/sort_test.go
@@ -5,10 +5,12 @@
package sort_test
import (
+ "cmp"
"fmt"
"internal/testenv"
"math"
"math/rand"
+ "slices"
. "sort"
"strconv"
stringspkg "strings"
@@ -39,6 +41,20 @@ func TestSortFloat64Slice(t *testing.T) {
}
}
+// Compare Sort with slices.Sort sorting a float64 slice containing NaNs.
+func TestSortFloat64sCompareSlicesSort(t *testing.T) {
+ slice1 := slices.Clone(float64s[:])
+ slice2 := slices.Clone(float64s[:])
+
+ Sort(Float64Slice(slice1))
+ slices.Sort(slice2)
+
+ // Compare for equality using cmp.Compare, which considers NaNs equal.
+ if !slices.EqualFunc(slice1, slice1, func(a, b float64) bool { return cmp.Compare(a, b) == 0 }) {
+ t.Errorf("mismatch between Sort and slices.Sort: got %v, want %v", slice1, slice2)
+ }
+}
+
func TestSortStringSlice(t *testing.T) {
data := strings
a := StringSlice(data[0:])
@@ -399,13 +415,6 @@ func (d *testingData) Swap(i, j int) {
d.data[i], d.data[j] = d.data[j], d.data[i]
}
-func min(a, b int) int {
- if a < b {
- return a
- }
- return b
-}
-
func lg(n int) int {
i := 0
for 1<<uint(i) < n {