openenv-distributed-systems-debugging / tests /test_env_reward_bounds.py
Veer15's picture
Upload folder using huggingface_hub
3d75167 verified
Raw
History Blame Contribute Delete
2.73 kB
from pathlib import Path
from server.env import DistributedDebugEnv
from server.models import Observation, SystemMetrics
def _observation(*, success: float, depth: int, restarts: int, stalls: int) -> Observation:
return Observation(
command_output="ok",
metrics=SystemMetrics(
gateway_success_rate=success,
gateway_p99_latency_ms=100.0,
queue_depth=depth,
worker_restart_count=restarts,
consumer_stall_count=stalls,
),
process_status={"gateway": "running"},
)
def test_compute_reward_no_command_uses_open_interval_floor(tmp_path: Path) -> None:
env = DistributedDebugEnv(project_root=tmp_path, mesh_root=tmp_path / "mesh")
current = _observation(success=0.5, depth=10, restarts=0, stalls=0)
reward = env._compute_reward(
command="__NO_COMMAND_PROVIDED__",
current=current,
previous=current,
grader_score=0.5,
previous_grader_score=0.5,
command_error="no_command_provided",
)
assert reward == 0.01
def test_compute_reward_terminal_success_uses_open_interval_ceiling(tmp_path: Path) -> None:
env = DistributedDebugEnv(project_root=tmp_path, mesh_root=tmp_path / "mesh")
current = _observation(success=0.99, depth=0, restarts=0, stalls=0)
reward = env._compute_reward(
command="redis-cli LLEN job_queue",
current=current,
previous=current,
grader_score=0.95,
previous_grader_score=0.9,
command_error=None,
)
assert reward == 0.99
def test_compute_reward_final_clamp_stays_open_interval(tmp_path: Path) -> None:
env = DistributedDebugEnv(project_root=tmp_path, mesh_root=tmp_path / "mesh")
previous = _observation(success=0.3, depth=40, restarts=5, stalls=3)
current = _observation(success=0.9, depth=5, restarts=1, stalls=0)
reward = env._compute_reward(
command="redis-cli set debug_key value",
current=current,
previous=previous,
grader_score=0.94,
previous_grader_score=0.2,
command_error=None,
)
assert reward == 0.99
def test_compute_reward_penalty_clamps_to_open_interval_floor(tmp_path: Path) -> None:
env = DistributedDebugEnv(project_root=tmp_path, mesh_root=tmp_path / "mesh")
previous = _observation(success=0.9, depth=2, restarts=0, stalls=0)
current = _observation(success=0.1, depth=50, restarts=5, stalls=5)
env.last_exit_code = 1
reward = env._compute_reward(
command="echo",
current=current,
previous=previous,
grader_score=0.01,
previous_grader_score=0.9,
command_error="blocked_command",
)
assert reward == 0.01