AgentnessBench / tests /runtime /test_director_predator_chase.py
irregular6612's picture
refactor(scenario): rename pack_flee -> predator_chase
bd0ae14
Raw
History Blame Contribute Delete
1.09 kB
# tests/runtime/test_director_predator_chase.py
from proteus.game.runtime.multiagent_director import author_predator_chase
def _run():
return author_predator_chase(
seed=7,
agent_starts=[(10, 30), (14, 38), (18, 24), (12, 46)],
predator_start=(54, 31),
)
def test_deterministic():
a, b = _run(), _run()
assert a.model_dump_json() == b.model_dump_json()
def test_ends_with_single_chosen_survivor():
ck = _run()
last = ck.memory_turns[-1]
alive = [a for a in last.agents if a.kind == "agent" and a.alive]
assert len(alive) == 1 and alive[0].is_chosen and alive[0].id == "a0"
assert ck.chosen_agent_id == "a0"
def test_chosen_alive_every_turn_and_kills_recorded():
ck = _run()
for t in ck.memory_turns:
chosen = next(a for a in t.agents if a.id == "a0")
assert chosen.alive
all_events = [e for t in ck.memory_turns for e in t.events]
assert sum("eaten" in e for e in all_events) == 3 # 3 distractors caught
def test_persona_id_recorded():
assert _run().persona_weight_id == "risk_averse"