예제 #1
0
 def test_remove_root(self):
     s = test_items_seq(1000)
     tree = AnderssonTree(s)
     self.check_aatree_properties(tree)
     size = len(tree)
     keys = [x[0] for x in s]
     keyset = set(keys)
     while len(keyset) > 0:
         k = tree.root().key
         keyset.remove(k)
         tree.remove(k)
         size -= 1
         self.assertEqual(len(tree), size)
         self.assertEqual(set(tree.keys()), keyset)
         self.check_aatree_properties(tree)
예제 #2
0
 def test_remove(self):
     for i in range(10):
         s = test_items_seq(100)
         tree = AnderssonTree(s)
         self.check_aatree_properties(tree)
         size = len(tree)
         keys = [x[0] for x in s]
         keyset = set(keys)
         shuffle(keys)
         for k in keys:
             keyset.remove(k)
             tree.remove(k)
             size -= 1
             self.assertEqual(len(tree), size)
             self.assertEqual(set(tree.keys()), keyset)
             self.check_aatree_properties(tree, dump=False)