aboutsummaryrefslogtreecommitdiff
path: root/src/slices/sort_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/slices/sort_test.go')
-rw-r--r--src/slices/sort_test.go28
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) {