From d437c7e77913e04ad00b54ecba2ed8113cb6bbaf Mon Sep 17 00:00:00 2001 From: Nicolas Mounet Date: Thu, 5 Nov 2020 22:15:15 +0100 Subject: [PATCH] Adding test on the use of the model with a MultipleVentilation object (computing concentration); some fine tuning on other tests (list -> tuple) --- cara/tests/test_known_quantities.py | 40 ++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/cara/tests/test_known_quantities.py b/cara/tests/test_known_quantities.py index 16cc9301..df91b12a 100644 --- a/cara/tests/test_known_quantities.py +++ b/cara/tests/test_known_quantities.py @@ -191,15 +191,15 @@ def test_multiple_ventilation_HEPA_window_transitions(baseline_periodic_hepa): def test_multiple_ventilation_HEPA_HVAC_AirChange(volume, expected_value): room = models.Room(volume=volume) hepa = models.HEPAFilter( - active=models.SpecificInterval([(0,24)]), + active=models.SpecificInterval(((0,24),)), q_air_mech=500., ) hvac = models.HVACMechanical( - active=models.SpecificInterval([(0,24)]), + active=models.SpecificInterval(((0,24),)), q_air_mech=100., ) airchange = models.AirChange( - active=models.SpecificInterval([(0,24)]), + active=models.SpecificInterval(((0,24),)), air_exch=3., ) vent = models.MultipleVentilation([hepa, hvac, airchange]) @@ -334,6 +334,35 @@ def build_constant_temp_model(outside_temp, intervals_open=((7.5, 8.5),)): return model +def build_hourly_dependent_model_multipleventilation(month, intervals_open=((7.5, 8.5),)): + vent = models.MultipleVentilation(( + models.WindowOpening( + active=models.SpecificInterval(intervals_open), + inside_temp=models.PiecewiseConstant((0,24),(293,)), + outside_temp=models.GenevaTemperatures[month], + cd_b=0.6, window_height=1.6, opening_length=0.6, + ), + models.HEPAFilter( + active=models.SpecificInterval(((0,24),)), + q_air_mech=500., + ))) + model = models.Model( + room=models.Room(volume=75), + ventilation=vent, + infected=models.InfectedPerson( + virus=models.Virus.types['SARS_CoV_2'], + presence=models.SpecificInterval(((0, 4), (5, 7.5))), + mask=models.Mask.types['No mask'], + activity=models.Activity.types['Light exercise'], + expiration=models.Expiration.types['Unmodulated Vocalization'], + ), + infected_occupants=1, + exposed_occupants=10, + exposed_activity=models.Activity.types['Light exercise'], + ) + return model + + @pytest.mark.parametrize( "month, temperatures", models.Geneva_hourly_temperatures_celsius_per_hour.items(), @@ -350,6 +379,11 @@ def test_concentrations_hourly_dep_startup(month, temperatures, time): npt.assert_allclose(m1.concentration(time), m2.concentration(time), rtol=1e-5) +def test_concentrations_hourly_dep_multipleventilation(): + m = build_hourly_dependent_model_multipleventilation('Jan') + m.concentration(12.) + + @pytest.mark.parametrize( "month_temp_item", models.Geneva_hourly_temperatures_celsius_per_hour.items(),