Beispiel #1
0
    def test_subtract(self):
        a = Time(5, 5 * 10e8)
        b = a - Time(4, 6 * 10e8)
        self.assertEqual(b.sec, 0)
        self.assertEqual(b.nsec, 9 * 10e8)

        b = a - 1.1
        self.assertEqual(b.sec, 4)
        self.assertEqual(b.nsec, 4 * 10e8)

        b = 9.9 - a
        self.assertEqual(b.sec, 4)
        self.assertEqual(b.nsec, 4 * 10e8)

        a -= a
        self.assertEqual(a.sec, 0)
        self.assertEqual(a.nsec, 0)

        a -= Time(2, 10e8)
        self.assertEqual(a.sec, -3)
        self.assertEqual(a.nsec, 9 * 10e8)

        a += 1.1
        self.assertEqual(a.sec, -1)
        self.assertEqual(a.nsec, 0)
Beispiel #2
0
    def test_cmp(self):
        a = Time(dbl=1.0)
        b = Time(dbl=2.0)
        c = Time(dbl=1.0)

        self.assertTrue(a < b)
        self.assertFalse(a > b)
        self.assertTrue(b > a)
        self.assertFalse(b < a)
        self.assertTrue(b >= a)
        self.assertFalse(b <= a)
        self.assertTrue(a <= b)
        self.assertFalse(a >= b)

        self.assertTrue(a <= c)
        self.assertTrue(a >= c)
        self.assertTrue(c >= a)
        self.assertTrue(a >= c)
Beispiel #3
0
 def age(self):
     """
     Returns this robot's age as a Time object.
     Depends on the last and first update times.
     :return:
     :rtype: Time
     """
     return Time() \
         if self.last_update is None \
         else self.last_update - self.starting_time
Beispiel #4
0
    def displacement(self):
        """
        Returns a tuple of the displacement in both time and space
        between the first and last registered element in the speed
        window.
        :return: Tuple where the first item is a displacement vector
                 and the second a `Time` instance.
        :rtype: tuple(Vector3, Time)
        """
        if self.last_position is None:
            return Vector3(0, 0, 0), Time()

        return (self._positions[-1] - self._positions[0],
                self._times[-1] - self._times[0])
Beispiel #5
0
def displacement(robot_manager):
    """
    Returns a tuple of the displacement in both time and space
    between the first and last registered element in the speed
    window.
    :return: Tuple where the first item is a displacement vector
             and the second a `Time` instance.
    :rtype: tuple(Vector3, Time)
    """
    if len(robot_manager._positions) == 0:
        return Vector3(0, 0, 0), Time()
    return (
        robot_manager._positions[-1] - robot_manager._positions[0],
        robot_manager._times[-1] - robot_manager._times[0]
    )
Beispiel #6
0
    def test_add(self):
        a = Time(5, 5 * 10e8)
        b = a + a
        self.assertEqual(b.sec, 11)
        self.assertEqual(b.nsec, 0)

        b = a + 1.1
        self.assertEqual(b.sec, 6)
        self.assertEqual(b.nsec, 6 * 10e8)

        b = 1.1 + a
        self.assertEqual(b.sec, 6)
        self.assertEqual(b.nsec, 6 * 10e8)

        a += a
        self.assertEqual(a.sec, 11)
        self.assertEqual(a.nsec, 0)

        a += 1.1
        self.assertEqual(a.sec, 12)
        self.assertEqual(a.nsec, 10e8)
Beispiel #7
0
 def test_eq(self):
     a = Time(5, 5 * 10e8)
     self.assertEqual(a, 5.5)
     self.assertEqual(a, Time(5, 5 * 10e8))
     self.assertNotEqual(a, Time(5, 6 * 10e8))
Beispiel #8
0
 def test_float(self):
     a = Time(1, 5 * 10e8)
     self.assertAlmostEqual(1.5, float(a))
Beispiel #9
0
 def test_create(self):
     a = Time(0, -10)
     self.assertEqual(a.sec, -1)
     self.assertEqual(a.nsec, 10e9 - 10)