@@ -1367,6 +1367,64 @@ test_alignments_discrete_genome_required(void)
13671367 tsk_treeseq_free (& ts );
13681368}
13691369
1370+ static void
1371+ test_alignments_null_reference (void )
1372+ {
1373+ int ret = 0 ;
1374+ tsk_treeseq_t ts ;
1375+ const tsk_id_t * samples ;
1376+ tsk_size_t n ;
1377+ char buf [10 ];
1378+
1379+ build_balanced_three_example_align (& ts );
1380+ samples = tsk_treeseq_get_samples (& ts );
1381+ n = tsk_treeseq_get_num_samples (& ts );
1382+
1383+ ret = tsk_treeseq_decode_alignments (& ts , NULL , 10 , samples , n , 0 , 10 , 'N' , buf , 0 );
1384+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_BAD_PARAM_VALUE );
1385+ tsk_treeseq_free (& ts );
1386+ }
1387+
1388+ static void
1389+ test_alignments_null_nodes_or_buf (void )
1390+ {
1391+ int ret = 0 ;
1392+ tsk_treeseq_t ts ;
1393+ const char * ref = "NNNNNNNNNN" ;
1394+ const tsk_id_t * samples ;
1395+ tsk_size_t n ;
1396+ char buf [30 ];
1397+
1398+ build_balanced_three_example_align (& ts );
1399+ samples = tsk_treeseq_get_samples (& ts );
1400+ n = tsk_treeseq_get_num_samples (& ts );
1401+
1402+ ret = tsk_treeseq_decode_alignments (& ts , ref , 10 , NULL , n , 0 , 10 , 'N' , buf , 0 );
1403+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_BAD_PARAM_VALUE );
1404+
1405+ ret = tsk_treeseq_decode_alignments (& ts , ref , 10 , samples , n , 0 , 10 , 'N' , NULL , 0 );
1406+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_BAD_PARAM_VALUE );
1407+
1408+ tsk_treeseq_free (& ts );
1409+ }
1410+
1411+ static void
1412+ test_alignments_node_out_of_bounds (void )
1413+ {
1414+ int ret = 0 ;
1415+ tsk_treeseq_t ts ;
1416+ const char * ref = "NNNNNNNNNN" ;
1417+ tsk_id_t bad_node ;
1418+ char buf [10 ];
1419+
1420+ build_balanced_three_example_align (& ts );
1421+ bad_node = (tsk_id_t ) tsk_treeseq_get_num_nodes (& ts );
1422+
1423+ ret = tsk_treeseq_decode_alignments (& ts , ref , 10 , & bad_node , 1 , 0 , 10 , 'N' , buf , 0 );
1424+ CU_ASSERT_EQUAL_FATAL (ret , TSK_ERR_NODE_OUT_OF_BOUNDS );
1425+ tsk_treeseq_free (& ts );
1426+ }
1427+
13701428static void
13711429test_alignments_isolated_as_not_missing (void )
13721430{
@@ -1612,6 +1670,9 @@ main(int argc, char **argv)
16121670 { "test_alignments_non_integer_bounds" , test_alignments_non_integer_bounds },
16131671 { "test_alignments_discrete_genome_required" ,
16141672 test_alignments_discrete_genome_required },
1673+ { "test_alignments_null_reference" , test_alignments_null_reference },
1674+ { "test_alignments_null_nodes_or_buf" , test_alignments_null_nodes_or_buf },
1675+ { "test_alignments_node_out_of_bounds" , test_alignments_node_out_of_bounds },
16151676 { "test_alignments_missing_char_collision" ,
16161677 test_alignments_missing_char_collision },
16171678 { "test_alignments_zero_nodes_ok" , test_alignments_zero_nodes_ok },
0 commit comments