]>
git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/test-dns_random_hh.cc
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
4 // Disable this code for gcc 4.8 and lower
5 #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ > 8) || !__GNUC__
10 #include <boost/test/unit_test.hpp>
11 #include <boost/assign/std/map.hpp>
13 #include <boost/accumulators/statistics/median.hpp>
14 #include <boost/accumulators/statistics/mean.hpp>
15 #include <boost/accumulators/accumulators.hpp>
16 #include <boost/accumulators/statistics.hpp>
18 #include "dns_random.hh"
19 #include "namespaces.hh"
22 using namespace boost
;
23 using namespace boost::accumulators
;
25 typedef accumulator_set
<
27 , stats
<boost::accumulators::tag::median(with_p_square_quantile
),
28 boost::accumulators::tag::mean(immediate
)
34 BOOST_AUTO_TEST_SUITE(test_dns_random_hh
)
38 BOOST_AUTO_TEST_CASE(test_dns_random_average
) {
40 dns_random_init("loremipsumdolorx");
43 for(unsigned int n
=0; n
< 100000; ++n
) {
44 acc(dns_random(100000)/100000.0);
46 BOOST_CHECK_CLOSE(0.5, median(acc
), 2.0); // within 2%
47 BOOST_CHECK_CLOSE(0.5, mean(acc
), 2.0);
50 // please add covariance tests, chi-square, Kolmogorov-Smirnov
55 BOOST_AUTO_TEST_SUITE_END()