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) } }