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_zeta.hpp"
9 #include <boost/math/special_functions/zeta.hpp>
10 
11 BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(test_main, 10000);
12 
BOOST_AUTO_TEST_CASE(test_main)13 BOOST_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_zeta(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_zeta(0.0f, "float");
52    if(test_double)
53       test_zeta(0.0, "double");
54    if(test_long_double)
55       test_zeta(0.0L, "long double");
56 #ifdef BOOST_MATH_USE_FLOAT128
57    //test_zeta(0.0Q, "__float128");
58 #endif
59 
60 
61 #endif
62 }
63 
64