Spaces:
Sleeping
Sleeping
File size: 1,743 Bytes
de4eb9c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | """Test main TraceEnv interface."""
import pytest
from trace.env import TraceEnv
from trace.models import Action, Observation
def test_env_reset():
"""Test environment reset."""
env = TraceEnv()
obs = env.reset(task_id="easy_cpu_spike", seed=42)
assert isinstance(obs, Observation)
assert obs.cpu_usage_pct >= 0
assert obs.memory_usage_pct >= 0
def test_env_step():
"""Test environment step."""
env = TraceEnv()
env.reset(task_id="easy_cpu_spike", seed=42)
action = Action(
action_type="scale_workers",
target="api_workers",
value=5
)
obs, reward, done, info = env.step(action)
assert isinstance(obs, Observation)
assert isinstance(reward, float)
assert isinstance(done, bool)
assert isinstance(info, dict)
assert "step" in info
def test_env_state():
"""Test environment state query."""
env = TraceEnv()
env.reset(task_id="easy_cpu_spike", seed=42)
state = env.state()
assert "observation" in state
assert "episode_reward" in state
assert "steps" in state
assert "done" in state
def test_env_episode_progression():
"""Test that episode progresses correctly."""
env = TraceEnv()
env.reset(task_id="easy_cpu_spike", seed=42)
initial_reward = env.episode_reward
assert initial_reward == 0.0
# Take action
action = Action(
action_type="inspect_logs",
target="api_workers",
value=None
)
obs, reward, done, info = env.step(action)
# Reward should accumulate
assert env.episode_reward >= initial_reward
assert env.steps == 1
|