]>
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
9 #include <boost/test/unit_test.hpp>
10 #include <boost/assign/std/map.hpp>
11 #include <boost/foreach.hpp>
12 #include <boost/accumulators/statistics/median.hpp>
13 #include <boost/accumulators/statistics/mean.hpp>
14 #include <boost/accumulators/accumulators.hpp>
15 #include <boost/accumulators/statistics.hpp>
17 #include "dns_random.hh"
18 #include "namespaces.hh"
21 using namespace boost
;
22 using namespace boost::accumulators
;
24 typedef accumulator_set
<
26 , stats
<boost::accumulators::tag::median(with_p_square_quantile
),
27 boost::accumulators::tag::mean(immediate
)
33 BOOST_AUTO_TEST_SUITE(test_dns_random_hh
)
37 BOOST_AUTO_TEST_CASE(test_dns_random_average
) {
39 dns_random_init("loremipsumdolorx");
42 for(unsigned int n
=0; n
< 100000; ++n
) {
43 acc(dns_random(100000)/100000.0);
45 BOOST_CHECK_CLOSE(0.5, median(acc
), 2.0); // within 2%
46 BOOST_CHECK_CLOSE(0.5, mean(acc
), 2.0);
49 // please add covariance tests, chi-square, Kolmogorov-Smirnov
54 BOOST_AUTO_TEST_SUITE_END()