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