Esempio n. 1
0
def test_expire_venus_flowers_when_there_are_no_healthy_flowers():
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[[
                         VenusBeeTrap(sentinel.x1,
                                      sentinel.y1,
                                      DEFAULT_GAME_PARAMETERS,
                                      sentinel.potency,
                                      sentinel.visits,
                                      expires=100),
                         VenusBeeTrap(sentinel.x2,
                                      sentinel.y2,
                                      DEFAULT_GAME_PARAMETERS,
                                      sentinel.potency,
                                      sentinel.visits,
                                      expires=200)
                     ]],
                     turn_num=100,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert game.boards[0].flowers == (VenusBeeTrap(sentinel.x2,
                                                   sentinel.y2,
                                                   DEFAULT_GAME_PARAMETERS,
                                                   sentinel.potency,
                                                   sentinel.visits,
                                                   expires=200), )
Esempio n. 2
0
def test_flowers_remain_if_unexpired():
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[[
                         Flower(sentinel.x,
                                sentinel.y,
                                DEFAULT_GAME_PARAMETERS,
                                sentinel.potency,
                                sentinel.visits,
                                expires=100)
                     ]],
                     turn_num=0,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert game.boards[0].flowers == (Flower(sentinel.x,
                                             sentinel.y,
                                             DEFAULT_GAME_PARAMETERS,
                                             sentinel.potency,
                                             sentinel.visits,
                                             expires=100), )
Esempio n. 3
0
def test_keep_one_healthy_flower_if_all_expired():
    healthy_flower = Flower(sentinel.x,
                            sentinel.y,
                            DEFAULT_GAME_PARAMETERS,
                            sentinel.potency,
                            sentinel.visits,
                            expires=99)
    venus = VenusBeeTrap(sentinel.x,
                         sentinel.y,
                         DEFAULT_GAME_PARAMETERS,
                         sentinel.potency,
                         sentinel.visits,
                         expires=99)
    flowers = [healthy_flower, venus]
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[flowers],
                     turn_num=100,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert len(game.boards[0].flowers) == 1
    assert game.boards[0].flowers[0] == healthy_flower
Esempio n. 4
0
def test_only_expired_flowers_removed_from_mixed_bunch():
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[[
                         Flower(sentinel.x1,
                                sentinel.y1,
                                DEFAULT_GAME_PARAMETERS,
                                sentinel.potency1,
                                sentinel.visits1,
                                expires=10),
                         Flower(sentinel.x2,
                                sentinel.y2,
                                DEFAULT_GAME_PARAMETERS,
                                sentinel.potency2,
                                sentinel.visits2,
                                expires=50),
                         Flower(sentinel.x3,
                                sentinel.y3,
                                DEFAULT_GAME_PARAMETERS,
                                sentinel.potency3,
                                sentinel.visits3,
                                expires=100),
                         VenusBeeTrap(sentinel.x3,
                                      sentinel.y3,
                                      DEFAULT_GAME_PARAMETERS,
                                      sentinel.potency3,
                                      sentinel.visits3,
                                      expires=50),
                         VenusBeeTrap(sentinel.x3,
                                      sentinel.y3,
                                      DEFAULT_GAME_PARAMETERS,
                                      sentinel.potency3,
                                      sentinel.visits3,
                                      expires=100),
                     ]],
                     turn_num=75,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert game.boards[0].flowers == (
        Flower(sentinel.x3,
               sentinel.y3,
               DEFAULT_GAME_PARAMETERS,
               sentinel.potency3,
               sentinel.visits3,
               expires=100),
        VenusBeeTrap(sentinel.x3,
                     sentinel.y3,
                     DEFAULT_GAME_PARAMETERS,
                     sentinel.potency3,
                     sentinel.visits3,
                     expires=100),
    )
Esempio n. 5
0
def test_do_nothing_if_there_are_no_flowers():
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[[]],
                     turn_num=100,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert len(game.boards[0].flowers) == 0
Esempio n. 6
0
def test_no_expiry_causes_error():
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[[
                         Flower(sentinel.x,
                                sentinel.y,
                                DEFAULT_GAME_PARAMETERS,
                                sentinel.potency,
                                sentinel.visits,
                                expires=None)
                     ]],
                     turn_num=0,
                     game_length=sentinel.game_length)

    with pytest.raises(RuntimeError):
        game.remove_dead_flowers()
Esempio n. 7
0
def test_flowers_and_venus_removed_if_expired():
    flowers = [
        Flower(sentinel.x,
               sentinel.y,
               DEFAULT_GAME_PARAMETERS,
               sentinel.potency,
               sentinel.visits,
               expires=99),
        Flower(sentinel.x,
               sentinel.y,
               DEFAULT_GAME_PARAMETERS,
               sentinel.potency,
               sentinel.visits,
               expires=102),
        VenusBeeTrap(sentinel.x,
                     sentinel.y,
                     DEFAULT_GAME_PARAMETERS,
                     sentinel.potency,
                     sentinel.visits,
                     expires=99),
        VenusBeeTrap(sentinel.x,
                     sentinel.y,
                     DEFAULT_GAME_PARAMETERS,
                     sentinel.potency,
                     sentinel.visits,
                     expires=102)
    ]
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[flowers],
                     turn_num=100,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert game.boards[0].flowers == (flowers[1], flowers[3])
Esempio n. 8
0
def test_remove_over_expired_flowers_if_new_are_made():
    flowers = [
        Flower(sentinel.x,
               sentinel.y,
               DEFAULT_GAME_PARAMETERS,
               sentinel.potency,
               sentinel.visits,
               expires=99)
    ]
    game = GameState(game_params=DEFAULT_GAME_PARAMETERS,
                     game_id=sentinel.game_id,
                     boards=1,
                     board_width=10,
                     board_height=10,
                     hives=[sentinel.hives],
                     flowers=[flowers],
                     turn_num=100,
                     game_length=sentinel.game_length)

    game.remove_dead_flowers()

    assert len(game.boards[0].flowers) == 1
    assert game.boards[0].flowers[0] in flowers

    flower = Flower(sentinel.x,
                    sentinel.y,
                    DEFAULT_GAME_PARAMETERS,
                    sentinel.potency,
                    sentinel.visits,
                    expires=203)

    game.boards[0].flowers += (flower, )
    game.remove_dead_flowers()

    assert len(game.boards[0].flowers) == 1
    assert game.boards[0].flowers[0] == flower