Skip to content

Commit

Permalink
More C coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
nspope committed Aug 1, 2024
1 parent d5fe293 commit 338f3f6
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions c/tests/test_stats.c
Original file line number Diff line number Diff line change
Expand Up @@ -316,12 +316,17 @@ verify_pair_coalescence_counts(tsk_treeseq_t *ts, tsk_flags_t options)
const double *breakpoints = tsk_treeseq_get_breakpoints(ts);
const tsk_size_t P = 2;
const tsk_size_t I = P * (P + 1) / 2;
tsk_id_t sample_sets[n];
tsk_size_t sample_set_sizes[P];
tsk_id_t index_tuples[2 * I];
tsk_size_t dim = T * N * I;
double C1[dim]; //, C2[dim];
tsk_size_t i, j, k;

for (i = 0; i < n; i++) {
sample_sets[i] = samples[i];
}

for (i = 0; i < P; i++) {
sample_set_sizes[i] = 0;
}
Expand All @@ -340,43 +345,49 @@ verify_pair_coalescence_counts(tsk_treeseq_t *ts, tsk_flags_t options)
double max_time = tsk_treeseq_get_max_time(ts);
double time_windows[3] = { 0.0, max_time / 2, INFINITY };

ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, T, breakpoints, 2, time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, 0);

double trunc_time_windows[3] = { max_time * 0.2, max_time * 0.5, max_time * 0.8 };
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, T, breakpoints, 2, trunc_time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, 0);

/* cover errors */
double nil_time_windows[1] = { 0.0 };
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, T, breakpoints, 0, nil_time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, TSK_ERR_BAD_NUM_TIME_WINDOWS);

double bad_time_windows[2] = { 10.0, 0.0 };
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, T, breakpoints, 1, bad_time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, TSK_ERR_BAD_TIME_WINDOWS);

double bad_breakpoints[2] = { breakpoints[1], 0.0 };
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, 1, bad_breakpoints, 1, time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, TSK_ERR_BAD_WINDOWS);

index_tuples[0] = (tsk_id_t) P;
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, 1, breakpoints, 1, time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, TSK_ERR_BAD_SAMPLE_SET_INDEX);
index_tuples[0] = 0;

tsk_size_t tmp = sample_set_sizes[0];
sample_set_sizes[0] = 0;
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, samples, I,
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, 1, breakpoints, 1, time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, TSK_ERR_EMPTY_SAMPLE_SET);
sample_set_sizes[0] = tmp;

sample_sets[1] = 0;
ret = tsk_treeseq_pair_coalescence_stat(ts, P, sample_set_sizes, sample_sets, I,
index_tuples, 1, breakpoints, 1, time_windows, options, C1);
CU_ASSERT_EQUAL_FATAL(ret, TSK_ERR_DUPLICATE_SAMPLE);
sample_sets[1] = 1;
}

typedef struct {
Expand Down

0 comments on commit 338f3f6

Please sign in to comment.