1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package part_01
import (
"testing"
)
func TestParseCardLine(t *testing.T) {
input := "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53"
expected := Card{1, []int{41, 48, 83, 86, 17}, []int{83, 86, 6, 31, 17, 9, 48, 53}}
actual := parseCardLine(input)
if actual.id != expected.id {
t.Errorf("ERROR: ID %d does not match expected %d", actual.id, expected.id)
}
if len(actual.winningNumbers) != len(expected.winningNumbers) {
t.Errorf("ERROR: len(WinningNumbers) %d does not match expected %d", len(actual.winningNumbers), len(expected.winningNumbers))
}
if len(actual.haveNumbers) != len(expected.haveNumbers) {
t.Errorf("ERROR: len(HaveNumbers) %d does not match expected %d", len(actual.haveNumbers), len(expected.haveNumbers))
}
for i, num := range actual.winningNumbers {
if num != expected.winningNumbers[i] {
t.Errorf("ERROR: WinningNumber %d does not match expected %d", num, expected.winningNumbers[i])
}
}
for i, num := range actual.haveNumbers {
if num != expected.haveNumbers[i] {
t.Errorf("ERROR: HaveNumber %d does not match expected %d", num, expected.haveNumbers[i])
}
}
}
func TestTallyScore(t *testing.T) {
card := Card{1, []int{41, 48, 83, 86, 17}, []int{83, 86, 6, 31, 17, 9, 48, 53}}
expected := 8
actual := tallyScore(card)
if actual != expected {
t.Errorf("ERROR: Score %d does not match expected %d", actual, expected)
}
}
|