mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Added more wall u-value tests
This commit is contained in:
parent
807e6d5047
commit
24709b98d6
5 changed files with 53 additions and 4 deletions
2
.idea/Model.iml
generated
2
.idea/Model.iml
generated
|
|
@ -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.10 (backend)" jdkType="Python SDK" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.10 (model_data)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="PyNamespacePackagesService">
|
||||
|
|
|
|||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
|
|
@ -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.10 (backend)" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (model_data)" project-jdk-type="Python SDK" />
|
||||
<component name="PythonCompatibilityInspectionAdvertiser">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ class Property(Definitions):
|
|||
}
|
||||
self.solar_hot_water = {
|
||||
"solar_hot_water": epc_record.get("solar_water_heating_flag"),
|
||||
"solar_hot_water_boolean": epc_record.get("solar_water_heating_flag_bool"),
|
||||
}
|
||||
self.wind_turbine = {
|
||||
"wind_turbine": epc_record.prepared_epc["wind_turbine_count"],
|
||||
|
|
@ -104,6 +105,7 @@ class Property(Definitions):
|
|||
self.heat_loss_corridor = {
|
||||
"heat_loss_corridor": epc_record.prepared_epc["heat_loss_corridor"],
|
||||
"length": epc_record.prepared_epc["unheated_corridor_length"],
|
||||
"heat_loss_corridor_boolean": epc_record.get("heat_loss_corridor_bool"),
|
||||
}
|
||||
self.mains_gas = epc_record.prepared_epc['mains_gas_flag']
|
||||
self.floor_height = epc_record.prepared_epc['floor_height']
|
||||
|
|
@ -436,10 +438,10 @@ class Property(Definitions):
|
|||
"mainfuel": self.main_fuel["clean_description"],
|
||||
"ventilation": self.ventilation["ventilation"],
|
||||
"solar_pv": self.solar_pv["solar_pv"],
|
||||
"solar_hot_water": self.solar_hot_water["solar_hot_water"],
|
||||
"solar_hot_water": self.solar_hot_water["solar_hot_water_boolean"],
|
||||
"wind_turbine": self.wind_turbine["wind_turbine"],
|
||||
"floor_height": self.floor_height,
|
||||
"heat_loss_corridor": self.heat_loss_corridor["heat_loss_corridor"],
|
||||
"heat_loss_corridor": self.heat_loss_corridor["heat_loss_corridor_boolean"],
|
||||
"unheated_corridor_length": self.heat_loss_corridor["length"],
|
||||
"number_of_open_fireplaces": self.number_of_open_fireplaces["number_of_open_fireplaces"],
|
||||
"number_of_extensions": self.number_of_extensions["number_of_extensions"],
|
||||
|
|
|
|||
|
|
@ -102,6 +102,8 @@ class EPCRecord:
|
|||
year_built: int = None
|
||||
number_of_floors: int = None
|
||||
number_of_open_fireplaces: int = None
|
||||
heat_loss_corridor_bool: bool = None
|
||||
solar_water_heating_flag_bool: bool = None
|
||||
|
||||
def __post_init__(self):
|
||||
# We can have validation and cleaning steps for each of the fields
|
||||
|
|
@ -490,6 +492,12 @@ class EPCRecord:
|
|||
"heated corridor"
|
||||
]
|
||||
|
||||
boolean_map = {
|
||||
"no corridor": False,
|
||||
"unheated corridor": True,
|
||||
"heated corridor": False
|
||||
}
|
||||
|
||||
self.prepared_epc["heat-loss-corridor"] = (
|
||||
"no corridor" if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES else
|
||||
self.prepared_epc["heat-loss-corridor"]
|
||||
|
|
@ -502,6 +510,9 @@ class EPCRecord:
|
|||
self.prepared_epc["unheated-corridor-length"] not in ["", None] else None
|
||||
)
|
||||
|
||||
# We create boolean versions of heat-loss-corridor
|
||||
self.heat_loss_corridor_bool = boolean_map[self.prepared_epc["heat-loss-corridor"]]
|
||||
|
||||
def _clean_count_variables(self):
|
||||
"""
|
||||
This method will clean the count variables, if empty or invalid
|
||||
|
|
@ -555,8 +566,16 @@ class EPCRecord:
|
|||
None: "N"
|
||||
}
|
||||
|
||||
boolean_map = {
|
||||
"Y": True,
|
||||
"N": False,
|
||||
}
|
||||
|
||||
self.prepared_epc['solar-water-heating-flag'] = value_map[self.prepared_epc['solar-water-heating-flag']]
|
||||
|
||||
# Create a boolean version for storage in the database
|
||||
self.solar_water_heating_flag_bool = boolean_map[self.prepared_epc['solar-water-heating-flag']]
|
||||
|
||||
def _clean_solar_pv(self):
|
||||
"""
|
||||
This method will clean the solar pv, if empty or invalid
|
||||
|
|
|
|||
|
|
@ -76,5 +76,33 @@ wall_uvalue_test_cases = [
|
|||
"is_granite_or_whinstone": False,
|
||||
"is_sandstone_or_limestone": False,
|
||||
"uvalue": 0
|
||||
},
|
||||
{
|
||||
"clean_description": "Cavity wall, as built, insulated",
|
||||
"age_band": "F",
|
||||
"is_granite_or_whinstone": False,
|
||||
"is_sandstone_or_limestone": False,
|
||||
"uvalue": 0.4
|
||||
},
|
||||
{
|
||||
"clean_description": "Cavity wall, as built, insulated",
|
||||
"age_band": "D",
|
||||
"is_granite_or_whinstone": False,
|
||||
"is_sandstone_or_limestone": False,
|
||||
"uvalue": 0.7
|
||||
},
|
||||
{
|
||||
"clean_description": "Cavity wall, filled cavity",
|
||||
"age_band": "E",
|
||||
"is_granite_or_whinstone": False,
|
||||
"is_sandstone_or_limestone": False,
|
||||
"uvalue": 0.7
|
||||
},
|
||||
{
|
||||
"clean_description": "Cavity wall, as built, no insulation",
|
||||
"age_band": "E",
|
||||
"is_granite_or_whinstone": False,
|
||||
"is_sandstone_or_limestone": False,
|
||||
"uvalue": 1.5
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue