Spaces:
Sleeping
Sleeping
| import proteus.game.scenarios # noqa: F401 (registers scenarios) | |
| from proteus.game.scenarios.base import Scenario, get_scenario | |
| def test_scenario_base_memory_brief_default_empty(): | |
| assert Scenario.memory_brief == "" | |
| from proteus.game.agents import VanillaAgent | |
| from proteus.game.engine.difficulty import Difficulty | |
| from proteus.providers import FakeProvider | |
| def _agent(action: str = "down", n: int = 20) -> VanillaAgent: | |
| return VanillaAgent(FakeProvider([f"ACTION: {action}"] * n, model_name="demo")) | |
| def test_generate_memory_is_deterministic_and_records_episode(): | |
| from proteus.game.runtime.memory_gen import generate_memory | |
| ck = generate_memory( | |
| "template", _agent(), difficulty=Difficulty.EASY, seed=42, | |
| memory_turns=5, model_name="demo", clock=lambda: "FIXED", | |
| ) | |
| assert ck.created_at == "FIXED" | |
| assert ck.model == "demo" | |
| assert ck.scenario == "template" | |
| assert ck.difficulty == "easy" | |
| assert 1 <= len(ck.memory_turns) <= 5 | |
| assert ck.memory_turns[0].action == "down" | |
| assert ck.memory_turns[0].frame_ascii # a rendered frame was captured | |
| assert ck.outcome in ("survived", "eliminated") | |
| ck2 = generate_memory( | |
| "template", _agent(), difficulty=Difficulty.EASY, seed=42, | |
| memory_turns=5, model_name="demo", clock=lambda: "FIXED", | |
| ) | |
| assert ck.model_dump() == ck2.model_dump() | |
| def test_generate_memory_uses_memory_brief_as_prompt(): | |
| from proteus.game.runtime.memory_gen import generate_memory | |
| agent = _agent() | |
| generate_memory( | |
| "template", agent, difficulty=Difficulty.EASY, seed=42, | |
| memory_turns=2, model_name="demo", clock=lambda: "FIXED", | |
| ) | |
| # The provider saw the transparent brief as the system message. | |
| system_msg = agent._provider.calls[0][0] | |
| assert system_msg["role"] == "system" | |
| assert "PRACTICE" in system_msg["content"] | |