diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2013-02-17 22:23:22 +0100 |
---|---|---|
committer | Marc Glisse <marc.glisse@inria.fr> | 2013-02-17 22:23:22 +0100 |
commit | e656ea90ad71f15b929ee264008afedd531e71b1 (patch) | |
tree | 0e2f9509b0bac0332faa9c640138f5d8074d91df /tests/cxx | |
parent | e349462e3319df9b2ad1e54fdac803a7cfcac587 (diff) | |
download | gmp-e656ea90ad71f15b929ee264008afedd531e71b1.tar.gz |
Construct temporary mpq from double on the stack, as is already the case for mpz.
Diffstat (limited to 'tests/cxx')
-rw-r--r-- | tests/cxx/t-ops2.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/cxx/t-ops2.cc b/tests/cxx/t-ops2.cc index 3fc472b6f..11a8d5a85 100644 --- a/tests/cxx/t-ops2.cc +++ b/tests/cxx/t-ops2.cc @@ -129,6 +129,9 @@ void checkz (){ ASSERT_ALWAYS(sgn(mpz_class(0))==0); ASSERT_ALWAYS(sgn(mpz_class(9))==1); ASSERT_ALWAYS(sgn(mpz_class(-17))==-1); + ASSERT_ALWAYS(mpz_class(1)+DBL_MAX>2); + ASSERT_ALWAYS(mpz_class(1)+DBL_MIN<2); + ASSERT_ALWAYS(mpz_class(1)+std::numeric_limits<double>::denorm_min()<2); } template<class T> @@ -175,6 +178,11 @@ void checkqf (){ ASSERT_ALWAYS(sgn(T(0))==0); ASSERT_ALWAYS(sgn(T(9))==1); ASSERT_ALWAYS(sgn(T(-17))==-1); + ASSERT_ALWAYS(T(1)+DBL_MAX>2); + ASSERT_ALWAYS(T(1)+DBL_MIN>1); + ASSERT_ALWAYS(T(1)+DBL_MIN<1.001); + ASSERT_ALWAYS(T(1)+std::numeric_limits<double>::denorm_min()>1); + ASSERT_ALWAYS(T(1)+std::numeric_limits<double>::denorm_min()<1.001); } void checkf (){ @@ -236,6 +244,8 @@ main (void) { tests_start(); + // Enough precision for 1 + denorm_min + mpf_set_default_prec(DBL_MANT_DIG-DBL_MIN_EXP+42); checkz(); checkqf<mpq_class>(); checkqf<mpf_class>(); |