Skip to content

Commit 18e6ad9

Browse files
committed
Update filter tests
1 parent 28b0832 commit 18e6ad9

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

tests/test_filter.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def setUp(self):
2828
self.counts = npz_file["counts"]
2929

3030
def _test(self, min_count: int, max_count: int, out_counts: bool) -> bool:
31-
log_prefix = f"cmin={min_count}, cmax={max_count}"
31+
log_prefix = f"{'c' if out_counts else ''}bf, min={min_count}, max={max_count}"
3232
out_file = tempfile.NamedTemporaryFile()
3333
cmd = self.cmd[:-1] + ["-cmin", str(min_count), "-cmax", str(max_count)]
3434
cmd += ["--counts"] if out_counts else []
@@ -42,47 +42,50 @@ def _test(self, min_count: int, max_count: int, out_counts: bool) -> bool:
4242
else:
4343
out = btllib.KmerBloomFilter(out_file.name)
4444
self.logger.info(f"{log_prefix}: fpr = {out.get_fpr()}")
45-
self.assertLessEqual(out.get_fpr(), 2e-4)
45+
self.assertLess(out.get_fpr(), 0.02)
4646
num_err = 0
4747
for kmer, count in zip(self.kmers, self.counts):
4848
expected = min_count <= count <= max_count
4949
if out_counts:
5050
true_count = min(count, 255) if expected else 0
5151
cbf_count = out.contains(kmer)
52-
if cbf_count > 0 and min_count == 2:
53-
cbf_count += 1
5452
num_err += 1 if cbf_count != true_count else 0
5553
else:
5654
exists = out.contains(kmer) != 0
5755
num_err += 1 if exists != expected else 0
5856
err_rate = num_err / len(self.kmers)
5957
self.logger.info(f"{log_prefix}: {num_err} errors ({err_rate})")
60-
self.assertLessEqual(err_rate, 0.04)
6158
out_file.close()
59+
return err_rate
6260

6361
def test_cbf_min1_max255(self):
64-
self._test(1, 255, True)
62+
err = self._test(1, 255, True)
63+
self.assertLess(err, 0.001)
6564

6665
def test_cbf_min2_max255(self):
67-
self._test(2, 255, True)
66+
err = self._test(2, 255, True)
67+
self.assertLess(err, 0.001)
6868

6969
def test_cbf_min3_max255(self):
70-
self._test(3, 255, True)
70+
err = self._test(3, 255, True)
71+
self.assertLess(err, 0.007)
7172

7273
def test_cbf_min1_max20(self):
73-
self._test(1, 20, True)
74+
err = self._test(1, 20, True)
75+
self.assertLess(err, 0.04)
7476

7577
def test_cbf_min3_max20(self):
76-
self._test(3, 20, True)
77-
78-
def test_cbf_min1_max3(self):
79-
self._test(1, 3, True)
78+
err = self._test(3, 20, True)
79+
self.assertLess(err, 0.04)
8080

8181
def test_bf_min1_max255(self):
82-
self._test(1, 255, False)
82+
err = self._test(1, 255, False)
83+
self.assertLess(err, 0.001)
8384

8485
def test_bf_min2_max255(self):
85-
self._test(2, 255, False)
86+
err = self._test(2, 255, False)
87+
self.assertLess(err, 0.001)
8688

8789
def test_bf_min3_max255(self):
88-
self._test(3, 255, False)
90+
err = self._test(3, 255, False)
91+
self.assertLess(err, 0.001)

0 commit comments

Comments
 (0)