Beispiel #1
0
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
Beispiel #2
0
def test_selfbalancing():
    random.seed(100)
    tree = IntTree()
    rvals = [7680, 1027, 2564, 4103, 6671, 4118, 5143, 6680, 5144, 5146, 6682, 
             1560, 31, 2079, 546, 4643, 3625, 6188, 4656, 9776, 7732, 1591, 
             8760, 65, 6722, 68, 71, 8265, 8778, 1103, 81, 2642, 9299, 4692, 
             7251, 9809, 2136, 5720, 4700, 7260, 613, 6762, 4203, 5739, 3694, 
             5238, 4727, 6262, 2680, 5240, 4219, 2173, 1661, 8838, 4744, 1161, 
             9866, 4234, 1676, 6799, 9875, 3740, 7837, 5629, 9892, 1700, 9386, 
             1197, 2734, 7855, 6651, 8384, 2242, 1222, 200, 4816, 7382, 3803, 
             4317, 6366, 7389, 1251, 4839, 8938, 7403, 748, 751, 4848, 1268, 
             5878, 247, 4343, 2298, 9978, 6908, 5886, 256, 3845, 1798, 263, 
             8968, 6921, 6410, 3849, 5393, 2325, 6421, 4374, 3352, 6935, 282, 
             6939, 1815, 8987, 5409, 3875, 1315, 5418, 1323, 1838, 5426, 7988, 
             9015, 7481, 826, 4924, 6973, 1859, 6468, 3911, 4424, 1871, 1879, 
             3415, 7513, 3932, 5469, 8546, 1890, 9061, 7018, 7531, 2926, 4462, 
             9587, 7544, 893, 383, 5505, 8065, 7058, 7571, 2967, 1944, 6553, 
             9625, 2968, 5016, 1431, 6559, 5535, 6048, 6562, 1955, 9122, 4518, 
             2982, 3500, 3508, 6072, 7103, 6082, 963, 6084, 3523, 455, 7627, 
             8654, 979, 7637, 6101, 8150, 8664, 7642, 3035, 2525, 480, 2020, 
             5092, 4071, 1512, 3567, 2032, 6132, 4086, 7161, 4091, 1533]

    for i, rval in enumerate(rvals):
        tree.insert(rval)
        print('Inserted {}'.format(rval))

    assert tree.verify() 
    assert list(tree.keys()) == sorted(rvals)
    print('Verified after insertions')

    delvals = rvals[:]
    random.shuffle(delvals)

    for k in delvals:
        tree.delete(k)
        assert tree.verify()
        print('Verified after deletion')