-
Notifications
You must be signed in to change notification settings - Fork 1
/
test_subtract.py
77 lines (57 loc) · 2.94 KB
/
test_subtract.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
test_sourmash_utils
----------------------------------
Tests for `sourmash_utils` module.
"""
import os
import sourmash_lib.signature
import sourmash_lib.tests.sourmash_tst_utils as utils
def test_subtract_from_sourmash():
with utils.TempDirectory() as location:
testdata1 = utils.get_test_data('short.fa')
testdata2 = utils.get_test_data('short2.fa')
status, out, err = utils.runscript('sourmash',
['compute', testdata1, testdata2],
in_directory=location)
with open(os.path.join(location, 'short.fa.sig')) as f:
sigs = list(sourmash_lib.signature.load_signatures(f))
s1mins = set(sigs[0].minhash.get_mins())
with open(os.path.join(location, 'short2.fa.sig')) as f:
sigs = list(sourmash_lib.signature.load_signatures(f))
s2mins = set(sigs[0].minhash.get_mins())
status, out, err = utils.runscript('sourmash',
['utils', 'subtract',
'short.fa.sig', 'short2.fa.sig'],
in_directory=location)
print(out)
assert os.path.exists(os.path.join(location, 'short.fa.sig.sub'))
with open(os.path.join(location, 'short.fa.sig.sub')) as f:
sigs = list(sourmash_lib.signature.load_signatures(f))
submins = set(sigs[0].minhash.get_mins())
assert submins == s1mins - s2mins
def test_subtract_from_sourmash_utils():
with utils.TempDirectory() as location:
testdata1 = utils.get_test_data('short.fa')
testdata2 = utils.get_test_data('short2.fa')
status, out, err = utils.runscript('sourmash',
['compute', testdata1, testdata2],
in_directory=location)
with open(os.path.join(location, 'short.fa.sig')) as f:
sigs = list(sourmash_lib.signature.load_signatures(f))
s1mins = set(sigs[0].minhash.get_mins())
with open(os.path.join(location, 'short2.fa.sig')) as f:
sigs = list(sourmash_lib.signature.load_signatures(f))
s2mins = set(sigs[0].minhash.get_mins())
status, out, err = utils.runscript('sourmash-utils',
['subtract',
'short.fa.sig', 'short2.fa.sig'],
in_directory=location,
distribution='sourmash_utils')
print(out)
assert os.path.exists(os.path.join(location, 'short.fa.sig.sub'))
with open(os.path.join(location, 'short.fa.sig.sub')) as f:
sigs = list(sourmash_lib.signature.load_signatures(f))
submins = set(sigs[0].minhash.get_mins())
assert submins == s1mins - s2mins