aoc2023/day-4/one_test.go

46 lines
977 B
Go
Raw Normal View History

2023-12-04 17:23:02 +00:00
package main
import (
"strings"
2023-12-04 17:23:02 +00:00
"testing"
"unicode"
2023-12-04 17:23:02 +00:00
"github.com/go-playground/assert"
2023-12-04 17:23:02 +00:00
)
func TestCompare(t *testing.T) {
2023-12-04 17:23:02 +00:00
//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)
2023-12-04 17:23:02 +00:00
})
t.Run("Should return 2 matches", func(t *testing.T) {
assert.Equal(t, 2, res2)
2023-12-04 17:23:02 +00:00
})
}