Files
old-krovovi-kalkulator/test/calculators/wind_pressure_calculator_test.py
2017-11-07 09:23:57 +01:00

64 lines
2.8 KiB
Python

import unittest
from unittest.mock import MagicMock
from nose.tools import assert_almost_equal
from helix.calculators.wind_pressure_calculator import WindPressureCalculator
from helix.constants.exposure_category import ExposureCategory
class WindPressureCalculatorTest(unittest.TestCase):
def setUp(self):
self.values = MagicMock()
self.values.wind_speed.return_value = 110
self.values.exposure_category_transition_distance.return_value = 1000
self.subject = WindPressureCalculator(self.values)
def test_kz_with_exposure_BC_and_roof_height_less_than_15_feet(self):
assert_almost_equal(self.subject.calculate_k_z(12, ExposureCategory.B_C, 1000), 0.686, 3)
def test_kz_with_exposure_BC_and_roof_height_greater_than_15_feet(self):
assert_almost_equal(self.subject.calculate_k_z(100, ExposureCategory.B_C, 1000), 1.023, 3)
def test_kz_with_exposure_CB_and_roof_height_less_than_30_feet(self):
assert_almost_equal(self.subject.calculate_k_z(25, ExposureCategory.C_B, 1000), 0.856, 3)
def test_kz_with_exposure_CB_and_roof_height_greater_than_30_feet(self):
assert_almost_equal(self.subject.calculate_k_z(100, ExposureCategory.C_B, 1000), 1.139, 3)
def test_qz_with_exposure_B_and_roof_height_greater_than_30_feet(self):
self.values.building_height.return_value = 35
self.values.exposure_category.return_value = ExposureCategory.B
assert_almost_equal(self.subject.q_z(self.subject.K_z()), 19.276, 2)
def test_qz_with_exposure_B_and_roof_height_less_than_30_feet(self):
self.values.building_height.return_value = 12
self.values.exposure_category.return_value = ExposureCategory.B
assert_almost_equal(self.subject.q_z(self.subject.K_z()), 18.430, 2)
def test_qz_with_exposure_C_and_roof_height_greater_than_15_feet(self):
self.values.building_height.return_value = 35
self.values.exposure_category.return_value = ExposureCategory.C
assert_almost_equal(self.subject.q_z(self.subject.K_z()), 26.715, 2)
def test_qz_with_exposure_C_and_roof_height_less_than_15_feet(self):
self.values.building_height.return_value = 12
self.values.exposure_category.return_value = ExposureCategory.C
assert_almost_equal(self.subject.q_z(self.subject.K_z()), 22.35078017, 2)
def test_qz_with_exposure_D_and_roof_height_greater_than_15_feet(self):
self.values.building_height.return_value = 35
self.values.exposure_category.return_value = ExposureCategory.D
assert_almost_equal(self.subject.q_z(self.subject.K_z()), 31.432, 2)
def test_qz_with_exposure_D_and_roof_height_less_than_15_feet(self):
self.values.building_height.return_value = 12
self.values.exposure_category.return_value = ExposureCategory.D
assert_almost_equal(self.subject.q_z(self.subject.K_z()), 27.126, 2)