• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 ///////////////////////////////////////////////////////////////
2 //  Copyright 2011 John Maddock. Distributed under the Boost
3 //  Software License, Version 1.0. (See accompanying file
4 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_
5 
6 #include "setup.hpp"
7 #include "table_type.hpp"
8 #define TEST_UDT
9 
10 #include <boost/math/special_functions/erf.hpp>
11 #include "libs/math/test/test_erf.hpp"
12 
expected_results()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(
20       ".*",                          // compiler
21       ".*",                          // stdlib
22       ".*",                          // platform
23       ".*",                          // test type(s)
24       "Erf Function:.*",             // test data group
25       "erfc?", 2500, 1000); // test function
26    add_expected_result(
27       ".*",                          // compiler
28       ".*",                          // stdlib
29       ".*",                          // platform
30       ".*",                          // test type(s)
31       "Inverse Erf.*",               // test data group
32       "erfc?_inv", 60, 20);  // test function
33    //
34    // Finish off by printing out the compiler/stdlib/platform names,
35    // we do this to make it easier to mark up expected error rates.
36    //
37    std::cout << "Tests run with " << BOOST_COMPILER << ", "
38       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
39 }
40 
41 template <class T>
test(T t,const char * p)42 void test(T t, const char* p)
43 {
44    test_erf(t, p);
45 }
46 
47 
BOOST_AUTO_TEST_CASE(test_main)48 BOOST_AUTO_TEST_CASE( test_main )
49 {
50    expected_results();
51    //
52    // Test at:
53    // 18 decimal digits: tests 80-bit long double approximations
54    // 30 decimal digits: tests 128-bit long double approximations
55    // 35 decimal digits: tests arbitrary precision code
56    //
57    ALL_TESTS
58 }
59 
60