Beispiel #1
0
def test_empty_moveleft():
    # Given
    map, manager = loadMap("test_empty.json")

    # When
    manager.execute_turn(Direction.LEFT)

    #Then
    p = _find_one_player(map)
    assert not p.is_alive
    assert p.position == Position(0, 0)
Beispiel #2
0
def test_spike_moveup():
    # Given
    map, manager = loadMap("test_spike.json")

    # When
    manager.execute_turn(Direction.UP)

    # Then
    p = _find_one_player(map)
    assert p.position == Position(0, 3)
    assert not p.is_alive
Beispiel #3
0
def test_two_ducks_against_melting_ice():
    # Given
    map, manager = loadMap("test_multi_ducks_with_ice.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    p1: 'Player'= map.block(Position(4, 0)).top()
    assert p1.is_alive
    p2: 'Player' = map.block(Position(5, 0)).top()
    assert p2.is_alive
Beispiel #4
0
def test_boulder():
    # Given
    map, manager = loadMap("test_boulder.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    player: Player = map.block(Position(3, 0)).top()
    assert player.is_alive
    boulder: Boulder = map.block(Position(4, 0)).top()
    assert type(boulder) == Boulder
Beispiel #5
0
def test_stone_movearound():
    # Given
    map, manager = loadMap("test_stone_4x4.json")

    # When-Then
    manager.execute_turn(Direction.RIGHT)
    assert _find_one_player(map).position == Position(2, 1)
    manager.execute_turn(Direction.DOWN)
    assert _find_one_player(map).position == Position(2, 2)
    manager.execute_turn(Direction.LEFT)
    assert _find_one_player(map).position == Position(1, 2)
    manager.execute_turn(Direction.UP)
    assert _find_one_player(map).position == Position(1, 1)
Beispiel #6
0
def test_duckpool():
    # Given
    map, manager = loadMap("test_duckpool.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    assert _find_one_player(map) is None
    pool: DuckPoolBlock = map.block(Position(3, 0)).top()
    assert pool.capacity == -1
    assert pool.free_space == -1
    assert len(pool._blocks_in_pool) == 1
Beispiel #7
0
def test_spike_movedown():
    # Given
    map, manager = loadMap("test_spike.json")
    p = _find_one_player(map)
    map.move(pos_from=Position(0, 5), pos_to=Position(0, 1), what=p)

    # When
    manager.execute_turn(Direction.DOWN)

    # Then
    p = _find_one_player(map)
    assert p.position == Position(0, 1)
    assert p.is_alive
Beispiel #8
0
def test_duck_boulder_duck():
    # Given
    map, manager = loadMap("test_duck_boulder_duck.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    p1: 'Player'= map.block(Position(3, 0)).top()
    assert p1.is_alive
    p2: 'Player' = map.block(Position(5, 0)).top()
    assert p2.is_alive
    assert type(map.block(Position(4, 0)).top()) == Boulder
Beispiel #9
0
def test_spike_moveup_directhit():
    # Given
    map, manager = loadMap("test_spike.json")
    p = _find_one_player(map)
    map.move(pos_from=Position(0, 5), pos_to=Position(0, 3), what=p)


    # When
    manager.execute_turn(Direction.UP)
    p = _find_one_player(map)

    # Then
    assert p.position == Position(0, 3)
    assert not p.is_alive
Beispiel #10
0
def test_move_one_duck():
    # Given
    map, manager = loadMap("test_move_one_duck.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    player: Player = map.block(Position(2, 0)).top()
    assert player.is_alive

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    player: Player = map.block(Position(3, 0)).top()
    assert player.is_alive
Beispiel #11
0
def test_two_ducks_move_in_row():
    # Given
    map, manager = loadMap("test_multi_ducks.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    p1: 'Player' = map.block(Position(4, 0)).top()
    assert p1.is_alive
    p2: 'Player' = map.block(Position(5, 0)).top()
    assert p2.is_alive

    # When
    manager.execute_turn(Direction.LEFT)

    # Then
    p1: 'Player' = map.block(Position(1, 0)).top()
    assert p1.is_alive
    p2: 'Player' = map.block(Position(2, 0)).top()
    assert p2.is_alive
Beispiel #12
0
def test_melting_ice():
    # Given
    map, manager = loadMap("test_melting_ice.json")

    # When-Then
    manager.execute_turn(Direction.DOWN)
    p = _find_one_player(map)
    assert p.position == Position(0, 4)
    assert p.is_alive

    # When-Then
    manager.execute_turn(Direction.UP)
    manager.execute_turn(Direction.DOWN)
    p = _find_one_player(map)
    assert p.position == Position(0, 4)
    assert p.is_alive

    # When-Then
    manager.execute_turn(Direction.UP)
    manager.execute_turn(Direction.DOWN)
    p = _find_one_player(map)
    # Ice is now broken
    assert p.position == Position(0, 5)
    assert p.is_alive
Beispiel #13
0
def test_multiple_frogs():
    # Given
    map, manager = loadMap("test_multiple_frogs.json")

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    p: 'Player' = map.block(Position(2, 0)).top()
    assert p.is_alive
    p = map.block(Position(3, 0)).top()
    assert p.is_alive
    p = map.block(Position(4, 0)).top()
    assert p.is_alive

    # When
    manager.execute_turn(Direction.RIGHT)

    # Then
    p: 'Player' = map.block(Position(3, 0)).top()
    assert p.is_alive
    p = map.block(Position(4, 0)).top()
    assert p.is_alive
    p = map.block(Position(5, 0)).top()
    assert p.is_alive

    # When
    manager.execute_turn(Direction.LEFT)

    # Then
    p: 'Player' = map.block(Position(1, 0)).top()
    assert p.is_alive
    p = map.block(Position(3, 0)).top()
    assert p.is_alive
    p = map.block(Position(4, 0)).top()
    assert p.is_alive