def testInsertRandomRemoveRandom(self): tree = avltree.AVLTree() LEN = 200 values = range(LEN) inserted = [] for i in range(LEN - 1, -1, -1): v = values.pop(random.randint(0, i)) inserted.append(v) tree.insert(v) try: self.assertOrdered(tree.tree, -1, LEN - i) self.assertBalanced(tree.tree) except: print 'insertion order:', inserted raise values = range(LEN) for i in range(LEN - 1, -1, -1): v = values.pop(random.randint(0, i)) savetree = tree.tree tree.delete(v) try: self.assertOrdered(tree.tree, values and values[0] - 1 or -1, i) self.assertBalanced(tree.tree) except: print 'while deleting:', v, 'from:', savetree avltree.debug(savetree) raise
def testInsertDescendingRemoveAscending(self): tree = avltree.AVLTree() LEN = 40 for i in range(LEN - 1, -1, -1): tree.insert(i) self.assertOrdered(tree.tree, i - 1, LEN - i) self.assertBalanced(tree.tree) for i in range(LEN): tree.delete(i) self.assertOrdered(tree.tree, i, 40 - i - 1) self.assertBalanced(tree.tree)
def __init__(self): self.avltree = avltree.AVLTree() self.routeNames = []