From ef4cdb9b91c936c830982a2b0b37c8409eb4ff5c Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 8 May 2025 16:42:08 +0100 Subject: [PATCH] Coverage: Add coverage for prime.hpp. --- test/Jamfile.v2 | 1 + test/test_prime.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 test/test_prime.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 66ab791ec..c0108accf 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -586,6 +586,7 @@ test-suite special_fun : [ run test_zeta.cpp /boost/test//boost_unit_test_framework test_instances//test_instances pch_light ] [ run test_sinc.cpp /boost/test//boost_unit_test_framework pch_light ] [ run test_fibonacci.cpp /boost/test//boost_unit_test_framework ] + [ run test_prime.cpp /boost/test//boost_unit_test_framework ] ; test-suite distribution_tests : diff --git a/test/test_prime.cpp b/test/test_prime.cpp new file mode 100644 index 000000000..f73a9c7a0 --- /dev/null +++ b/test/test_prime.cpp @@ -0,0 +1,42 @@ +// (C) Copyright John Maddock 2025. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include + +#include +#define BOOST_TEST_MAIN +#include +#include +#include +#include + +// +// DESCRIPTION: +// ~~~~~~~~~~~~ +// +// This file tests the function prime. +// + + +BOOST_AUTO_TEST_CASE( test_main ) +{ + BOOST_CHECK_EQUAL(boost::math::prime(0), 2); + BOOST_CHECK_EQUAL(boost::math::prime(49), 229); + BOOST_CHECK_EQUAL(boost::math::prime(99), 541); + BOOST_CHECK_EQUAL(boost::math::prime(499), 3571); + BOOST_CHECK_EQUAL(boost::math::prime(4999), 48611); + + BOOST_CHECK_THROW(boost::math::prime(100000), std::domain_error); + +#ifdef BOOST_MATH_HAVE_CONSTEXPR_TABLES + static_assert(boost::math::prime(0) == 2, "ooops"); + static_assert(boost::math::prime(49) == 229, "ooops"); + static_assert(boost::math::prime(99) == 541, "ooops"); + static_assert(boost::math::prime(499) == 3571, "ooops"); + static_assert(boost::math::prime(4999) == 48611, "ooops"); +#endif +} + +