mirror of
https://github.com/Threnklyn/advent-of-code-go.git
synced 2026-06-06 04:08:27 +02:00
105 lines
1.8 KiB
Go
105 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/alexchao26/advent-of-code-go/util"
|
|
)
|
|
|
|
var example = `0: 4 1 5
|
|
1: 2 3 | 3 2
|
|
2: 4 4 | 5 5
|
|
3: 4 5 | 5 4
|
|
4: "a"
|
|
5: "b"
|
|
|
|
ababbb
|
|
bababa
|
|
abbbab
|
|
aaabbb
|
|
aaaabbb`
|
|
|
|
func Test_part1(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input string
|
|
want int
|
|
}{
|
|
{"example", example, 2},
|
|
{"actual", util.ReadFile("input.txt"), 136},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := part1(tt.input); got != tt.want {
|
|
t.Errorf("part1() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
var example2 = `42: 9 14 | 10 1
|
|
9: 14 27 | 1 26
|
|
10: 23 14 | 28 1
|
|
1: "a"
|
|
11: 42 31 | 42 11 31
|
|
5: 1 14 | 15 1
|
|
19: 14 1 | 14 14
|
|
12: 24 14 | 19 1
|
|
16: 15 1 | 14 14
|
|
31: 14 17 | 1 13
|
|
6: 14 14 | 1 14
|
|
2: 1 24 | 14 4
|
|
0: 8 11
|
|
13: 14 3 | 1 12
|
|
15: 1 | 14
|
|
17: 14 2 | 1 7
|
|
23: 25 1 | 22 14
|
|
28: 16 1
|
|
4: 1 1
|
|
20: 14 14 | 1 15
|
|
3: 5 14 | 16 1
|
|
27: 1 6 | 14 18
|
|
14: "b"
|
|
21: 14 1 | 1 14
|
|
25: 1 1 | 1 14
|
|
22: 14 14
|
|
8: 42 | 42 8
|
|
26: 14 22 | 1 20
|
|
18: 15 15
|
|
7: 14 5 | 1 21
|
|
24: 14 1
|
|
|
|
abbbbbabbbaaaababbaabbbbabababbbabbbbbbabaaaa
|
|
bbabbbbaabaabba
|
|
babbbbaabbbbbabbbbbbaabaaabaaa
|
|
aaabbbbbbaaaabaababaabababbabaaabbababababaaa
|
|
bbbbbbbaaaabbbbaaabbabaaa
|
|
bbbababbbbaaaaaaaabbababaaababaabab
|
|
ababaaaaaabaaab
|
|
ababaaaaabbbaba
|
|
baabbaaaabbaaaababbaababb
|
|
abbbbabbbbaaaababbbbbbaaaababb
|
|
aaaaabbaabaaaaababaa
|
|
aaaabbaaaabbaaa
|
|
aaaabbaabbaaaaaaabbbabbbaaabbaabaaa
|
|
babaaabbbaaabaababbaabababaaab
|
|
aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba`
|
|
|
|
func Test_part2(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input string
|
|
want int
|
|
}{
|
|
{"example", example2, 12},
|
|
{"actual", util.ReadFile("input.txt"), 256},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := part2(tt.input); got != tt.want {
|
|
t.Errorf("part2() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|