Пример #1
0
    def test_yaw(self):
        encoder = mock.MagicMock(spec=Encoders)
        encoder.read_encoders.return_value = 0, 0
        odom = Odometer(encoder)
        odom.track_odometry()
        time.sleep(0.1)

        half_circle = WHEEL_DISTANCE_MM * math.pi / 2
        encoder.read_encoders.return_value = (half_circle /
                                              DISTANCE_PER_TICK_MM,
                                              -half_circle /
                                              DISTANCE_PER_TICK_MM)
        time.sleep(0.1)
        yaw = odom.get_situation().yaw

        self.assertEqual(math.pi, yaw)

        quarter_circle = half_circle / 2
        encoder.read_encoders.return_value = (quarter_circle /
                                              DISTANCE_PER_TICK_MM,
                                              -quarter_circle /
                                              DISTANCE_PER_TICK_MM)
        time.sleep(0.1)
        yaw = odom.get_situation().yaw

        self.assertEqual(math.pi / 2, yaw)
Пример #2
0
    def test_callback(self):
        encoder = mock.MagicMock(spec=Encoders)
        encoder.read_encoders.return_value = 0, 0
        odom = Odometer(encoder)
        callback = mock.MagicMock()
        odom.add_measurement_callback(callback.call_back)
        odom.track_odometry()
        time.sleep(0.1)

        callback.call_back.assert_called()
Пример #3
0
    def test_distance(self):
        encoder = mock.MagicMock(spec=Encoders)
        encoder.read_encoders.return_value = 0, 0
        odom = Odometer(encoder)
        odom.track_odometry()
        time.sleep(0.1)
        encoder.read_encoders.return_value = 1000, 1000
        time.sleep(0.1)
        distance = odom.get_situation().dist

        self.assertEqual(distance, DISTANCE_PER_TICK_MM)
Пример #4
0
    def test_monitoring_thread_stops(self):
        encoder = mock.MagicMock(spec=Encoders)
        encoder.read_encoders.return_value = 0, 0
        odom = Odometer(encoder)
        odom.track_odometry()

        odom.stop_tracking()
        time.sleep(0.3)

        time.sleep(1)
        encoder.reset_mock()
        encoder.read_encoders.assert_not_called()