1 // This is mul/mbl/tests/test_histogram.cxx
2 #include <iostream>
3 #ifdef _MSC_VER
4 # include "vcl_msvc_warnings.h"
5 #endif
6 #include <mbl/mbl_histogram.h>
7 #include "testlib/testlib_test.h"
8
test_histogram()9 void test_histogram()
10 {
11 std::cout << "***********************\n"
12 << " Testing mbl_histogram\n"
13 << "***********************\n";
14
15 mbl_histogram histo;
16
17 TEST("Empty N.obs",histo.n_obs(), 0);
18
19 histo.set_bins(1,4,3);
20 TEST("n_bins()=3",histo.n_bins(), 3);
21 TEST_NEAR("Lowest bin", histo.bins()[0], 1, 1e-6);
22 TEST_NEAR("Highest bin", histo.bins()[3], 4, 1e-6);
23
24 for (int i=0;i<10;++i)
25 {
26 double v = 0.1+i*0.5;
27 histo.obs(v);
28 }
29
30 TEST("n_below()",histo.n_below(), 2);
31 TEST("n_above()",histo.n_above(), 2);
32 TEST("n_obs()",histo.n_obs(), 10);
33 TEST("bin 1",histo.frequency()[0], 2);
34
35 std::cout<<histo<<std::endl;
36
37 mbl_histogram histo2 = histo;
38 TEST("Equality operator",histo, histo2);
39 }
40
41 TESTMAIN(test_histogram);
42