@@ -263,11 +263,10 @@ verify_mean_descendants(tsk_treeseq_t *ts)
263
263
}
264
264
265
265
/* Check the divergence matrix by running against the stats API equivalent
266
- * code. NOTE: this will not always be equal in site mode, because of a slightly
267
- * different definition wrt to multiple mutations at a site.
266
+ * code.
268
267
*/
269
268
static void
270
- verify_divergence_matrix (tsk_treeseq_t * ts , tsk_flags_t mode )
269
+ verify_divergence_matrix (tsk_treeseq_t * ts , tsk_flags_t options )
271
270
{
272
271
int ret ;
273
272
const tsk_size_t n = tsk_treeseq_get_num_samples (ts );
@@ -285,10 +284,10 @@ verify_divergence_matrix(tsk_treeseq_t *ts, tsk_flags_t mode)
285
284
}
286
285
}
287
286
ret = tsk_treeseq_divergence (
288
- ts , n , sample_set_sizes , samples , n * n , index_tuples , 0 , NULL , mode , D1 );
287
+ ts , n , sample_set_sizes , samples , n * n , index_tuples , 0 , NULL , options , D1 );
289
288
CU_ASSERT_EQUAL_FATAL (ret , 0 );
290
289
291
- ret = tsk_treeseq_divergence_matrix (ts , 0 , NULL , 0 , NULL , mode , D2 );
290
+ ret = tsk_treeseq_divergence_matrix (ts , 0 , NULL , 0 , NULL , options , D2 );
292
291
CU_ASSERT_EQUAL_FATAL (ret , 0 );
293
292
294
293
for (j = 0 ; j < n ; j ++ ) {
@@ -1072,7 +1071,9 @@ test_single_tree_divergence_matrix(void)
1072
1071
assert_arrays_almost_equal (16 , result , D_site );
1073
1072
1074
1073
verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1074
+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
1075
1075
verify_divergence_matrix (& ts , TSK_STAT_SITE );
1076
+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
1076
1077
1077
1078
tsk_treeseq_free (& ts );
1078
1079
}
@@ -1120,7 +1121,9 @@ test_single_tree_divergence_matrix_internal_samples(void)
1120
1121
assert_arrays_almost_equal (16 , result , D );
1121
1122
1122
1123
verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1124
+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
1123
1125
verify_divergence_matrix (& ts , TSK_STAT_SITE );
1126
+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
1124
1127
1125
1128
tsk_treeseq_free (& ts );
1126
1129
}
@@ -1165,8 +1168,10 @@ test_single_tree_divergence_matrix_multi_root(void)
1165
1168
CU_ASSERT_EQUAL_FATAL (ret , 0 );
1166
1169
assert_arrays_almost_equal (16 , result , D_branch );
1167
1170
1168
- verify_divergence_matrix (& ts , TSK_STAT_SITE );
1169
1171
verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1172
+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
1173
+ verify_divergence_matrix (& ts , TSK_STAT_SITE );
1174
+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
1170
1175
1171
1176
tsk_treeseq_free (& ts );
1172
1177
}
@@ -1839,7 +1844,9 @@ test_paper_ex_divergence_matrix(void)
1839
1844
paper_ex_mutations , paper_ex_individuals , NULL , 0 );
1840
1845
1841
1846
verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1847
+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
1842
1848
verify_divergence_matrix (& ts , TSK_STAT_SITE );
1849
+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
1843
1850
1844
1851
tsk_treeseq_free (& ts );
1845
1852
}
@@ -1999,10 +2006,20 @@ test_simplest_divergence_matrix(void)
1999
2006
CU_ASSERT_EQUAL_FATAL (ret , 0 );
2000
2007
assert_arrays_almost_equal (4 , D_branch , result );
2001
2008
2009
+ ret = tsk_treeseq_divergence_matrix (
2010
+ & ts , 2 , sample_ids , 0 , NULL , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE , result );
2011
+ CU_ASSERT_EQUAL_FATAL (ret , 0 );
2012
+ assert_arrays_almost_equal (4 , D_branch , result );
2013
+
2002
2014
ret = tsk_treeseq_divergence_matrix (& ts , 2 , sample_ids , 0 , NULL , 0 , result );
2003
2015
CU_ASSERT_EQUAL_FATAL (ret , 0 );
2004
2016
assert_arrays_almost_equal (4 , D_site , result );
2005
2017
2018
+ ret = tsk_treeseq_divergence_matrix (
2019
+ & ts , 2 , sample_ids , 0 , NULL , TSK_STAT_SPAN_NORMALISE , result );
2020
+ CU_ASSERT_EQUAL_FATAL (ret , 0 );
2021
+ assert_arrays_almost_equal (4 , D_site , result );
2022
+
2006
2023
ret = tsk_treeseq_divergence_matrix (
2007
2024
& ts , 2 , sample_ids , 0 , NULL , TSK_STAT_SITE , result );
2008
2025
CU_ASSERT_EQUAL_FATAL (ret , 0 );
@@ -2019,10 +2036,6 @@ test_simplest_divergence_matrix(void)
2019
2036
ret = tsk_treeseq_divergence_matrix (& ts , 0 , NULL , 0 , NULL , TSK_STAT_NODE , result );
2020
2037
CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_UNSUPPORTED_STAT_MODE );
2021
2038
2022
- ret = tsk_treeseq_divergence_matrix (
2023
- & ts , 0 , NULL , 0 , NULL , TSK_STAT_SPAN_NORMALISE , result );
2024
- CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_STAT_SPAN_NORMALISE_UNSUPPORTED );
2025
-
2026
2039
ret = tsk_treeseq_divergence_matrix (
2027
2040
& ts , 0 , NULL , 0 , NULL , TSK_STAT_POLARISED , result );
2028
2041
CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_STAT_POLARISED_UNSUPPORTED );
@@ -2146,7 +2159,9 @@ test_multiroot_divergence_matrix(void)
2146
2159
multiroot_ex_sites , multiroot_ex_mutations , NULL , NULL , 0 );
2147
2160
2148
2161
verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
2162
+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
2149
2163
verify_divergence_matrix (& ts , TSK_STAT_SITE );
2164
+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
2150
2165
2151
2166
tsk_treeseq_free (& ts );
2152
2167
}
0 commit comments