package main
import "testing"
func TestSolution1(t *testing.T) {
tests := []struct {
players int
lastMarble int
expected int
}{
{9, 25, 32},
{10, 1618, 8317},
{13, 7999, 146373},
{17, 1104, 2764},
{21, 6111, 54718},
{30, 5807, 37305},
}
for _, test := range tests {
p := Puzzle{
Players: test.players,
LastMarble: test.lastMarble,
Marbles: NewCircular(),
}
result := p.Solution1(false)
if result != test.expected {
t.Errorf("Expected %d, got %d\n", test.expected, result)
}
}
}
func BenchmarkSolution1(b *testing.B) {
p := Puzzle{
Players: 13,
LastMarble: 7999,
Marbles: NewCircular(),
}
for i := 0; i < b.N; i++ {
p.Solution1(false)
}
}