@@ -263,11 +263,10 @@ verify_mean_descendants(tsk_treeseq_t *ts)
263263}
264264
265265/* 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.
268267 */
269268static 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 )
271270{
272271 int ret ;
273272 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)
285284 }
286285 }
287286 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 );
289288 CU_ASSERT_EQUAL_FATAL (ret , 0 );
290289
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 );
292291 CU_ASSERT_EQUAL_FATAL (ret , 0 );
293292
294293 for (j = 0 ; j < n ; j ++ ) {
@@ -1072,7 +1071,9 @@ test_single_tree_divergence_matrix(void)
10721071 assert_arrays_almost_equal (16 , result , D_site );
10731072
10741073 verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1074+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
10751075 verify_divergence_matrix (& ts , TSK_STAT_SITE );
1076+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
10761077
10771078 tsk_treeseq_free (& ts );
10781079}
@@ -1120,7 +1121,9 @@ test_single_tree_divergence_matrix_internal_samples(void)
11201121 assert_arrays_almost_equal (16 , result , D );
11211122
11221123 verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1124+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
11231125 verify_divergence_matrix (& ts , TSK_STAT_SITE );
1126+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
11241127
11251128 tsk_treeseq_free (& ts );
11261129}
@@ -1165,8 +1168,10 @@ test_single_tree_divergence_matrix_multi_root(void)
11651168 CU_ASSERT_EQUAL_FATAL (ret , 0 );
11661169 assert_arrays_almost_equal (16 , result , D_branch );
11671170
1168- verify_divergence_matrix (& ts , TSK_STAT_SITE );
11691171 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 );
11701175
11711176 tsk_treeseq_free (& ts );
11721177}
@@ -1839,7 +1844,9 @@ test_paper_ex_divergence_matrix(void)
18391844 paper_ex_mutations , paper_ex_individuals , NULL , 0 );
18401845
18411846 verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
1847+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
18421848 verify_divergence_matrix (& ts , TSK_STAT_SITE );
1849+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
18431850
18441851 tsk_treeseq_free (& ts );
18451852}
@@ -1999,10 +2006,20 @@ test_simplest_divergence_matrix(void)
19992006 CU_ASSERT_EQUAL_FATAL (ret , 0 );
20002007 assert_arrays_almost_equal (4 , D_branch , result );
20012008
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+
20022014 ret = tsk_treeseq_divergence_matrix (& ts , 2 , sample_ids , 0 , NULL , 0 , result );
20032015 CU_ASSERT_EQUAL_FATAL (ret , 0 );
20042016 assert_arrays_almost_equal (4 , D_site , result );
20052017
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+
20062023 ret = tsk_treeseq_divergence_matrix (
20072024 & ts , 2 , sample_ids , 0 , NULL , TSK_STAT_SITE , result );
20082025 CU_ASSERT_EQUAL_FATAL (ret , 0 );
@@ -2019,10 +2036,6 @@ test_simplest_divergence_matrix(void)
20192036 ret = tsk_treeseq_divergence_matrix (& ts , 0 , NULL , 0 , NULL , TSK_STAT_NODE , result );
20202037 CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_UNSUPPORTED_STAT_MODE );
20212038
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-
20262039 ret = tsk_treeseq_divergence_matrix (
20272040 & ts , 0 , NULL , 0 , NULL , TSK_STAT_POLARISED , result );
20282041 CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_STAT_POLARISED_UNSUPPORTED );
@@ -2146,7 +2159,9 @@ test_multiroot_divergence_matrix(void)
21462159 multiroot_ex_sites , multiroot_ex_mutations , NULL , NULL , 0 );
21472160
21482161 verify_divergence_matrix (& ts , TSK_STAT_BRANCH );
2162+ verify_divergence_matrix (& ts , TSK_STAT_BRANCH | TSK_STAT_SPAN_NORMALISE );
21492163 verify_divergence_matrix (& ts , TSK_STAT_SITE );
2164+ verify_divergence_matrix (& ts , TSK_STAT_SITE | TSK_STAT_SPAN_NORMALISE );
21502165
21512166 tsk_treeseq_free (& ts );
21522167}
0 commit comments