Files
stack/tests/lead/test_high_needs.py

77 lines
2.4 KiB
Python

"""High Needs criteria from caller-supplied quarter flags."""
from __future__ import annotations
from lead.high_needs import QuarterFlags, alignment_year, criteria_met, persists
def test_ad_score_at_3_is_hn4_and_not_hn6():
met = criteria_met(QuarterFlags(quarter="2027Q1", ad_score=3.0))
assert met == frozenset({"HN.4"})
def test_ad_band_with_two_admissions_is_hn6():
met = criteria_met(
QuarterFlags(quarter="2027Q1", ad_score=2.0, unplanned_admissions=2)
)
assert met == frozenset({"HN.6"})
def test_ad_band_with_one_admission_meets_nothing():
met = criteria_met(
QuarterFlags(quarter="2027Q1", ad_score=2.0, unplanned_admissions=1)
)
assert met == frozenset()
def test_ad_below_the_band_meets_nothing():
met = criteria_met(
QuarterFlags(quarter="2027Q1", ad_score=1.999, unplanned_admissions=2)
)
assert met == frozenset()
def test_esrd_score_at_0_35_is_hn5_and_not_hn6():
met = criteria_met(QuarterFlags(quarter="2027Q1", esrd_score=0.35))
assert "HN.5" in met
assert "HN.6" not in met
def test_esrd_band_with_two_admissions_is_hn6():
met = criteria_met(
QuarterFlags(quarter="2027Q1", esrd_score=0.24, unplanned_admissions=2)
)
assert met == frozenset({"HN.6"})
def test_forty_five_snf_days_meet_hn7():
assert "HN.7" in criteria_met(QuarterFlags(quarter="2027Q1", snf_days=45))
assert "HN.7" not in criteria_met(QuarterFlags(quarter="2027Q1", snf_days=44))
def test_diagnosis_and_dme_are_separate_criteria():
assert criteria_met(
QuarterFlags(quarter="2027Q1", hn1_diagnosis=True)
) == frozenset({"HN.1"})
assert criteria_met(QuarterFlags(quarter="2027Q1", hn2_dme=True)) == frozenset(
{"HN.2"}
)
def test_kim_needs_both_the_index_and_the_cutoff():
assert "HN.3" in criteria_met(
QuarterFlags(quarter="2027Q1", kim_index=0.2, kim_cutoff=0.2)
)
assert "HN.3" not in criteria_met(QuarterFlags(quarter="2027Q1", kim_index=0.2))
assert "HN.3" not in criteria_met(QuarterFlags(quarter="2027Q1", kim_cutoff=0.2))
def test_one_quarter_sets_the_alignment_year():
quiet = QuarterFlags(quarter="2027Q1")
met = QuarterFlags(quarter="2027Q2", snf_days=45)
assert alignment_year((quiet, met, quiet, quiet)) == frozenset({"HN.7"})
def test_a_met_criterion_never_goes_away():
assert persists(frozenset({"HN.1"}), frozenset()) == frozenset({"HN.1"})