Spaces:
Running
Running
File size: 1,175 Bytes
877add7 | 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 27 28 29 30 31 32 | from app.common.enums import ActionType, DecisionMode, DoseBucket
from app.common.types import CandidateAction
from app.models.policy.provider_runtime import PolicyProviderRouter
def _candidate(idx: int, delta: float, uncertainty: float) -> CandidateAction:
return CandidateAction(
candidate_id=f"cand_{idx:02d}",
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,
estimated_safety_delta=delta,
burden_delta=0.0,
disease_stability_estimate=0.7,
uncertainty_score=uncertainty,
rationale_tags=["test"],
required_monitoring=[],
legality_precheck=True,
)
def test_provider_router_returns_valid_candidate() -> None:
router = PolicyProviderRouter(ollama_model="qwen2.5:1.5b-instruct")
candidates = [_candidate(1, 0.05, 0.6), _candidate(2, 0.2, 0.2)]
selection = router.select_candidate(candidates, prompt={"task": "test"})
assert selection.candidate_id in {"cand_01", "cand_02"}
assert selection.provider
|