Esempio n. 1
0
def test_wholly_contained_target() -> None:
    target_inner = Interval("1", 50, 60)
    target_outer = Interval("1", 40, 80)

    run_test(targets=[target_inner, target_outer],
             query=target_inner,
             results=[target_outer, target_inner])
Esempio n. 2
0
def test_multiple_references() -> None:
    target_chr1 = Interval("1", 10, 20)
    target_chr2 = Interval("2", 10, 20)
    run_test(targets=[target_chr1, target_chr2],
             query=target_chr1,
             results=[target_chr1])
    run_test(targets=[target_chr1, target_chr2],
             query=target_chr2,
             results=[target_chr2])
Esempio n. 3
0
def test_get_enclosed() -> None:
    a = Interval("1", 10, 100)
    b = Interval("1", 15, 20)
    c = Interval("1", 18, 19)
    d = Interval("1", 50, 99)

    detector = OverlapDetector()
    detector.add_all([a, b, c, d])

    assert detector.get_enclosed(Interval("1", 1, 250)) == [a, b, c, d]
    assert detector.get_enclosed(Interval("1", 5, 30)) == [b, c]
    assert detector.get_enclosed(Interval("1", 16, 20)) == [c]
    assert detector.get_enclosed(Interval("1", 15, 19)) == [c]
    assert detector.get_enclosed(Interval("1", 10, 99)) == [b, c, d]
Esempio n. 4
0
def test_multiple_overlaps() -> None:
    interval_a = Interval("1", 10, 20)
    interval_b = Interval("1", 15, 25)
    interval_c = Interval("1", 19, 30)
    interval_d = Interval("1", 24, 35)

    # B overlaps both A and C
    run_test(targets=[interval_a, interval_c],
             query=interval_b,
             results=[interval_a, interval_c])
    # C overlaps both A and B
    run_test(targets=[interval_a, interval_b],
             query=interval_c,
             results=[interval_a, interval_b])
    # D overlaps only B and C (is after A)
    run_test(targets=[interval_a, interval_b, interval_c],
             query=interval_d,
             results=[interval_b, interval_c])
Esempio n. 5
0
def test_same_interval_twice() -> None:
    interval = Interval("1", 10, 100)
    run_test(targets=[interval, interval], query=interval, results=[interval])
Esempio n. 6
0
def test_different_references() -> None:
    target = Interval("1", 10, 100)
    query = Interval("2", 10, 100)
    run_test(targets=[target], query=query, results=[])
Esempio n. 7
0
def test_query_after_target() -> None:
    target = Interval("1", 10, 100)
    query = Interval("1", 100, 101)
    run_test(targets=[target], query=query, results=[])
Esempio n. 8
0
def test_query_before_target() -> None:
    target = Interval("1", 10, 100)
    query = Interval("1", 9, 10)
    run_test(targets=[target], query=query, results=[])
Esempio n. 9
0
def test_target_overlaps_last_base_of_query() -> None:
    target = Interval("1", 10, 100)
    query = Interval("1", 10, 11)
    run_test(targets=[target], query=query, results=[target])
Esempio n. 10
0
def test_target_wholly_contained_in_query() -> None:
    target = Interval("1", 10, 100)
    query = Interval("1", 9, 101)
    run_test(targets=[target], query=query, results=[target])