mirror of
https://github.com/onyx-and-iris/aoc2023.git
synced 2024-11-15 15:10:49 +00:00
46 lines
977 B
Go
46 lines
977 B
Go
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)
|
|
})
|
|
}
|