def test_getting_row(seat_code, expected_seat_row): SEAT_CODE = seat_code expected_row = expected_seat_row seat_finder = SeatFinder(SEAT_CODE) actual_row = seat_finder.get_row_location_code() assert actual_row == expected_row
def test_getting_seat_id(seat_row, seat_column, expected_seat_column): seat_finder = SeatFinder("dummy") actual_id = seat_finder.get_seat_id(seat_column, seat_row) assert actual_id == expected_seat_column
def test_getting_seat(seat_code, expected_seat_id): seat_finder = SeatFinder(seat_code) actual_seat_id = seat_finder.get_seat() assert actual_seat_id == expected_seat_id
def test_prefer_near_the_front(self): finder = SeatFinder(available_seats={"A6", "B6", "C7"}) seats = finder.find_seats(1) assert seats == {"A6"}
def test_getting_column(seat_code, expected_seat_column): seat_finder = SeatFinder(seat_code) actual_column = seat_finder.get_column_location_code() assert actual_column == expected_seat_column
def test_find_seats_for_wheelchair_users_on_front_row(self): finder = SeatFinder(available_seats={"A1W", "A6", "A7", "C7"}) seats = finder.find_seats(1, wheelchair_count=1) assert seats == {"A1W"}
def test_find_seats_fails_when_not_enough_available(self): finder = SeatFinder(available_seats={"A6", "B6", "C7"}) seats = finder.find_seats(5) assert seats == {}
def test_finds_separate_seats_when_adjecent_not_avalable(self): finder = SeatFinder(available_seats={"A6", "B6", "C7"}) seats = finder.find_seats(2) assert seats == {"B6", "A6"}
def test_finds_adjecent_seats_when_more_than_one_requested(self): finder = SeatFinder(available_seats={"A6", "A8", "C6", "C7"}) seats = finder.find_seats(2) assert seats == {"C6", "C7"}
from seat_finder import SeatFinder with (open("day_5/solution/seat_codes.txt", "r")) as f: data = f.readlines() list_of_rows = [code.strip() for code in data] max_id = 0 taken_seats = set() for code in list_of_rows: seat_finder = SeatFinder(code) actual_seat_id = seat_finder.get_seat() taken_seats.add(actual_seat_id) if actual_seat_id > max_id: max_id = actual_seat_id list_of_existing_seats = set(range(71, 956)) print(list_of_existing_seats.difference(taken_seats))