def test_contains(self):
     rectangle = geo.Rectangle(0, 0, 10, 10)
     values = [(random.randint(0, 9), random.randint(0, 9))
               for _ in range(10)]
     for (x, y) in values:
         self.assertTrue(rectangle.contains(geo.Point(x, y)))
         self.assertFalse(rectangle.contains(geo.Point(x + 11, y)))
         self.assertFalse(rectangle.contains(geo.Point(x, y - 11)))
 def test_initialiser(self):
     random.seed(3)
     values = [(random.randint(-10, 10), random.randint(-10, 10))
               for _ in range(10)]
     for (x, y) in values:
         point = geo.Point(x, y)
         self.assertEqual(x, point.x())
         self.assertEqual(y, point.y())
    def test_updater(self):
        random.seed(3)
        values = [(random.uniform(-10, 10), random.uniform(-10, 10),
                   random.uniform(0, 1), random.uniform(0, 2 * math.pi))
                  for _ in range(10)]

        for (x, y, speed, theta) in values:
            point = geo.Point(x, y)
            point.update(speed, theta)
            self.assertAlmostEqual(x + speed * math.cos(theta), point.x())
            self.assertAlmostEqual(y + speed * math.sin(theta), point.y())