2025-12-05 07:05:28 -06:00
|
|
|
package bank_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"slices"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/StevanFreeborn/advent-of-code-2025/cmd/03/bank"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestFrom(t *testing.T) {
|
|
|
|
|
expected := []int{1, 2, 3, 4, 5}
|
|
|
|
|
input := "12345"
|
|
|
|
|
|
|
|
|
|
result := bank.From(input)
|
|
|
|
|
|
|
|
|
|
if slices.Equal(result.Cells(), expected) == false {
|
|
|
|
|
t.Errorf("got %v but wanted %v", result.Cells(), expected)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type testCase struct {
|
2025-12-06 07:34:42 -06:00
|
|
|
numberOfBanksToTurnOn int
|
|
|
|
|
bank bank.Bank
|
|
|
|
|
expected int
|
2025-12-05 07:05:28 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestJoltage(t *testing.T) {
|
|
|
|
|
testCases := []testCase{
|
2025-12-06 07:34:42 -06:00
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 2,
|
|
|
|
|
// bank: bank.From("987654321111111"),
|
|
|
|
|
// expected: 98,
|
|
|
|
|
// },
|
2025-12-05 07:05:28 -06:00
|
|
|
{
|
2025-12-06 07:34:42 -06:00
|
|
|
numberOfBanksToTurnOn: 2,
|
|
|
|
|
bank: bank.From("811111111111119"),
|
|
|
|
|
expected: 89,
|
2025-12-05 07:05:28 -06:00
|
|
|
},
|
2025-12-06 07:34:42 -06:00
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 2,
|
|
|
|
|
// bank: bank.From("234234234234278"),
|
|
|
|
|
// expected: 78,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 2,
|
|
|
|
|
// bank: bank.From("818181911112111"),
|
|
|
|
|
// expected: 92,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 12,
|
|
|
|
|
// bank: bank.From("987654321111111"),
|
|
|
|
|
// expected: 987654321111,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 12,
|
|
|
|
|
// bank: bank.From("811111111111119"),
|
|
|
|
|
// expected: 811111111119,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 12,
|
|
|
|
|
// bank: bank.From("234234234234278"),
|
|
|
|
|
// expected: 434234234278,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// numberOfBanksToTurnOn: 12,
|
|
|
|
|
// bank: bank.From("818181911112111"),
|
|
|
|
|
// expected: 888911112111,
|
|
|
|
|
// },
|
2025-12-05 07:05:28 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, testCase := range testCases {
|
2025-12-06 07:34:42 -06:00
|
|
|
result := testCase.bank.Joltage(testCase.numberOfBanksToTurnOn)
|
2025-12-05 07:05:28 -06:00
|
|
|
|
2025-12-06 07:34:42 -06:00
|
|
|
if result != int64(testCase.expected) {
|
2025-12-05 07:05:28 -06:00
|
|
|
t.Errorf("got %d but wanted %d", result, testCase.expected)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|