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