1 // Copyright John Maddock 2006-15. 2 // Copyright Paul A. Bristow 2007 3 // Use, modification and distribution are subject to the 4 // Boost Software License, Version 1.0. (See accompanying file 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7 #include "bindings.hpp" 8 #include "../../test/test_ibeta.hpp" 9 #include <boost/math/special_functions/beta.hpp> 10 11 BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(test_main, 10000); 12 BOOST_AUTO_TEST_CASE(test_main)13BOOST_AUTO_TEST_CASE(test_main) 14 { 15 BOOST_MATH_CONTROL_FP; 16 17 error_stream_replacer rep; 18 19 #ifdef TYPE_TO_TEST 20 21 test_beta(static_cast<TYPE_TO_TEST>(0), NAME_OF_TYPE_TO_TEST); 22 23 #else 24 bool test_float = false; 25 bool test_double = false; 26 bool test_long_double = false; 27 28 if(std::numeric_limits<long double>::digits == std::numeric_limits<double>::digits) 29 { 30 // 31 // Don't bother with long double, it's the same as double: 32 // 33 if(BOOST_MATH_PROMOTE_FLOAT_POLICY == false) 34 test_float = true; 35 test_double = true; 36 } 37 else 38 { 39 if(BOOST_MATH_PROMOTE_FLOAT_POLICY == false) 40 test_float = true; 41 if(BOOST_MATH_PROMOTE_DOUBLE_POLICY == false) 42 test_double = true; 43 test_long_double = true; 44 } 45 46 #ifdef ALWAYS_TEST_DOUBLE 47 test_double = true; 48 #endif 49 50 if(test_float) 51 test_beta(0.0f, "float"); 52 if(test_double) 53 test_beta(0.0, "double"); 54 if(test_long_double) 55 test_beta(0.0L, "long double"); 56 #ifdef BOOST_MATH_USE_FLOAT128 57 //test_beta(0.0Q, "__float128"); 58 #endif 59 60 61 #endif 62 } 63 64