]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/test-dns_random_hh.cc
Merge pull request #2417 from ahupowerdns/dnsname
[thirdparty/pdns.git] / pdns / test-dns_random_hh.cc
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
3 #ifndef HAVE_CXX11
4
5
6 #ifdef HAVE_CONFIG_H
7 #include "config.h"
8 #endif
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>
16
17 #include "dns_random.hh"
18 #include "namespaces.hh"
19
20
21 using namespace boost;
22 using namespace boost::accumulators;
23
24 typedef accumulator_set<
25 double
26 , stats<boost::accumulators::tag::median(with_p_square_quantile),
27 boost::accumulators::tag::mean(immediate)
28 >
29 > acc_t;
30
31
32
33 BOOST_AUTO_TEST_SUITE(test_dns_random_hh)
34
35
36
37 BOOST_AUTO_TEST_CASE(test_dns_random_average) {
38
39 dns_random_init("loremipsumdolorx");
40 acc_t acc;
41
42 for(unsigned int n=0; n < 100000; ++n) {
43 acc(dns_random(100000)/100000.0);
44 }
45 BOOST_CHECK_CLOSE(0.5, median(acc), 2.0); // within 2%
46 BOOST_CHECK_CLOSE(0.5, mean(acc), 2.0);
47
48
49 // please add covariance tests, chi-square, Kolmogorov-Smirnov
50 }
51
52
53
54 BOOST_AUTO_TEST_SUITE_END()
55
56 #endif