diff options
-rw-r--r-- | src/misc.c | 4 | ||||
-rw-r--r-- | src/test.c | 13 |
2 files changed, 13 insertions, 4 deletions
@@ -726,14 +726,14 @@ void combinations_with_replacement(size_t n, size_t r, size_t *result, size_t *l size_t i, j; size_t *tmp; - tmp = malloc(sizeof(size_t)*n*ipow(n,r)); + tmp = malloc(sizeof(size_t)*r*ipow(n,r)); product(n,r,tmp); *len = 0; for (i = 0; i < ipow(n,r); i++) { if (is_sorted(tmp+i*r,r)) { - for (j = 0; j < n; j++) { + for (j = 0; j < r; j++) { result[(*len)*r+j] = tmp[i*r+j]; } *len += 1; @@ -440,6 +440,7 @@ int test_sno_charge_integral(char *err) err: gsl_integration_cquad_workspace_free(w); + return 1; } @@ -1293,13 +1294,17 @@ int test_time_pdf_norm(char *err) if (!isclose(result, expected, 1e-2, 0)) { sprintf(err, "integral of time_pdf = %.5f, but expected %.5f", result, expected); - return 1; + goto err; } } + gsl_integration_cquad_workspace_free(w); + return 0; err: + gsl_integration_cquad_workspace_free(w); + return 1; } @@ -1351,13 +1356,17 @@ int test_time_cdf(char *err) if (!isclose(result, expected, 1e-2, 0)) { sprintf(err, "integral of time_pdf = %.5f, but expected %.5f", result, expected); - return 1; + goto err; } } + gsl_integration_cquad_workspace_free(w); + return 0; err: + gsl_integration_cquad_workspace_free(w); + return 1; } |