diff --git a/CMakeLists.txt b/CMakeLists.txt index 71e3bb9e3..b789eb22a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,6 @@ else() Boost::lexical_cast Boost::predef Boost::random - Boost::static_assert Boost::throw_exception ) diff --git a/build.jam b/build.jam index fb244e511..8be6e64f9 100644 --- a/build.jam +++ b/build.jam @@ -14,7 +14,6 @@ constant boost_dependencies : /boost/lexical_cast//boost_lexical_cast /boost/predef//boost_predef /boost/random//boost_random - /boost/static_assert//boost_static_assert /boost/throw_exception//boost_throw_exception ; project /boost/math diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2d9145043..4715cf379 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,7 +16,7 @@ if(HAVE_BOOST_TEST) enable_testing() - boost_test_jamfile(FILE cuda_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception Boost::unit_test_framework ${CUDA_LIBRARIES} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) + boost_test_jamfile(FILE cuda_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception Boost::unit_test_framework ${CUDA_LIBRARIES} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) elseif (BOOST_MATH_ENABLE_NVRTC) @@ -29,9 +29,9 @@ if(HAVE_BOOST_TEST) set(CUDA_nvrtc_LIBRARY /usr/local/cuda/lib64/libnvrtc.so) if (BOOST_MATH_NVRTC_CI_RUN) - boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} COMPILE_DEFINITIONS BOOST_MATH_NVRTC_CI_RUN=1 INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) + boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} COMPILE_DEFINITIONS BOOST_MATH_NVRTC_CI_RUN=1 INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) else () - boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) + boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) endif() elseif (BOOST_MATH_ENABLE_SYCL) @@ -43,7 +43,7 @@ if(HAVE_BOOST_TEST) enable_testing() - boost_test_jamfile(FILE sycl_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception Boost::unit_test_framework sycl COMPILE_DEFINITIONS BOOST_MATH_ENABLE_SYCL=1 COMPILE_OPTIONS -fsycl ) + boost_test_jamfile(FILE sycl_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception Boost::unit_test_framework sycl COMPILE_DEFINITIONS BOOST_MATH_ENABLE_SYCL=1 COMPILE_OPTIONS -fsycl ) else() boost_test(SOURCES check_cmake_version.cpp ARGUMENTS ${PROJECT_VERSION} LINK_LIBRARIES Boost::core Boost::config) diff --git a/test/test_nc_f.cpp b/test/test_nc_f.cpp index 6e8da36e9..5a1cd4da6 100644 --- a/test/test_nc_f.cpp +++ b/test/test_nc_f.cpp @@ -336,7 +336,7 @@ void test_spots(RealType, const char* name = nullptr) for (RealType x : x_vals) { RealType P = cdf(dist_no_centrality, x); - BOOST_CHECK(dist.find_non_centrality(x, a, b, P) < tolerance); + BOOST_CHECK_LE(dist.find_non_centrality(x, a, b, P), boost::math::tools::min_value() * 10); } // Case when P=1 or P=0 BOOST_MATH_CHECK_THROW(dist.find_non_centrality(x, a, b, 1), std::domain_error); @@ -344,6 +344,31 @@ void test_spots(RealType, const char* name = nullptr) // Case when Q=1 or Q=0 BOOST_MATH_CHECK_THROW(dist.find_non_centrality(boost::math::complement(x, a, b, 1)), std::domain_error); BOOST_MATH_CHECK_THROW(dist.find_non_centrality(boost::math::complement(x, a, b, 0)), std::domain_error); + // + // Test non centrality finder over a grid of values: + // + RealType values[] = { 1.25, 3.5, 6.75, 8.25 }; + for (RealType v1 : values) + { + for (RealType v2 : values) + { + for (RealType nc : values) + { + for (RealType x : values) + { + boost::math::non_central_f_distribution ref(v1, v2, nc); + RealType P = cdf(ref, x); + RealType Q = cdf(complement(ref, x)); + + RealType nc1 = ref.find_non_centrality(x, v1, v2, P); + RealType nc2 = ref.find_non_centrality(boost::math::complement(x, v1, v2, Q)); + + BOOST_CHECK_CLOSE(nc1, nc, 2 * tolerance); + BOOST_CHECK_CLOSE(nc2, nc, tolerance); + } + } + } + } } // template void test_spots(RealType) BOOST_AUTO_TEST_CASE( test_main )