@@ -8776,6 +8776,51 @@ test_init_compute_mutation_parents(void)
8776
8776
tsk_treeseq_free (& ts );
8777
8777
}
8778
8778
8779
+ static void
8780
+ test_init_compute_mutation_parents_errors (void )
8781
+ {
8782
+ int ret ;
8783
+ tsk_id_t row_ret ;
8784
+ tsk_table_collection_t tables ;
8785
+ tsk_treeseq_t ts ;
8786
+ const char * sites = "0.5 0\n"
8787
+ "0 0\n" ;
8788
+
8789
+ ret = tsk_table_collection_init (& tables , 0 );
8790
+ CU_ASSERT_EQUAL_FATAL (ret , 0 );
8791
+
8792
+ tables .sequence_length = 1 ;
8793
+ parse_nodes (single_tree_ex_nodes , & tables .nodes );
8794
+ CU_ASSERT_EQUAL_FATAL (tables .nodes .num_rows , 7 );
8795
+ parse_edges (single_tree_ex_edges , & tables .edges );
8796
+ CU_ASSERT_EQUAL_FATAL (tables .edges .num_rows , 6 );
8797
+ parse_sites (sites , & tables .sites );
8798
+ CU_ASSERT_EQUAL_FATAL (tables .sites .num_rows , 2 );
8799
+ tables .sequence_length = 1.0 ;
8800
+
8801
+ ret = tsk_treeseq_init (
8802
+ & ts , & tables , TSK_TS_INIT_BUILD_INDEXES | TSK_TS_INIT_COMPUTE_MUTATION_PARENTS );
8803
+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_UNSORTED_SITES );
8804
+ tsk_treeseq_free (& ts );
8805
+
8806
+ tsk_site_table_clear (& tables .sites );
8807
+ row_ret = tsk_site_table_add_row (& tables .sites , 0.5 , "A" , 1 , NULL , 0 );
8808
+ CU_ASSERT_EQUAL_FATAL (row_ret , 0 );
8809
+ row_ret = tsk_mutation_table_add_row (
8810
+ & tables .mutations , 0 , 0 , TSK_NULL , TSK_UNKNOWN_TIME , "A" , 1 , NULL , 0 );
8811
+ CU_ASSERT_EQUAL_FATAL (row_ret , 0 );
8812
+ row_ret = tsk_mutation_table_add_row (
8813
+ & tables .mutations , 0 , 4 , TSK_NULL , TSK_UNKNOWN_TIME , "A" , 1 , NULL , 0 );
8814
+ CU_ASSERT_EQUAL_FATAL (row_ret , 1 );
8815
+
8816
+ ret = tsk_treeseq_init (
8817
+ & ts , & tables , TSK_TS_INIT_BUILD_INDEXES | TSK_TS_INIT_COMPUTE_MUTATION_PARENTS );
8818
+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_MUTATION_PARENT_AFTER_CHILD );
8819
+ tsk_treeseq_free (& ts );
8820
+
8821
+ tsk_table_collection_free (& tables );
8822
+ }
8823
+
8779
8824
int
8780
8825
main (int argc , char * * argv )
8781
8826
{
@@ -8985,6 +9030,8 @@ main(int argc, char **argv)
8985
9030
{ "test_init_take_ownership_no_edge_metadata" ,
8986
9031
test_init_take_ownership_no_edge_metadata },
8987
9032
{ "test_init_compute_mutation_parents" , test_init_compute_mutation_parents },
9033
+ { "test_init_compute_mutation_parents_errors" ,
9034
+ test_init_compute_mutation_parents_errors },
8988
9035
{ NULL , NULL },
8989
9036
};
8990
9037
0 commit comments