diff options
Diffstat (limited to 'src/sort/sort_test.go')
-rw-r--r-- | src/sort/sort_test.go | 23 |
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 { |