def test_mh_inplace_concat_asymmetric(track_abundance): # test merging two asymmetric (different size) MHs a = MinHash(20, 10, track_abundance=track_abundance) for i in range(0, 40, 2): a.add_hash(i) # different size: 10 b = MinHash(10, 10, track_abundance=track_abundance) for i in range(0, 80, 4): b.add_hash(i) c = a.__copy__() c += b d = b.__copy__() d += a assert len(a) == 20 assert len(b) == 10 assert len(c) == len(a) assert len(d) == len(b) try: d.compare(a) except TypeError as exc: assert 'must have same num' in str(exc) a = a.downsample_n(d.num) assert d.compare(a) == 1.0 # see: d += a, above. c = c.downsample_n(b.num) assert c.compare(b) == 0.5
def test_mh_inplace_concat(track_abundance): # test merging two identically configured minhashes a = MinHash(20, 10, track_abundance=track_abundance) for i in range(0, 40, 2): a.add_hash(i) b = MinHash(20, 10, track_abundance=track_abundance) for i in range(0, 80, 4): b.add_hash(i) c = a.__copy__() c += b d = b.__copy__() d += a assert len(c) == len(d) assert c.get_mins() == d.get_mins() assert c.compare(d) == 1.0 assert d.compare(c) == 1.0
def test_mh_copy(track_abundance): a = MinHash(20, 10, track_abundance=track_abundance) a.add_sequence('TGCCGCCCAGCACCGGGTGACTAGGTTGAGCCATGATTAACCTGCAATGA') b = a.__copy__() assert b.compare(a) == 1.0