void TestHistogram::testCumulative_Normalized() { Histogram hist(9); hist[0] = 1; hist[1] = 2; hist[2] = 3; hist[3] = 4; hist[4] = 5; hist[5] = 4; hist[6] = 3; hist[7] = 2; hist[8] = 1; CPPUNIT_ASSERT_EQUAL( 9, static_cast<int>(hist.size())); CPPUNIT_ASSERT_EQUAL(25, static_cast<int>(hist.sum())); // cumulative { IntVector cum = *hist.cumulative(); CPPUNIT_ASSERT_EQUAL( 9, static_cast<int>(cum.size())); CPPUNIT_ASSERT_EQUAL(125, static_cast<int>(cum.Sum())); CPPUNIT_ASSERT_EQUAL( 1, static_cast<int>(cum[0])); CPPUNIT_ASSERT_EQUAL( 3, static_cast<int>(cum[1])); CPPUNIT_ASSERT_EQUAL( 6, static_cast<int>(cum[2])); CPPUNIT_ASSERT_EQUAL(10, static_cast<int>(cum[3])); CPPUNIT_ASSERT_EQUAL(15, static_cast<int>(cum[4])); CPPUNIT_ASSERT_EQUAL(19, static_cast<int>(cum[5])); CPPUNIT_ASSERT_EQUAL(22, static_cast<int>(cum[6])); CPPUNIT_ASSERT_EQUAL(24, static_cast<int>(cum[7])); CPPUNIT_ASSERT_EQUAL(25, static_cast<int>(cum[8])); } // normalized { FloatVector norm = *hist.normalized(); CPPUNIT_ASSERT_EQUAL( 9, static_cast<int>(norm.size())); CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0, static_cast<double>(norm.Sum()), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0/25.0, static_cast<double>(norm[0]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 2.0/25.0, static_cast<double>(norm[1]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 3.0/25.0, static_cast<double>(norm[2]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 4.0/25.0, static_cast<double>(norm[3]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 5.0/25.0, static_cast<double>(norm[4]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 4.0/25.0, static_cast<double>(norm[5]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 3.0/25.0, static_cast<double>(norm[6]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 2.0/25.0, static_cast<double>(norm[7]), 0.00001); CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0/25.0, static_cast<double>(norm[8]), 0.00001); } }