示例#1
0
def test_3():
    t = pitree()
    t.add(1, 20)
    t.add(2, 30)
    t.add(130, 140)
    assert len(t._pages) == 2 and len(
        t._pages.root.child.interval.data.tree) == 2 and len(
            t._pages.root.child.right_child.interval.data.tree) == 1
示例#2
0
def test_5(
):  # TODO improvement: check if the tree is actually shared, in some cases copy without actual sharing
    # in this example, if I write in t, i will copy the tree even if it is not necessary, since tt has
    # copied it already.
    t = pitree()
    t.add(1, 20)
    tt = t.copy()
    tt.add(2, 30)
    assert t._lazycopy and not tt._lazycopy and t._pages != tt._pages
示例#3
0
def test_6():  # same problem as before
    t = pitree()
    t.add(1, 20)
    t.add(200, 300)
    tt = t.copy()
    tt.add(2, 30)
    assert t._lazycopy and not tt._lazycopy and t._pages != tt._pages                                                         and \
           t._pages.root.child.right_child.interval.data.tree == tt._pages.root.child.right_child.interval.data.tree          and \
           t._pages.root.child.right_child.interval.data.lazycopy and tt._pages.root.child.right_child.interval.data.lazycopy and \
           t._pages.root.child.interval.data.lazycopy and not tt._pages.root.child.interval.data.lazycopy
示例#4
0
def test_8():
    t = pitree()
    t.add(10, 20)
    t.add(20, 30)
    t.add(90, 100)
    t.add(100, 200)
    t.add(200, 300)
    t.add(0, 5)
    t.add(5, 30)
    t.add(129, 130)

    ris = t.search(31, 100)
    expected = set([Interval(90, 100)])
    assert ris == expected
示例#5
0
def test_7():
    t = pitree()
    t.add(10, 20)
    t.add(30, 35)
    t.add(20, 30)
    t.add(100, 200)
    t.add(200, 300)
    t.add(0, 5)
    t.add(5, 30)
    t.add(129, 130)

    ris = t.search(30, 99)
    expected = set([Interval(30, 35)])
    assert ris == expected
示例#6
0
def test_1():
    t = pitree()
    t.add(1, 200)
    ris = t.search(20, 25)
    assert len(ris) == 1 and ris.pop() == Interval(1, 200)
示例#7
0
def test_4():
    t = pitree()
    t.add(1, 20)
    tt = t.copy()
    assert t._lazycopy and tt._lazycopy and t._pages == tt._pages
示例#8
0
def test_2():
    t = pitree()
    t.add(1, 200)
    i = t._pages.root.child.interval
    assert i.begin == 0 and i.end == 2