package main
import (
"testing"
)
func TestShouldDecode(t *testing.T) {
test := []struct {
Seat Seat
Row int
Column int
ID int
}{
{
Seat: Seat("FBFBBFFRLR"),
Row: 44,
Column: 5,
ID: 357,
},
{
Seat: Seat("BFFFBBFRRR"),
Row: 70,
Column: 7,
ID: 567,
},
{
Seat: Seat("FFFBBBFRRR"),
Row: 14,
Column: 7,
ID: 119,
},
{
Seat: Seat("BBFFBBFRLL"),
Row: 102,
Column: 4,
ID: 820,
},
}
for i, in := range test {
row, column, id := in.Seat.GetRow(), in.Seat.GetColumn(), in.Seat.GetID()
if row != in.Row {
t.Errorf("%d - row: got %d, expected %d", i, row, in.Row)
}
if column != in.Column {
t.Errorf("%d - column: got %d, expected %d", i, column, in.Column)
}
if id != in.ID {
t.Errorf("%d - id: got %d, expected %d", i, id, in.ID)
}
}
}
func TestTask1ShouldFindResult(t *testing.T) {
input := []Seat{
Seat("FBFBBFFRLR"),
Seat("BFFFBBFRRR"),
Seat("FFFBBBFRRR"),
Seat("BBFFBBFRLL"),
}
expected := 820
result := Task1(input)
if result != expected {
t.Errorf("got %d, expected %d", result, expected)
}
}