int test_main(int, char* []) { BOOST_MATH_CONTROL_FP; #ifndef BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS test_spots(0.0F, "float"); #endif test_spots(0.0, "double"); #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS test_spots(0.0L, "long double"); test_spots(boost::math::concepts::real_concept(0.1), "real_concept"); #endif expected_results(); #ifndef BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS test_laguerre(0.1F, "float"); #endif test_laguerre(0.1, "double"); #ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS test_laguerre(0.1L, "long double"); #ifndef BOOST_MATH_NO_REAL_CONCEPT_TESTS test_laguerre(boost::math::concepts::real_concept(0.1), "real_concept"); #endif #else std::cout << "<note>The long double tests have been disabled on this platform " "either because the long double overloads of the usual math functions are " "not available at all, or because they are too inaccurate for these tests " "to pass.</note>" << std::cout; #endif return 0; }
void selftest(void) { // for handling "errout" if (setjmp(jbuf)) return; #if SELFTEST test_low_level(); test_multiply(); test_scan(); test_power(); test_factor_number(); test_test(); test_tensor(); test_bake(); test(__FILE__, s, sizeof (s) / sizeof (char *)); // "s" is in selftest.h test_abs(); test_adj(); test_arg(); test_besselj(); test_bessely(); test_ceiling(); test_choose(); test_circexp(); test_clock(); test_cofactor(); test_condense(); test_contract(); test_defint(); test_denominator(); test_derivative(); test_dirac(); test_erf(); test_erfc(); test_expand(); test_expcos(); test_expsin(); test_factorpoly(); test_float(); test_floor(); test_gamma(); test_gcd(); test_imag(); test_inner(); test_lcm(); test_log(); test_mag(); test_mod(); test_nroots(); test_numerator(); test_outer(); test_polar(); test_quotient(); test_rationalize(); test_real(); test_rect(); test_sgn(); test_taylor(); test_transpose(); test_zero(); test_hermite(); test_laguerre(); test_legendre(); test_binomial(); test_divisors(); test_coeff(); test_sin(); test_cos(); test_tan(); test_sinh(); test_cosh(); test_tanh(); test_arcsin(); test_arcsinh(); test_arccos(); test_arccosh(); test_arctan(); test_arctanh(); test_index(); test_isprime(); test_integral(); test_simplify(); test_roots(); test_eigen(); #endif mini_test(); logout("OK, all tests passed.\n"); }
void test(T t, const char* p) { test_laguerre(t, p); }