Spaces:
Sleeping
Sleeping
| """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 | |