25 #ifdef USE_TESTMANAGER_AUTOREGISTER
38 namespace Test_Rational {
41 const std::string filename_input =
"test_Rational_Approx.yaml";
42 const std::string filename_output =
"stdout";
44 class Parameters_Test_Rational :
public Parameters {
46 Parameters_Test_Rational()
48 Register_string(
"verbose_level",
"NULL");
50 Register_double(
"expected_result", 0.0);
58 #ifdef USE_TESTMANAGER_AUTOREGISTER
71 Parameters_Test_Rational params_test;
80 params_manager.
read_params(filename_input, ¶ms_all);
82 const string str_vlevel = params_test.get_string(
"verbose_level");
84 const double expected_result = params_test.get_double(
"expected_result");
87 const int n_exp = params_rational.
get_int(
"exponent_numerator");
88 const int d_exp = params_rational.
get_int(
"exponent_denominator");
89 const double x_min = params_rational.
get_double(
"lower_bound");
90 const double x_max = params_rational.
get_double(
"upper_bound");
91 const int Npoint = params_rational.
get_int(
"number_of_partitions");
96 vout.
general(vl,
" vlevel = %s\n", str_vlevel.c_str());
112 double Dx = (x_max - x_min) / Npoint;
113 double p_exp = ((double)n_exp) / ((double)d_exp);
115 for (
int j = 0; j < Npoint + 1; ++j) {
116 double y1 = rational.
func(x);
117 double y2 = pow(x, p_exp);
119 vout.
general(vl,
"x,rational,x^(n/d) = %12.8f %12.8f %12.8f \n", x, y1, y2);