Eshit's picture
Deploy to HF Space
363abf3
from env import WildfireEnv
from env.briefing import briefing_to_text
from env.serialization import serialize_observation
from agents.heuristic_agent import HeuristicAgent
def test_briefing_generated_on_reset():
env = WildfireEnv()
obs = env.reset(task_id="medium", seed=42)
assert obs.briefing is not None, "Briefing should be present on first obs"
assert len(obs.briefing.priority_populated_zones) >= 1, "Should have at least 1 priority zone"
assert obs.briefing.incident_id != ""
assert obs.briefing.ignition_cause != ""
def test_briefing_adherence_bonus():
env = WildfireEnv()
agent = HeuristicAgent()
obs = env.reset(task_id="easy", seed=42)
total_reward = 0.0
while not env.done:
action = agent.act(obs)
result = env.step(action)
total_reward += result.reward
obs = result.observation
final = env.state()
pop_lost = final.get("population_lost", 0)
# On easy with heuristic seed=42, all pop should be saved -> briefing bonus applies
if pop_lost == 0:
assert total_reward > 5.0, (
f"Expected reward > 5.0 (includes +1 briefing bonus) but got {total_reward}"
)
def test_briefing_in_serialized_prompt():
env = WildfireEnv()
obs = env.reset(task_id="medium", seed=42)
text = serialize_observation(obs, 0, 150)
assert "OPERATIONAL BRIEFING" in text, "Briefing header missing from serialized prompt"
assert "PRIORITY 1" in text
assert "Commander's intent" in text