示例#1
0
    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
示例#2
0
    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)
示例#3
0
 def __init__(self):
     self.avltree = avltree.AVLTree()
     self.routeNames = []