Files
advent-of-code-2025/cmd/day1/main_test.go
2025-12-06 13:35:40 +02:00

81 lines
1.2 KiB
Go

package main
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
func Test_dial_Add2(t *testing.T) {
tests := []struct {
start int
turn int
want int
wantClicks int
}{
{
start: 50,
turn: 300,
want: 50,
wantClicks: 3,
},
{
start: 50,
turn: -300,
want: 50,
wantClicks: 3,
},
{
start: 0,
turn: -100,
want: 0,
wantClicks: 1,
},
{
start: 1,
turn: -101,
want: 0,
wantClicks: 2,
},
{
start: 99,
turn: -199,
want: 0,
wantClicks: 2,
},
{
start: 0,
turn: 100,
want: 0,
wantClicks: 1,
},
{
start: 99,
turn: 101,
want: 0,
wantClicks: 2,
},
{
start: 1,
turn: 199,
want: 0,
wantClicks: 2,
},
}
for _, tt := range tests {
name := fmt.Sprintf("R%d", tt.turn)
if tt.turn < 0 {
name = fmt.Sprintf("L%d", -tt.turn)
}
t.Run(name, func(t *testing.T) {
d := dial{n: tt.start}
d.Add2(tt.turn)
assert.Equal(t, tt.want, d.n, "dial")
assert.Equal(t, tt.wantClicks, d.zeroClicks, "clicks")
})
}
}