def test_special(): # __contains__ tree = IntTree.from_keys([10, 5, 8, 3, 20]) assert 20 in tree assert 10 in tree assert 15 not in tree assert 1000 not in tree emtree = IntTree() assert 1 not in emtree # __nonzero__ assert bool(tree) assert not bool(emtree) # __len__ assert len(emtree) == 0 assert len(tree) == 5
def test_intersect(): t1 = IntTree.from_keys([1, 3, 5, 7, 9]) t2 = IntTree.from_keys([3, 6, 7]) t_intersect = t1.intersection(t2) assert list(t_intersect.traverse()) == [3,7]
def test_union(): t1 = IntTree.from_keys([1, 3, 5, 7, 9]) t2 = IntTree.from_keys([3,6,7]) t_union = t1.union(t2) assert [x for x in t_union.traverse()] == [1,3,5,6,7,9]
def test_ranges(): tree = IntTree.from_keys([1,3,5,7,9,11,13,15]) assert list(tree.getrange(5,11).traverse()) == [5,7,9] tree.delrange(5,11) assert list(tree.traverse()) == [1,3,11,13,15]