advent-of-code/aoc2023/day07/main_test.go
xuu 3c9af95ec4
Some checks failed
Go Bump / bump (push) Failing after 9s
Go Test / build (push) Successful in 38s
chore: setup folders for aoc 2024
2024-10-26 11:38:44 -06:00

75 lines
1.4 KiB
Go

package main
import (
"bufio"
"bytes"
"fmt"
"testing"
_ "embed"
"github.com/matryer/is"
)
// AKQJT98765432
// dcba987654321
//go:embed example.txt
var example []byte
//go:embed input.txt
var input []byte
func TestHands(t *testing.T) {
is := is.New(t)
var game Game
game.cardOrder = getOrder(cardTypes1)
h := Play{0, []rune("AAA23"), &game}
is.Equal(h.HandType(), "3K-A")
h = Play{0, []rune("JJJJJ"), &game}
is.Equal(h.HandType(), "5K-J")
is.Equal(fmt.Sprintf("%x", h.HandStrength()), "7aaaaa")
h = Play{0, []rune("KKKKJ"), &game}
is.Equal(h.HandType(), "4K-K")
is.Equal(fmt.Sprintf("%x", h.HandStrength()), "6cccca")
h = Play{0, []rune("QQQJA"), &game}
is.Equal(h.HandType(), "3K-Q")
is.Equal(fmt.Sprintf("%x", h.HandStrength()), "4bbbad")
}
func TestPower(t *testing.T) {
for i := 1; i <= 13; i++ {
for j := 100; j < 800; j += 100 {
t.Log(i, j, i+j)
}
}
}
func TestExample(t *testing.T) {
is := is.New(t)
scan := bufio.NewScanner(bytes.NewReader(example))
r, err := run(scan)
is.NoErr(err)
is.Equal(r.valuePT1, uint64(6440))
is.Equal(r.valuePT2, uint64(5905))
}
func TestSolution(t *testing.T) {
is := is.New(t)
scan := bufio.NewScanner(bytes.NewReader(input))
r, err := run(scan)
is.NoErr(err)
t.Log("score1", r.valuePT1)
is.Equal(r.valuePT1, uint64(248559379))
t.Log("score2", r.valuePT2)
is.Equal(r.valuePT2, uint64(249631254))
}