예제 #1
0
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)