Beispiel #1
0
    def test_subdivide(self):
        node = QuadNode(Point(0, 0), 20, 20)
        node.points = [
            Point(1, 2),
            Point(-3, -3),
            Point(-9, 6),
            Point(7, 2),
        ]

        # Sanity check.
        self.assertIsNone(node.ul)
        self.assertIsNone(node.ur)
        self.assertIsNone(node.ll)
        self.assertIsNone(node.lr)

        node.subdivide()

        # There should now be child nodes.
        self.assertIsNotNone(node.ul)
        self.assertIsNotNone(node.ur)
        self.assertIsNotNone(node.ll)
        self.assertIsNotNone(node.lr)

        # Check the points.
        self.assertEqual(len(node.points), 0)
        self.assertEqual(len(node.ul.points), 1)
        self.assertEqual(len(node.ur.points), 2)
        self.assertEqual(len(node.ll.points), 1)

        pairs = [(pnt.x, pnt.y) for pnt in node.ur.points]
        self.assertEqual(pairs, [(1, 2), (7, 2)])
Beispiel #2
0
 def test_dunder_contains(self):
     node = QuadNode(Point(0, 0), 10, 10)
     node.points = [
         Point(1, 2),
         Point(-3, -1),
     ]
     self.assertTrue(Point(1, 2) in node)
     self.assertFalse(Point(2, 3) in node)