Spaces:
Sleeping
Sleeping
| """Runtime and memory budget smoke tests for dispatch environment.""" | |
| from __future__ import annotations | |
| import gc | |
| import time | |
| import tracemalloc | |
| from src.openenv_environment import OpenEnvEnvironment | |
| def _run_steps(task_id: str, seed: int, num_steps: int) -> None: | |
| import asyncio | |
| env = OpenEnvEnvironment(task_id=task_id, seed=seed) | |
| asyncio.run(env.reset()) | |
| for _ in range(num_steps): | |
| legal = env.legal_actions() | |
| if not legal: | |
| break | |
| asyncio.run(env.step(legal[0])) | |
| env.close() | |
| def test_50_steps_under_30_seconds() -> None: | |
| gc.collect() | |
| start = time.perf_counter() | |
| _run_steps("multi_incident", seed=42, num_steps=50) | |
| elapsed = time.perf_counter() - start | |
| assert elapsed < 30.0 | |
| def test_no_large_memory_growth_over_50_steps() -> None: | |
| gc.collect() | |
| tracemalloc.start() | |
| _run_steps("single_incident", seed=42, num_steps=1) | |
| snap1 = tracemalloc.take_snapshot() | |
| mem1 = sum(s.size for s in snap1.statistics("lineno")) | |
| _run_steps("single_incident", seed=42, num_steps=50) | |
| snap2 = tracemalloc.take_snapshot() | |
| mem2 = sum(s.size for s in snap2.statistics("lineno")) | |
| tracemalloc.stop() | |
| growth_mb = (mem2 - mem1) / (1024 * 1024) | |
| assert growth_mb < 25.0 | |