Skip to content

Commit 00ef8e6

Browse files
committed
test convergence point
1 parent 1e32526 commit 00ef8e6

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

tests/test_stats.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import numpy as np
66
import yaml
77

8+
import pytest
9+
10+
811
testdir = os.path.dirname(os.path.realpath(__file__))
912

1013

@@ -131,3 +134,59 @@ def test_merge_stats():
131134
print(e.output)
132135
print(sys.exc_info())
133136
raise e
137+
138+
139+
from pairtools.lib.stats import PairCounter
140+
141+
@pytest.fixture
142+
def pair_counter():
143+
counter = PairCounter(filters={"f1": "filter1", "f2": "filter2"})
144+
counter._dist_bins = np.array([1, 1000, 10000, 100000, 1000000])
145+
# Populate the counter with some sample data
146+
counter._stat["f1"]["dist_freq"] = {
147+
"++": {1: 80, 1000: 80, 10000: 91, 100000: 95},
148+
"--": {1: 100, 1000: 100, 10000: 100, 100000: 100},
149+
"-+": {1: 100, 1000: 100, 10000: 100, 100000: 100},
150+
"+-": {1: 120, 1000: 120, 10000: 109, 100000: 105},
151+
}
152+
153+
counter._stat["f2"]["dist_freq"] = {
154+
"++": {1: 200, 1000: 180, 10000: 160, 100000: 140},
155+
"--": {1: 220, 1000: 190, 10000: 170, 100000: 150},
156+
"-+": {1: 210, 1000: 185, 10000: 165, 100000: 145},
157+
"+-": {1: 230, 1000: 195, 10000: 175, 100000: 155},
158+
}
159+
160+
return counter
161+
162+
163+
def test_find_dist_freq_convergence_distance(pair_counter):
164+
result = pair_counter.find_dist_freq_convergence_distance(0.1)
165+
166+
assert "f1" in result
167+
assert "f2" in result
168+
169+
f1_result = result["f1"]
170+
assert "convergence_dist" in f1_result
171+
assert "strands_w_max_convergence_dist" in f1_result
172+
assert "convergence_rel_diff_threshold" in f1_result
173+
assert "n_cis_pairs_below_convergence_dist" in f1_result
174+
assert "n_cis_pairs_below_convergence_dist_all_strands" in f1_result
175+
assert "n_cis_pairs_above_convergence_dist_all_strands" in f1_result
176+
assert "frac_cis_in_cis_below_convergence_dist" in f1_result
177+
assert "frac_cis_in_cis_below_convergence_dist_all_strands" in f1_result
178+
assert "frac_cis_in_cis_above_convergence_dist_all_strands" in f1_result
179+
assert "frac_total_mapped_in_cis_below_convergence_dist" in f1_result
180+
assert "frac_total_mapped_in_cis_below_convergence_dist_all_strands" in f1_result
181+
assert "frac_total_mapped_in_cis_above_convergence_dist_all_strands" in f1_result
182+
183+
assert f1_result["convergence_rel_diff_threshold"] == 0.1
184+
assert f1_result["convergence_dist"] == 10000
185+
assert f1_result["strands_w_max_convergence_dist"] == "++"
186+
187+
188+
# f2_result = result["f2"]
189+
# assert "convergence_dist" in f2_result
190+
# assert "strands_w_max_convergence_dist" in f2_result
191+
# assert "convergence_rel_diff_threshold" in f2_result
192+
# Add more assertions for f2_result as needed

0 commit comments

Comments
 (0)