25 #ifdef USE_TESTMANAGER_AUTOREGISTER
38 namespace Test_RandomNumbers {
41 const std::string filename_input =
"test_RandomNumbers_Mseries_Gaussian.yaml";
42 const std::string filename_output =
"stdout";
44 class Parameters_Test_RandomNumbers :
public Parameters {
46 Parameters_Test_RandomNumbers()
48 Register_int(
"seed", 0);
49 Register_int(
"number_of_samples", 0);
51 Register_string(
"verbose_level",
"NULL");
53 Register_double(
"expected_result", 0.0);
61 #ifdef USE_TESTMANAGER_AUTOREGISTER
64 "RandomNumbers.Mseries.Gaussian",
74 Parameters_Test_RandomNumbers params_test;
81 params_manager.
read_params(filename_input, ¶ms_all);
83 int iseed = params_test.get_int(
"seed");
84 int Nrand = params_test.get_int(
"number_of_samples");
85 const string str_vlevel = params_test.get_string(
"verbose_level");
87 const double expected_result = params_test.get_double(
"expected_result");
95 vout.
general(vl,
" vlevel = %s\n", str_vlevel.c_str());
108 for (
int i = 0; i < Nrand; ++i) {
109 rand->
gauss(rn1, rn2);
111 vr += rn1 * rn1 + rn2 * rn2;
114 av = av / (2.0 * Nrand);
115 vr = vr / (2.0 * Nrand) - av * av;
120 vout.
general(vl,
" number of samples = %10d\n", Nrand);
123 vout.
general(vl,
" variance(expect) = %10.8f\n", 1.0 / sqrt(2.0));