diff options
Diffstat (limited to 'src/slices/sort_test.go')
-rw-r--r-- | src/slices/sort_test.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/slices/sort_test.go b/src/slices/sort_test.go index 0e9df92b63..af0585935d 100644 --- a/src/slices/sort_test.go +++ b/src/slices/sort_test.go @@ -173,6 +173,15 @@ func TestStability(t *testing.T) { } } +type S struct { + a int + b string +} + +func cmpS(s1, s2 S) int { + return cmp.Compare(s1.a, s2.a) +} + func TestMinMax(t *testing.T) { intCmp := func(a, b int) int { return a - b } @@ -214,6 +223,25 @@ func TestMinMax(t *testing.T) { } }) } + + svals := []S{ + {1, "a"}, + {2, "a"}, + {1, "b"}, + {2, "b"}, + } + + gotMin := MinFunc(svals, cmpS) + wantMin := S{1, "a"} + if gotMin != wantMin { + t.Errorf("MinFunc(%v) = %v, want %v", svals, gotMin, wantMin) + } + + gotMax := MaxFunc(svals, cmpS) + wantMax := S{2, "a"} + if gotMax != wantMax { + t.Errorf("MaxFunc(%v) = %v, want %v", svals, gotMax, wantMax) + } } func TestMinMaxNaNs(t *testing.T) { |