package main import ( "strings" "testing" "unicode" "github.com/go-playground/assert" ) func TestCompare(t *testing.T) { //t.Skip("skipping test") input := []string{ "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53", "Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19", } winning1, mynums1 := func() (string, string) { y := strings.Split(input[0], ":") z := strings.Split(y[1], "|") return z[0], z[1] }() winning2, mynums2 := func() (string, string) { y := strings.Split(input[1], ":") z := strings.Split(y[1], "|") return z[0], z[1] }() f := func(c rune) bool { return !unicode.IsDigit(c) } res1, _ := compare(strings.FieldsFunc(winning1, f), strings.FieldsFunc(mynums1, f)) res2, _ := compare(strings.FieldsFunc(winning2, f), strings.FieldsFunc(mynums2, f)) t.Run("Should return 4 matches", func(t *testing.T) { assert.Equal(t, 4, res1) }) t.Run("Should return 2 matches", func(t *testing.T) { assert.Equal(t, 2, res2) }) }