improve unit-tests
This commit is contained in:
parent
8fa500d4c6
commit
1052478ace
|
@ -98,6 +98,7 @@ class Cost:
|
||||||
global_capital_costs['D5020_lighting_and_branch_wiring'] +
|
global_capital_costs['D5020_lighting_and_branch_wiring'] +
|
||||||
global_capital_costs['D301010_photovoltaic_system']
|
global_capital_costs['D301010_photovoltaic_system']
|
||||||
)
|
)
|
||||||
|
|
||||||
df_end_of_life_costs = global_end_of_life_costs['End_of_life_costs']
|
df_end_of_life_costs = global_end_of_life_costs['End_of_life_costs']
|
||||||
df_operational_costs = (
|
df_operational_costs = (
|
||||||
global_operational_costs['Fixed_costs_electricity_peak'] +
|
global_operational_costs['Fixed_costs_electricity_peak'] +
|
||||||
|
|
|
@ -18,53 +18,64 @@ from costs.cost import Cost
|
||||||
from costs.constants import SKIN_RETROFIT, SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV, SYSTEM_RETROFIT_AND_PV
|
from costs.constants import SKIN_RETROFIT, SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV, SYSTEM_RETROFIT_AND_PV
|
||||||
|
|
||||||
|
|
||||||
|
class Initialize:
|
||||||
|
def __init__(self):
|
||||||
|
self._city = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def city(self):
|
||||||
|
if self._city is None:
|
||||||
|
print('init tests')
|
||||||
|
city_file = (Path(__file__).parent / 'data/test.geojson').resolve()
|
||||||
|
output_path = (Path(__file__).parent / 'output').resolve()
|
||||||
|
city = GeometryFactory('geojson',
|
||||||
|
city_file,
|
||||||
|
height_field='citygml_me',
|
||||||
|
year_of_construction_field='ANNEE_CONS',
|
||||||
|
function_field='CODE_UTILI',
|
||||||
|
function_to_hub=Dictionaries().montreal_function_to_hub_function).city
|
||||||
|
ConstructionFactory('nrcan', city).enrich()
|
||||||
|
UsageFactory('nrcan', city).enrich()
|
||||||
|
ExportsFactory('sra', city, output_path).export()
|
||||||
|
sra_file = str((output_path / f'{city.name}_sra.xml').resolve())
|
||||||
|
subprocess.run(['sra', sra_file], stdout=subprocess.DEVNULL)
|
||||||
|
ResultFactory('sra', city, output_path).enrich()
|
||||||
|
|
||||||
|
for building in city.buildings:
|
||||||
|
building.energy_systems_archetype_name = 'system 1 gas pv'
|
||||||
|
EnergySystemsFactory('montreal_custom', city).enrich()
|
||||||
|
EnergyBuildingsExportsFactory('insel_monthly_energy_balance', city, output_path).export()
|
||||||
|
_insel_files = glob.glob(f'{output_path}/*.insel')
|
||||||
|
for insel_file in _insel_files:
|
||||||
|
subprocess.run(['insel', str(insel_file)], stdout=subprocess.DEVNULL)
|
||||||
|
ResultFactory('insel_monthly_energy_balance', city, output_path).enrich()
|
||||||
|
self._city = city
|
||||||
|
print('init completed')
|
||||||
|
return self._city
|
||||||
|
|
||||||
|
|
||||||
class UnitTests(unittest.TestCase):
|
class UnitTests(unittest.TestCase):
|
||||||
def setUp(self) -> None:
|
init = Initialize()
|
||||||
|
|
||||||
city_file = (Path(__file__).parent / 'data/test.geojson').resolve()
|
|
||||||
output_path = (Path(__file__).parent / 'output').resolve()
|
|
||||||
city = GeometryFactory('geojson',
|
|
||||||
city_file,
|
|
||||||
height_field='citygml_me',
|
|
||||||
year_of_construction_field='ANNEE_CONS',
|
|
||||||
function_field='CODE_UTILI',
|
|
||||||
function_to_hub=Dictionaries().montreal_function_to_hub_function).city
|
|
||||||
ConstructionFactory('nrcan', city).enrich()
|
|
||||||
UsageFactory('nrcan', city).enrich()
|
|
||||||
ExportsFactory('sra', city, output_path).export()
|
|
||||||
sra_file = str((output_path / f'{city.name}_sra.xml').resolve())
|
|
||||||
subprocess.run(['sra', sra_file])
|
|
||||||
ResultFactory('sra', city, output_path).enrich()
|
|
||||||
|
|
||||||
for building in city.buildings:
|
|
||||||
building.energy_systems_archetype_name = 'system 1 gas pv'
|
|
||||||
EnergySystemsFactory('montreal_custom', city).enrich()
|
|
||||||
EnergyBuildingsExportsFactory('insel_monthly_energy_balance', city, output_path).export()
|
|
||||||
_insel_files = glob.glob(f'{output_path}/*.insel')
|
|
||||||
for insel_file in _insel_files:
|
|
||||||
subprocess.run(['insel', str(insel_file)], stdout=subprocess.DEVNULL)
|
|
||||||
ResultFactory('insel_monthly_energy_balance', city, output_path).enrich()
|
|
||||||
self._city = city
|
|
||||||
|
|
||||||
def test_current_status(self):
|
def test_current_status(self):
|
||||||
for building in self._city.buildings:
|
for building in self.init.city.buildings:
|
||||||
result = Cost(building).life_cycle
|
result = Cost(building).life_cycle
|
||||||
self.assertIsNotNone(result)
|
self.assertIsNotNone(result)
|
||||||
self.assertEqual(0, result.values[0])
|
self.assertEqual(0, result.values[0])
|
||||||
|
|
||||||
def test_scenario_1(self):
|
def test_scenario_1(self):
|
||||||
for building in self._city.buildings:
|
for building in self.init.city.buildings:
|
||||||
result = Cost(building, retrofit_scenario=SKIN_RETROFIT).life_cycle
|
result = Cost(building, retrofit_scenario=SKIN_RETROFIT).life_cycle
|
||||||
self.assertIsNotNone(result)
|
self.assertIsNotNone(result)
|
||||||
|
|
||||||
def test_scenario_2(self):
|
def test_scenario_2(self):
|
||||||
for building in self._city.buildings:
|
for building in self.init.city.buildings:
|
||||||
result = Cost(building, retrofit_scenario=SYSTEM_RETROFIT_AND_PV).life_cycle
|
result = Cost(building, retrofit_scenario=SYSTEM_RETROFIT_AND_PV).life_cycle
|
||||||
self.assertIsNotNone(result)
|
self.assertIsNotNone(result)
|
||||||
self.assertEqual(0, result.values[0])
|
self.assertEqual(0, result.values[0])
|
||||||
|
|
||||||
def test_scenario_3(self):
|
def test_scenario_3(self):
|
||||||
for building in self._city.buildings:
|
for building in self.init.city.buildings:
|
||||||
result = Cost(building, retrofit_scenario=SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV).life_cycle
|
result = Cost(building, retrofit_scenario=SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV).life_cycle
|
||||||
self.assertIsNotNone(result)
|
self.assertIsNotNone(result)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user