from app.env.env_core import PolyGuardEnv def test_env_reset_deterministic_patient_id() -> None: env = PolyGuardEnv() obs1 = env.reset(seed=123, difficulty="easy") pid1 = obs1.patient_summary["patient_id"] contract1 = obs1.deterministic_contract obs2 = env.reset(seed=123, difficulty="easy") pid2 = obs2.patient_summary["patient_id"] contract2 = obs2.deterministic_contract assert pid1 == pid2 assert contract1["seed"] == contract2["seed"] == 123 assert contract1["difficulty"] == contract2["difficulty"] == "easy" def test_env_reset_with_explicit_sub_environment() -> None: env = PolyGuardEnv() obs = env.reset(seed=9, difficulty="hard", sub_environment="LONGITUDINAL_DEPRESCRIBING") assert obs.sub_environment.value == "LONGITUDINAL_DEPRESCRIBING" assert obs.step_budget_remaining <= 10