def test_update(self): d = test_items_seq() tree = AnderssonTree() tree.update(d) self.assertEqual(len(tree), len(d)) self.assertEqual(set(tree.keys()), set(x[0] for x in d)) self.assertEqual(set(tree.values()), set(x[1] for x in d)) self.check_aatree_properties(tree)
def test_pickle_protocol(self): s = test_items_seq() tree1 = AnderssonTree(s) pickle_str = pickle.dumps(tree1, -1) tree2 = pickle.loads(pickle_str) self.assertEqual(len(tree1), len(tree2)) self.assertEqual(list(tree1.keys()), list(tree2.keys())) self.assertEqual(list(tree1.values()), list(tree2.values())) self.check_aatree_properties(tree1) self.check_aatree_properties(tree2)
def test_insert(self): s = test_items_seq() tree = AnderssonTree() size = len(tree) keys = [x[0] for x in s] keyset = set() shuffle(keys) for k in keys: keyset.add(k) tree.insert(k, k) size += 1 self.assertEqual(len(tree), size) self.assertEqual(set(tree.keys()), keyset) self.check_aatree_properties(tree)
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)
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)
def test_keys(self): s = test_items_seq() tree = AnderssonTree(s) keys = set(x[0] for x in s) self.assertEqual(set(tree.keys()), keys)