Files
advent-of-code-2025/cmd/01/dial/dial_test.go
T

79 lines
1.7 KiB
Go

package dial_test
import (
"testing"
"github.com/StevanFreeborn/advent-of-code-2025/cmd/01/dial"
"github.com/StevanFreeborn/advent-of-code-2025/cmd/01/instruction"
)
func TestNew(t *testing.T) {
expectedStartingValue := 50
result := dial.New()
if result.Value() != expectedStartingValue {
t.Errorf("got unexpected beginning value. expected %d but got %d", expectedStartingValue, result.Value())
}
}
type TurnTestCase struct {
Instruction instruction.Instruction
ExpectedDialValue int
}
func TestTurn(t *testing.T) {
testCases := []TurnTestCase{
{
Instruction: instruction.FromParts("L", 68),
ExpectedDialValue: 82,
},
{
Instruction: instruction.FromParts("L", 30),
ExpectedDialValue: 52,
},
{
Instruction: instruction.FromParts("R", 48),
ExpectedDialValue: 0,
},
{
Instruction: instruction.FromParts("L", 5),
ExpectedDialValue: 95,
},
{
Instruction: instruction.FromParts("R", 60),
ExpectedDialValue: 55,
},
{
Instruction: instruction.FromParts("L", 55),
ExpectedDialValue: 0,
},
{
Instruction: instruction.FromParts("L", 1),
ExpectedDialValue: 99,
},
{
Instruction: instruction.FromParts("L", 99),
ExpectedDialValue: 0,
},
{
Instruction: instruction.FromParts("R", 14),
ExpectedDialValue: 14,
},
{
Instruction: instruction.FromParts("L", 82),
ExpectedDialValue: 32,
},
}
dial := dial.New()
for i, testCase := range testCases {
dial.Turn(testCase.Instruction)
if dial.Value() != testCase.ExpectedDialValue {
t.Errorf("%d: got dial value %d, but expected dial value %d", i, dial.Value(), testCase.ExpectedDialValue)
}
}
}