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)])
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)