import unittest class MeanWindVectorTests(unittest.TestCase): def _fut(self, winddir, windspd=None): from aosstower.wind import mean_wind_vector windspd = windspd or [1]*len(winddir) return mean_wind_vector(windspd, winddir)[0] def test_spanning_0_degrees(self): winddir = self._fut([315, 45]) self.assertAlmostEqual(winddir, 0) def test_spanning_cardinal_directions(self): self.assertAlmostEqual(self._fut([45, 135]), 90) self.assertAlmostEqual(self._fut([135, 225]), 180) self.assertAlmostEqual(self._fut([225, 315]), 270) self.assertAlmostEqual(self._fut([315, 45]), 0) def test_all_zeros(self): self.assertAlmostEqual(self._fut([0, 0]), 0) def test_zero_windspd(self): self.assertAlmostEqual(self._fut([0, 0], windspd=[0, 0]), 0) def test_45s(self): self.assertAlmostEqual(self._fut([0, 90]), 45) self.assertAlmostEqual(self._fut([90, 180]), 135) self.assertAlmostEqual(self._fut([180, 270]), 225) self.assertAlmostEqual(self._fut([270, 0]), 315)