From fa33ecb00331b68c64173ed777d67c211110b0ae Mon Sep 17 00:00:00 2001 From: "Paul A. Bristow" Date: Sun, 15 Oct 2006 15:39:14 +0000 Subject: [PATCH] more tests added to test new pdf and cdf code changes. [SVN r3255] --- test/test_poisson.cpp | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/test/test_poisson.cpp b/test/test_poisson.cpp index e548b56f0..e7df3c691 100644 --- a/test/test_poisson.cpp +++ b/test/test_poisson.cpp @@ -87,12 +87,40 @@ void test_spots(RealType) using ::boost::math::cdf; using ::boost::math::pdf; + BOOST_CHECK_CLOSE( + cdf(poisson_distribution(static_cast(0)), // mean zero + static_cast(0)), // zero k events. + static_cast(0), // probability zero. + tolerance); + + BOOST_CHECK_CLOSE( + cdf(poisson_distribution(static_cast(0)), // mean zero + static_cast(999)), // any k events. + static_cast(0), // probability zero. + tolerance); + + BOOST_CHECK_CLOSE( + cdf(poisson_distribution(static_cast(1)), // mean unity. + static_cast(0)), // zero k events. + static_cast(3.678794411714420E-1), // probability. + tolerance); + + BOOST_CHECK_CLOSE( + cdf(poisson_distribution(static_cast(1)), // mean unity. + static_cast(1)), // one k event. + static_cast(7.357588823428830E-1), // probability. + tolerance); + + BOOST_CHECK_CLOSE( + cdf(poisson_distribution(static_cast(1)), // mean unity. + static_cast(2)), // two k events. + static_cast(9.196986029286060E-1), // probability. + tolerance); BOOST_CHECK_CLOSE( cdf(poisson_distribution(static_cast(5.)), // mean static_cast(5)), // k events. static_cast(0.615960654833065), // probability. tolerance); - BOOST_CHECK_CLOSE( cdf(poisson_distribution(static_cast(5.)), // mean static_cast(1)), // k events. @@ -172,8 +200,7 @@ int test_main(int, char* []) cout << "BOOST_MATH_THROW_ON_DOMAIN_ERROR" << " is NOT defined, so NO throw on domain error." << endl; #endif - - + #if 0 using boost::math::cdf; using boost::math::pdf; @@ -193,17 +220,12 @@ int test_main(int, char* []) cout << p << ' ' << sum <<' ' << cdf(poisson_distribution(mean), static_cast(i)) << ' '; - if (i > 0) { cout << boost::math::gamma_Q(i+1, mean); double diff = boost::math::gamma_Q(i+1, mean) - sum; cout << ' ' << diff; // 0 0 to 4, 1 eps 5 to 9, 10 to 20 2 eps, 21 upwards 3 eps } - else - { - cout << pdf(poisson_distribution(mean), static_cast(0)); - } cout << endl; } cout << cdf(poisson_distribution(5), static_cast(0)) << ' ' << endl; // 0.006737946999085467