예제 #1
0
def test_location_in_direction():
    input_data = get_input_data("tests/day11/test_input_data.txt")
    output_data = get_input_data("tests/day11/test_results_part2_data.txt")

    input_grid = Grid2(input_data)
    output_grid = Grid2(output_data)

    current_grid = input_grid
    while True:
        new_grid = update_grid2(current_grid)

        if current_grid == new_grid:
            break
        else:
            current_grid = new_grid

    assert new_grid == output_grid
예제 #2
0
def test_integration():
    input_data = get_input_data("tests/day11/test_input_data.txt")
    output_data = get_input_data("tests/day11/test_results_data.txt")

    input_grid = Grid(input_data)
    output_grid = Grid(output_data)

    current_grid = input_grid
    while True:
        new_grid = update_grid(current_grid)

        if current_grid == new_grid:
            break
        else:
            current_grid = new_grid

    assert new_grid == output_grid
예제 #3
0
def main():
    input_data = get_input_data("advent_of_code_2020/day11/input.txt")

    grid = Grid(input_data)

    # Part 2
    current_grid = grid
    while True:
        new_grid = update_grid(current_grid)
        if current_grid == new_grid:
            break
        else:
            current_grid = new_grid

    result_part2 = sum(
        current_grid.is_occupied(location)
        for location in current_grid.get_locations())

    print(f"{result_part2} seats are occupied seats")
예제 #4
0
def test_see_occupied_seats():
    input_data = get_input_data("tests/day11/test_input_data.txt")
    input_grid = Grid2(input_data)
예제 #5
0
def test_location():
    input_data = get_input_data("tests/day11/test_input_data.txt")
    input_grid = Grid(input_data)

    assert len(list(input_grid.get_neighbours(Location(0, 0)))) == 3