class TestAngleStabilizer(unittest.TestCase): def setUp(self): self.stabilizer = AngleStabilizer() def test_calc_diff_right_angle(self): self.assertEqual(self.stabilizer.calc_diff(0.25 * pi, 0.75 * pi), 0.5 * pi) def test_calc_diff_left_angle(self): self.assertEqual(self.stabilizer.calc_diff(0.75 * pi, 0.25 * pi), -0.5 * pi) def test_add_good_angles(self): self.assertEqual(len(self.stabilizer._get_elements()), 0) self.stabilizer.add(pi, datetime.datetime.now()) self.assertEqual(len(self.stabilizer._get_elements()), 1) self.stabilizer.add(0.75 * pi, datetime.datetime.now()) self.assertEqual(len(self.stabilizer._get_elements()), 2) def test_add_extreme_angle(self): self.stabilizer.add(pi, datetime.datetime.now()) self.stabilizer.add(0, datetime.datetime.now()) self.assertEqual(len(self.stabilizer._get_elements()), 1) def test_add_angle_after_time_thresh(self): self.stabilizer.add(pi, datetime.datetime.now()) sleep(0.5) self.assertEqual(len(self.stabilizer._get_elements()), 0) def test_add_extreme_angle_after_time_thresh(self): self.stabilizer.add(pi, datetime.datetime.now()) self.stabilizer.add(0.75 * pi, datetime.datetime.now()) sleep(0.5) self.stabilizer.add(0, datetime.datetime.now()) self.assertEqual(len(self.stabilizer._get_elements()), 1)