|
@@ -503,6 +503,83 @@ func TestStream_Concat(t *testing.T) {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func TestStream_Max(t *testing.T) {
|
|
|
|
+ runCheckedTest(t, func(t *testing.T) {
|
|
|
|
+ tests := []struct {
|
|
|
|
+ name string
|
|
|
|
+ elements []any
|
|
|
|
+ max any
|
|
|
|
+ }{
|
|
|
|
+ {
|
|
|
|
+ name: "no elements with nil",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "no elements",
|
|
|
|
+ elements: []any{},
|
|
|
|
+ max: nil,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "1 element",
|
|
|
|
+ elements: []any{1},
|
|
|
|
+ max: 1,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "multiple elements",
|
|
|
|
+ elements: []any{1, 2, 9, 5, 8},
|
|
|
|
+ max: 9,
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for _, test := range tests {
|
|
|
|
+ t.Run(test.name, func(t *testing.T) {
|
|
|
|
+ val := Just(test.elements...).Max(func(a, b any) bool {
|
|
|
|
+ return a.(int) < b.(int)
|
|
|
|
+ })
|
|
|
|
+ assetEqual(t, test.max, val)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func TestStream_Min(t *testing.T) {
|
|
|
|
+ runCheckedTest(t, func(t *testing.T) {
|
|
|
|
+ tests := []struct {
|
|
|
|
+ name string
|
|
|
|
+ elements []any
|
|
|
|
+ min any
|
|
|
|
+ }{
|
|
|
|
+ {
|
|
|
|
+ name: "no elements with nil",
|
|
|
|
+ min: nil,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "no elements",
|
|
|
|
+ elements: []any{},
|
|
|
|
+ min: nil,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "1 element",
|
|
|
|
+ elements: []any{1},
|
|
|
|
+ min: 1,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: "multiple elements",
|
|
|
|
+ elements: []any{-1, 1, 2, 9, 5, 8},
|
|
|
|
+ min: -1,
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for _, test := range tests {
|
|
|
|
+ t.Run(test.name, func(t *testing.T) {
|
|
|
|
+ val := Just(test.elements...).Min(func(a, b any) bool {
|
|
|
|
+ return a.(int) < b.(int)
|
|
|
|
+ })
|
|
|
|
+ assetEqual(t, test.min, val)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
func BenchmarkParallelMapReduce(b *testing.B) {
|
|
func BenchmarkParallelMapReduce(b *testing.B) {
|
|
b.ReportAllocs()
|
|
b.ReportAllocs()
|
|
|
|
|