class EventQueue: """ Implemented as AVLTree instead of MinHeap. """ def __init__(self): self.tree = AVLTree() self.size = 0 def insert_event(self, event: Point) -> bool: res = self.tree.insert(event) if res: self.size += 1 return res def get_nearest_event(self) -> Optional[Point]: return self.tree.min() def remove_event(self, event: Point) -> bool: res = self.tree.delete(event) if res: self.size -= 1 return res
def test_find_min(self): entries = get_random_entries() tree = AVLTree(entries) self.assertEqual(tree.min(), min(entries))