From 4f74f9d8b087a053c83b2559f71df5bea2fe22b9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 23 Jun 2023 10:38:54 +0100 Subject: [PATCH] set up testing framework --- .../recommendations/WallRecommendations.py | 3 +++ .../tests/test_data/input_properties.pkl | Bin 0 -> 34169 bytes model_data/tests/test_wall_recommendations.py | 25 ++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 model_data/tests/test_data/input_properties.pkl create mode 100644 model_data/tests/test_wall_recommendations.py diff --git a/model_data/recommendations/WallRecommendations.py b/model_data/recommendations/WallRecommendations.py index c447288d..47dc99d6 100644 --- a/model_data/recommendations/WallRecommendations.py +++ b/model_data/recommendations/WallRecommendations.py @@ -187,6 +187,9 @@ wall_parts = external_wall_insulation_parts + internal_wall_insulation_parts class WallRecommendations(BaseUtility): YEAR_WALLS_BUILT_WITH_INSULATION = 1990 + # After 1930, Solid brick walls became less populate and instead, cavity walls became a + # more popular choice + YEARS_CAVITY_WALLS_BEGAN = 1930 U_VALUE_UNIT = 'w/m-¦k' # TODO: REVIEW THESE FIGURES: RETROFIT ACADEMY COUSE INDICATED THAT IT SHOULD BE 0.3 BUILDING_REGULATIONS_PART_L_MAX_U_VALUE = 0.18 diff --git a/model_data/tests/test_data/input_properties.pkl b/model_data/tests/test_data/input_properties.pkl new file mode 100644 index 0000000000000000000000000000000000000000..6fd5b7976d825a0da9c3b7154a1a745f03751d7b GIT binary patch literal 34169 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 TgppR*Hwju$iZf@0U7r76?rfUq literal 0 HcmV?d00001 diff --git a/model_data/tests/test_wall_recommendations.py b/model_data/tests/test_wall_recommendations.py new file mode 100644 index 00000000..ab98e5ba --- /dev/null +++ b/model_data/tests/test_wall_recommendations.py @@ -0,0 +1,25 @@ +import os +import pytest +import pickle +from model_data.recommendations.WallRecommendations import WallRecommendations + + +class TestWallRecommendations: + + @pytest.fixture + def input_properties(self): + with open( + os.path.abspath(os.path.dirname(__file__)) + "/test_data/input_properties.pkl", "rb" + ) as f: + return pickle.load(f) + + @pytest.fixture + def uvalue_estimates(self): + with open( + os.path.abspath(os.path.dirname(__file__)) + "/test_data/uvalue_estimates_walls.pkl", "rb" + ) as f: + return pickle.load(f) + + def test_nothing(self, input_properties, uvalue_estimates): + assert input_properties + assert uvalue_estimates