Exemplo n.º 1
0
def test_intersection_errors(track_abundance):
    a = MinHash(20, 10, track_abundance=track_abundance)
    b = MinHash(20, 10, track_abundance=track_abundance)
    c = MinHash(30, 10, track_abundance=track_abundance)

    a.add_sequence("TGCCGCCCAGCA")
    b.add_sequence("TGCCGCCCAGCA")

    common = set(a.get_mins())
    combined_size = 3

    intersection, size = a.intersection(b, in_common=False)
    assert intersection == set()
    assert combined_size == size

    with pytest.raises(TypeError):
        a.intersection(set())

    with pytest.raises(TypeError):
        a.intersection(c)
Exemplo n.º 2
0
def test_intersection_1(track_abundance):
    a = MinHash(20, 10, track_abundance=track_abundance)
    b = MinHash(20, 10, track_abundance=track_abundance)

    a.add_sequence('TGCCGCCCAGCA')
    b.add_sequence('TGCCGCCCAGCA')

    common = set(a.get_mins())
    combined_size = 3

    intersection, size = a.intersection(b, in_common=True)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(b, in_common=True)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(a, in_common=True)
    assert intersection == common
    assert combined_size == size

    intersection, size = a.intersection(a, in_common=True)
    assert intersection == common
    assert combined_size == size

    # add same sequence again
    b.add_sequence('TGCCGCCCAGCA')

    intersection, size = a.intersection(b, in_common=True)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(b, in_common=True)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(a, in_common=True)
    assert intersection == common
    assert combined_size == size

    intersection, size = a.intersection(a, in_common=True)
    assert intersection == common
    assert combined_size == size

    a.add_sequence('GTCCGCCCAGTGA')
    b.add_sequence('GTCCGCCCAGTGG')

    new_in_common = set(a.get_mins()).intersection(set(b.get_mins()))
    new_combined_size = 8

    intersection, size = a.intersection(b, in_common=True)
    assert intersection == new_in_common
    assert size == new_combined_size

    intersection, size = b.intersection(a, in_common=True)
    assert intersection == new_in_common
    assert size == new_combined_size

    intersection, size = a.intersection(a, in_common=True)
    assert intersection == set(a.get_mins())

    intersection, size = b.intersection(b, in_common=True)
    assert intersection == set(b.get_mins())
Exemplo n.º 3
0
def test_intersection_1(track_abundance):
    a = MinHash(20, 10, track_abundance=track_abundance)
    b = MinHash(20, 10, track_abundance=track_abundance)

    a.add_sequence('TGCCGCCCAGCA')
    b.add_sequence('TGCCGCCCAGCA')

    common = set(a.get_mins())
    combined_size = 3

    intersection, size = a.intersection(b)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(b)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(a)
    assert intersection == common
    assert combined_size == size

    intersection, size = a.intersection(a)
    assert intersection == common
    assert combined_size == size

    # add same sequence again
    b.add_sequence('TGCCGCCCAGCA')

    intersection, size = a.intersection(b)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(b)
    assert intersection == common
    assert combined_size == size

    intersection, size = b.intersection(a)
    assert intersection == common
    assert combined_size == size

    intersection, size = a.intersection(a)
    assert intersection == common
    assert combined_size == size

    a.add_sequence('GTCCGCCCAGTGA')
    b.add_sequence('GTCCGCCCAGTGG')

    new_in_common = set(a.get_mins()).intersection(set(b.get_mins()))
    new_combined_size = 8

    intersection, size = a.intersection(b)
    assert intersection == new_in_common
    assert size == new_combined_size

    intersection, size = b.intersection(a)
    assert intersection == new_in_common
    assert size == new_combined_size

    intersection, size = a.intersection(a)
    assert intersection == set(a.get_mins())

    intersection, size = b.intersection(b)
    assert intersection == set(b.get_mins())