- Timestamp:
- Oct 10, 2011, 4:58:25 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:
- 35a25a
- Parents:
- d7d022
- git-author:
- Frederik Heber <heber@…> (09/09/11 13:12:21)
- git-committer:
- Frederik Heber <heber@…> (10/10/11 16:58:25)
- Location:
- src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/analyzer.cpp
rd7d022 rb60804 23 23 24 24 #include <cstring> 25 #include <sstream> 26 #include <fstream> 25 27 #include <cmath> 26 28 … … 54 56 ForceMatrix ChiPASFragments; 55 57 KeySetsContainer KeySet; 56 ofstream output;57 ofstream output2;58 ofstream output3;59 ofstream output4;60 ifstream input;61 st ringstream filename;58 std::ofstream output; 59 std::ofstream output2; 60 std::ofstream output3; 61 std::ofstream output4; 62 std::ifstream input; 63 std::stringstream filename; 62 64 time_t t = time(NULL); 63 65 struct tm *ts = localtime(&t); 64 66 char *datum = asctime(ts); 65 st ringstream Orderxrange;66 st ringstream Fragmentxrange;67 st ringstream yrange;67 std::stringstream Orderxrange; 68 std::stringstream Fragmentxrange; 69 std::stringstream yrange; 68 70 char *dir = NULL; 69 71 bool NoHessian = false; -
src/periodentafel.cpp
rd7d022 rb60804 598 598 return result; 599 599 }; 600 601 /** Comparison operator for periodentafel. 602 * 603 * @param other other instance to compare to 604 * @return true when both contain same elements 605 */ 606 bool periodentafel::operator==(const periodentafel &other) const 607 { 608 // there are only pointers in the elementSet, hence we have to compare ourselves 609 if (elements.size() != other.elements.size()) return false; 610 const_iterator iter = elements.begin(); 611 const_iterator otheriter = other.elements.begin(); 612 for (;(iter != elements.end()) && (otheriter != other.elements.end()); 613 ++iter, ++otheriter) { 614 bool status = true; 615 status = status && (iter->first == otheriter->first); 616 status = status && (*(iter->second) == *(otheriter->second)); 617 if (!status) { 618 std::cout << *(iter->second) << " not equal to " << *(otheriter->second) << "." << std::endl; 619 return false; 620 } 621 // else 622 // std::cout << (iter->second)->getName() << " are equal to " << (otheriter->second)->getName() << "." << std::endl; 623 } 624 if (strncmp(header1, other.header1, MAXSTRINGSIZE) != 0) return false; 625 if (strncmp(header2, other.header2, MAXSTRINGSIZE) != 0) return false; 626 return true; 627 } -
src/periodentafel.hpp
rd7d022 rb60804 13 13 #include <string> 14 14 15 #include "unittests/PeriodentafelUnitTest.hpp"16 15 #include "Helpers/defs.hpp" 17 16 #include "types.hpp" 17 18 #include "boost/serialization/array.hpp" 19 #include "boost/serialization/map.hpp" 18 20 19 21 /****************************************** forward declarations *****************************/ … … 29 31 /******* Types *********/ 30 32 friend class periodentafelTest; 31 private: 32 typedef std::map<atomicNumber_t,element*> elementSet; 33 public: 34 typedef elementSet::iterator iterator; 35 typedef elementSet::const_iterator const_iterator; 36 typedef std::reverse_iterator<const_iterator> reverse_iterator; 37 public: 33 private: 34 typedef std::map<atomicNumber_t,element*> elementSet; 35 public: 36 typedef elementSet::iterator iterator; 37 typedef elementSet::const_iterator const_iterator; 38 typedef std::reverse_iterator<const_iterator> reverse_iterator; 38 39 39 char header1[MAXSTRINGSIZE]; //!< store first header line 40 char header2[MAXSTRINGSIZE]; //!< store second header line 41 40 /******* Functions *********/ 41 public: 42 42 periodentafel(); 43 43 ~periodentafel(); … … 60 60 bool StorePeriodentafel(const char * const path) const; 61 61 62 private:62 bool operator==(const periodentafel &other) const; 63 63 64 bool LoadColorDatabase(istream &input); 64 bool operator!=(const periodentafel &other) const { 65 return !(*this == other); 66 } 67 68 private: 69 friend class boost::serialization::access; 70 // serialization 71 template<class Archive> 72 void serialize(Archive & ar, const unsigned int version) 73 { 74 ar & boost::serialization::make_array<char>(header1, MAXSTRINGSIZE); 75 ar & boost::serialization::make_array<char>(header2, MAXSTRINGSIZE); 76 ar & elements; 77 } 78 79 bool LoadColorDatabase(std::istream &input); 65 80 bool LoadElementsDatabase(std::istream &input); 66 81 bool LoadElectronegativityDatabase(std::istream &input); … … 70 85 bool LoadHBondLengthsDatabase(std::istream &input); 71 86 72 elementSet elements; 87 /******* Variables *********/ 88 private: 89 char header1[MAXSTRINGSIZE]; //!< store first header line 90 char header2[MAXSTRINGSIZE]; //!< store second header line 91 92 elementSet elements; 73 93 }; 74 94 75 76 95 #endif /*PERIODENTAFEL_HPP_*/ -
src/unittests/PeriodentafelUnitTest.cpp
rd7d022 rb60804 35 35 36 36 #include "PeriodentafelUnitTest.hpp" 37 38 // include headers that implement a archive in simple text format 39 #include <boost/archive/text_oarchive.hpp> 40 #include <boost/archive/text_iarchive.hpp> 37 41 38 42 #ifdef HAVE_TESTRUNNER … … 102 106 CPPUNIT_ASSERT( (ElementRunner->second->getNumber() == Z++) && "element is missing in sequence"); 103 107 }; 108 109 /** UnitTest for serialization 110 * 111 */ 112 void periodentafelTest::ComparisonTest() 113 { 114 periodentafel *newtafel = new periodentafel(); 115 116 CPPUNIT_ASSERT (*newtafel == *tafel ); 117 118 element *Elemental = new element(); 119 newtafel->AddElement((element * const)Elemental); 120 121 CPPUNIT_ASSERT (*newtafel != *tafel ); 122 123 delete newtafel; 124 } 125 126 std::string gatherUndoInformation() 127 { 128 // create undo state 129 std::stringstream undostream; 130 boost::archive::text_oarchive oa(undostream); 131 oa << World::getInstance().getPeriode(); 132 return undostream.str(); 133 } 134 135 /** UnitTest for serialization 136 * 137 */ 138 void periodentafelTest::SerializeTest() 139 { 140 // write element to stream 141 std::stringstream stream(gatherUndoInformation()); 142 // boost::archive::text_oarchive oa(stream); 143 // oa << World::getInstance().getPeriode(); 144 // //oa << tafel; 145 // 146 // //std::cout << "Contents of archive is " << stream.str() << std::endl; 147 // 148 // // create and open an archive for input 149 boost::archive::text_iarchive ia(stream); 150 // read class state from archive 151 periodentafel * newtafel; 152 153 ia >> newtafel; 154 155 CPPUNIT_ASSERT (*tafel == *newtafel); 156 } -
src/unittests/PeriodentafelUnitTest.hpp
rd7d022 rb60804 27 27 CPPUNIT_TEST ( AddRemoveTest ); 28 28 CPPUNIT_TEST ( LoadStoreTest ); 29 CPPUNIT_TEST ( ComparisonTest ); 30 CPPUNIT_TEST ( SerializeTest ); 29 31 CPPUNIT_TEST_SUITE_END(); 30 32 … … 34 36 void AddRemoveTest(); 35 37 void LoadStoreTest(); 38 void ComparisonTest(); 39 void SerializeTest(); 36 40 37 41 private:
Note:
See TracChangeset
for help on using the changeset viewer.