diff options
Diffstat (limited to 'tests/tcan_round.c')
-rw-r--r-- | tests/tcan_round.c | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/tests/tcan_round.c b/tests/tcan_round.c index 2717afdd2..9b5147e65 100644 --- a/tests/tcan_round.c +++ b/tests/tcan_round.c @@ -31,17 +31,30 @@ main (void) /* checks that rounds to nearest sets the last bit to zero in case of equal distance */ - mpfr_init2(x, 59); - mpfr_set_str_raw(x, "-0.10010001010111000011110010111010111110000000111101100111111E663"); - if (mpfr_can_round(x, 54, GMP_RNDZ, GMP_RNDZ, 53) != 0) { - fprintf(stderr, "Error in mpfr_can_round\n"); exit(1); - } - - mpfr_set_str_raw(x, "-Inf"); - if (mpfr_can_round(x, 2000, GMP_RNDZ, GMP_RNDZ, 2000) != 0) { - fprintf(stderr, "Error in mpfr_can_round\n"); exit(1); - } - mpfr_clear(x); + mpfr_init2 (x, 59); + mpfr_set_str_raw (x, "-0.10010001010111000011110010111010111110000000111101100111111E663"); + if (mpfr_can_round (x, 54, GMP_RNDZ, GMP_RNDZ, 53) != 0) + { + fprintf (stderr, "Error (1) in mpfr_can_round\n"); + exit (1); + } + + mpfr_set_str_raw (x, "-Inf"); + if (mpfr_can_round (x, 2000, GMP_RNDZ, GMP_RNDZ, 2000) != 0) + { + fprintf (stderr, "Error (2) in mpfr_can_round\n"); + exit (1); + } + + mpfr_set_prec (x, 64); + mpfr_set_str_raw (x, "0.1011001000011110000110000110001111101011000010001110011000000000"); + if (mpfr_can_round (x, 65, GMP_RNDN, GMP_RNDN, 54)) + { + fprintf (stderr, "Error (3) in mpfr_can_round\n"); + exit (1); + } + + mpfr_clear (x); return 0; } |