github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/utils/slices/slices_test.go (about) 1 package slices_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/onflow/flow-go/utils/slices" 9 ) 10 11 // TestSliceContainsElement tests that the StringSliceContainsElement function returns true if the string slice contains the element. 12 func TestSliceContainsElement(t *testing.T) { 13 a := []string{"a", "b", "c"} 14 15 require.True(t, slices.StringSliceContainsElement(a, "a")) 16 require.True(t, slices.StringSliceContainsElement(a, "b")) 17 require.True(t, slices.StringSliceContainsElement(a, "c")) 18 require.False(t, slices.StringSliceContainsElement(a, "d")) 19 } 20 21 // TestAreStringSlicesEqual tests that the AreStringSlicesEqual function returns true if the string slices are equal. 22 func TestAreStringSlicesEqual(t *testing.T) { 23 a := []string{"a", "b", "c"} 24 b := []string{"a", "b", "c"} 25 c := []string{"a", "b", "c", "d"} 26 d := []string{"a", "b", "d"} 27 28 require.True(t, slices.AreStringSlicesEqual(a, b)) 29 require.False(t, slices.AreStringSlicesEqual(a, c)) 30 require.False(t, slices.AreStringSlicesEqual(a, d)) 31 } 32 33 // TestAreStringSlicesEqual_DuplicateElements tests that the AreStringSlicesEqual function works with duplicate elements. 34 func TestAreStringSlicesEqual_DuplicateElements(t *testing.T) { 35 a := []string{"a", "a", "a", "a"} 36 b := []string{"a", "c", "d", "b"} 37 require.False(t, slices.AreStringSlicesEqual(a, b)) 38 39 a = []string{"a", "c", "d", "a"} 40 b = []string{"c", "a", "a", "d"} 41 require.True(t, slices.AreStringSlicesEqual(a, b)) 42 }