diff --git a/tests/scripts/test_audit_anomalies.py b/tests/scripts/test_audit_anomalies.py new file mode 100644 index 000000000..b6acf3fde --- /dev/null +++ b/tests/scripts/test_audit_anomalies.py @@ -0,0 +1,48 @@ +from typing import Optional + +import pytest + +from scripts.audit.anomalies import ( + PropertyAudit, + _effective_lodged_divergence, +) + + +def _make_audit( + *, + lodged_sap: Optional[float], + effective_sap: Optional[float], + rebaseline_reason: str = "both", +) -> PropertyAudit: + return PropertyAudit( + property_id=1, + uprn=None, + portfolio_id=796, + scenario_id=None, + scenario_goal_band=None, + lodged_sap=lodged_sap, + lodged_band=None, + effective_sap=effective_sap, + effective_band=None, + rebaseline_reason=rebaseline_reason, + post_sap=None, + post_band=None, + cost_of_works=None, + energy_bill_savings=None, + energy_consumption_savings=None, + solar_sap_points=None, + solar_bill_savings=None, + n_measures=0, + ) + + +class TestEffectiveLodgedDivergence: + def test_silent_when_lodged_sap_below_floor(self) -> None: + # Arrange — Class C exemplar: lodged=1, effective=76 (gap +75, but lodged is implausible upstream data) + audit = _make_audit(lodged_sap=1.0, effective_sap=76.0) + + # Act + result = _effective_lodged_divergence(audit) + + # Assert + assert result is None