| 543 | self.assertEqual(750, _tree2.children[3].location.mincorner.y) |
| 544 | |
| 545 | def test_split_entities(self): |
| 546 | |
| 547 | ent1 = quadtree.QuadTreeEntity(rect2.Rect2(5, 5, vector2.Vector2(50, 50))) |
| 548 | ent2 = quadtree.QuadTreeEntity(rect2.Rect2(5, 5, vector2.Vector2(550, 75))) |
| 549 | ent3 = quadtree.QuadTreeEntity(rect2.Rect2(5, 5, vector2.Vector2(565, 585))) |
| 550 | ent4 = quadtree.QuadTreeEntity(rect2.Rect2(5, 5, vector2.Vector2(95, 900))) |
| 551 | ent5 = quadtree.QuadTreeEntity(rect2.Rect2(10, 10, vector2.Vector2(495, 167))) |
| 552 | |
| 553 | _tree = quadtree.QuadTree(64, 5, self.big_rect, entities = [ ent1, ent2, ent3, ent4, ent5 ]) |
| 554 | _tree.split() |
| 555 | |
| 556 | self.assertEqual(1, len(_tree.children[0].entities)) |
| 557 | self.assertEqual(50, _tree.children[0].entities[0].aabb.mincorner.x) |
| 558 | self.assertEqual(50, _tree.children[0].entities[0].aabb.mincorner.y) |
| 559 | |
| 560 | self.assertEqual(1, len(_tree.children[1].entities)) |
| 561 | self.assertEqual(550, _tree.children[1].entities[0].aabb.mincorner.x) |
| 562 | self.assertEqual(75, _tree.children[1].entities[0].aabb.mincorner.y) |
| 563 | |
| 564 | self.assertEqual(1, len(_tree.children[2].entities)) |
| 565 | self.assertEqual(565, _tree.children[2].entities[0].aabb.mincorner.x) |
| 566 | self.assertEqual(585, _tree.children[2].entities[0].aabb.mincorner.y) |
| 567 | |
| 568 | self.assertEqual(1, len(_tree.children[3].entities)) |
| 569 | self.assertEqual(95, _tree.children[3].entities[0].aabb.mincorner.x) |
| 570 | self.assertEqual(900, _tree.children[3].entities[0].aabb.mincorner.y) |
| 571 | |
| 572 | self.assertEqual(1, len(_tree.entities)) |
| 573 | self.assertEqual(495, _tree.entities[0].aabb.mincorner.x) |
| 574 | self.assertEqual(167, _tree.entities[0].aabb.mincorner.y) |
| 575 | |
| 576 | _tree2 = _tree.children[3] |
| 577 | _tree2.split() |
| 578 | |
| 579 | for i in range(3): |
| 580 | self.assertEqual(0, len(_tree2.children[i].entities), msg="i={}".format(i)) |
| 581 | |
| 582 | self.assertEqual(1, len(_tree2.children[3].entities)) |
| 583 | self.assertEqual(95, _tree2.children[3].entities[0].aabb.mincorner.x) |
| 584 | self.assertEqual(900, _tree2.children[3].entities[0].aabb.mincorner.y) |
| 585 | |
| 586 | # note for test_think and test_insert we're testing the worst-case scenario |
| 587 | # for a quad tree (everythings all bunched up in a corner) hence the instant |