Пример #1
0
def test_get_agent_id(db_handle):
    new_agent_id = agent_data.get_agent_id(owner, name, game_type, db_handle)
    same_agent_id = agent_data.get_agent_id(owner, name, game_type, db_handle)

    assert same_agent_id is not None
    assert new_agent_id == same_agent_id

    owners = agent_data.get_owners(db_handle)
    assert len(owners) > 0
Пример #2
0
def test_dynamic_agent_database():
    config = {
        "owner": "test_owner",
        "name": "test_agent",
        "game_type": "test_game",
        "class_name": "BasicAgent",
        "local_path": "battleground.games.basic_game.basic_agent",
        "remote_path": None
    }
    # create an agent ID
    agent_id = agent_data.get_agent_id(owner=config["owner"],
                                       name=config["name"],
                                       game_type=config["game_type"])

    # load file
    module_path = config["local_path"].replace(".", "/") + ".py"
    with open(module_path, 'r') as file:
        code_string = file.read()

    # save to database
    agent_data.save_agent_data(agent_id, code_string, "code")

    # test loading from database
    dynamic_agent = DynamicAgent(owner=config["owner"],
                                 name=config["name"],
                                 game_type=config["game_type"],
                                 class_name=config["class_name"],
                                 from_db=True)

    assert isinstance(dynamic_agent.agent_instance, Agent)
    assert isinstance(dynamic_agent.move(None), dict)
Пример #3
0
def test_with_engine():
    game_type = "test_game"
    num_players = 4
    players = []
    player_mems = {}

    # create agents
    for i in range(num_players):
        owner = "core"
        name = "basic_persistent_{}".format(i)
        agent_id = agent_data.get_agent_id(owner, name, game_type)
        players.append((str(agent_id), PersistentAgent()))

    # run games
    for game_num in range(2):
        engine = BasicGameEngine(num_players=num_players, type=game_type)

        scores = site_runner.run_session(engine, players, 4, save=True)
        assert len(scores) == num_players

        for agent_id, player in players:
            db_memory = agent_data.load_agent_data(agent_id, "memory")
            assert isinstance(db_memory, dict)

            memory = player.get_memory()

            assert db_memory == memory

            if agent_id in player_mems:
                player_mems[agent_id].append(player.get_memory())
            else:
                player_mems[agent_id] = [player.get_memory()]

    #  check that memory after game 1 is different from memory after game 2.
    for _, mem in player_mems.items():
        assert mem[0] != mem[1]