| from app.common.enums import ActionType, DecisionMode, Difficulty, DoseBucket, SubEnvironment |
| from app.common.types import LabSummary, Medication, PatientProfile, PolyGuardAction, PolyGuardState |
| from app.env.termination import check_termination_with_timeout |
|
|
|
|
| def _state() -> PolyGuardState: |
| patient = PatientProfile( |
| patient_id="p1", |
| age=65, |
| sex="F", |
| medications=[Medication(drug="warfarin_like")], |
| labs=LabSummary(), |
| vitals={}, |
| ) |
| return PolyGuardState( |
| episode_id="ep1", |
| seed=1, |
| scenario_id="s1", |
| difficulty=Difficulty.EASY, |
| sub_environment=SubEnvironment.DDI, |
| step_count=0, |
| max_steps=3, |
| patient=patient, |
| ) |
|
|
|
|
| def _action() -> PolyGuardAction: |
| return PolyGuardAction( |
| mode=DecisionMode.REGIMEN_OPT, |
| action_type=ActionType.KEEP_REGIMEN, |
| target_drug=None, |
| replacement_drug=None, |
| dose_bucket=DoseBucket.NA, |
| taper_days=None, |
| monitoring_plan=None, |
| candidate_id="cand_01", |
| confidence=0.7, |
| rationale_brief="test", |
| ) |
|
|
|
|
| def test_wall_clock_timeout_trigger() -> None: |
| done, reason = check_termination_with_timeout( |
| state=_state(), |
| action=_action(), |
| elapsed_seconds=5.0, |
| wall_clock_limit_seconds=1.0, |
| ) |
| assert done |
| assert reason == "wall_clock_timeout" |
|
|