You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package day4
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gitea.paas.celticinfo.fr/oabrivard/aoc2023/utils"
|
|
)
|
|
|
|
func TestWinningNumbersSum(t *testing.T) {
|
|
lines := []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",
|
|
"Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1",
|
|
"Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83",
|
|
"Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36",
|
|
"Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11",
|
|
}
|
|
|
|
result := WinningNumbersSum(lines)
|
|
|
|
if result != 13 {
|
|
t.Fatalf("expected 13, got %d", result)
|
|
}
|
|
}
|
|
|
|
func TestWinningNumbersSumWithInput(t *testing.T) {
|
|
lines := utils.ReadLines("input.txt")
|
|
result := WinningNumbersSum(lines)
|
|
|
|
if result != 24175 {
|
|
t.Fatalf("expected 24175, got %d", result)
|
|
}
|
|
}
|
|
|
|
func TestScratchCopyCount(t *testing.T) {
|
|
lines := []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",
|
|
"Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1",
|
|
"Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83",
|
|
"Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36",
|
|
"Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11",
|
|
}
|
|
|
|
result := ScratchCopyCount(lines)
|
|
|
|
if result != 30 {
|
|
t.Fatalf("expected 30, got %d", result)
|
|
}
|
|
}
|
|
|
|
func TestScratchCopyCountWithInput(t *testing.T) {
|
|
lines := utils.ReadLines("input.txt")
|
|
result := ScratchCopyCount(lines)
|
|
|
|
if result != 18846301 {
|
|
t.Fatalf("expected 18846301, got %d", result)
|
|
}
|
|
}
|