Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:24:28

0001 // -*- C++ -*-
0002 //
0003 // utilitiesTestStatistic.h is a part of Herwig - A multi-purpose Monte Carlo event generator
0004 // Copyright (C) 2002-2019 The Herwig Collaboration, 2015 Marco A. Harrendorf
0005 //
0006 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
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  * Fixture which defines the common variables for testing Statistic class
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  * Start of boost unit tests for Statistic.h
0031  * 
0032  */
0033 BOOST_FIXTURE_TEST_SUITE(utilitiesStatisticTest, FixStatistic1 )
0034 
0035 /*
0036  * Boost unit tests 
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 /* HERWIG_Utilities_Test_Statistic_H */