TheJackBright's picture
Deploy GitHub root master to Space
c296d62
raw
history blame contribute delete
978 Bytes
from __future__ import annotations
import pickle
from pathlib import Path
from app.models.graph.infer import infer_graph_risk
class BrokenProbabilityModel:
def predict_proba(self, _encoded):
raise AttributeError("multi_class")
class FakeLabelBinarizer:
classes_ = ["dizziness"]
def test_graph_inference_uses_deterministic_fallback_for_stale_model(tmp_path: Path) -> None:
model_path = tmp_path / "graph_model.pkl"
with model_path.open("wb") as handle:
pickle.dump(
{
"severe_model": BrokenProbabilityModel(),
"side_model": BrokenProbabilityModel(),
"mlb": FakeLabelBinarizer(),
},
handle,
)
risk = infer_graph_risk(["warfarin", "aspirin"], model_path=model_path)
assert 0.0 <= risk["severe_alert_probability"] <= 1.0
assert isinstance(risk["side_effect_probs"], dict)
assert "warfarin__aspirin" in risk["pairwise_ddi_severity"]