/
test_compare.py
61 lines (45 loc) · 2 KB
/
test_compare.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
import glob
import os
import numpy as np
import pytest
import sourmash
from sourmash.compare import (compare_all_pairs, compare_parallel,
compare_serial)
import sourmash_tst_utils as utils
@pytest.fixture()
def siglist():
demo_path = utils.get_test_data("demo")
filenames = sorted(glob.glob(os.path.join(demo_path, "*.sig")))
sigs = []
for filename in filenames:
sigs.extend(sourmash.load_file_as_signatures(filename))
return sigs
@pytest.fixture()
def ignore_abundance(track_abundance):
return not track_abundance
def test_compare_serial(siglist, ignore_abundance):
similarities = compare_serial(siglist, ignore_abundance, downsample=False)
true_similarities = np.array(
[[1., 0.356, 0.078, 0.086, 0., 0., 0.],
[0.356, 1., 0.072, 0.078, 0., 0., 0.],
[0.078, 0.072, 1., 0.074, 0., 0., 0.],
[0.086, 0.078, 0.074, 1., 0., 0., 0.],
[0., 0., 0., 0., 1., 0.382, 0.364],
[0., 0., 0., 0., 0.382, 1., 0.386],
[0., 0., 0., 0., 0.364, 0.386, 1.]])
np.testing.assert_array_equal(similarities, true_similarities)
def test_compare_parallel(siglist, ignore_abundance):
similarities = compare_parallel(siglist, ignore_abundance, downsample=False, n_jobs=2)
true_similarities = np.array(
[[1., 0.356, 0.078, 0.086, 0., 0., 0.],
[0.356, 1., 0.072, 0.078, 0., 0., 0.],
[0.078, 0.072, 1., 0.074, 0., 0., 0.],
[0.086, 0.078, 0.074, 1., 0., 0., 0.],
[0., 0., 0., 0., 1., 0.382, 0.364],
[0., 0., 0., 0., 0.382, 1., 0.386],
[0., 0., 0., 0., 0.364, 0.386, 1.]])
np.testing.assert_array_equal(similarities, true_similarities)
def test_compare_all_pairs(siglist, ignore_abundance):
similarities_parallel = compare_all_pairs(siglist, ignore_abundance, downsample=False, n_jobs=2)
similarities_serial = compare_serial(siglist, ignore_abundance, downsample=False)
np.testing.assert_array_equal(similarities_parallel, similarities_serial)