import unittest import pint from . import calculate_swi class CalculateSwi(unittest.TestCase): def setUp(self): ureg = pint.UnitRegistry() self.C = ureg.C self.ft = ureg.ft def test_out_of_range(self): samples = [ (20 * self.C, -10 * self.ft), (-10 * self.C, 25000 * self.ft), (20 * self.C, 60000 * self.ft), (41 * self.C, 25000 * self.ft), (41 * self.C, -10 * self.ft), ] for dt, depth in samples: with self.assertRaises(ValueError): calculate_swi(dt, depth) def test_between(self): samples = [ (6.53 * self.C, 30000 * self.ft, 1, 2), (10.78 * self.C, 20500 * self.ft, -1, 0), (24.45 * self.C, 2600 * self.ft, 0, 1), (7.22 * self.C, 1300 * self.ft, -10, -9), (16.1 * self.C, 6200 * self.ft, 0, 1), (3 * self.C, 20000 * self.ft, -4, -3), ] for dt, depth, low, high in samples: swi = calculate_swi(dt, depth) self.assertGreater(swi, low) self.assertLess(swi, high)