def test_load_one_succeed(track_abundance): e1 = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1) x = save_signatures([sig1]) y = load_one_signature(x) assert sig1 == y
def test_load_minified(track_abundance): sigfile = utils.get_test_data('genome-s10+s11.sig') sigs = load_signatures(sigfile) minified = save_signatures(sigs) with open(sigfile, 'r') as f: orig_file = f.read() assert len(minified) < len(orig_file) assert '\n' not in minified
def test_roundtrip(track_abundance): e = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) e.add("AT" * 10) sig = SourmashSignature(e) s = save_signatures([sig]) siglist = list(load_signatures(s)) sig2 = siglist[0] e2 = sig2.minhash assert sig.similarity(sig2) == 1.0 assert sig2.similarity(sig) == 1.0
def test_load_compressed(track_abundance): e1 = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1) x = save_signatures([sig1], compression=5) y = load_one_signature(x) assert sig1 == y sigfile = utils.get_test_data('genome-s10+s11.sig.gz') sigs = load_signatures(sigfile)
def test_load_one_fail_multisig(track_abundance): e1 = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1) e2 = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig2 = SourmashSignature(e2) x = save_signatures([sig1, sig2]) with pytest.raises(ValueError): y = load_one_signature(x)
def test_roundtrip_empty(track_abundance): # edge case, but: empty minhash? :) e = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig = SourmashSignature(e) s = save_signatures([sig]) siglist = list(load_signatures(s)) sig2 = siglist[0] e2 = sig2.minhash assert sig.similarity(sig2) == 0 assert sig2.similarity(sig) == 0
def test_roundtrip_max_hash(track_abundance): e = sourmash.MinHash(n=0, ksize=20, track_abundance=track_abundance, max_hash=10) e.add_hash(5) sig = SourmashSignature(e) s = save_signatures([sig]) siglist = list(load_signatures(s)) sig2 = siglist[0] e2 = sig2.minhash assert e.max_hash == e2.max_hash assert sig.similarity(sig2) == 1.0 assert sig2.similarity(sig) == 1.0
def test_save_minified(track_abundance): e1 = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1, name="foo") e2 = sourmash.MinHash(n=1, ksize=25, track_abundance=track_abundance) sig2 = SourmashSignature(e2, name="bar baz") x = save_signatures([sig1, sig2]) assert '\n' not in x assert len(x.split('\n')) == 1 y = list(load_signatures(x)) assert len(y) == 2 assert any(sig.name() == 'foo' for sig in y) assert any(sig.name() == 'bar baz' for sig in y)
def test_save_load_multisig(track_abundance): e1 = sourmash.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1) e2 = sourmash.MinHash(n=1, ksize=25, track_abundance=track_abundance) sig2 = SourmashSignature(e2) x = save_signatures([sig1, sig2]) y = list(load_signatures(x)) print(x) assert len(y) == 2 assert sig1 in y # order not guaranteed, note. assert sig2 in y assert sig1 != sig2
def test_load_one_fail_nosig(track_abundance): x = save_signatures([]) print((x, )) with pytest.raises(ValueError): y = load_one_signature(x)
def test_load_one_fail_nosig(track_abundance): x = save_signatures([]) print((x,)) with pytest.raises(ValueError): y = load_one_signature(x)