Completed removal of pnew, qnew.
[frac.git] / famous_test.c
blob6a90060ebddd7e3664db232a5c6dd64f833324bc
1 // Test famous continued fraction expansions are correct.
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include <gmp.h>
7 #include "cf.h"
8 #include "test.h"
10 int main() {
11 mpz_t z;
12 mpz_init(z);
13 cf_t e, conv;
14 e = cf_new_e();
16 conv = cf_new_cf_to_decimal(e);
17 char s[128];
18 for (int i = 0; i <= 10; i++) {
19 cf_get(z, conv);
20 s[i] = mpz_get_ui(z) + '0';
22 s[10] = 0;
23 EXPECT(!strcmp(s, "2718281828"));
24 cf_free(conv);
25 cf_free(e);
27 cf_t pi;
28 pi = cf_new_pi();
29 conv = cf_new_cf_to_decimal(pi);
30 for (int i = 0; i <= 20; i++) {
31 cf_get(z, conv);
32 s[i] = mpz_get_ui(z) + '0';
34 s[20] = 0;
35 EXPECT(!strcmp(s, "31415926535897932384"));
36 cf_free(conv);
37 cf_free(pi);
39 e = cf_new_e();
40 pi = cf_new_pi();
41 mpz_t addarray[8];
42 for (int i = 0; i < 8; i++) {
43 mpz_init(addarray[i]);
44 mpz_set_ui(addarray[i], 0);
46 mpz_set_ui(addarray[1], 1);
47 mpz_set_ui(addarray[2], 1);
48 mpz_set_ui(addarray[7], 1);
49 cf_t b = cf_new_bihom(e, pi, addarray);
50 conv = cf_new_cf_to_decimal(b);
51 cf_get(z, conv);
52 gmp_printf("e + pi = %Zd.", z);
53 for (int i = 0; i <= 20; i++) {
54 cf_get(z, conv);
55 gmp_printf("%Zd", z);
57 printf("\n");
59 mpz_clear(z);
60 return 0;