@@ -83,24 +83,25 @@ def test_one_sample_recombinant_filtered(self):
83
83
assert ts2 .num_nodes == ts .num_nodes
84
84
assert ts2 .num_samples == ts .num_samples
85
85
86
- def test_two_samples_recombinant_not_filtered (self ):
87
- """
88
- Test case where two identical recombinant samples get added
89
- but not excluded despite HMM costs above the max threshold.
90
- """
86
+ def test_two_samples_recombinant_one_filtered (self ):
91
87
ts = util .example_binary (2 )
92
88
L = ts .sequence_length
93
89
x = L / 2
94
- new_sample_paths = [
95
- [(0 , x , 2 ), (x , L , 3 )],
96
- [(0 , x , 2 ), (x , L , 3 )],
90
+ new_paths = [
91
+ [(0 , x , 2 ), (x , L , 3 )], # Added
92
+ [
93
+ (0 , L / 4 , 2 ),
94
+ (L / 4 , L / 2 , 3 ),
95
+ (L / 2 , 3 / 4 * L , 4 ),
96
+ (3 / 4 * L , L , 2 ),
97
+ ], # Filtered
97
98
]
98
- samples = util .get_samples (ts , new_sample_paths )
99
+ samples = util .get_samples (ts , new_paths )
99
100
ts2 = sc2ts .add_matching_results (
100
- samples , ts , "2021" , num_mismatches = 1e3 , max_hmm_cost = 1e3 - 1
101
+ samples , ts , "2021" , num_mismatches = 3 , max_hmm_cost = 4
101
102
)
102
103
assert ts2 .num_trees == 2
103
- assert ts2 .num_samples == ts .num_samples + len ( new_sample_paths )
104
+ assert ts2 .num_samples == ts .num_samples + 1
104
105
105
106
def test_one_sample_one_mutation (self ):
106
107
ts = sc2ts .initial_ts ()
@@ -130,24 +131,25 @@ def test_one_sample_one_mutation_filtered(self):
130
131
assert ts2 .site (0 ).ancestral_state == ts .site (0 ).ancestral_state
131
132
assert ts2 .num_mutations == 0
132
133
133
- def test_two_samples_one_mutation_not_filtered (self ):
134
+ def test_two_samples_one_mutation_one_filtered (self ):
134
135
ts = sc2ts .initial_ts ()
135
136
ts = sc2ts .increment_time ("2020-01-01" , ts )
136
- new_sample_paths = [
137
+ x = int (ts .sequence_length / 2 )
138
+ new_paths = [
137
139
[(0 , ts .sequence_length , 1 )],
138
140
[(0 , ts .sequence_length , 1 )],
139
141
]
140
- new_sample_mutations = [
141
- [(0 , "X" )],
142
- [(0 , "X" )],
142
+ new_mutations = [
143
+ [(0 , "X" )], # Added
144
+ [(0 , "X" ), ( x , "X" )], # Filtered
143
145
]
144
146
samples = util .get_samples (
145
147
ts ,
146
- paths = new_sample_paths ,
147
- mutations = new_sample_mutations ,
148
+ paths = new_paths ,
149
+ mutations = new_mutations ,
148
150
)
149
151
ts2 = sc2ts .add_matching_results (
150
- samples , ts , "2021" , num_mismatches = 0.0 , max_hmm_cost = 0.0
152
+ samples , ts , "2021" , num_mismatches = 3 , max_hmm_cost = 1
151
153
)
152
154
assert ts2 .num_trees == ts .num_trees
153
155
assert ts2 .site (0 ).ancestral_state == ts .site (0 ).ancestral_state
0 commit comments