mirror of
https://github.com/samber/lo.git
synced 2026-04-22 15:37:14 +08:00
💄
This commit is contained in:
+44
-44
@@ -1040,7 +1040,7 @@ func ExampleFindErr() {
|
|||||||
|
|
||||||
result, err = FindErr([]string{"a", "b", "c"}, func(i string) (bool, error) {
|
result, err = FindErr([]string{"a", "b", "c"}, func(i string) (bool, error) {
|
||||||
if i == "b" {
|
if i == "b" {
|
||||||
return false, fmt.Errorf("b is not allowed")
|
return false, errors.New("b is not allowed")
|
||||||
}
|
}
|
||||||
return i == "b", nil
|
return i == "b", nil
|
||||||
})
|
})
|
||||||
@@ -1251,7 +1251,7 @@ func ExampleFindDuplicatesByErr() {
|
|||||||
|
|
||||||
result, err := FindDuplicatesByErr(users, func(user User) (int, error) {
|
result, err := FindDuplicatesByErr(users, func(user User) (int, error) {
|
||||||
if user.Name == "Charlie" {
|
if user.Name == "Charlie" {
|
||||||
return 0, fmt.Errorf("charlie is not allowed")
|
return 0, errors.New("charlie is not allowed")
|
||||||
}
|
}
|
||||||
return user.Age, nil
|
return user.Age, nil
|
||||||
})
|
})
|
||||||
@@ -1330,7 +1330,7 @@ func ExampleMinByErr() {
|
|||||||
|
|
||||||
result, err := MinByErr(users, func(a, b User) (bool, error) {
|
result, err := MinByErr(users, func(a, b User) (bool, error) {
|
||||||
if a.Name == "Bob" {
|
if a.Name == "Bob" {
|
||||||
return false, fmt.Errorf("bob is not allowed")
|
return false, errors.New("bob is not allowed")
|
||||||
}
|
}
|
||||||
return a.Age < b.Age, nil
|
return a.Age < b.Age, nil
|
||||||
})
|
})
|
||||||
@@ -1373,7 +1373,7 @@ func ExampleMinIndexByErr() {
|
|||||||
|
|
||||||
result, _, err := MinIndexByErr(users, func(a, b User) (bool, error) {
|
result, _, err := MinIndexByErr(users, func(a, b User) (bool, error) {
|
||||||
if a.Name == "Bob" {
|
if a.Name == "Bob" {
|
||||||
return false, fmt.Errorf("bob is not allowed")
|
return false, errors.New("bob is not allowed")
|
||||||
}
|
}
|
||||||
return a.Age < b.Age, nil
|
return a.Age < b.Age, nil
|
||||||
})
|
})
|
||||||
@@ -1429,7 +1429,7 @@ func ExampleEarliestByErr() {
|
|||||||
|
|
||||||
_, err := EarliestByErr(events, func(event Event) (time.Time, error) {
|
_, err := EarliestByErr(events, func(event Event) (time.Time, error) {
|
||||||
if event.Name == "Event B" {
|
if event.Name == "Event B" {
|
||||||
return time.Time{}, fmt.Errorf("event b is not allowed")
|
return time.Time{}, errors.New("event b is not allowed")
|
||||||
}
|
}
|
||||||
return event.Time, nil
|
return event.Time, nil
|
||||||
})
|
})
|
||||||
@@ -1508,7 +1508,7 @@ func ExampleMaxByErr() {
|
|||||||
|
|
||||||
_, err := MaxByErr(users, func(a, b User) (bool, error) {
|
_, err := MaxByErr(users, func(a, b User) (bool, error) {
|
||||||
if b.Name == "Bob" {
|
if b.Name == "Bob" {
|
||||||
return false, fmt.Errorf("bob is not allowed")
|
return false, errors.New("bob is not allowed")
|
||||||
}
|
}
|
||||||
return a.Age > b.Age, nil
|
return a.Age > b.Age, nil
|
||||||
})
|
})
|
||||||
@@ -1551,7 +1551,7 @@ func ExampleMaxIndexByErr() {
|
|||||||
|
|
||||||
_, _, err := MaxIndexByErr(users, func(a, b User) (bool, error) {
|
_, _, err := MaxIndexByErr(users, func(a, b User) (bool, error) {
|
||||||
if b.Name == "Bob" {
|
if b.Name == "Bob" {
|
||||||
return false, fmt.Errorf("bob is not allowed")
|
return false, errors.New("bob is not allowed")
|
||||||
}
|
}
|
||||||
return a.Age > b.Age, nil
|
return a.Age > b.Age, nil
|
||||||
})
|
})
|
||||||
@@ -1602,7 +1602,7 @@ func ExampleLatestByErr() {
|
|||||||
now := time.Now()
|
now := time.Now()
|
||||||
events := []Event{
|
events := []Event{
|
||||||
{Name: "Event A", Time: now.Add(time.Hour), Err: nil},
|
{Name: "Event A", Time: now.Add(time.Hour), Err: nil},
|
||||||
{Name: "Event B", Time: now, Err: fmt.Errorf("event b error")},
|
{Name: "Event B", Time: now, Err: errors.New("event b error")},
|
||||||
{Name: "Event C", Time: now.Add(-time.Hour), Err: nil},
|
{Name: "Event C", Time: now.Add(-time.Hour), Err: nil},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1835,7 +1835,7 @@ func ExampleWithoutByErr() {
|
|||||||
// extract function to get the user ID
|
// extract function to get the user ID
|
||||||
extractID := func(user User) (int, error) {
|
extractID := func(user User) (int, error) {
|
||||||
if user.ID == 2 {
|
if user.ID == 2 {
|
||||||
return 0, fmt.Errorf("user 2 extraction failed")
|
return 0, errors.New("user 2 extraction failed")
|
||||||
}
|
}
|
||||||
return user.ID, nil
|
return user.ID, nil
|
||||||
}
|
}
|
||||||
@@ -1917,7 +1917,7 @@ func ExamplePickByErr() {
|
|||||||
|
|
||||||
_, err := PickByErr(kv, func(key string, value int) (bool, error) {
|
_, err := PickByErr(kv, func(key string, value int) (bool, error) {
|
||||||
if key == "bar" {
|
if key == "bar" {
|
||||||
return false, fmt.Errorf("key bar is not allowed")
|
return false, errors.New("key bar is not allowed")
|
||||||
}
|
}
|
||||||
return value%2 == 1, nil
|
return value%2 == 1, nil
|
||||||
})
|
})
|
||||||
@@ -1960,7 +1960,7 @@ func ExampleOmitByErr() {
|
|||||||
|
|
||||||
_, err := OmitByErr(kv, func(key string, value int) (bool, error) {
|
_, err := OmitByErr(kv, func(key string, value int) (bool, error) {
|
||||||
if key == "bar" {
|
if key == "bar" {
|
||||||
return false, fmt.Errorf("key bar is not allowed")
|
return false, errors.New("key bar is not allowed")
|
||||||
}
|
}
|
||||||
return value%2 == 1, nil
|
return value%2 == 1, nil
|
||||||
})
|
})
|
||||||
@@ -2074,7 +2074,7 @@ func ExampleMapKeysErr() {
|
|||||||
|
|
||||||
_, err := MapKeysErr(kv, func(_, k int) (string, error) {
|
_, err := MapKeysErr(kv, func(_, k int) (string, error) {
|
||||||
if k == 3 {
|
if k == 3 {
|
||||||
return "", fmt.Errorf("key 3 is not allowed")
|
return "", errors.New("key 3 is not allowed")
|
||||||
}
|
}
|
||||||
return strconv.FormatInt(int64(k), 10), nil
|
return strconv.FormatInt(int64(k), 10), nil
|
||||||
})
|
})
|
||||||
@@ -2099,7 +2099,7 @@ func ExampleMapValuesErr() {
|
|||||||
|
|
||||||
_, err := MapValuesErr(kv, func(v, _ int) (string, error) {
|
_, err := MapValuesErr(kv, func(v, _ int) (string, error) {
|
||||||
if v == 3 {
|
if v == 3 {
|
||||||
return "", fmt.Errorf("value 3 is not allowed")
|
return "", errors.New("value 3 is not allowed")
|
||||||
}
|
}
|
||||||
return strconv.FormatInt(int64(v), 10), nil
|
return strconv.FormatInt(int64(v), 10), nil
|
||||||
})
|
})
|
||||||
@@ -2124,7 +2124,7 @@ func ExampleMapEntriesErr() {
|
|||||||
|
|
||||||
_, err := MapEntriesErr(kv, func(k string, v int) (int, string, error) {
|
_, err := MapEntriesErr(kv, func(k string, v int) (int, string, error) {
|
||||||
if k == "foo" {
|
if k == "foo" {
|
||||||
return 0, "", fmt.Errorf("entry foo is not allowed")
|
return 0, "", errors.New("entry foo is not allowed")
|
||||||
}
|
}
|
||||||
return v, k, nil
|
return v, k, nil
|
||||||
})
|
})
|
||||||
@@ -2150,7 +2150,7 @@ func ExampleMapToSliceErr() {
|
|||||||
|
|
||||||
_, err := MapToSliceErr(kv, func(k int, v int64) (string, error) {
|
_, err := MapToSliceErr(kv, func(k int, v int64) (string, error) {
|
||||||
if k == 3 {
|
if k == 3 {
|
||||||
return "", fmt.Errorf("key 3 is not allowed")
|
return "", errors.New("key 3 is not allowed")
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%d_%d", k, v), nil
|
return fmt.Sprintf("%d_%d", k, v), nil
|
||||||
})
|
})
|
||||||
@@ -2176,7 +2176,7 @@ func ExampleFilterMapToSliceErr() {
|
|||||||
|
|
||||||
_, err := FilterMapToSliceErr(kv, func(k int, v int64) (string, bool, error) {
|
_, err := FilterMapToSliceErr(kv, func(k int, v int64) (string, bool, error) {
|
||||||
if k == 3 {
|
if k == 3 {
|
||||||
return "", false, fmt.Errorf("key 3 is not allowed")
|
return "", false, errors.New("key 3 is not allowed")
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%d_%d", k, v), k%2 == 0, nil
|
return fmt.Sprintf("%d_%d", k, v), k%2 == 0, nil
|
||||||
})
|
})
|
||||||
@@ -2212,7 +2212,7 @@ func ExampleFilterKeysErr() {
|
|||||||
|
|
||||||
result, err := FilterKeysErr(kv, func(k int, v string) (bool, error) {
|
result, err := FilterKeysErr(kv, func(k int, v string) (bool, error) {
|
||||||
if k == 3 {
|
if k == 3 {
|
||||||
return false, fmt.Errorf("key 3 not allowed")
|
return false, errors.New("key 3 not allowed")
|
||||||
}
|
}
|
||||||
return v == "foo", nil
|
return v == "foo", nil
|
||||||
})
|
})
|
||||||
@@ -2232,7 +2232,7 @@ func ExampleFilterValuesErr() {
|
|||||||
|
|
||||||
result, err := FilterValuesErr(kv, func(k int, v string) (bool, error) {
|
result, err := FilterValuesErr(kv, func(k int, v string) (bool, error) {
|
||||||
if k == 3 {
|
if k == 3 {
|
||||||
return false, fmt.Errorf("key 3 not allowed")
|
return false, errors.New("key 3 not allowed")
|
||||||
}
|
}
|
||||||
return v == "foo", nil
|
return v == "foo", nil
|
||||||
})
|
})
|
||||||
@@ -2315,7 +2315,7 @@ func ExampleSumByErr() {
|
|||||||
|
|
||||||
_, err := SumByErr(list, func(item string) (int, error) {
|
_, err := SumByErr(list, func(item string) (int, error) {
|
||||||
if item == "bar" {
|
if item == "bar" {
|
||||||
return 0, fmt.Errorf("bar is not allowed")
|
return 0, errors.New("bar is not allowed")
|
||||||
}
|
}
|
||||||
return len(item), nil
|
return len(item), nil
|
||||||
})
|
})
|
||||||
@@ -2349,7 +2349,7 @@ func ExampleProductByErr() {
|
|||||||
|
|
||||||
_, err := ProductByErr(list, func(item string) (int, error) {
|
_, err := ProductByErr(list, func(item string) (int, error) {
|
||||||
if item == "bar" {
|
if item == "bar" {
|
||||||
return 0, fmt.Errorf("bar is not allowed")
|
return 0, errors.New("bar is not allowed")
|
||||||
}
|
}
|
||||||
return len(item), nil
|
return len(item), nil
|
||||||
})
|
})
|
||||||
@@ -2383,7 +2383,7 @@ func ExampleMeanByErr() {
|
|||||||
|
|
||||||
_, err := MeanByErr(list, func(item string) (int, error) {
|
_, err := MeanByErr(list, func(item string) (int, error) {
|
||||||
if item == "bar" {
|
if item == "bar" {
|
||||||
return 0, fmt.Errorf("bar is not allowed")
|
return 0, errors.New("bar is not allowed")
|
||||||
}
|
}
|
||||||
return len(item), nil
|
return len(item), nil
|
||||||
})
|
})
|
||||||
@@ -2408,7 +2408,7 @@ func ExampleFilterErr() {
|
|||||||
|
|
||||||
result, err := FilterErr(list, func(nbr int64, index int) (bool, error) {
|
result, err := FilterErr(list, func(nbr int64, index int) (bool, error) {
|
||||||
if nbr == 3 {
|
if nbr == 3 {
|
||||||
return false, fmt.Errorf("number 3 is not allowed")
|
return false, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return nbr%2 == 0, nil
|
return nbr%2 == 0, nil
|
||||||
})
|
})
|
||||||
@@ -2439,7 +2439,7 @@ func ExampleMapErr() {
|
|||||||
|
|
||||||
_, err := MapErr(list, func(nbr int64, index int) (string, error) {
|
_, err := MapErr(list, func(nbr int64, index int) (string, error) {
|
||||||
if nbr == 3 {
|
if nbr == 3 {
|
||||||
return "", fmt.Errorf("number 3 is not allowed")
|
return "", errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return strconv.FormatInt(nbr*2, 10), nil
|
return strconv.FormatInt(nbr*2, 10), nil
|
||||||
})
|
})
|
||||||
@@ -2495,7 +2495,7 @@ func ExampleFlatMapErr() {
|
|||||||
|
|
||||||
_, err := FlatMapErr(list, func(nbr int64, index int) ([]string, error) {
|
_, err := FlatMapErr(list, func(nbr int64, index int) ([]string, error) {
|
||||||
if nbr == 3 {
|
if nbr == 3 {
|
||||||
return nil, fmt.Errorf("number 3 is not allowed")
|
return nil, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return []string{
|
return []string{
|
||||||
strconv.FormatInt(nbr, 10), // base 10
|
strconv.FormatInt(nbr, 10), // base 10
|
||||||
@@ -2523,7 +2523,7 @@ func ExampleReduceErr() {
|
|||||||
|
|
||||||
_, err := ReduceErr(list, func(agg, item int64, index int) (int64, error) {
|
_, err := ReduceErr(list, func(agg, item int64, index int) (int64, error) {
|
||||||
if item == 3 {
|
if item == 3 {
|
||||||
return 0, fmt.Errorf("number 3 is not allowed")
|
return 0, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return agg + item, nil
|
return agg + item, nil
|
||||||
}, 0)
|
}, 0)
|
||||||
@@ -2548,7 +2548,7 @@ func ExampleReduceRightErr() {
|
|||||||
|
|
||||||
_, err := ReduceRightErr(list, func(agg, item []int, index int) ([]int, error) {
|
_, err := ReduceRightErr(list, func(agg, item []int, index int) ([]int, error) {
|
||||||
if index == 0 {
|
if index == 0 {
|
||||||
return nil, fmt.Errorf("index 0 is not allowed")
|
return nil, errors.New("index 0 is not allowed")
|
||||||
}
|
}
|
||||||
return append(agg, item...), nil
|
return append(agg, item...), nil
|
||||||
}, []int{})
|
}, []int{})
|
||||||
@@ -2621,7 +2621,7 @@ func ExampleUniqByErr() {
|
|||||||
|
|
||||||
_, err := UniqByErr(list, func(i int) (int, error) {
|
_, err := UniqByErr(list, func(i int) (int, error) {
|
||||||
if i == 3 {
|
if i == 3 {
|
||||||
return 0, fmt.Errorf("number 3 is not allowed")
|
return 0, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return i % 3, nil
|
return i % 3, nil
|
||||||
})
|
})
|
||||||
@@ -2651,7 +2651,7 @@ func ExampleGroupByErr() {
|
|||||||
|
|
||||||
_, err := GroupByErr(list, func(i int) (int, error) {
|
_, err := GroupByErr(list, func(i int) (int, error) {
|
||||||
if i == 3 {
|
if i == 3 {
|
||||||
return 0, fmt.Errorf("number 3 is not allowed")
|
return 0, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return i % 3, nil
|
return i % 3, nil
|
||||||
})
|
})
|
||||||
@@ -2681,7 +2681,7 @@ func ExampleGroupByMapErr() {
|
|||||||
|
|
||||||
_, err := GroupByMapErr(list, func(i int) (int, int, error) {
|
_, err := GroupByMapErr(list, func(i int) (int, int, error) {
|
||||||
if i == 3 {
|
if i == 3 {
|
||||||
return 0, 0, fmt.Errorf("number 3 is not allowed")
|
return 0, 0, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return i % 3, i * 2, nil
|
return i % 3, i * 2, nil
|
||||||
})
|
})
|
||||||
@@ -2765,7 +2765,7 @@ func ExamplePartitionByErr() {
|
|||||||
|
|
||||||
_, err := PartitionByErr(list, func(x int) (string, error) {
|
_, err := PartitionByErr(list, func(x int) (string, error) {
|
||||||
if x == 0 {
|
if x == 0 {
|
||||||
return "", fmt.Errorf("zero is not allowed")
|
return "", errors.New("zero is not allowed")
|
||||||
}
|
}
|
||||||
if x < 0 {
|
if x < 0 {
|
||||||
return "negative", nil
|
return "negative", nil
|
||||||
@@ -2856,7 +2856,7 @@ func ExampleRepeatBy() {
|
|||||||
func ExampleRepeatByErr() {
|
func ExampleRepeatByErr() {
|
||||||
result, err := RepeatByErr(5, func(i int) (string, error) {
|
result, err := RepeatByErr(5, func(i int) (string, error) {
|
||||||
if i == 3 {
|
if i == 3 {
|
||||||
return "", fmt.Errorf("index 3 is not allowed")
|
return "", errors.New("index 3 is not allowed")
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("item-%d", i), nil
|
return fmt.Sprintf("item-%d", i), nil
|
||||||
})
|
})
|
||||||
@@ -2881,7 +2881,7 @@ func ExampleKeyByErr() {
|
|||||||
|
|
||||||
_, err := KeyByErr(list, func(str string) (int, error) {
|
_, err := KeyByErr(list, func(str string) (int, error) {
|
||||||
if str == "aa" {
|
if str == "aa" {
|
||||||
return 0, fmt.Errorf("aa is not allowed")
|
return 0, errors.New("aa is not allowed")
|
||||||
}
|
}
|
||||||
return len(str), nil
|
return len(str), nil
|
||||||
})
|
})
|
||||||
@@ -3026,7 +3026,7 @@ func ExampleRejectErr() {
|
|||||||
|
|
||||||
result, err := RejectErr(list, func(x int64, index int) (bool, error) {
|
result, err := RejectErr(list, func(x int64, index int) (bool, error) {
|
||||||
if x == 3 {
|
if x == 3 {
|
||||||
return false, fmt.Errorf("number 3 is not allowed")
|
return false, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return x%2 == 0, nil
|
return x%2 == 0, nil
|
||||||
})
|
})
|
||||||
@@ -3066,7 +3066,7 @@ func ExampleCountByErr() {
|
|||||||
|
|
||||||
_, err := CountByErr(list, func(i int) (bool, error) {
|
_, err := CountByErr(list, func(i int) (bool, error) {
|
||||||
if i == 3 {
|
if i == 3 {
|
||||||
return false, fmt.Errorf("number 3 is not allowed")
|
return false, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return i < 4, nil
|
return i < 4, nil
|
||||||
})
|
})
|
||||||
@@ -3631,7 +3631,7 @@ func ExampleUnzip9() {
|
|||||||
func ExampleUnzipByErr2() {
|
func ExampleUnzipByErr2() {
|
||||||
a, b, err := UnzipByErr2([]string{"hello", "error", "world"}, func(str string) (string, int, error) {
|
a, b, err := UnzipByErr2([]string{"hello", "error", "world"}, func(str string) (string, int, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, fmt.Errorf("error string not allowed")
|
return "", 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), nil
|
return str, len(str), nil
|
||||||
})
|
})
|
||||||
@@ -3642,7 +3642,7 @@ func ExampleUnzipByErr2() {
|
|||||||
func ExampleUnzipByErr3() {
|
func ExampleUnzipByErr3() {
|
||||||
a, b, c, err := UnzipByErr3([]string{"hello", "error", "world"}, func(str string) (string, int, bool, error) {
|
a, b, c, err := UnzipByErr3([]string{"hello", "error", "world"}, func(str string) (string, int, bool, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, fmt.Errorf("error string not allowed")
|
return "", 0, false, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, nil
|
return str, len(str), len(str) > 4, nil
|
||||||
})
|
})
|
||||||
@@ -3653,7 +3653,7 @@ func ExampleUnzipByErr3() {
|
|||||||
func ExampleUnzipByErr4() {
|
func ExampleUnzipByErr4() {
|
||||||
a, b, c, d, err := UnzipByErr4([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, error) {
|
a, b, c, d, err := UnzipByErr4([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, 0, fmt.Errorf("error string not allowed")
|
return "", 0, false, 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, float32(len(str)), nil
|
return str, len(str), len(str) > 4, float32(len(str)), nil
|
||||||
})
|
})
|
||||||
@@ -3664,7 +3664,7 @@ func ExampleUnzipByErr4() {
|
|||||||
func ExampleUnzipByErr5() {
|
func ExampleUnzipByErr5() {
|
||||||
a, b, c, d, e, err := UnzipByErr5([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, error) {
|
a, b, c, d, e, err := UnzipByErr5([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, 0, 0, fmt.Errorf("error string not allowed")
|
return "", 0, false, 0, 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), nil
|
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), nil
|
||||||
})
|
})
|
||||||
@@ -3675,7 +3675,7 @@ func ExampleUnzipByErr5() {
|
|||||||
func ExampleUnzipByErr6() {
|
func ExampleUnzipByErr6() {
|
||||||
a, b, c, d, e, f, err := UnzipByErr6([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, error) {
|
a, b, c, d, e, f, err := UnzipByErr6([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, 0, 0, 0, fmt.Errorf("error string not allowed")
|
return "", 0, false, 0, 0, 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), nil
|
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), nil
|
||||||
})
|
})
|
||||||
@@ -3686,7 +3686,7 @@ func ExampleUnzipByErr6() {
|
|||||||
func ExampleUnzipByErr7() {
|
func ExampleUnzipByErr7() {
|
||||||
a, b, c, d, e, f, g, err := UnzipByErr7([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, int16, error) {
|
a, b, c, d, e, f, g, err := UnzipByErr7([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, int16, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, 0, 0, 0, 0, fmt.Errorf("error string not allowed")
|
return "", 0, false, 0, 0, 0, 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), int16(len(str)), nil
|
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), int16(len(str)), nil
|
||||||
})
|
})
|
||||||
@@ -3697,7 +3697,7 @@ func ExampleUnzipByErr7() {
|
|||||||
func ExampleUnzipByErr8() {
|
func ExampleUnzipByErr8() {
|
||||||
a, b, c, d, e, f, g, h, err := UnzipByErr8([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, int16, int32, error) {
|
a, b, c, d, e, f, g, h, err := UnzipByErr8([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, int16, int32, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, 0, 0, 0, 0, 0, fmt.Errorf("error string not allowed")
|
return "", 0, false, 0, 0, 0, 0, 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), int16(len(str)), int32(len(str)), nil
|
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), int16(len(str)), int32(len(str)), nil
|
||||||
})
|
})
|
||||||
@@ -3708,7 +3708,7 @@ func ExampleUnzipByErr8() {
|
|||||||
func ExampleUnzipByErr9() {
|
func ExampleUnzipByErr9() {
|
||||||
a, b, c, d, e, f, g, h, i, err := UnzipByErr9([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, int16, int32, int64, error) {
|
a, b, c, d, e, f, g, h, i, err := UnzipByErr9([]string{"hello", "error", "world"}, func(str string) (string, int, bool, float32, float64, int8, int16, int32, int64, error) {
|
||||||
if str == "error" {
|
if str == "error" {
|
||||||
return "", 0, false, 0, 0, 0, 0, 0, 0, fmt.Errorf("error string not allowed")
|
return "", 0, false, 0, 0, 0, 0, 0, 0, errors.New("error string not allowed")
|
||||||
}
|
}
|
||||||
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), int16(len(str)), int32(len(str)), int64(len(str)), nil
|
return str, len(str), len(str) > 4, float32(len(str)), float64(len(str)), int8(len(str)), int16(len(str)), int32(len(str)), int64(len(str)), nil
|
||||||
})
|
})
|
||||||
@@ -4103,7 +4103,7 @@ func ExampleCrossJoinBy9() {
|
|||||||
func ExampleCrossJoinByErr2() {
|
func ExampleCrossJoinByErr2() {
|
||||||
result, err := CrossJoinByErr2([]string{"a", "b"}, []int{1, 2}, func(a string, b int) (string, error) {
|
result, err := CrossJoinByErr2([]string{"a", "b"}, []int{1, 2}, func(a string, b int) (string, error) {
|
||||||
if a == "b" {
|
if a == "b" {
|
||||||
return "", fmt.Errorf("b not allowed")
|
return "", errors.New("b not allowed")
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%v-%v", a, b), nil
|
return fmt.Sprintf("%v-%v", a, b), nil
|
||||||
})
|
})
|
||||||
@@ -4121,7 +4121,7 @@ func ExampleCrossJoinByErr2() {
|
|||||||
func ExampleZipByErr2() {
|
func ExampleZipByErr2() {
|
||||||
result, err := ZipByErr2([]string{"a", "b", "c"}, []int{1, 2, 3}, func(a string, b int) (string, error) {
|
result, err := ZipByErr2([]string{"a", "b", "c"}, []int{1, 2, 3}, func(a string, b int) (string, error) {
|
||||||
if a == "b" {
|
if a == "b" {
|
||||||
return "", fmt.Errorf("b is not allowed")
|
return "", errors.New("b is not allowed")
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%v-%v", a, b), nil
|
return fmt.Sprintf("%v-%v", a, b), nil
|
||||||
})
|
})
|
||||||
|
|||||||
+14
-14
@@ -1239,11 +1239,11 @@ func TestFilterKeysErr(t *testing.T) {
|
|||||||
is := assert.New(t)
|
is := assert.New(t)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
input map[int]string
|
input map[int]string
|
||||||
predicate func(int, string) (bool, error)
|
predicate func(int, string) (bool, error)
|
||||||
want []int
|
want []int
|
||||||
wantErr string
|
wantErr string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "filter by value",
|
name: "filter by value",
|
||||||
@@ -1254,8 +1254,8 @@ func TestFilterKeysErr(t *testing.T) {
|
|||||||
want: []int{1},
|
want: []int{1},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty map",
|
name: "empty map",
|
||||||
input: map[int]string{},
|
input: map[int]string{},
|
||||||
predicate: func(k int, v string) (bool, error) {
|
predicate: func(k int, v string) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
@@ -1282,7 +1282,7 @@ func TestFilterKeysErr(t *testing.T) {
|
|||||||
input: map[int]string{1: "foo", 2: "bar", 3: "baz"},
|
input: map[int]string{1: "foo", 2: "bar", 3: "baz"},
|
||||||
predicate: func(k int, v string) (bool, error) {
|
predicate: func(k int, v string) (bool, error) {
|
||||||
if k == 2 {
|
if k == 2 {
|
||||||
return false, fmt.Errorf("key 2 not allowed")
|
return false, errors.New("key 2 not allowed")
|
||||||
}
|
}
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
@@ -1314,11 +1314,11 @@ func TestFilterValuesErr(t *testing.T) {
|
|||||||
is := assert.New(t)
|
is := assert.New(t)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
input map[int]string
|
input map[int]string
|
||||||
predicate func(int, string) (bool, error)
|
predicate func(int, string) (bool, error)
|
||||||
want []string
|
want []string
|
||||||
wantErr string
|
wantErr string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "filter by value",
|
name: "filter by value",
|
||||||
@@ -1329,8 +1329,8 @@ func TestFilterValuesErr(t *testing.T) {
|
|||||||
want: []string{"foo"},
|
want: []string{"foo"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty map",
|
name: "empty map",
|
||||||
input: map[int]string{},
|
input: map[int]string{},
|
||||||
predicate: func(k int, v string) (bool, error) {
|
predicate: func(k int, v string) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
@@ -1357,7 +1357,7 @@ func TestFilterValuesErr(t *testing.T) {
|
|||||||
input: map[int]string{1: "foo", 2: "bar", 3: "baz"},
|
input: map[int]string{1: "foo", 2: "bar", 3: "baz"},
|
||||||
predicate: func(k int, v string) (bool, error) {
|
predicate: func(k int, v string) (bool, error) {
|
||||||
if k == 2 {
|
if k == 2 {
|
||||||
return false, fmt.Errorf("key 2 not allowed")
|
return false, errors.New("key 2 not allowed")
|
||||||
}
|
}
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
|
|||||||
+33
-33
@@ -41,7 +41,7 @@ func TestFilterErr(t *testing.T) {
|
|||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
input []int
|
input []int
|
||||||
predicate func(item int, index int) (bool, error)
|
predicate func(item, index int) (bool, error)
|
||||||
want []int
|
want []int
|
||||||
wantErr string
|
wantErr string
|
||||||
callbacks int // Number of predicates called before error/finish
|
callbacks int // Number of predicates called before error/finish
|
||||||
@@ -49,7 +49,7 @@ func TestFilterErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "filter even numbers",
|
name: "filter even numbers",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return x%2 == 0, nil
|
return x%2 == 0, nil
|
||||||
},
|
},
|
||||||
want: []int{2, 4},
|
want: []int{2, 4},
|
||||||
@@ -58,7 +58,7 @@ func TestFilterErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "empty slice",
|
name: "empty slice",
|
||||||
input: []int{},
|
input: []int{},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
want: []int{},
|
want: []int{},
|
||||||
@@ -67,7 +67,7 @@ func TestFilterErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "filter all out",
|
name: "filter all out",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return false, nil
|
return false, nil
|
||||||
},
|
},
|
||||||
want: []int{},
|
want: []int{},
|
||||||
@@ -76,7 +76,7 @@ func TestFilterErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "filter all in",
|
name: "filter all in",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
want: []int{1, 2, 3, 4},
|
want: []int{1, 2, 3, 4},
|
||||||
@@ -85,9 +85,9 @@ func TestFilterErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "error on specific index",
|
name: "error on specific index",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
if x == 3 {
|
if x == 3 {
|
||||||
return false, fmt.Errorf("number 3 is not allowed")
|
return false, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return x%2 == 0, nil
|
return x%2 == 0, nil
|
||||||
},
|
},
|
||||||
@@ -102,7 +102,7 @@ func TestFilterErr(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
var callbacks int
|
var callbacks int
|
||||||
wrappedPredicate := func(item int, index int) (bool, error) {
|
wrappedPredicate := func(item, index int) (bool, error) {
|
||||||
callbacks++
|
callbacks++
|
||||||
return tt.predicate(item, index)
|
return tt.predicate(item, index)
|
||||||
}
|
}
|
||||||
@@ -1667,11 +1667,11 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
|
|
||||||
// Table-driven tests
|
// Table-driven tests
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
count int
|
count int
|
||||||
callback func(index int) (int, error)
|
callback func(index int) (int, error)
|
||||||
wantResult []int
|
wantResult []int
|
||||||
wantErr bool
|
wantErr bool
|
||||||
expectedCallbackCount int
|
expectedCallbackCount int
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
@@ -1680,8 +1680,8 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
callback: func(i int) (int, error) {
|
callback: func(i int) (int, error) {
|
||||||
return i * i, nil
|
return i * i, nil
|
||||||
},
|
},
|
||||||
wantResult: []int{0, 1, 4, 9, 16},
|
wantResult: []int{0, 1, 4, 9, 16},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
expectedCallbackCount: 5,
|
expectedCallbackCount: 5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1693,8 +1693,8 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
}
|
}
|
||||||
return i * i, nil
|
return i * i, nil
|
||||||
},
|
},
|
||||||
wantResult: nil,
|
wantResult: nil,
|
||||||
wantErr: true,
|
wantErr: true,
|
||||||
expectedCallbackCount: 1,
|
expectedCallbackCount: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1706,8 +1706,8 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
}
|
}
|
||||||
return i * i, nil
|
return i * i, nil
|
||||||
},
|
},
|
||||||
wantResult: nil,
|
wantResult: nil,
|
||||||
wantErr: true,
|
wantErr: true,
|
||||||
expectedCallbackCount: 3,
|
expectedCallbackCount: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1719,8 +1719,8 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
}
|
}
|
||||||
return i * i, nil
|
return i * i, nil
|
||||||
},
|
},
|
||||||
wantResult: nil,
|
wantResult: nil,
|
||||||
wantErr: true,
|
wantErr: true,
|
||||||
expectedCallbackCount: 5,
|
expectedCallbackCount: 5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1729,8 +1729,8 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
callback: func(i int) (int, error) {
|
callback: func(i int) (int, error) {
|
||||||
return i * i, nil
|
return i * i, nil
|
||||||
},
|
},
|
||||||
wantResult: []int{},
|
wantResult: []int{},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
expectedCallbackCount: 0,
|
expectedCallbackCount: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1739,8 +1739,8 @@ func TestRepeatByErr(t *testing.T) {
|
|||||||
callback: func(i int) (int, error) {
|
callback: func(i int) (int, error) {
|
||||||
return 42, nil
|
return 42, nil
|
||||||
},
|
},
|
||||||
wantResult: []int{42},
|
wantResult: []int{42},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
expectedCallbackCount: 1,
|
expectedCallbackCount: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -2353,7 +2353,7 @@ func TestRejectErr(t *testing.T) {
|
|||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
input []int
|
input []int
|
||||||
predicate func(item int, index int) (bool, error)
|
predicate func(item, index int) (bool, error)
|
||||||
want []int
|
want []int
|
||||||
wantErr string
|
wantErr string
|
||||||
callbacks int // Number of predicates called before error/finish
|
callbacks int // Number of predicates called before error/finish
|
||||||
@@ -2361,7 +2361,7 @@ func TestRejectErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "reject even numbers",
|
name: "reject even numbers",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return x%2 == 0, nil
|
return x%2 == 0, nil
|
||||||
},
|
},
|
||||||
want: []int{1, 3},
|
want: []int{1, 3},
|
||||||
@@ -2370,7 +2370,7 @@ func TestRejectErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "empty slice",
|
name: "empty slice",
|
||||||
input: []int{},
|
input: []int{},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
want: []int{},
|
want: []int{},
|
||||||
@@ -2379,7 +2379,7 @@ func TestRejectErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "reject all out",
|
name: "reject all out",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return false, nil
|
return false, nil
|
||||||
},
|
},
|
||||||
want: []int{1, 2, 3, 4},
|
want: []int{1, 2, 3, 4},
|
||||||
@@ -2388,7 +2388,7 @@ func TestRejectErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "reject all in",
|
name: "reject all in",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
},
|
},
|
||||||
want: []int{},
|
want: []int{},
|
||||||
@@ -2397,9 +2397,9 @@ func TestRejectErr(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "error on specific index",
|
name: "error on specific index",
|
||||||
input: []int{1, 2, 3, 4},
|
input: []int{1, 2, 3, 4},
|
||||||
predicate: func(x int, _ int) (bool, error) {
|
predicate: func(x, _ int) (bool, error) {
|
||||||
if x == 3 {
|
if x == 3 {
|
||||||
return false, fmt.Errorf("number 3 is not allowed")
|
return false, errors.New("number 3 is not allowed")
|
||||||
}
|
}
|
||||||
return x%2 == 0, nil
|
return x%2 == 0, nil
|
||||||
},
|
},
|
||||||
@@ -2414,7 +2414,7 @@ func TestRejectErr(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
var callbacks int
|
var callbacks int
|
||||||
wrappedPredicate := func(item int, index int) (bool, error) {
|
wrappedPredicate := func(item, index int) (bool, error) {
|
||||||
callbacks++
|
callbacks++
|
||||||
return tt.predicate(item, index)
|
return tt.predicate(item, index)
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-51
@@ -536,9 +536,9 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount int
|
expectedCallbackCount int
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "successful transformation",
|
name: "successful transformation",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
iteratee: func(a string, b int) (string, error) {
|
iteratee: func(a string, b int) (string, error) {
|
||||||
return a + "-" + strconv.Itoa(b), nil
|
return a + "-" + strconv.Itoa(b), nil
|
||||||
},
|
},
|
||||||
@@ -547,9 +547,9 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 2,
|
expectedCallbackCount: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "error at second element stops iteration",
|
name: "error at second element stops iteration",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
iteratee: func(a string, b int) (string, error) {
|
iteratee: func(a string, b int) (string, error) {
|
||||||
if b == 2 {
|
if b == 2 {
|
||||||
return "", errors.New("number 2 is not allowed")
|
return "", errors.New("number 2 is not allowed")
|
||||||
@@ -562,9 +562,9 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 2,
|
expectedCallbackCount: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "error at first element stops iteration immediately",
|
name: "error at first element stops iteration immediately",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
iteratee: func(a string, b int) (string, error) {
|
iteratee: func(a string, b int) (string, error) {
|
||||||
return "", errors.New("first error")
|
return "", errors.New("first error")
|
||||||
},
|
},
|
||||||
@@ -574,9 +574,9 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 1,
|
expectedCallbackCount: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty input slices",
|
name: "empty input slices",
|
||||||
a: []string{},
|
a: []string{},
|
||||||
b: []int{},
|
b: []int{},
|
||||||
iteratee: func(a string, b int) (string, error) {
|
iteratee: func(a string, b int) (string, error) {
|
||||||
return a + "-" + strconv.Itoa(b), nil
|
return a + "-" + strconv.Itoa(b), nil
|
||||||
},
|
},
|
||||||
@@ -585,9 +585,9 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 0,
|
expectedCallbackCount: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "unequal slice lengths - zero value filled",
|
name: "unequal slice lengths - zero value filled",
|
||||||
a: []string{"a", "b", "c"},
|
a: []string{"a", "b", "c"},
|
||||||
b: []int{1},
|
b: []int{1},
|
||||||
iteratee: func(a string, b int) (string, error) {
|
iteratee: func(a string, b int) (string, error) {
|
||||||
if b == 0 {
|
if b == 0 {
|
||||||
return "", errors.New("zero value not allowed")
|
return "", errors.New("zero value not allowed")
|
||||||
@@ -644,10 +644,10 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount int
|
expectedCallbackCount int
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "successful transformation",
|
name: "successful transformation",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
c: []bool{true, false},
|
c: []bool{true, false},
|
||||||
iteratee: func(a string, b int, c bool) (string, error) {
|
iteratee: func(a string, b int, c bool) (string, error) {
|
||||||
return a + "-" + strconv.Itoa(b) + "-" + strconv.FormatBool(c), nil
|
return a + "-" + strconv.Itoa(b) + "-" + strconv.FormatBool(c), nil
|
||||||
},
|
},
|
||||||
@@ -656,10 +656,10 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 2,
|
expectedCallbackCount: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "error at second element stops iteration",
|
name: "error at second element stops iteration",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
c: []bool{true, false},
|
c: []bool{true, false},
|
||||||
iteratee: func(a string, b int, c bool) (string, error) {
|
iteratee: func(a string, b int, c bool) (string, error) {
|
||||||
if b == 2 {
|
if b == 2 {
|
||||||
return "", errors.New("number 2 is not allowed")
|
return "", errors.New("number 2 is not allowed")
|
||||||
@@ -672,10 +672,10 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 2,
|
expectedCallbackCount: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "error at first element",
|
name: "error at first element",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
c: []bool{true, false},
|
c: []bool{true, false},
|
||||||
iteratee: func(a string, b int, c bool) (string, error) {
|
iteratee: func(a string, b int, c bool) (string, error) {
|
||||||
return "", errors.New("first error")
|
return "", errors.New("first error")
|
||||||
},
|
},
|
||||||
@@ -685,10 +685,10 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 1,
|
expectedCallbackCount: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty input slices",
|
name: "empty input slices",
|
||||||
a: []string{},
|
a: []string{},
|
||||||
b: []int{},
|
b: []int{},
|
||||||
c: []bool{},
|
c: []bool{},
|
||||||
iteratee: func(a string, b int, c bool) (string, error) {
|
iteratee: func(a string, b int, c bool) (string, error) {
|
||||||
return a + "-" + strconv.Itoa(b) + "-" + strconv.FormatBool(c), nil
|
return a + "-" + strconv.Itoa(b) + "-" + strconv.FormatBool(c), nil
|
||||||
},
|
},
|
||||||
@@ -742,11 +742,11 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount int
|
expectedCallbackCount int
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "successful transformation",
|
name: "successful transformation",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
c: []bool{true, false},
|
c: []bool{true, false},
|
||||||
d: []float32{1.1, 2.2},
|
d: []float32{1.1, 2.2},
|
||||||
iteratee: func(a string, b int, c bool, d float32) (string, error) {
|
iteratee: func(a string, b int, c bool, d float32) (string, error) {
|
||||||
return a + "-" + strconv.Itoa(b), nil
|
return a + "-" + strconv.Itoa(b), nil
|
||||||
},
|
},
|
||||||
@@ -755,11 +755,11 @@ func TestZipByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 2,
|
expectedCallbackCount: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "error stops iteration",
|
name: "error stops iteration",
|
||||||
a: []string{"a", "b"},
|
a: []string{"a", "b"},
|
||||||
b: []int{1, 2},
|
b: []int{1, 2},
|
||||||
c: []bool{true, false},
|
c: []bool{true, false},
|
||||||
d: []float32{1.1, 2.2},
|
d: []float32{1.1, 2.2},
|
||||||
iteratee: func(a string, b int, c bool, d float32) (string, error) {
|
iteratee: func(a string, b int, c bool, d float32) (string, error) {
|
||||||
if b == 2 {
|
if b == 2 {
|
||||||
return "", errors.New("error")
|
return "", errors.New("error")
|
||||||
@@ -1029,10 +1029,10 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
expectedCallbackCount: 3, // a-1, a-2, then b-1 errors
|
expectedCallbackCount: 3, // a-1, a-2, then b-1 errors
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty list returns empty result",
|
name: "empty list returns empty result",
|
||||||
listA: []string{},
|
listA: []string{},
|
||||||
listB: []int{1, 2},
|
listB: []int{1, 2},
|
||||||
transform: func(a string, b int) (string, error) { return a + "-" + strconv.Itoa(b), nil },
|
transform: func(a string, b int) (string, error) { return a + "-" + strconv.Itoa(b), nil },
|
||||||
wantResult: []string{},
|
wantResult: []string{},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
expectedCallbackCount: 0,
|
expectedCallbackCount: 0,
|
||||||
@@ -1150,7 +1150,7 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
is.Equal(4, len(result))
|
is.Len(result, 4)
|
||||||
is.NoError(err)
|
is.NoError(err)
|
||||||
is.Equal(4, callbackCount)
|
is.Equal(4, callbackCount)
|
||||||
})
|
})
|
||||||
@@ -1173,7 +1173,7 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
is.Equal(2, len(result))
|
is.Len(result, 2)
|
||||||
is.NoError(err)
|
is.NoError(err)
|
||||||
is.Equal(2, callbackCount)
|
is.Equal(2, callbackCount)
|
||||||
})
|
})
|
||||||
@@ -1197,7 +1197,7 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
is.Equal(1, len(result))
|
is.Len(result, 1)
|
||||||
is.NoError(err)
|
is.NoError(err)
|
||||||
is.Equal(1, callbackCount)
|
is.Equal(1, callbackCount)
|
||||||
})
|
})
|
||||||
@@ -1222,7 +1222,7 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
is.Equal(1, len(result))
|
is.Len(result, 1)
|
||||||
is.NoError(err)
|
is.NoError(err)
|
||||||
is.Equal(1, callbackCount)
|
is.Equal(1, callbackCount)
|
||||||
})
|
})
|
||||||
@@ -1248,7 +1248,7 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
is.Equal(1, len(result))
|
is.Len(result, 1)
|
||||||
is.NoError(err)
|
is.NoError(err)
|
||||||
is.Equal(1, callbackCount)
|
is.Equal(1, callbackCount)
|
||||||
})
|
})
|
||||||
@@ -1275,7 +1275,7 @@ func TestCrossJoinByErr(t *testing.T) {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
is.Equal(1, len(result))
|
is.Len(result, 1)
|
||||||
is.NoError(err)
|
is.NoError(err)
|
||||||
is.Equal(1, callbackCount)
|
is.Equal(1, callbackCount)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user