fixing incorrect condition in best practice measures

This commit is contained in:
Khalim Conn-Kowlessar 2026-02-24 20:11:48 +00:00
parent 088ea1e1c2
commit d85c44f039
4 changed files with 11 additions and 8 deletions

2
.idea/Model.iml generated
View file

@ -7,7 +7,7 @@
<sourceFolder url="file://$MODULE_DIR$/open_uprn" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/recommendations" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="Python 3.9 (Stonewater Map App)" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="Fastapi-backend" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

2
.idea/misc.xml generated
View file

@ -3,7 +3,7 @@
<component name="Black">
<option name="sdkName" value="Python 3.10 (backend)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (Stonewater Map App)" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Fastapi-backend" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>

View file

@ -306,7 +306,6 @@ def add_best_practice_measures(
solution: List[Dict[str, Any]],
recommendations: Dict[int, List[List[Dict[str, Any]]]],
selected: Set[str],
needs_ventilation: bool
):
"""
Ensures best-practice measures like ventilation and trickle vents are included
@ -327,8 +326,6 @@ def add_best_practice_measures(
All recommendations for all properties, keyed by property id.
selected : set
Set of already selected recommendation IDs.
needs_ventilation : bool
Whether the property requires mechanical ventilation to accompany certain measures.
Returns
-------
@ -338,7 +335,13 @@ def add_best_practice_measures(
# Check if any selected measure requires ventilation
ventilation_selected = [r for r in solution if "+mechanical_ventilation" in r["type"]]
if needs_ventilation:
# If ventilation has been selected, or one of the measures needs ventilation, we need to ensure ventilation is
# included
measures_selected_needing_ventilation = any(
x in [r["type"] for r in solution] for x in assumptions.measures_needing_ventilation
)
if measures_selected_needing_ventilation or len(ventilation_selected) > 0:
ventilation_rec = next(
(r[0] for r in recommendations[property_id] if r[0]["type"] == "mechanical_ventilation"),
None

View file

@ -155,7 +155,7 @@ class TestAddBestPracticeMeasures:
}
selected = set()
updated = optimiser_functions.add_best_practice_measures(
property_id, solution, recommendations, selected, True
property_id, solution, recommendations, selected
)
assert "vent1" in updated
assert "trickle1" in updated
@ -286,7 +286,7 @@ class TestIncreasingEpcE2e:
total_optimised_gain = sum(m["gain"] for m in solution)
assert total_optimised_gain == 17.6, "Total gain of optimised measures should meet or exceed target gain"
selected = optimiser_functions.add_best_practice_measures(p.id, solution, recommendations, selected, False)
selected = optimiser_functions.add_best_practice_measures(p.id, solution, recommendations, selected)
# Flatten recommendations for output
flattened = optimiser_functions.flatten_recommendations_with_defaults(p.id, recommendations, selected)