File indexing completed on 2026-08-06 09:24:28
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef HERWIG_Utilities_Test_Statistic_H
0010 #define HERWIG_Utilities_Test_Statistic_H
0011
0012 #include <boost/test/unit_test.hpp>
0013
0014 #include "Herwig/Utilities/Statistic.h"
0015
0016
0017
0018
0019 struct FixStatistic1 {
0020 FixStatistic1() : statisticDefault(), statisticTest()
0021 {BOOST_TEST_MESSAGE( "setup fixture for utilitiesStatisticTest" ); }
0022
0023 ~FixStatistic1() { BOOST_TEST_MESSAGE( "teardown fixture for utilitiesStatisticTest" ); }
0024
0025 Herwig::Statistic statisticDefault;
0026 Herwig::Statistic statisticTest;
0027 };
0028
0029
0030
0031
0032
0033 BOOST_FIXTURE_TEST_SUITE(utilitiesStatisticTest, FixStatistic1 )
0034
0035
0036
0037
0038
0039 BOOST_AUTO_TEST_CASE(defaultConstructor)
0040 {
0041 BOOST_CHECK_EQUAL(statisticDefault.numberOfPoints(), static_cast<unsigned int>(0));
0042 BOOST_CHECK_EQUAL(statisticDefault.total(), 0.);
0043 BOOST_CHECK_EQUAL(statisticDefault.mean(), 0.);
0044 BOOST_CHECK_EQUAL(statisticDefault.minimum(), -1e100);
0045 BOOST_CHECK_EQUAL(statisticDefault.maximum(), 1e100);
0046 BOOST_CHECK_EQUAL(statisticDefault.var(), 0);
0047 BOOST_CHECK_EQUAL(statisticDefault.mean_var(), 0);
0048 }
0049
0050 BOOST_AUTO_TEST_CASE(operations)
0051 {
0052 statisticTest += 2;
0053 BOOST_CHECK_EQUAL(statisticTest.minimum(), 2);
0054 BOOST_CHECK_EQUAL(statisticTest.maximum(), 2);
0055
0056 statisticTest += -2;
0057 BOOST_CHECK_EQUAL(statisticTest.numberOfPoints(), static_cast<unsigned int>(2));
0058 BOOST_CHECK_EQUAL(statisticTest.total(), 0.);
0059 BOOST_CHECK_EQUAL(statisticTest.mean(), 0.);
0060 BOOST_CHECK_EQUAL(statisticTest.minimum(), -2);
0061 BOOST_CHECK_EQUAL(statisticTest.maximum(), 2);
0062 BOOST_CHECK_EQUAL(statisticTest.var(), 8);
0063 BOOST_CHECK_EQUAL(statisticTest.stdDev(), sqrt(8));
0064 BOOST_CHECK_EQUAL(statisticTest.mean_var(), 4);
0065 BOOST_CHECK_EQUAL(statisticTest.mean_stdDev(), 2);
0066
0067 statisticTest += 2;
0068 BOOST_CHECK_EQUAL(statisticTest.numberOfPoints(), static_cast<unsigned int>(3));
0069 BOOST_CHECK_EQUAL(statisticTest.total(), 2.);
0070 BOOST_CHECK_EQUAL(statisticTest.mean(), 2./3.);
0071 BOOST_CHECK_EQUAL(statisticTest.minimum(), -2);
0072 BOOST_CHECK_EQUAL(statisticTest.maximum(), 2);
0073 BOOST_CHECK_EQUAL(statisticTest.var(), 16./3.);
0074 BOOST_CHECK_EQUAL(statisticTest.stdDev(), sqrt(16./3.));
0075 BOOST_CHECK_EQUAL(statisticTest.mean_var(), 16./9.);
0076 BOOST_CHECK_EQUAL(statisticTest.mean_stdDev(), sqrt(16./9.));
0077
0078 statisticTest += 4.5;
0079 BOOST_CHECK_EQUAL(statisticTest.minimum(), -2);
0080 BOOST_CHECK_EQUAL(statisticTest.maximum(), 4.5);
0081
0082 statisticTest += -3.5;
0083 BOOST_CHECK_EQUAL(statisticTest.minimum(), -3.5);
0084 BOOST_CHECK_EQUAL(statisticTest.maximum(), 4.5);
0085 }
0086
0087 BOOST_AUTO_TEST_SUITE_END()
0088
0089 #endif