コード例 #1
0
def test_genes(FakeITree, gene_intervals):
    tree = itree.ITree(nodes=gene_intervals)
    mock_tree = FakeITree(nodes=gene_intervals)
    for search in gene_intervals:
        if len(mock_tree.search(search)) != len(tree.search(search)):
            tree.search(search)
            assert len(mock_tree.search(search)) == len(tree.search(search))
コード例 #2
0
ファイル: testtree.py プロジェクト: altoid/interval_tree
 def test_ptree(self):
     intervals = [
         (8, 11), (10, 12), (9, 13)
     ]
     mytree = itree.ITree()
     mytree.construct(intervals)
     mytree.dump()
コード例 #3
0
ファイル: testtree.py プロジェクト: altoid/interval_tree
 def test_small(self):
     intervals = [
         (0, 8),
         (1, 3),
         (5, 7),
     ]
     mytree = itree.ITree()
     mytree.construct(intervals)
     mytree.dump()
コード例 #4
0
def test_search(FakeITree, itree_random_intervals, itree_random_queries, seed):
    random.seed(random.randint(0, sys.maxsize))
    tree = itree.ITree(nodes=itree_random_intervals)
    mock_tree = FakeITree(nodes=itree_random_intervals)
    for search in itree_random_queries:
        if len(mock_tree.search(search)) != len(tree.search(search)):
            tree.search(search)
            print(f"seed == {seed}")
            assert len(mock_tree.search(search)) == len(tree.search(search))
コード例 #5
0
def test_random_remove(itree_random_intervals):
    t = itree.ITree()
    for node in itree_random_intervals:
        t.insert(node)

    for node in itree_random_intervals[::5]:
        old_size = len(t)
        t.remove(node)
        new_size = len(t)
        assert new_size == old_size-1
コード例 #6
0
def test_node_really_removed(itree_complex_sample):
    t = itree.ITree()
    nodes = list(sorted(list(set(itree_complex_sample))))

    for node in nodes:
        t.insert(node)

    for node in nodes[::5]:
        t.remove(node)
        for r in t.search(node):
            assert f"({r.start},{r.end})" != f"({node.start},{node.end})"
コード例 #7
0
def test_remove_nothing(FakeITree, FakeNode, itree_simple_sample):
    tree = itree.ITree(nodes=itree_simple_sample)
    nonpresent_node = FakeNode(100000,200000)
    assert nonpresent_node not in itree_simple_sample, \
        f"{nonpresent_node} is in the sample; revise the test"
    expected = FakeITree(itree_simple_sample)
    tree.remove(nonpresent_node)

    test_node = itree_simple_sample[0]

    assert len(tree) == len(expected)
    assert tree.search(test_node) == expected.search(test_node)
コード例 #8
0
def test_remove_all_nodes(itree_random_intervals):
    t = itree.ITree()
    nodes = list(sorted(list(set(itree_random_intervals))))

    for node in nodes:
        t.insert(node)

    for node in nodes:
        old_size = len(t)
        t.remove(node)
        new_size = len(t)
        assert new_size == old_size-1

    assert len(t) == 0
コード例 #9
0
ファイル: testtree.py プロジェクト: altoid/interval_tree
    def test_big(self):
        intervals = [
            (1, 4),
            (6, 8),
            (15, 19),
            (2, 6),
            (10, 12),
            (17, 22),
            (5, 6),
            (8, 11),
            (14, 18),
            (22, 25),
            (1, 3),
            (9, 13),
            (17, 20),
            (21, 24),
            (1, 12)
        ]
        mytree = itree.ITree()
        mytree.construct(intervals)
        mytree.dump()

        icontrol = {(15, 19), (14, 18)}
        itest = {x for x in mytree.find_intervals_for_point(16)}
        self.assertEqual(icontrol, itest)

        icontrol = {
            (9, 13),
            (8, 11),
            (6, 8),
            (1, 12),
            (10, 12),
        }
        itest = set([x for x in mytree.find_intervals_for_interval((7, 11))])
        self.assertEqual(icontrol, itest)

        icontrol = {
            (9, 13),
            (8, 11),
            (1, 12),
            (10, 12),
        }
        itest = set([x for x in mytree.find_intervals_for_interval((8, 11))])
        self.assertEqual(icontrol, itest)
コード例 #10
0
ファイル: benchmarking.py プロジェクト: nijibabulu/itree
 def constructor(self, intervals) -> Callable[[], itree.ITree]:
     self._object = itree.ITree(intervals)
     return lambda: itree.ITree(intervals)
コード例 #11
0
def test_insert(itree_simple_sample):
    t = itree.ITree()
    for node in itree_simple_sample:
        t.insert(node)
コード例 #12
0
def test_random_insert(FakeNode, itree_random_intervals):
    t = itree.ITree()
    for node in itree_random_intervals:
        t.insert(node)
コード例 #13
0
def test_complex_insert(itree_complex_sample):
    t = itree.ITree()
    for node in itree_complex_sample:
        t.insert(node)
コード例 #14
0
def test_search_empty_tree(FakeITree, FakeNode):
    tree = itree.ITree()
    test_node = FakeNode(3,15)

    assert tree.search(test_node) == []
コード例 #15
0
def test_node_str(itree_simple_sample):
    tree = itree.ITree(nodes=itree_simple_sample)
    expected = f"ITree(root=({tree.root.start},{tree.root.end}))"

    assert str(tree) == expected
コード例 #16
0
def test_tree_pstring(itree_simple_sample):
    tree = itree.ITree(nodes=itree_simple_sample)

    assert tree.pstring() == simple_tree_pstring