@@ -8776,6 +8776,49 @@ 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
+
8805
+ tsk_site_table_clear (& tables .sites );
8806
+ row_ret = tsk_site_table_add_row (& tables .sites , 0.5 , "A" , 1 , NULL , 0 );
8807
+ CU_ASSERT_EQUAL_FATAL (row_ret , 0 );
8808
+ row_ret = tsk_mutation_table_add_row (
8809
+ & tables .mutations , 0 , 0 , TSK_NULL , TSK_UNKNOWN_TIME , "A" , 1 , NULL , 0 );
8810
+ CU_ASSERT_EQUAL_FATAL (row_ret , 0 );
8811
+ row_ret = tsk_mutation_table_add_row (
8812
+ & tables .mutations , 0 , 4 , TSK_NULL , TSK_UNKNOWN_TIME , "A" , 1 , NULL , 0 );
8813
+ CU_ASSERT_EQUAL_FATAL (row_ret , 1 );
8814
+
8815
+ ret = tsk_treeseq_init (
8816
+ & ts , & tables , TSK_TS_INIT_BUILD_INDEXES | TSK_TS_INIT_COMPUTE_MUTATION_PARENTS );
8817
+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_MUTATION_PARENT_AFTER_CHILD );
8818
+
8819
+ tsk_table_collection_free (& tables );
8820
+ }
8821
+
8779
8822
int
8780
8823
main (int argc , char * * argv )
8781
8824
{
@@ -8985,6 +9028,8 @@ main(int argc, char **argv)
8985
9028
{ "test_init_take_ownership_no_edge_metadata" ,
8986
9029
test_init_take_ownership_no_edge_metadata },
8987
9030
{ "test_init_compute_mutation_parents" , test_init_compute_mutation_parents },
9031
+ { "test_init_compute_mutation_parents_errors" ,
9032
+ test_init_compute_mutation_parents_errors },
8988
9033
{ NULL , NULL },
8989
9034
};
8990
9035
0 commit comments