class QuadTreeFunctionTest(unittest.TestCase): def setUp(self) -> None: self.quadtree = QuadTree(Bounds(0, 0, 400, 400), max_objects=4, max_level=5) def test_points_insert(self): with open('./tests/example_data.json', 'r') as f: json_data = json.loads(f.read()) points = json_data['data'] for point in points: self.quadtree.insert(Point(point['x'], point['y'], point['value'])) def test_retrieve(self): objects = self.quadtree.retrieve(Bounds(200, 200, 50, 50)) def test_retrieve_intersections(self): objects = self.quadtree.retrieve_intersections(Bounds( 200, 200, 50, 50)) def test_nearest_neighbors(self): points = self.quadtree.nearest_neighbors(Point(225, 225), radius=25) def test_visualization(self): self.quadtree.visualize() def tearDown(self) -> None: self.quadtree.clear()
w = random.randint(3, 40) h = random.randint(3, 40) color = (random.randint(64, 250), random.randint(64, 250), random.randint(64, 250)) quadtree.add(RectData(x, y, w, h, color)) mx1, my1, mx2, my2 = (0, 0, 0, 0) mdown = False selected = [] if event.key == pygame.K_b: for d in selected: quadtree.remove(d) selected = [] if event.key == pygame.K_c: quadtree.clear() mx1, my1, mx2, my2 = (0, 0, 0, 0) mdown = False selected = [] if event.type == pygame.MOUSEBUTTONDOWN: mdown = True mx1, my1 = event.pos if event.type == pygame.MOUSEBUTTONUP: mdown = False if mx2 < mx1: mx1, mx2 = mx2, mx1 if my2 < my1:
w = random.randint(3,40) h = random.randint(3,40) color = (random.randint(64,250), random.randint(64,250), random.randint(64,250)) quadtree.add(RectData(x, y, w, h, color)) mx1,my1,mx2,my2 = (0,0,0,0) mdown = False selected = [] if event.key == pygame.K_BACKSPACE: for d in selected: quadtree.remove(d) selected = [] if event.key == pygame.K_DELETE: quadtree.clear() mx1,my1,mx2,my2 = (0,0,0,0) mdown = False selected = [] if event.type == pygame.MOUSEBUTTONDOWN: mdown = True mx1, my1 = event.pos if event.type == pygame.MOUSEBUTTONUP: mdown = False if mx2 < mx1: mx1,mx2 = mx2,mx1