Added sign of a continued fraction.
[frac.git] / test.c
blob075c7143858e34af3f787a42eec6935331db9809
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <gmp.h>
5 #include "cf.h"
7 void cf_expect_dec(cf_t x, char *result, char *filename, int line) {
8 mpz_t z;
9 mpz_init(z);
10 cf_t conv;
11 conv = cf_new_cf_to_decimal(x);
12 int len = strlen(result);
13 char s[len + 1];
14 for (int i = 0; i <= len; i++) {
15 cf_get(z, conv);
16 s[i] = mpz_get_ui(z) + '0';
18 s[len] = 0;
19 if (strcmp(s, result)) {
20 fprintf(stderr, "\n%s:%d: bad continued fraction decimal expansion\n",
21 filename, line);
22 fprintf(stderr, " expected: %s\n", result);
23 fprintf(stderr, " actual: %s\n\n", s);
26 cf_free(conv);
27 mpz_clear(z);
30 void cf_new_expect_dec(cf_t (*cf_new_fn)(), char *result,
31 char *filename, int line) {
32 cf_t x = cf_new_fn();
33 cf_expect_dec(x, result, filename, line);
34 cf_free(x);