File indexing completed on 2026-11-09 09:33:10
0001 #include <algorithms/logger.h>
0002 #include <algorithms/random.h>
0003
0004 #include <cstdlib>
0005 #include <iostream>
0006
0007 int main() {
0008 auto& serviceSvc = algorithms::ServiceSvc::instance();
0009 auto& randomSvc = algorithms::RandomSvc::instance();
0010 randomSvc.setProperty("seed", std::size_t{42});
0011 serviceSvc.init();
0012 if (!serviceSvc.ready()) {
0013 std::cerr << "services not ready" << std::endl;
0014 return EXIT_FAILURE;
0015 }
0016 const auto generator = randomSvc.generator();
0017 double sum = 0;
0018 for (int i = 0; i < 10000; ++i) {
0019 const double x = generator.uniform_double(2.0, 3.0);
0020 if (x < 2.0 || x >= 3.0) {
0021 std::cerr << "uniform_double out of range: " << x << std::endl;
0022 return EXIT_FAILURE;
0023 }
0024 sum += x;
0025 }
0026 const double mean = sum / 10000;
0027 std::cout << "algorithms::RandomSvc mean: " << mean << std::endl;
0028 return (mean > 2.45 && mean < 2.55) ? EXIT_SUCCESS : EXIT_FAILURE;
0029 }