def test_div_zero_contained(track_abundance): # verify that empty MHs do not yield divide by zero errors for contained_by mh = MinHash(1, 4, track_abundance=track_abundance) mh2 = mh.copy_and_clear() mh.add_sequence('ATGC') assert mh.contained_by(mh2) == 0 assert mh2.contained_by(mh) == 0
def test_mh_copy_and_clear_with_max_hash(track_abundance): # test basic creation of new, empty MinHash w/max_hash param set a = MinHash(0, 10, track_abundance=track_abundance, max_hash=20) for i in range(0, 40, 2): a.add_hash(i) b = a.copy_and_clear() assert a.ksize == b.ksize assert b.num == a.num assert b.max_hash == 20 assert not b.is_protein assert b.track_abundance == track_abundance assert b.seed == a.seed assert len(b.get_mins()) == 0 assert a.scaled == b.scaled assert b.scaled != 0