Ignore:
Timestamp:
Nov 8, 2012, 1:13:52 PM (13 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, Candidate_v1.7.0, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
1dd419
Parents:
45f4f96
git-author:
Frederik Heber <heber@…> (07/27/12 12:37:16)
git-committer:
Frederik Heber <heber@…> (11/08/12 13:13:52)
Message:

Added superposeOtherHistogram and implemented thereby operator+=() and operator-=().

  • the logic so far is that the other histogram must not extend beyond the present one.
Location:
src/Fragmentation/Histogram/unittests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/Fragmentation/Histogram/unittests/HistogramUnitTest.cpp

    r45f4f96 r22c4f57  
    4343#include "HistogramUnitTest.hpp"
    4444
     45#include <cmath>
     46#include <limits>
     47
    4548#include <boost/assign.hpp>
     49
     50#include "CodePatterns/Assert.hpp"
    4651
    4752#ifdef HAVE_TESTRUNNER
     
    5964void HistogramTest::setUp()
    6065{
     66  // failing asserts should be thrown
     67  ASSERT_DO(Assert::Throw);
     68
    6169  histogram = NULL;
    6270}
     
    194202}
    195203
    196 /** UnitTest for operator+=(), operator-=()
    197  */
    198 void HistogramTest::operator_Test()
    199 {
    200 }
    201 
     204/** UnitTest for superposeOtherHistogram()
     205 */
     206void HistogramTest::superposeOtherHistogram_Test()
     207{
     208  // create two histograms, one is larger
     209  Histogram::samples_t sampled_values;
     210  sampled_values += 1.,2.,3.,4.;
     211  histogram = new Histogram(sampled_values, 4);
     212  Histogram::samples_t more_values;
     213  more_values += 1.75,2.5,3.;
     214  Histogram otherhistogram(more_values, 3);
     215#ifndef NDEBUG
     216  CPPUNIT_ASSERT_THROW ( otherhistogram += *histogram, Assert::AssertionFailure );
     217#endif
     218}
     219
     220/** UnitTest for operator+=()
     221 */
     222void HistogramTest::operatorPlusEqual_Test()
     223{
     224  // create non-empty histograms and sum them
     225  Histogram::samples_t sampled_values;
     226  sampled_values += 1.,2.,3.,4.;
     227  histogram = new Histogram(sampled_values, 4);
     228  Histogram::samples_t more_values;
     229  more_values += 1.75,2.5,3.;
     230  Histogram otherhistogram(more_values, 3);
     231  const double sums = histogram->area() + otherhistogram.area();
     232
     233  // check that sum is now sum of both
     234  *histogram += otherhistogram;
     235  CPPUNIT_ASSERT( fabs(sums - histogram->area()) < std::numeric_limits<double>::epsilon()*1e+1 );
     236}
     237
     238/** UnitTest for operator-=()
     239 */
     240void HistogramTest::operatorMinusEqual_Test()
     241{
     242  // create non-empty histograms and sum them
     243  Histogram::samples_t sampled_values;
     244  sampled_values += 1.,2.,3.,4.;
     245  histogram = new Histogram(sampled_values, 4);
     246  Histogram::samples_t more_values;
     247  more_values += 1.75,2.5,3.;
     248  Histogram otherhistogram(more_values, 3);
     249  const double difference = histogram->area() - otherhistogram.area();
     250
     251  // check that sum is now difference of both
     252  *histogram -= otherhistogram;
     253  CPPUNIT_ASSERT( fabs(difference - histogram->area()) < std::numeric_limits<double>::epsilon()*1e+1 );
     254}
     255
  • src/Fragmentation/Histogram/unittests/HistogramUnitTest.hpp

    r45f4f96 r22c4f57  
    2828    CPPUNIT_TEST ( getHigherEndBin_Test );
    2929    CPPUNIT_TEST ( isEmpty_Test );
    30     CPPUNIT_TEST ( operator_Test );
    3130    CPPUNIT_TEST ( areaTest );
     31    CPPUNIT_TEST ( superposeOtherHistogram_Test );
     32    CPPUNIT_TEST ( operatorPlusEqual_Test );
     33    CPPUNIT_TEST ( operatorMinusEqual_Test );
    3234    CPPUNIT_TEST_SUITE_END();
    3335
     
    3941      void getHigherEndBin_Test();
    4042      void isEmpty_Test();
    41       void operator_Test();
    4243      void areaTest();
     44      void superposeOtherHistogram_Test();
     45      void operatorPlusEqual_Test();
     46      void operatorMinusEqual_Test();
    4347
    4448private:
Note: See TracChangeset for help on using the changeset viewer.