From 7048e7ccc92bdcb158843b33a2f52f126f2ad14e Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 17 May 2024 19:31:56 +0100 Subject: [PATCH] Correct decimal test case. --- test/test_next_decimal.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test/test_next_decimal.cpp b/test/test_next_decimal.cpp index 07d59aa87..6827a9339 100644 --- a/test/test_next_decimal.cpp +++ b/test/test_next_decimal.cpp @@ -176,12 +176,12 @@ void test_values(const T& val, const char* name) BOOST_CHECK_EQUAL(boost::math::float_advance(val, primes[i]), v1); BOOST_CHECK_EQUAL(boost::math::float_advance(val, -primes[i]), v2); } - if(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) + BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) { BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits::infinity()), (std::numeric_limits::max)()); BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits::infinity()), -(std::numeric_limits::max)()); - BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits::infinity()), std::domain_error); - BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits::infinity()), std::domain_error); + BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits::infinity()), -std::numeric_limits::infinity()); + BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits::infinity()), std::numeric_limits::infinity()); if(boost::math::policies:: BOOST_MATH_OVERFLOW_ERROR_POLICY == boost::math::policies::throw_on_error) { BOOST_MATH_CHECK_THROW(boost::math::float_prior(-(std::numeric_limits::max)()), std::overflow_error); @@ -193,6 +193,11 @@ void test_values(const T& val, const char* name) BOOST_CHECK_EQUAL(boost::math::float_next((std::numeric_limits::max)()), std::numeric_limits::infinity()); } } + BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_quiet_NaN)) + { + BOOST_MATH_CHECK_THROW(boost::math::float_prior(std::numeric_limits::quiet_NaN()), std::domain_error); + BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits::quiet_NaN()), std::domain_error); + } } BOOST_AUTO_TEST_CASE( test_main )