コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
 def test_prefer_near_the_front(self):
     finder = SeatFinder(available_seats={"A6", "B6", "C7"})
     seats = finder.find_seats(1)
     assert seats == {"A6"}
コード例 #5
0
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
コード例 #6
0
 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"}
コード例 #7
0
 def test_find_seats_fails_when_not_enough_available(self):
     finder = SeatFinder(available_seats={"A6", "B6", "C7"})
     seats = finder.find_seats(5)
     assert seats == {}
コード例 #8
0
 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"}
コード例 #9
0
 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"}
コード例 #10
0
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))