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)
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())
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())