- Timestamp:
- Jun 27, 2012, 4:07:20 PM (13 years ago)
- 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, 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:
- bf56f6
- Parents:
- ff60cfa
- git-author:
- Frederik Heber <heber@…> (02/15/12 14:17:54)
- git-committer:
- Frederik Heber <heber@…> (06/27/12 16:07:20)
- Location:
- src/Fragmentation/Automation
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Automation/Jobs/MPQCCommandJob.cpp
rff60cfa r545446 20 20 #include "CodePatterns/MemDebug.hpp" 21 21 22 // include headers that implement a archive in simple text format 23 // otherwise BOOST_CLASS_EXPORT_IMPLEMENT has no effect 24 #include <boost/archive/text_oarchive.hpp> 25 #include <boost/archive/text_iarchive.hpp> 26 22 27 #include "MPQCCommandJob.hpp" 23 28 … … 37 42 const std::string MPQCCommandJob::keyword_hartreefock_forces("Total Gradient"); 38 43 const std::string MPQCCommandJob::keyword_moellerplesset_forces("Total MP2 gradient [au]:"); 44 45 /** Default constructor for class MPQCCommandJob. 46 * 47 */ 48 MPQCCommandJob::MPQCCommandJob() 49 {} 39 50 40 51 /** Constructor for class MPQCCommandJob. … … 124 135 return s; 125 136 } 137 138 bool MPQCCommandJob::operator==(const MPQCCommandJob &other) const 139 { 140 if (data != other.data) { 141 LOG(2, "INFO: data's of both MPQCCommandJob don't match."); 142 return false; 143 } 144 return (static_cast<const SystemCommandJob &>(*this) 145 == static_cast<const SystemCommandJob &>(other)); 146 } 147 148 149 // we need to explicitly instantiate the serialization functions as 150 // its is only serialized through its base class FragmentJob 151 BOOST_CLASS_EXPORT_IMPLEMENT(MPQCCommandJob) -
src/Fragmentation/Automation/Jobs/MPQCCommandJob.hpp
rff60cfa r545446 13 13 #include <config.h> 14 14 #endif 15 16 #include <boost/serialization/export.hpp> 15 17 16 18 #include <string> … … 34 36 ~MPQCCommandJob(); 35 37 38 bool operator==(const MPQCCommandJob &other) const; 39 40 bool operator!=(const MPQCCommandJob &other) const { 41 return !(*this == other); 42 } 43 44 private: 45 //!> private default cstor only for serializatio 46 MPQCCommandJob(); 47 48 friend class boost::serialization::access; 49 // serialization 50 template <typename Archive> 51 void serialize(Archive& ar, const unsigned int version) 52 { 53 ar & boost::serialization::base_object<SystemCommandJob>(*this); 54 ar & data; 55 } 56 36 57 private: 37 58 //!> class that contains energy and forces and serialization capabilities … … 45 66 }; 46 67 68 // we need to give this class a unique key for serialization 69 // its is only serialized through its base class FragmentJob 70 BOOST_CLASS_EXPORT_KEY(MPQCCommandJob) 47 71 48 72 #endif /* MPQCCOMMANDJOB_HPP_ */ -
src/Fragmentation/Automation/unittests/MPQCCommandJobUnitTest.cpp
rff60cfa r545446 127 127 CPPUNIT_ASSERT( data == extractedData ); 128 128 } 129 130 /** UnitTest for operator==() 131 */ 132 void MPQCCommandJobTest::operatorTest() 133 { 134 MPQCCommandJob otherJob(std::string("empty"), 1); 135 136 // ascertain equality 137 CPPUNIT_ASSERT( *job == otherJob ); 138 139 // parse results 140 FragmentResult::ptr result = job->extractResult(resultstring); 141 142 // ascertain unequality as now data should differ 143 CPPUNIT_ASSERT( *job != otherJob ); 144 } 145 146 /** UnitTest for serialization 147 */ 148 void MPQCCommandJobTest::serializationTest() 149 { 150 // parse results 151 FragmentResult::ptr result = job->extractResult(resultstring); 152 153 // serialize 154 std::stringstream outputstream; 155 boost::archive::text_oarchive oa(outputstream); 156 oa << job; 157 158 // deserialize 159 MPQCCommandJob *extractedJob; 160 std::stringstream returnstream(outputstream.str()); 161 boost::archive::text_iarchive ia(returnstream); 162 ia >> extractedJob; 163 164 CPPUNIT_ASSERT( *job == *extractedJob ); 165 166 delete extractedJob; 167 } -
src/Fragmentation/Automation/unittests/MPQCCommandJobUnitTest.hpp
rff60cfa r545446 27 27 CPPUNIT_TEST_SUITE( MPQCCommandJobTest) ; 28 28 CPPUNIT_TEST ( extractStringTest ); 29 CPPUNIT_TEST ( operatorTest ); 30 CPPUNIT_TEST ( serializationTest ); 29 31 CPPUNIT_TEST_SUITE_END(); 30 32 … … 33 35 void tearDown(); 34 36 void extractStringTest(); 37 void operatorTest(); 38 void serializationTest(); 35 39 36 40 private:
Note:
See TracChangeset
for help on using the changeset viewer.