File size: 1,098 Bytes
363abf3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from env import WildfireEnv
from env.serialization import serialize_observation


def test_serialize_produces_all_sections(fresh_env):
    obs = fresh_env.reset(task_id="easy", seed=42)
    text = serialize_observation(obs, step_num=0, max_steps=80)
    for section in ["SITUATION:", "GRID SUMMARY", "RESOURCES:", "RECENT EVENTS:", "Available actions:"]:
        assert section in text, f"Missing section: {section}"


def test_serialize_handles_fog_of_war(fresh_env):
    obs = fresh_env.reset(task_id="hard", seed=42)
    text = serialize_observation(obs, step_num=0, max_steps=300)
    assert "[?]" in text, "Expected fog-of-war marker [?] in hard tier output"


def test_serialize_length_under_2048_tokens(fresh_env):
    for tier, max_steps in [("easy", 80), ("medium", 150), ("hard", 300)]:
        obs = fresh_env.reset(task_id=tier, seed=42)
        text = serialize_observation(obs, step_num=0, max_steps=max_steps)
        word_count = len(text.split())
        assert word_count < 1500, (
            f"Tier {tier}: serialized prompt too long ({word_count} words, limit 1500)"
        )