summaryrefslogtreecommitdiff
path: root/tests/tset_f.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-02-04 14:55:01 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-02-04 14:55:01 +0000
commit3218ac91059f7de5aac3988e2914f019ecc641ca (patch)
treeb4532c15501acd70a7ef45e41b3f0d6a51124458 /tests/tset_f.c
parent2163f7038ff3bdce7af6fd10fa236e6b2a1c1a27 (diff)
downloadmpfr-3218ac91059f7de5aac3988e2914f019ecc641ca.tar.gz
added more tests
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@449 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tset_f.c')
-rw-r--r--tests/tset_f.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/tset_f.c b/tests/tset_f.c
index 31f63615c..ae68a0e00 100644
--- a/tests/tset_f.c
+++ b/tests/tset_f.c
@@ -32,14 +32,33 @@ MA 02111-1307, USA. */
int
main()
{
- mpfr_t x; mpf_t y; mpf_t z; unsigned long k, pr;
+ mpfr_t x; mpf_t y; mpf_t z; unsigned long k, pr; double f;
mpfr_init2(x, 100);
mpf_init(y);
+ mpf_set_d(y, 0.0);
+ mpfr_set_f(x, y, GMP_RNDN);
+
srandom(time(NULL));
mpf_random2(y, 10, 0);
- mpfr_set_f(x, y, 53, rand() & 3);
+ mpfr_set_f(x, y, rand() & 3);
+
+ /* bug found by Jean-Pierre Merlet on February 3, 2000 */
+ mpfr_set_prec(x, 256); mpf_init2(y, 256);
+ mpfr_set_machine_rnd_mode(GMP_RNDD);
+ mpf_set_str(y, "2033.033", 10);
+ mpfr_set_f(x, y, GMP_RNDN);
+ f = mpfr_get_d(x);
+ if (f != 2033.0329999999999017745722085) {
+ fprintf(stderr, "mpfr_set_f failed for y=2033.033\n"); exit(1);
+ }
+ mpf_set_str(y, "-2033.033", 10);
+ mpfr_set_f(x, y, GMP_RNDN);
+ f = mpfr_get_d(x);
+ if (f != -2033.0330000000001291482476518) {
+ fprintf(stderr, "mpfr_set_f failed for y=-2033.033\n"); exit(1);
+ }
mpf_clear(y); mpfr_clear(x);
@@ -49,7 +68,7 @@ main()
mpf_init2(z, pr);
mpf_random2(z, z->_mp_prec, 0);
mpfr_init2(x, pr);
- mpfr_set_f(x, z, pr, 0);
+ mpfr_set_f(x, z, 0);
}
return(0);
}