51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
# © Crown-owned copyright 2025, Defence Science and Technology Laboratory UK
|
|
from pprint import pprint
|
|
|
|
import pytest
|
|
import yaml
|
|
|
|
from primaite.config.load import data_manipulation_config_path
|
|
from primaite.game.agent.interface import AgentHistoryItem
|
|
from primaite.session.environment import PrimaiteGymEnv
|
|
|
|
|
|
@pytest.fixture()
|
|
def create_env():
|
|
with open(data_manipulation_config_path(), "r") as f:
|
|
cfg = yaml.safe_load(f)
|
|
|
|
env = PrimaiteGymEnv(env_config=cfg)
|
|
return env
|
|
|
|
|
|
def test_rng_seed_set(create_env):
|
|
"""Test with RNG seed set."""
|
|
env = create_env
|
|
env.reset(seed=3)
|
|
for i in range(100):
|
|
env.step(0)
|
|
a = [item.timestep for item in env.game.agents["client_2_green_user"].history if item.action != "do-nothing"]
|
|
|
|
env.reset(seed=3)
|
|
for i in range(100):
|
|
env.step(0)
|
|
b = [item.timestep for item in env.game.agents["client_2_green_user"].history if item.action != "do-nothing"]
|
|
|
|
assert a == b
|
|
|
|
|
|
def test_rng_seed_unset(create_env):
|
|
"""Test with no RNG seed."""
|
|
env = create_env
|
|
env.reset()
|
|
for i in range(100):
|
|
env.step(0)
|
|
a = [item.timestep for item in env.game.agents["client_2_green_user"].history if item.action != "do-nothing"]
|
|
|
|
env.reset()
|
|
for i in range(100):
|
|
env.step(0)
|
|
b = [item.timestep for item in env.game.agents["client_2_green_user"].history if item.action != "do-nothing"]
|
|
|
|
assert a != b
|