1 package collections
2
3 import (
4 "strings"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8 )
9
10 func TestIndex(t *testing.T) {
11 var strs = []string{"peach", "apple", "pear", "plum"}
12
13 actual := Index(strs, "pear")
14
15 require.Equal(t, 2, actual)
16 }
17
18 func TestInclude(t *testing.T) {
19 var strs = []string{"peach", "apple", "pear", "plum"}
20
21 actual := Include(strs, "grape")
22
23 require.False(t, actual)
24 }
25
26 func TestAny(t *testing.T) {
27 var strs = []string{"peach", "apple", "pear", "plum"}
28
29 actual := Any(strs, func(v string) bool {
30 return strings.HasPrefix(v, "p")
31 })
32
33 require.True(t, actual)
34 }
35
36 func TestAll(t *testing.T) {
37 var strs = []string{"peach", "apple", "pear", "plum"}
38
39 actual := All(strs, func(v string) bool {
40 return strings.HasPrefix(v, "p")
41 })
42
43 require.False(t, actual)
44 }
45
46 func TestFilter(t *testing.T) {
47 var strs = []string{"peach", "apple", "pear", "plum"}
48
49 actual := Filter(strs, func(v string) bool {
50 return strings.Contains(v, "e")
51 })
52
53 require.Contains(t, actual, "peach")
54 require.Contains(t, actual, "apple")
55 require.Contains(t, actual, "pear")
56 require.NotContains(t, actual, "plum")
57 }
58
59 func TestMap(t *testing.T) {
60 var strs = []string{"peach", "apple", "pear", "plum"}
61
62 actual := Map(strs, func(v string) string {
63 return strings.ToUpper(v)
64 })
65
66 expected := []string{"PEACH", "APPLE", "PEAR", "PLUM"}
67 require.EqualValues(t, expected, actual)
68 }
69
View as plain text