def test_level_ok_completes_level():
    state = State(*list(level_ok.values()))
    for move in level_ok_moves:
        state.next_state(move)
    assert state.filled_storages == [3, 3]
def test_push_two_boxes_from_down():
    state = State(*list(level_two_boxes.values()))
    for move in push_two_boxes_from_down:
        state.next_state(move)
    assert state.player == (2, 6)
def test_move_into_wall_down():
    state = State(*list(level_move_into_walls.values()))
    for move in move_into_wall_down:
        state.next_state(move)
    assert state.player == (1, 4)
def test_move_into_wall_right():
    state = State(*list(level_move_into_walls.values()))
    for move in move_into_wall_right:
        state.next_state(move)
    assert state.player == (2, 1)
def test_move_out_down():
    state = State(*list(level_move_out_of_screen.values()))
    for move in move_out_down:
        state.next_state(move)
    assert state.player == (1, 3)
def test_move_out_right():
    state = State(*list(level_move_out_of_screen.values()))
    for move in move_out_right:
        state.next_state(move)
    assert state.player == (5, 1)