Dan Anglin
53c58fa8c0
All checks were successful
/ test (pull_request) Successful in 27s
- Add the solution and the test suite for the Advent of Code, 2023 - Day 4: Scratchcards - style: applied gofmt for formatting
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"reflect"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDay4Scratchcards(t *testing.T) {
|
|
t.Log("This is the test suite for Advent of Code - Day 4 - Scratchcards")
|
|
|
|
testScratchcard := `
|
|
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
|
|
`
|
|
|
|
scratchcards := strings.Split(testScratchcard, "\n")
|
|
|
|
// remove the first and last lines of the test card pack as they are blank lines
|
|
scratchcards = scratchcards[1 : len(scratchcards)-1]
|
|
|
|
t.Run("Test the solution of the scratch card winnings", testSolveScratchCardWinnings(scratchcards))
|
|
}
|
|
|
|
func testSolveScratchCardWinnings(scratchcards []string) func(t *testing.T) {
|
|
return func(t *testing.T) {
|
|
got, err := solveScratchCardWinnings(scratchcards)
|
|
if err != nil {
|
|
t.Fatalf("Received an error after running solveScratchCardWinnings(); %v\n", err)
|
|
}
|
|
|
|
want := solution{
|
|
sumUniqueScratchcardScores: 13,
|
|
totalNumberOfScratchcards: 30,
|
|
}
|
|
|
|
if !reflect.DeepEqual(want, got) {
|
|
t.Errorf("unexpected result received from solveScratchCardWinnings(); want %d, got %d\n", want, got)
|
|
}
|
|
}
|
|
}
|