]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /////////////////////////////////////////////////////////////// |
2 | // Copyright 2011 John Maddock. Distributed under the Boost | |
3 | // Software License, Version 1.0. (See accompanying file | |
92f5a8d4 | 4 | // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt |
7c673cae FG |
5 | |
6 | #include "setup.hpp" | |
7 | #include "table_type.hpp" | |
8 | #define TEST_UDT | |
9 | ||
10 | #include <boost/math/special_functions/math_fwd.hpp> | |
11 | #include "libs/math/test/test_gamma.hpp" | |
12 | ||
13 | void expected_results() | |
14 | { | |
15 | // | |
16 | // Define the max and mean errors expected for | |
17 | // various compilers and platforms. | |
18 | // | |
19 | add_expected_result( | |
92f5a8d4 TL |
20 | ".*", // compiler |
21 | ".*", // stdlib | |
22 | ".*", // platform | |
23 | ".*gmp_float<18>.*", // test type(s) | |
24 | ".*", // test data group | |
25 | "tgamma", 4000, 2500); // test function | |
7c673cae | 26 | add_expected_result( |
92f5a8d4 TL |
27 | ".*", // compiler |
28 | ".*", // stdlib | |
29 | ".*", // platform | |
30 | ".*mpfr_float_backend<0>.*", // test type(s) | |
31 | "factorials", // test data group | |
32 | "tgamma", 400, 100); // test function | |
7c673cae | 33 | add_expected_result( |
92f5a8d4 TL |
34 | ".*", // compiler |
35 | ".*", // stdlib | |
36 | ".*", // platform | |
37 | ".*", // test type(s) | |
38 | "factorials", // test data group | |
39 | "tgamma", 170, 70); // test function | |
7c673cae | 40 | add_expected_result( |
92f5a8d4 TL |
41 | ".*", // compiler |
42 | ".*", // stdlib | |
43 | ".*", // platform | |
44 | ".*", // test type(s) | |
45 | "factorials", // test data group | |
46 | "lgamma", 750, 100); // test function | |
7c673cae FG |
47 | #ifdef BOOST_INTEL |
48 | add_expected_result( | |
92f5a8d4 TL |
49 | ".*", // compiler |
50 | ".*", // stdlib | |
51 | ".*", // platform | |
52 | "float128", // test type(s) | |
53 | ".*near -.*", // test data group | |
54 | ".*", 150000L, 30000L); // test function | |
7c673cae FG |
55 | #endif |
56 | add_expected_result( | |
92f5a8d4 TL |
57 | ".*", // compiler |
58 | ".*", // stdlib | |
59 | ".*", // platform | |
60 | ".*", // test type(s) | |
61 | "near.*", // test data group | |
62 | "tgamma", 250, 120); // test function | |
7c673cae | 63 | add_expected_result( |
92f5a8d4 TL |
64 | ".*", // compiler |
65 | ".*", // stdlib | |
66 | ".*", // platform | |
67 | ".*", // test type(s) | |
68 | "near.*", // test data group | |
69 | "lgamma", 1400, 250); // test function | |
7c673cae | 70 | add_expected_result( |
92f5a8d4 TL |
71 | ".*", // compiler |
72 | ".*", // stdlib | |
73 | ".*", // platform | |
74 | ".*", // test type(s) | |
75 | "tgamma1pm1.*", // test data group | |
76 | "tgamma1pm1", 1500, 400); // test function | |
7c673cae FG |
77 | // |
78 | // Finish off by printing out the compiler/stdlib/platform names, | |
79 | // we do this to make it easier to mark up expected error rates. | |
80 | // | |
81 | std::cout << "Tests run with " << BOOST_COMPILER << ", " | |
92f5a8d4 | 82 | << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl; |
7c673cae FG |
83 | } |
84 | ||
85 | template <class T> | |
86 | void test(T t, const char* p) | |
87 | { | |
88 | test_gamma(t, p); | |
89 | } | |
90 | ||
92f5a8d4 | 91 | BOOST_AUTO_TEST_CASE(test_main) |
7c673cae FG |
92 | { |
93 | using namespace boost::multiprecision; | |
94 | expected_results(); | |
95 | // | |
96 | // Test at: | |
97 | // 18 decimal digits: tests 80-bit long double approximations | |
98 | // 30 decimal digits: tests 128-bit long double approximations | |
99 | // 35 decimal digits: tests arbitrary precision code | |
100 | // | |
101 | ALL_TESTS | |
102 | } |