コード例 #1
0
ファイル: vector_test.cpp プロジェクト: Artelnics/OpenNN
void VectorTest::test_calculate_histogram(void)
{
   message += "test_calculate_histogram\n";

   Vector<double> v;

   Histogram<double> histogram;

   Vector<double> centers;
   Vector<size_t> frequencies;

   // Test

   v.set(0.0, 1.0, 9.0);

   histogram = v.calculate_histogram(10); 

   assert_true(histogram.get_bins_number() == 10, LOG);

   centers = histogram.centers;
   frequencies = histogram.frequencies;
                                        
   assert_true(fabs(centers[0] - 0.45) < 1.0e-12, LOG);
   assert_true(fabs(centers[1] - 1.35) < 1.0e-12, LOG);
   assert_true(fabs(centers[2] - 2.25) < 1.0e-12, LOG);
   assert_true(fabs(centers[3] - 3.15) < 1.0e-12, LOG);
   assert_true(fabs(centers[4] - 4.05) < 1.0e-12, LOG);
   assert_true(fabs(centers[5] - 4.95) < 1.0e-12, LOG);
   assert_true(fabs(centers[6] - 5.85) < 1.0e-12, LOG);
   assert_true(fabs(centers[7] - 6.75) < 1.0e-12, LOG);
   assert_true(fabs(centers[8] - 7.65) < 1.0e-12, LOG);
   assert_true(fabs(centers[9] - 8.55) < 1.0e-12, LOG);

   assert_true(frequencies[0] == 1, LOG);
   assert_true(frequencies[1] == 1, LOG);
   assert_true(frequencies[2] == 1, LOG);
   assert_true(frequencies[3] == 1, LOG);
   assert_true(frequencies[4] == 1, LOG);
   assert_true(frequencies[5] == 1, LOG);
   assert_true(frequencies[6] == 1, LOG);
   assert_true(frequencies[7] == 1, LOG);
   assert_true(frequencies[8] == 1, LOG);
   assert_true(frequencies[9] == 1, LOG);
   assert_true(histogram.frequencies.calculate_sum() == 10, LOG);

   // Test

   v.set(20);
   v.randomize_normal();

   histogram = v.calculate_histogram(10);

   assert_true(histogram.frequencies.calculate_sum() == 20, LOG);


}