From 022dbe979bd73fbab5b6db57ad918f78eae8acf5 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 8 May 2025 18:39:51 +0100 Subject: [PATCH] Coverage: Improve sinc_pi complex tests. --- test/sinc_test.hpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/sinc_test.hpp b/test/sinc_test.hpp index 4d1caa0c8..86e840e72 100644 --- a/test/sinc_test.hpp +++ b/test/sinc_test.hpp @@ -13,9 +13,11 @@ #include +#include #define BOOST_TEST_MAIN #include +#include BOOST_TEST_CASE_TEMPLATE_FUNCTION(sinc_pi_test, T) @@ -53,6 +55,24 @@ BOOST_TEST_CASE_TEMPLATE_FUNCTION(sinc_pi_complex_test, T) (abs(sinc_pi(::std::complex(0, 1))- ::std::complex(sinh(static_cast(1))))) (numeric_limits::epsilon())); + + // + // A very poor test with rather large tolerance for failure. + // But it does get out coverage up! + // + T tolerance = std::numeric_limits::epsilon() * 20000; + + std::complex val(1, 2); + for (unsigned i = 0; i < 5; ++i) + { + using mp_t = boost::multiprecision::cpp_complex_50; + val /= 3; + std::complex r1, r2; + r1 = sinc_pi(val); + r2 = static_cast>(sin(mp_t(val)) / mp_t(val)); + BOOST_CHECK_CLOSE_FRACTION(arg(r1), arg(r2), tolerance); + BOOST_CHECK_CLOSE_FRACTION(abs(r1), abs(r2), tolerance); + } }