Skip to content

Commit bdde20d

Browse files
committed
Fix C tests
1 parent 19ba014 commit bdde20d

4 files changed

Lines changed: 25 additions & 9 deletions

File tree

c/tests/test_tables.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9011,7 +9011,7 @@ test_sort_tables_mutation_times(void)
90119011
CU_ASSERT_EQUAL_FATAL(ret, 0);
90129012

90139013
/* Check to make sure we have legal mutations */
9014-
ret = tsk_treeseq_init(&ts, &tables, 0);
9014+
ret = tsk_treeseq_init(&ts, &tables, TSK_TS_INIT_COMPUTE_MUTATION_PARENTS);
90159015
CU_ASSERT_EQUAL_FATAL(ret, 0);
90169016

90179017
ret = tsk_treeseq_copy_tables(&ts, &t1, 0);

c/tests/test_trees.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3886,16 +3886,16 @@ test_simplest_mutation_edges(void)
38863886
"1 2 2 0\n";
38873887
const char *sites = "0.5 0\n"
38883888
"1.5 0\n";
3889-
const char *mutations = "0 1 1\n"
3889+
const char *mutations = "0 2 1\n"
3890+
"0 1 1\n"
38903891
"0 0 1\n"
3891-
"0 2 1\n"
3892-
"1 0 1\n"
3892+
"1 2 1\n"
38933893
"1 1 1\n"
3894-
"1 2 1\n";
3894+
"1 0 1\n";
38953895
tsk_treeseq_t ts;
38963896
tsk_tree_t tree;
38973897
/* We have mutations over roots, samples and just isolated nodes */
3898-
tsk_id_t mutation_edges[] = { -1, 0, -1, 1, -1, -1 };
3898+
tsk_id_t mutation_edges[] = { -1, -1, 0, -1, -1, 1 };
38993899
tsk_size_t i, j, k, t;
39003900
tsk_mutation_t mut;
39013901
tsk_site_t site;
@@ -4238,7 +4238,7 @@ test_single_tree_bad_mutations(void)
42384238
ret = tsk_treeseq_init(&ts, &tables, load_flags);
42394239
CU_ASSERT_EQUAL(ret, TSK_ERR_MUTATION_PARENT_AFTER_CHILD);
42404240
tsk_treeseq_free(&ts);
4241-
tables.mutations.parent[3] = TSK_NULL;
4241+
tables.mutations.parent[3] = 2;
42424242

42434243
/* time < node time */
42444244
tables.mutations.time[2] = 0;

c/tests/testlib.c

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,8 @@ tsk_treeseq_from_text(tsk_treeseq_t *ts, double sequence_length, const char *nod
767767
tsk_table_collection_t tables;
768768
tsk_id_t max_population_id;
769769
tsk_size_t j;
770+
tsk_flags_t ts_flags;
771+
bool all_parents_null;
770772

771773
CU_ASSERT_FATAL(ts != NULL);
772774
CU_ASSERT_FATAL(nodes != NULL);
@@ -807,7 +809,21 @@ tsk_treeseq_from_text(tsk_treeseq_t *ts, double sequence_length, const char *nod
807809
}
808810
}
809811

810-
ret = tsk_treeseq_init(ts, &tables, TSK_TS_INIT_BUILD_INDEXES);
812+
/* If all mutation.parent are TSK_NULL, use TSK_TS_COMPUTE_MUTATION_PARENTS flag too
813+
*/
814+
ts_flags = TSK_TS_INIT_BUILD_INDEXES;
815+
all_parents_null = true;
816+
for (j = 0; j < tables.mutations.num_rows; j++) {
817+
if (tables.mutations.parent[j] != TSK_NULL) {
818+
all_parents_null = false;
819+
break;
820+
}
821+
}
822+
if (all_parents_null) {
823+
ts_flags |= TSK_TS_INIT_COMPUTE_MUTATION_PARENTS;
824+
}
825+
826+
ret = tsk_treeseq_init(ts, &tables, ts_flags);
811827
/* tsk_treeseq_print_state(ts, stdout); */
812828
if (ret != 0) {
813829
printf("\nret = %s\n", tsk_strerror(ret));

c/tskit/core.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ disallowed (use compute_mutation_times?).
514514
/**
515515
A mutation's parent was not consistent with the topology of the tree.
516516
*/
517-
#define TSK_ERR_BAD_MUTATION_PARENT -511
517+
#define TSK_ERR_BAD_MUTATION_PARENT -511
518518

519519
/** @} */
520520

0 commit comments

Comments
 (0)