- Timestamp:
- Mar 10, 2010, 5:51:48 PM (15 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:
- d7940e
- Parents:
- 31af19
- Location:
- src
- Files:
-
- 2 added
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/AtomsCalculation_impl.hpp
r31af19 r23b547 29 29 template<typename T> 30 30 std::vector<T>* AtomsCalculation<T>::doCalc(){ 31 World* world = World::get ();31 World* world = World::getPointer(); 32 32 int steps = world->numAtoms(); 33 int count = 0;34 33 std::vector<T> *res = new std::vector<T>(); 35 34 res->reserve(steps); -
src/Actions/ManipulateAtomsProcess.cpp
r31af19 r23b547 23 23 24 24 void ManipulateAtomsProcess::call(){ 25 World::get ()->doManipulate(this);25 World::getInstance().doManipulate(this); 26 26 } 27 27 -
src/Descriptors/AtomDescriptor.cpp
r31af19 r23b547 68 68 69 69 World::AtomSet& AtomDescriptor_impl::getAtoms(){ 70 return World::get ()->atoms;70 return World::getInstance().atoms; 71 71 } 72 72 -
src/Descriptors/AtomTypeDescriptor.cpp
r31af19 r23b547 29 29 30 30 AtomDescriptor AtomByType(int Z){ 31 element * elem = World::get ()->getPeriode()->FindElement(Z);31 element * elem = World::getInstance().getPeriode()->FindElement(Z); 32 32 return AtomByType(elem); 33 33 } -
src/Descriptors/MoleculeDescriptor.cpp
r31af19 r23b547 68 68 69 69 World::MoleculeSet& MoleculeDescriptor_impl::getMolecules(){ 70 return World::get ()->molecules;70 return World::getInstance().molecules; 71 71 } 72 72 -
src/Legacy/oldmenu.cpp
r31af19 r23b547 78 78 case 'a': // absolute coordinates of atom 79 79 Log() << Verbose(0) << "Enter absolute coordinates." << endl; 80 first = World::get ()->createAtom();80 first = World::getInstance().createAtom(); 81 81 first->x.AskPosition(mol->cell_size, false); 82 82 first->type = periode->AskElement(); // give type … … 85 85 86 86 case 'b': // relative coordinates of atom wrt to reference point 87 first = World::get ()->createAtom();87 first = World::getInstance().createAtom(); 88 88 valid = true; 89 89 do { … … 101 101 102 102 case 'c': // relative coordinates of atom wrt to already placed atom 103 first = World::get ()->createAtom();103 first = World::getInstance().createAtom(); 104 104 valid = true; 105 105 do { … … 117 117 118 118 case 'd': // two atoms, two angles and a distance 119 first = World::get ()->createAtom();119 first = World::getInstance().createAtom(); 120 120 valid = true; 121 121 do { … … 217 217 218 218 case 'e': // least square distance position to a set of atoms 219 first = World::get ()->createAtom();219 first = World::getInstance().createAtom(); 220 220 atoms = new (Vector*[128]); 221 221 valid = true; … … 239 239 mol->AddAtom(first); // add to molecule 240 240 } else { 241 World::get ()->destroyAtom(first);241 World::getInstance().destroyAtom(first); 242 242 Log() << Verbose(0) << "Please enter at least two vectors!\n"; 243 243 } … … 782 782 x.AddVector(&y); // per factor one cell width further 783 783 for (int k=count;k--;) { // go through every atom of the original cell 784 first = World::get ()->createAtom(); // create a new body784 first = World::getInstance().createAtom(); // create a new body 785 785 first->x.CopyVector(vectors[k]); // use coordinate of original atom 786 786 first->x.AddVector(&x); // translate the coordinates … … 1089 1089 A++; 1090 1090 } 1091 World::get ()->destroyMolecule(mol);1091 World::getInstance().destroyMolecule(mol); 1092 1092 }; 1093 1093 -
src/World.cpp
r31af19 r23b547 16 16 #include "Descriptors/MoleculeDescriptor_impl.hpp" 17 17 #include "Actions/ManipulateAtomsProcess.hpp" 18 19 #include "Patterns/Singleton_impl.hpp" 18 20 19 21 using namespace std; … … 170 172 atomId_t id = *(atomIdPool.begin()); 171 173 atomIdPool.erase(id); 174 return id; 172 175 } 173 176 } … … 227 230 228 231 /******************************* Singleton Stuff **************************/ 229 230 // TODO: Hide boost-thread using Autotools stuff when no threads are used231 World* World::theWorld = 0;232 boost::mutex World::worldLock;233 232 234 233 World::World() : … … 260 259 } 261 260 262 World* World::get(){ 263 // boost supports RAII-Style locking, so we don't need to unlock 264 boost::mutex::scoped_lock guard(worldLock); 265 if(!theWorld) { 266 theWorld = new World(); 267 } 268 return theWorld; 269 } 270 271 void World::destroy(){ 272 // boost supports RAII-Style locking, so we don't need to unlock 273 boost::mutex::scoped_lock guard(worldLock); 274 delete theWorld; 275 theWorld = 0; 276 } 277 278 World* World::reset(){ 279 World* oldWorld = 0; 280 { 281 // boost supports RAII-Style locking, so we don't need to unlock 282 boost::mutex::scoped_lock guard(worldLock); 283 284 oldWorld = theWorld; 285 theWorld = new World(); 286 // oldworld does not need protection any more, 287 // since we should have the only reference 288 289 // worldLock handles access to the pointer, 290 // not to the object 291 } // scope-end releases the lock 292 293 // we have to let all the observers know that the 294 // oldWorld was destroyed. oldWorld calls subjectKilled 295 // upon destruction. Every Observer getting that signal 296 // should see that it gets the updated new world 297 delete oldWorld; 298 return theWorld; 299 } 261 // Explicit instantiation of the singleton mechanism at this point 262 263 CONSTRUCT_SINGLETON(World) 300 264 301 265 /******************************* deprecated Legacy Stuff ***********************/ -
src/World.hpp
r31af19 r23b547 19 19 #include "Patterns/Observer.hpp" 20 20 #include "Patterns/Cacheable.hpp" 21 #include "Patterns/Singleton.hpp" 22 21 23 22 24 // forward declarations … … 33 35 class AtomsCalculation; 34 36 35 class World : public Observable 37 38 39 class World : public Singleton<World>, public Observable 36 40 { 41 42 // Make access to constructor and destructor possible from inside the singleton 43 friend class Singleton<World>; 44 37 45 // necessary for coupling with descriptors 38 46 friend class AtomDescriptor_impl; … … 45 53 template<typename> friend class AtomsCalculation; 46 54 public: 55 56 // Types for Atom and Molecule structures 47 57 typedef std::map<atomId_t,atom*> AtomSet; 48 58 typedef std::map<moleculeId_t,molecule*> MoleculeSet; … … 272 282 MoleculeSet molecules; 273 283 moleculeId_t currMoleculeId; 274 275 276 /***** singleton Stuff *****/277 public:278 279 /**280 * get the currently active instance of the World.281 */282 static World* get();283 284 /**285 * destroy the currently active instance of the World.286 */287 static void destroy();288 289 /**290 * destroy the currently active instance of the World and immidiately291 * create a new one. Use this to reset while somebody is still Observing292 * the world and should reset the observed instance. All observers will be293 * sent the subjectKille() message from the old world.294 */295 static World* reset();296 297 284 private: 298 285 /** … … 307 294 */ 308 295 virtual ~World(); 309 310 static World *theWorld;311 // this mutex only saves the singleton pattern...312 // use other mutexes to protect internal data as well313 // this mutex handles access to the pointer, not to the object!!!314 static boost::mutex worldLock;315 296 316 297 /***** -
src/WorldIterators.cpp
r31af19 r23b547 17 17 18 18 World::AtomIterator::AtomIterator(){ 19 state = World::get ()->atomEnd();19 state = World::getInstance().atomEnd(); 20 20 } 21 21 … … 95 95 96 96 World::MoleculeIterator::MoleculeIterator(){ 97 state = World::get ()->moleculeEnd();97 state = World::getInstance().moleculeEnd(); 98 98 } 99 99 -
src/atom.cpp
r31af19 r23b547 50 50 res->FixedIon = FixedIon; 51 51 res->node = &x; 52 World::get ()->registerAtom(res);52 World::getInstance().registerAtom(res); 53 53 return res; 54 54 } -
src/atom_atominfo.cpp
r31af19 r23b547 29 29 30 30 void AtomInfo::setType(int Z) { 31 element *elem = World::get ()->getPeriode()->FindElement(Z);31 element *elem = World::getInstance().getPeriode()->FindElement(Z); 32 32 setType(elem); 33 33 } -
src/boundary.cpp
r31af19 r23b547 801 801 { 802 802 Info FunctionInfo(__func__); 803 molecule *Filling = World::get ()->createMolecule();803 molecule *Filling = World::getInstance().createMolecule(); 804 804 Vector CurrentPosition; 805 805 int N[NDIM]; -
src/builder.cpp
r31af19 r23b547 1432 1432 } 1433 1433 if (mol == NULL) { 1434 mol = World::get ()->createMolecule();1434 mol = World::getInstance().createMolecule(); 1435 1435 mol->ActiveFlag = true; 1436 1436 if (ConfigFileName != NULL) … … 1481 1481 SaveFlag = true; 1482 1482 Log() << Verbose(1) << "Adding new atom with element " << argv[argptr] << " at (" << argv[argptr+1] << "," << argv[argptr+2] << "," << argv[argptr+3] << "), "; 1483 first = World::get ()->createAtom();1483 first = World::getInstance().createAtom(); 1484 1484 first->type = periode->FindElement(atoi(argv[argptr])); 1485 1485 if (first->type != NULL) … … 1634 1634 Log() << Verbose(1) << "Filling Box with water molecules." << endl; 1635 1635 // construct water molecule 1636 molecule *filler = World::get ()->createMolecule();1636 molecule *filler = World::getInstance().createMolecule(); 1637 1637 molecule *Filling = NULL; 1638 1638 atom *second = NULL, *third = NULL; … … 1641 1641 // first->x.Zero(); 1642 1642 // filler->AddAtom(first); 1643 first = World::get ()->createAtom();1643 first = World::getInstance().createAtom(); 1644 1644 first->type = periode->FindElement(1); 1645 1645 first->x.Init(0.441, -0.143, 0.); 1646 1646 filler->AddAtom(first); 1647 second = World::get ()->createAtom();1647 second = World::getInstance().createAtom(); 1648 1648 second->type = periode->FindElement(1); 1649 1649 second->x.Init(-0.464, 1.137, 0.0); 1650 1650 filler->AddAtom(second); 1651 third = World::get ()->createAtom();1651 third = World::getInstance().createAtom(); 1652 1652 third->type = periode->FindElement(8); 1653 1653 third->x.Init(-0.464, 0.177, 0.); … … 1664 1664 molecules->insert(Filling); 1665 1665 } 1666 World::get ()->destroyMolecule(filler);1666 World::getInstance().destroyMolecule(filler); 1667 1667 argptr+=6; 1668 1668 } … … 2097 2097 x.AddVector(&y); // per factor one cell width further 2098 2098 for (int k=count;k--;) { // go through every atom of the original cell 2099 first = World::get ()->createAtom(); // create a new body2099 first = World::getInstance().createAtom(); // create a new body 2100 2100 first->x.CopyVector(vectors[k]); // use coordinate of original atom 2101 2101 first->x.AddVector(&x); // translate the coordinates … … 2168 2168 void cleanUp(config *configuration){ 2169 2169 UIFactory::purgeInstance(); 2170 World:: destroy();2170 World::purgeInstance(); 2171 2171 delete(configuration); 2172 2172 Log() << Verbose(0) << "Maximum of allocated memory: " … … 2192 2192 setVerbosity(0); 2193 2193 /* structure of ParseCommandLineOptions will be refactored later */ 2194 j = ParseCommandLineOptions(argc, argv, World::get ()->getMolecules(), World::get()->getPeriode(), *configuration, ConfigFileName);2194 j = ParseCommandLineOptions(argc, argv, World::getInstance().getMolecules(), World::getInstance().getPeriode(), *configuration, ConfigFileName); 2195 2195 switch (j){ 2196 2196 case 255: … … 2202 2202 break; 2203 2203 } 2204 if(World::get ()->numMolecules() == 0){2205 mol = World::get ()->createMolecule();2206 World::get ()->getMolecules()->insert(mol);2204 if(World::getInstance().numMolecules() == 0){ 2205 mol = World::getInstance().createMolecule(); 2206 World::getInstance().getMolecules()->insert(mol); 2207 2207 cout << "Molecule created" << endl; 2208 2208 if(mol->cell_size[0] == 0.){ … … 2225 2225 2226 2226 UIFactory::makeUserInterface(UIFactory::Text); 2227 MainWindow *mainWindow = UIFactory::get()->makeMainWindow(populaters,World::get ()->getMolecules(), configuration, World::get()->getPeriode(), ConfigFileName);2227 MainWindow *mainWindow = UIFactory::get()->makeMainWindow(populaters,World::getInstance().getMolecules(), configuration, World::getInstance().getPeriode(), ConfigFileName); 2228 2228 mainWindow->display(); 2229 2229 delete mainWindow; 2230 2230 } 2231 2231 2232 if(World::get ()->getPeriode()->StorePeriodentafel(configuration->databasepath))2232 if(World::getInstance().getPeriode()->StorePeriodentafel(configuration->databasepath)) 2233 2233 Log() << Verbose(0) << "Saving of elements.db successful." << endl; 2234 2234 -
src/config.cpp
r31af19 r23b547 733 733 sprintf(keyword,"%s_%i",name, j+1); 734 734 if (repetition == 0) { 735 neues = World::get ()->createAtom();735 neues = World::getInstance().createAtom(); 736 736 AtomList[i][j] = neues; 737 737 LinearList[ FileBuffer->LineMapping[FileBuffer->CurrentLine] ] = neues; … … 812 812 sprintf(keyword,"%s_%i",name, j+1); 813 813 if (repetition == 0) { 814 neues = World::get ()->createAtom();814 neues = World::getInstance().createAtom(); 815 815 AtomList[i][j] = neues; 816 816 LinearList[ FileBuffer->LineMapping[FileBuffer->CurrentLine] ] = neues; … … 851 851 void config::Load(const char * const filename, const string &BondGraphFileName, const periodentafel * const periode, MoleculeListClass * const &MolList) 852 852 { 853 molecule *mol = World::get ()->createMolecule();853 molecule *mol = World::getInstance().createMolecule(); 854 854 ifstream *file = new ifstream(filename); 855 855 if (file == NULL) { … … 1089 1089 void config::LoadOld(const char * const filename, const string &BondGraphFileName, const periodentafel * const periode, MoleculeListClass * const &MolList) 1090 1090 { 1091 molecule *mol = World::get ()->createMolecule();1091 molecule *mol = World::getInstance().createMolecule(); 1092 1092 ifstream *file = new ifstream(filename); 1093 1093 if (file == NULL) { … … 1288 1288 } 1289 1289 istringstream input2(zeile); 1290 atom *neues = World::get ()->createAtom();1290 atom *neues = World::getInstance().createAtom(); 1291 1291 input2 >> neues->x.x[0]; // x 1292 1292 input2 >> neues->x.x[1]; // y … … 1788 1788 char filename[MAXSTRINGSIZE]; 1789 1789 ofstream output; 1790 molecule *mol = World::get ()->createMolecule();1790 molecule *mol = World::getInstance().createMolecule(); 1791 1791 mol->SetNameFromFilename(ConfigFileName); 1792 1792 … … 1899 1899 } 1900 1900 1901 World::get ()->destroyMolecule(mol);1901 World::getInstance().destroyMolecule(mol); 1902 1902 }; 1903 1903 -
src/defs.hpp
r31af19 r23b547 85 85 #define STD_SEPERATOR_SPACER '-' 86 86 87 // some types used to set template parameters 88 struct true_type{ 89 enum{value=1}; 90 }; 91 struct false_type{ 92 enum{value = 0}; 93 }; 94 87 95 #endif /*DEFS_HPP_*/ -
src/molecule.cpp
r31af19 r23b547 31 31 * Initialises molecule list with correctly referenced start and end, and sets molecule::last_atom to zero. 32 32 */ 33 molecule::molecule(const periodentafel * const teil) : elemente(teil), start(World::get ()->createAtom()), end(World::get()->createAtom()),33 molecule::molecule(const periodentafel * const teil) : elemente(teil), start(World::getInstance().createAtom()), end(World::getInstance().createAtom()), 34 34 first(new bond(start, end, 1, -1)), last(new bond(start, end, 1, -1)), MDSteps(0), AtomCount(0), 35 35 BondCount(0), ElementCount(0), NoNonHydrogen(0), NoNonBonds(0), NoCyclicBonds(0), BondDistance(0.), … … 56 56 57 57 molecule *NewMolecule(){ 58 return new molecule(World::get ()->getPeriode());58 return new molecule(World::getInstance().getPeriode()); 59 59 } 60 60 … … 261 261 switch(TopBond->BondDegree) { 262 262 case 1: 263 FirstOtherAtom = World::get ()->createAtom(); // new atom263 FirstOtherAtom = World::getInstance().createAtom(); // new atom 264 264 FirstOtherAtom->type = elemente->FindElement(1); // element is Hydrogen 265 265 FirstOtherAtom->v.CopyVector(&TopReplacement->v); // copy velocity … … 318 318 319 319 // create the two Hydrogens ... 320 FirstOtherAtom = World::get ()->createAtom();321 SecondOtherAtom = World::get ()->createAtom();320 FirstOtherAtom = World::getInstance().createAtom(); 321 SecondOtherAtom = World::getInstance().createAtom(); 322 322 FirstOtherAtom->type = elemente->FindElement(1); 323 323 SecondOtherAtom->type = elemente->FindElement(1); … … 373 373 case 3: 374 374 // take the "usual" tetraoidal angle and add the three Hydrogen in direction of the bond (height of the tetraoid) 375 FirstOtherAtom = World::get ()->createAtom();376 SecondOtherAtom = World::get ()->createAtom();377 ThirdOtherAtom = World::get ()->createAtom();375 FirstOtherAtom = World::getInstance().createAtom(); 376 SecondOtherAtom = World::getInstance().createAtom(); 377 ThirdOtherAtom = World::getInstance().createAtom(); 378 378 FirstOtherAtom->type = elemente->FindElement(1); 379 379 SecondOtherAtom->type = elemente->FindElement(1); … … 494 494 MDSteps++; 495 495 for(i=0;i<NumberOfAtoms;i++){ 496 Walker = World::get ()->createAtom();496 Walker = World::getInstance().createAtom(); 497 497 getline(xyzfile,line,'\n'); 498 498 istringstream *item = new istringstream(line); -
src/molecule_dynamics.cpp
r31af19 r23b547 486 486 bool status = true; 487 487 int MaxSteps = configuration.MaxOuterStep; 488 MoleculeListClass *MoleculePerStep = new MoleculeListClass(World::get ());488 MoleculeListClass *MoleculePerStep = new MoleculeListClass(World::getPointer()); 489 489 // Get the Permutation Map by MinimiseConstrainedPotential 490 490 atom **PermutationMap = NULL; … … 506 506 Log() << Verbose(1) << "Filling intermediate " << MaxSteps << " steps with MDSteps of " << MDSteps << "." << endl; 507 507 for (int step = 0; step <= MaxSteps; step++) { 508 mol = World::get ()->createMolecule();508 mol = World::getInstance().createMolecule(); 509 509 MoleculePerStep->insert(mol); 510 510 Walker = start; -
src/molecule_fragmentation.cpp
r31af19 r23b547 676 676 //if (FragmentationToDo) { // we should always store the fragments again as coordination might have changed slightly without changing bond structure 677 677 // allocate memory for the pointer array and transmorph graphs into full molecular fragments 678 BondFragments = new MoleculeListClass(World::get ());678 BondFragments = new MoleculeListClass(World::getPointer()); 679 679 int k=0; 680 680 for(Graph::iterator runner = TotalGraph.begin(); runner != TotalGraph.end(); runner++) { … … 927 927 { 928 928 atom **SonList = Calloc<atom*>(AtomCount, "molecule::StoreFragmentFromStack: **SonList"); 929 molecule *Leaf = World::get ()->createMolecule();929 molecule *Leaf = World::getInstance().createMolecule(); 930 930 931 931 // Log() << Verbose(1) << "Begin of StoreFragmentFromKeyset." << endl; -
src/moleculelist.cpp
r31af19 r23b547 215 215 // remove src 216 216 ListOfMolecules.remove(srcmol); 217 World::get ()->destroyMolecule(srcmol);217 World::getInstance().destroyMolecule(srcmol); 218 218 return true; 219 219 }; … … 750 750 void MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs(const periodentafel * const periode, config * const configuration) 751 751 { 752 molecule *mol = World::get ()->createMolecule();752 molecule *mol = World::getInstance().createMolecule(); 753 753 atom *Walker = NULL; 754 754 atom *Advancer = NULL; … … 775 775 } 776 776 // remove the molecule 777 World::get ()->destroyMolecule(*MolRunner);777 World::getInstance().destroyMolecule(*MolRunner); 778 778 ListOfMolecules.erase(MolRunner); 779 779 } … … 797 797 molecule **molecules = Malloc<molecule *>(MolCount, "config::Load() - **molecules"); 798 798 for (int i=0;i<MolCount;i++) { 799 molecules[i] = World::get ()->createMolecule();799 molecules[i] = World::getInstance().createMolecule(); 800 800 molecules[i]->ActiveFlag = true; 801 801 strncpy(molecules[i]->name, mol->name, MAXSTRINGSIZE); … … 895 895 OBSERVE; 896 896 molecule *mol = NULL; 897 mol = World::get ()->createMolecule();897 mol = World::getInstance().createMolecule(); 898 898 insert(mol); 899 899 }; … … 904 904 char filename[MAXSTRINGSIZE]; 905 905 Log() << Verbose(0) << "Format should be XYZ with: ShorthandOfElement\tX\tY\tZ" << endl; 906 mol = World::get ()->createMolecule();906 mol = World::getInstance().createMolecule(); 907 907 do { 908 908 Log() << Verbose(0) << "Enter file name: "; … … 962 962 mol = *ListRunner; 963 963 ListOfMolecules.erase(ListRunner); 964 World::get ()->destroyMolecule(mol);964 World::getInstance().destroyMolecule(mol); 965 965 break; 966 966 } … … 1009 1009 // remove the leaf itself 1010 1010 if (Leaf != NULL) { 1011 World::get ()->destroyMolecule(Leaf);1011 World::getInstance().destroyMolecule(Leaf); 1012 1012 Leaf = NULL; 1013 1013 } -
src/unittests/AnalysisCorrelationToPointUnitTest.cpp
r31af19 r23b547 57 57 58 58 // construct periodentafel 59 tafel = World::get ()->getPeriode();59 tafel = World::getInstance().getPeriode(); 60 60 tafel->AddElement(hydrogen); 61 61 62 62 // construct molecule (tetraeder of hydrogens) 63 TestMolecule = World::get ()->createMolecule();64 Walker = World::get ()->createAtom();63 TestMolecule = World::getInstance().createMolecule(); 64 Walker = World::getInstance().createAtom(); 65 65 Walker->type = hydrogen; 66 66 Walker->node->Init(1., 0., 1. ); 67 67 TestMolecule->AddAtom(Walker); 68 Walker = World::get ()->createAtom();68 Walker = World::getInstance().createAtom(); 69 69 Walker->type = hydrogen; 70 70 Walker->node->Init(0., 1., 1. ); 71 71 TestMolecule->AddAtom(Walker); 72 Walker = World::get ()->createAtom();72 Walker = World::getInstance().createAtom(); 73 73 Walker->type = hydrogen; 74 74 Walker->node->Init(1., 1., 0. ); 75 75 TestMolecule->AddAtom(Walker); 76 Walker = World::get ()->createAtom();76 Walker = World::getInstance().createAtom(); 77 77 Walker->type = hydrogen; 78 78 Walker->node->Init(0., 0., 0. ); … … 82 82 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 83 83 84 TestList = World::get ()->getMolecules();84 TestList = World::getInstance().getMolecules(); 85 85 TestMolecule->ActiveFlag = true; 86 86 TestList->insert(TestMolecule); … … 104 104 105 105 delete(point); 106 World:: destroy();106 World::purgeInstance(); 107 107 MemoryUsageObserver::purgeInstance(); 108 108 logger::purgeInstance(); -
src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp
r31af19 r23b547 61 61 62 62 // construct periodentafel 63 tafel = World::get ()->getPeriode();63 tafel = World::getInstance().getPeriode(); 64 64 tafel->AddElement(hydrogen); 65 65 tafel->AddElement(carbon); 66 66 67 67 // construct molecule (tetraeder of hydrogens) base 68 TestMolecule = World::get ()->createMolecule();69 Walker = World::get ()->createAtom();68 TestMolecule = World::getInstance().createMolecule(); 69 Walker = World::getInstance().createAtom(); 70 70 Walker->type = hydrogen; 71 71 Walker->node->Init(1., 0., 1. ); 72 72 TestMolecule->AddAtom(Walker); 73 Walker = World::get ()->createAtom();73 Walker = World::getInstance().createAtom(); 74 74 Walker->type = hydrogen; 75 75 Walker->node->Init(0., 1., 1. ); 76 76 TestMolecule->AddAtom(Walker); 77 Walker = World::get ()->createAtom();77 Walker = World::getInstance().createAtom(); 78 78 Walker->type = hydrogen; 79 79 Walker->node->Init(1., 1., 0. ); 80 80 TestMolecule->AddAtom(Walker); 81 Walker = World::get ()->createAtom();81 Walker = World::getInstance().createAtom(); 82 82 Walker->type = hydrogen; 83 83 Walker->node->Init(0., 0., 0. ); … … 87 87 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 88 88 89 TestList = World::get ()->getMolecules();89 TestList = World::getInstance().getMolecules(); 90 90 TestMolecule->ActiveFlag = true; 91 91 TestList->insert(TestMolecule); … … 100 100 101 101 // add outer atoms 102 Walker = World::get ()->createAtom();102 Walker = World::getInstance().createAtom(); 103 103 Walker->type = carbon; 104 104 Walker->node->Init(4., 0., 4. ); 105 105 TestMolecule->AddAtom(Walker); 106 Walker = World::get ()->createAtom();106 Walker = World::getInstance().createAtom(); 107 107 Walker->type = carbon; 108 108 Walker->node->Init(0., 4., 4. ); 109 109 TestMolecule->AddAtom(Walker); 110 Walker = World::get ()->createAtom();110 Walker = World::getInstance().createAtom(); 111 111 Walker->type = carbon; 112 112 Walker->node->Init(4., 4., 0. ); 113 113 TestMolecule->AddAtom(Walker); 114 114 // add inner atoms 115 Walker = World::get ()->createAtom();115 Walker = World::getInstance().createAtom(); 116 116 Walker->type = carbon; 117 117 Walker->node->Init(0.5, 0.5, 0.5 ); … … 135 135 // note that all the atoms are cleaned by TestMolecule 136 136 delete(LC); 137 World:: destroy();137 World::purgeInstance(); 138 138 MemoryUsageObserver::purgeInstance(); 139 139 logger::purgeInstance(); -
src/unittests/AnalysisPairCorrelationUnitTest.cpp
r31af19 r23b547 56 56 57 57 // construct periodentafel 58 tafel = World::get ()->getPeriode();58 tafel = World::getInstance().getPeriode(); 59 59 tafel->AddElement(hydrogen); 60 60 61 61 // construct molecule (tetraeder of hydrogens) 62 TestMolecule = World::get ()->createMolecule();63 Walker = World::get ()->createAtom();62 TestMolecule = World::getInstance().createMolecule(); 63 Walker = World::getInstance().createAtom(); 64 64 Walker->type = hydrogen; 65 65 Walker->node->Init(1., 0., 1. ); 66 66 TestMolecule->AddAtom(Walker); 67 Walker = World::get ()->createAtom();67 Walker = World::getInstance().createAtom(); 68 68 Walker->type = hydrogen; 69 69 Walker->node->Init(0., 1., 1. ); 70 70 TestMolecule->AddAtom(Walker); 71 Walker = World::get ()->createAtom();71 Walker = World::getInstance().createAtom(); 72 72 Walker->type = hydrogen; 73 73 Walker->node->Init(1., 1., 0. ); 74 74 TestMolecule->AddAtom(Walker); 75 Walker = World::get ()->createAtom();75 Walker = World::getInstance().createAtom(); 76 76 Walker->type = hydrogen; 77 77 Walker->node->Init(0., 0., 0. ); … … 81 81 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 82 82 83 TestList = World::get ()->getMolecules();83 TestList = World::getInstance().getMolecules(); 84 84 TestMolecule->ActiveFlag = true; 85 85 TestList->insert(TestMolecule); … … 100 100 101 101 // note that all the atoms are cleaned by TestMolecule 102 World:: destroy();102 World::purgeInstance(); 103 103 MemoryUsageObserver::purgeInstance(); 104 104 logger::purgeInstance(); -
src/unittests/AtomDescriptorTest.cpp
r31af19 r23b547 29 29 // set up and tear down 30 30 void AtomDescriptorTest::setUp(){ 31 World::get ();31 World::getInstance(); 32 32 for(int i=0;i<ATOM_COUNT;++i){ 33 atoms[i]= World::get ()->createAtom();33 atoms[i]= World::getInstance().createAtom(); 34 34 atomIds[i]= atoms[i]->getId(); 35 35 } … … 37 37 38 38 void AtomDescriptorTest::tearDown(){ 39 World:: destroy();39 World::purgeInstance(); 40 40 } 41 41 … … 73 73 74 74 void AtomDescriptorTest::AtomBaseSetsTest(){ 75 std::vector<atom*> allAtoms = World::get ()->getAllAtoms(AllAtoms());75 std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms()); 76 76 CPPUNIT_ASSERT_EQUAL( true , hasAllAtoms(allAtoms,atomIds)); 77 77 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateAtoms(allAtoms)); 78 78 79 std::vector<atom*> noAtoms = World::get ()->getAllAtoms(NoAtoms());79 std::vector<atom*> noAtoms = World::getInstance().getAllAtoms(NoAtoms()); 80 80 CPPUNIT_ASSERT_EQUAL( true , noAtoms.empty()); 81 81 } … … 83 83 // test Atoms from boundaries and middle of the set 84 84 atom* testAtom; 85 testAtom = World::get ()->getAtom(AtomById(atomIds[0]));85 testAtom = World::getInstance().getAtom(AtomById(atomIds[0])); 86 86 CPPUNIT_ASSERT(testAtom); 87 87 CPPUNIT_ASSERT_EQUAL( atomIds[0], testAtom->getId()); 88 testAtom = World::get ()->getAtom(AtomById(atomIds[ATOM_COUNT/2]));88 testAtom = World::getInstance().getAtom(AtomById(atomIds[ATOM_COUNT/2])); 89 89 CPPUNIT_ASSERT(testAtom); 90 90 CPPUNIT_ASSERT_EQUAL( atomIds[ATOM_COUNT/2], testAtom->getId()); 91 testAtom = World::get ()->getAtom(AtomById(atomIds[ATOM_COUNT-1]));91 testAtom = World::getInstance().getAtom(AtomById(atomIds[ATOM_COUNT-1])); 92 92 CPPUNIT_ASSERT(testAtom); 93 93 CPPUNIT_ASSERT_EQUAL( atomIds[ATOM_COUNT-1], testAtom->getId()); … … 103 103 } 104 104 // test from outside of set 105 testAtom = World::get ()->getAtom(AtomById(outsideId));105 testAtom = World::getInstance().getAtom(AtomById(outsideId)); 106 106 CPPUNIT_ASSERT(!testAtom); 107 107 } … … 109 109 // test some elementary set operations 110 110 { 111 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(AllAtoms()||NoAtoms());111 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(AllAtoms()||NoAtoms()); 112 112 CPPUNIT_ASSERT_EQUAL( true , hasAllAtoms(testAtoms,atomIds)); 113 113 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateAtoms(testAtoms)); … … 115 115 116 116 { 117 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(NoAtoms()||AllAtoms());117 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(NoAtoms()||AllAtoms()); 118 118 CPPUNIT_ASSERT_EQUAL( true , hasAllAtoms(testAtoms,atomIds)); 119 119 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateAtoms(testAtoms)); … … 121 121 122 122 { 123 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(NoAtoms()&&AllAtoms());123 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(NoAtoms()&&AllAtoms()); 124 124 CPPUNIT_ASSERT_EQUAL( true , testAtoms.empty()); 125 125 } 126 126 127 127 { 128 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(AllAtoms()&&NoAtoms());128 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(AllAtoms()&&NoAtoms()); 129 129 CPPUNIT_ASSERT_EQUAL( true , testAtoms.empty()); 130 130 } 131 131 132 132 { 133 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(!AllAtoms());133 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(!AllAtoms()); 134 134 CPPUNIT_ASSERT_EQUAL( true , testAtoms.empty()); 135 135 } 136 136 137 137 { 138 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(!NoAtoms());138 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(!NoAtoms()); 139 139 CPPUNIT_ASSERT_EQUAL( true , hasAllAtoms(testAtoms,atomIds)); 140 140 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateAtoms(testAtoms)); … … 143 143 // exclude and include some atoms 144 144 { 145 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(AllAtoms()&&(!AtomById(atomIds[ATOM_COUNT/2])));145 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(AllAtoms()&&(!AtomById(atomIds[ATOM_COUNT/2]))); 146 146 std::set<atomId_t> excluded; 147 147 excluded.insert(atomIds[ATOM_COUNT/2]); … … 152 152 153 153 { 154 std::vector<atom*> testAtoms = World::get ()->getAllAtoms(NoAtoms()||(AtomById(atomIds[ATOM_COUNT/2])));154 std::vector<atom*> testAtoms = World::getInstance().getAllAtoms(NoAtoms()||(AtomById(atomIds[ATOM_COUNT/2]))); 155 155 CPPUNIT_ASSERT_EQUAL( (size_t)1, testAtoms.size()); 156 156 CPPUNIT_ASSERT_EQUAL( atomIds[ATOM_COUNT/2], testAtoms[0]->getId()); -
src/unittests/MoleculeDescriptorTest.cpp
r31af19 r23b547 29 29 // set up and tear down 30 30 void MoleculeDescriptorTest::setUp(){ 31 World::get ();31 World::getInstance(); 32 32 for(int i=0;i<MOLECULE_COUNT;++i){ 33 molecules[i]= World::get ()->createMolecule();33 molecules[i]= World::getInstance().createMolecule(); 34 34 moleculeIds[i]= molecules[i]->getId(); 35 35 } … … 37 37 38 38 void MoleculeDescriptorTest::tearDown(){ 39 World:: destroy();39 World::purgeInstance(); 40 40 } 41 41 … … 73 73 74 74 void MoleculeDescriptorTest::MoleculeBaseSetsTest(){ 75 std::vector<molecule*> allMolecules = World::get ()->getAllMolecules(AllMolecules());75 std::vector<molecule*> allMolecules = World::getInstance().getAllMolecules(AllMolecules()); 76 76 CPPUNIT_ASSERT_EQUAL( true , hasAllMolecules(allMolecules,moleculeIds)); 77 77 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateMolecules(allMolecules)); 78 78 79 std::vector<molecule*> noMolecules = World::get ()->getAllMolecules(NoMolecules());79 std::vector<molecule*> noMolecules = World::getInstance().getAllMolecules(NoMolecules()); 80 80 CPPUNIT_ASSERT_EQUAL( true , noMolecules.empty()); 81 81 } … … 83 83 // test Molecules from boundaries and middle of the set 84 84 molecule* testMolecule; 85 testMolecule = World::get ()->getMolecule(MoleculeById(moleculeIds[0]));85 testMolecule = World::getInstance().getMolecule(MoleculeById(moleculeIds[0])); 86 86 CPPUNIT_ASSERT(testMolecule); 87 87 CPPUNIT_ASSERT_EQUAL( moleculeIds[0], testMolecule->getId()); 88 testMolecule = World::get ()->getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT/2]));88 testMolecule = World::getInstance().getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT/2])); 89 89 CPPUNIT_ASSERT(testMolecule); 90 90 CPPUNIT_ASSERT_EQUAL( moleculeIds[MOLECULE_COUNT/2], testMolecule->getId()); 91 testMolecule = World::get ()->getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT-1]));91 testMolecule = World::getInstance().getMolecule(MoleculeById(moleculeIds[MOLECULE_COUNT-1])); 92 92 CPPUNIT_ASSERT(testMolecule); 93 93 CPPUNIT_ASSERT_EQUAL( moleculeIds[MOLECULE_COUNT-1], testMolecule->getId()); … … 103 103 } 104 104 // test from outside of set 105 testMolecule = World::get ()->getMolecule(MoleculeById(outsideId));105 testMolecule = World::getInstance().getMolecule(MoleculeById(outsideId)); 106 106 CPPUNIT_ASSERT(!testMolecule); 107 107 } … … 109 109 // test some elementary set operations 110 110 { 111 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(AllMolecules()||NoMolecules());111 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(AllMolecules()||NoMolecules()); 112 112 CPPUNIT_ASSERT_EQUAL( true , hasAllMolecules(testMolecules,moleculeIds)); 113 113 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateMolecules(testMolecules)); … … 115 115 116 116 { 117 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(NoMolecules()||AllMolecules());117 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(NoMolecules()||AllMolecules()); 118 118 CPPUNIT_ASSERT_EQUAL( true , hasAllMolecules(testMolecules,moleculeIds)); 119 119 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateMolecules(testMolecules)); … … 121 121 122 122 { 123 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(NoMolecules()&&AllMolecules());123 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(NoMolecules()&&AllMolecules()); 124 124 CPPUNIT_ASSERT_EQUAL( true , testMolecules.empty()); 125 125 } 126 126 127 127 { 128 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(AllMolecules()&&NoMolecules());128 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(AllMolecules()&&NoMolecules()); 129 129 CPPUNIT_ASSERT_EQUAL( true , testMolecules.empty()); 130 130 } 131 131 132 132 { 133 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(!AllMolecules());133 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(!AllMolecules()); 134 134 CPPUNIT_ASSERT_EQUAL( true , testMolecules.empty()); 135 135 } 136 136 137 137 { 138 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(!NoMolecules());138 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(!NoMolecules()); 139 139 CPPUNIT_ASSERT_EQUAL( true , hasAllMolecules(testMolecules,moleculeIds)); 140 140 CPPUNIT_ASSERT_EQUAL( true , hasNoDuplicateMolecules(testMolecules)); … … 143 143 // exclude and include some molecules 144 144 { 145 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(AllMolecules()&&(!MoleculeById(moleculeIds[MOLECULE_COUNT/2])));145 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(AllMolecules()&&(!MoleculeById(moleculeIds[MOLECULE_COUNT/2]))); 146 146 std::set<moleculeId_t> excluded; 147 147 excluded.insert(moleculeIds[MOLECULE_COUNT/2]); … … 152 152 153 153 { 154 std::vector<molecule*> testMolecules = World::get ()->getAllMolecules(NoMolecules()||(MoleculeById(moleculeIds[MOLECULE_COUNT/2])));154 std::vector<molecule*> testMolecules = World::getInstance().getAllMolecules(NoMolecules()||(MoleculeById(moleculeIds[MOLECULE_COUNT/2]))); 155 155 CPPUNIT_ASSERT_EQUAL( (size_t)1, testMolecules.size()); 156 156 CPPUNIT_ASSERT_EQUAL( moleculeIds[MOLECULE_COUNT/2], testMolecules[0]->getId()); -
src/unittests/analysisbondsunittest.cpp
r31af19 r23b547 61 61 62 62 // construct periodentafel 63 tafel = World::get ()->getPeriode();63 tafel = World::getInstance().getPeriode(); 64 64 tafel->AddElement(hydrogen); 65 65 tafel->AddElement(carbon); 66 66 67 67 // construct molecule (tetraeder of hydrogens) 68 TestMolecule = World::get ()->createMolecule();69 Walker = World::get ()->createAtom();68 TestMolecule = World::getInstance().createMolecule(); 69 Walker = World::getInstance().createAtom(); 70 70 Walker->type = hydrogen; 71 71 Walker->node->Init(1.5, 0., 1.5 ); 72 72 TestMolecule->AddAtom(Walker); 73 Walker = World::get ()->createAtom();73 Walker = World::getInstance().createAtom(); 74 74 Walker->type = hydrogen; 75 75 Walker->node->Init(0., 1.5, 1.5 ); 76 76 TestMolecule->AddAtom(Walker); 77 Walker = World::get ()->createAtom();77 Walker = World::getInstance().createAtom(); 78 78 Walker->type = hydrogen; 79 79 Walker->node->Init(1.5, 1.5, 0. ); 80 80 TestMolecule->AddAtom(Walker); 81 Walker = World::get ()->createAtom();81 Walker = World::getInstance().createAtom(); 82 82 Walker->type = hydrogen; 83 83 Walker->node->Init(0., 0., 0. ); 84 84 TestMolecule->AddAtom(Walker); 85 Walker = World::get ()->createAtom();85 Walker = World::getInstance().createAtom(); 86 86 Walker->type = carbon; 87 87 Walker->node->Init(0.5, 0.5, 0.5 ); … … 117 117 118 118 // remove molecule 119 World::get ()->destroyMolecule(TestMolecule);119 World::getInstance().destroyMolecule(TestMolecule); 120 120 // note that all the atoms are cleaned by TestMolecule 121 World:: destroy();121 World::purgeInstance(); 122 122 }; 123 123 -
src/unittests/atomsCalculationTest.cpp
r31af19 r23b547 51 51 // set up and tear down 52 52 void atomsCalculationTest::setUp(){ 53 World::get ();53 World::getInstance(); 54 54 for(int i=0;i<ATOM_COUNT;++i){ 55 55 atoms[i]= new AtomStub(i); 56 World::get ()->registerAtom(atoms[i]);56 World::getInstance().registerAtom(atoms[i]); 57 57 } 58 58 } 59 59 void atomsCalculationTest::tearDown(){ 60 World:: destroy();60 World::purgeInstance(); 61 61 ActionRegistry::purgeRegistry(); 62 62 } … … 92 92 } 93 93 94 static void operation(atom* _atom){95 AtomStub *atom = dynamic_cast<AtomStub*>(_atom);96 assert(atom);97 atom->doSomething();98 }99 100 101 94 void atomsCalculationTest::testCalculateSimple(){ 102 AtomsCalculation<int> *calc = World::get ()->calcOnAtoms<int>(boost::bind(&atom::getId,_1),"FOO",AllAtoms());95 AtomsCalculation<int> *calc = World::getInstance().calcOnAtoms<int>(boost::bind(&atom::getId,_1),"FOO",AllAtoms()); 103 96 std::vector<int> allIds = (*calc)(); 104 97 CPPUNIT_ASSERT(hasAll(allIds,0,ATOM_COUNT)); … … 108 101 void atomsCalculationTest::testCalculateExcluded(){ 109 102 int excluded = ATOM_COUNT/2; 110 AtomsCalculation<int> *calc = World::get ()->calcOnAtoms<int>(boost::bind(&atom::getId,_1),"FOO",AllAtoms() && !AtomById(excluded));103 AtomsCalculation<int> *calc = World::getInstance().calcOnAtoms<int>(boost::bind(&atom::getId,_1),"FOO",AllAtoms() && !AtomById(excluded)); 111 104 std::vector<int> allIds = (*calc)(); 112 105 std::set<int> excluded_set; -
src/unittests/bondgraphunittest.cpp
r31af19 r23b547 57 57 58 58 // construct periodentafel 59 tafel = World::get ()->getPeriode();59 tafel = World::getInstance().getPeriode(); 60 60 tafel->AddElement(hydrogen); 61 61 tafel->AddElement(carbon); 62 62 63 63 // construct molecule (tetraeder of hydrogens) 64 TestMolecule = World::get ()->createMolecule();65 Walker = World::get ()->createAtom();64 TestMolecule = World::getInstance().createMolecule(); 65 Walker = World::getInstance().createAtom(); 66 66 Walker->type = hydrogen; 67 67 Walker->node->Init(1., 0., 1. ); 68 68 TestMolecule->AddAtom(Walker); 69 Walker = World::get ()->createAtom();69 Walker = World::getInstance().createAtom(); 70 70 Walker->type = hydrogen; 71 71 Walker->node->Init(0., 1., 1. ); 72 72 TestMolecule->AddAtom(Walker); 73 Walker = World::get ()->createAtom();73 Walker = World::getInstance().createAtom(); 74 74 Walker->type = hydrogen; 75 75 Walker->node->Init(1., 1., 0. ); 76 76 TestMolecule->AddAtom(Walker); 77 Walker = World::get ()->createAtom();77 Walker = World::getInstance().createAtom(); 78 78 Walker->type = hydrogen; 79 79 Walker->node->Init(0., 0., 0. ); … … 102 102 103 103 // remove molecule 104 World::get ()->destroyMolecule(TestMolecule);104 World::getInstance().destroyMolecule(TestMolecule); 105 105 // note that all the atoms, molecules, the tafel and the elements 106 106 // are all cleaned when the world is destroyed 107 World:: destroy();107 World::purgeInstance(); 108 108 MemoryUsageObserver::purgeInstance(); 109 109 logger::purgeInstance(); -
src/unittests/listofbondsunittest.cpp
r31af19 r23b547 51 51 52 52 // construct periodentafel 53 tafel = World::get ()->getPeriode();53 tafel = World::getInstance().getPeriode(); 54 54 tafel->AddElement(hydrogen); 55 55 56 56 // construct molecule (tetraeder of hydrogens) 57 TestMolecule = World::get ()->createMolecule();58 Walker = World::get ()->createAtom();57 TestMolecule = World::getInstance().createMolecule(); 58 Walker = World::getInstance().createAtom(); 59 59 Walker->type = hydrogen; 60 60 Walker->node->Init(1., 0., 1. ); 61 61 TestMolecule->AddAtom(Walker); 62 Walker = World::get ()->createAtom();62 Walker = World::getInstance().createAtom(); 63 63 Walker->type = hydrogen; 64 64 Walker->node->Init(0., 1., 1. ); 65 65 TestMolecule->AddAtom(Walker); 66 Walker = World::get ()->createAtom();66 Walker = World::getInstance().createAtom(); 67 67 Walker->type = hydrogen; 68 68 Walker->node->Init(1., 1., 0. ); 69 69 TestMolecule->AddAtom(Walker); 70 Walker = World::get ()->createAtom();70 Walker = World::getInstance().createAtom(); 71 71 Walker->type = hydrogen; 72 72 Walker->node->Init(0., 0., 0. ); … … 82 82 { 83 83 // remove 84 World::get ()->destroyMolecule(TestMolecule);84 World::getInstance().destroyMolecule(TestMolecule); 85 85 // note that all the atoms, molecules, the tafel and the elements 86 86 // are all cleaned when the world is destroyed 87 World:: destroy();87 World::purgeInstance(); 88 88 MemoryUsageObserver::purgeInstance(); 89 89 logger::purgeInstance(); … … 250 250 251 251 // remove atom2 252 World::get ()->destroyAtom(atom2);252 World::getInstance().destroyAtom(atom2); 253 253 254 254 // check bond if removed from other atom -
src/unittests/manipulateAtomsTest.cpp
r31af19 r23b547 30 30 AtomStub(int _id) : 31 31 atom(), 32 id(_id),33 manipulated(false)32 manipulated(false), 33 id(_id) 34 34 {} 35 35 … … 66 66 // set up and tear down 67 67 void manipulateAtomsTest::setUp(){ 68 World::get ();68 World::getInstance(); 69 69 for(int i=0;i<ATOM_COUNT;++i){ 70 70 atoms[i]= new AtomStub(i); 71 World::get ()->registerAtom(atoms[i]);71 World::getInstance().registerAtom(atoms[i]); 72 72 } 73 73 } 74 74 void manipulateAtomsTest::tearDown(){ 75 World:: destroy();75 World::purgeInstance(); 76 76 ActionRegistry::purgeRegistry(); 77 }78 79 // some helper functions80 static bool hasAll(std::vector<atom*> atoms,int min, int max, std::set<int> excluded = std::set<int>()){81 for(int i=min;i<max;++i){82 if(!excluded.count(i)){83 std::vector<atom*>::iterator iter;84 bool res=false;85 for(iter=atoms.begin();iter!=atoms.end();++iter){86 res |= (*iter)->getId() == i;87 }88 if(!res) {89 cout << "Atom " << i << " missing in returned list" << endl;90 return false;91 }92 }93 }94 return true;95 }96 97 static bool hasNoDuplicates(std::vector<atom*> atoms){98 std::set<int> found;99 std::vector<atom*>::iterator iter;100 for(iter=atoms.begin();iter!=atoms.end();++iter){101 int id = (*iter)->getId();102 if(found.count(id))103 return false;104 found.insert(id);105 }106 return true;107 77 } 108 78 … … 115 85 116 86 void manipulateAtomsTest::testManipulateSimple(){ 117 ManipulateAtomsProcess *proc = World::get ()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms());87 ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms()); 118 88 proc->call(); 119 std::vector<atom*> allAtoms = World::get ()->getAllAtoms(AllAtoms());89 std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms()); 120 90 std::vector<atom*>::iterator iter; 121 91 for(iter=allAtoms.begin();iter!=allAtoms.end();++iter){ … … 128 98 129 99 void manipulateAtomsTest::testManipulateExcluded(){ 130 ManipulateAtomsProcess *proc = World::get ()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2));100 ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2)); 131 101 proc->call(); 132 std::vector<atom*> allAtoms = World::get ()->getAllAtoms(AllAtoms());102 std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms()); 133 103 std::vector<atom*>::iterator iter; 134 104 for(iter=allAtoms.begin();iter!=allAtoms.end();++iter){ … … 145 115 void manipulateAtomsTest::testObserver(){ 146 116 countObserver *obs = new countObserver(); 147 World::get ()->signOn(obs);148 ManipulateAtomsProcess *proc = World::get ()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2));117 World::getInstance().signOn(obs); 118 ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2)); 149 119 proc->call(); 150 120 151 121 CPPUNIT_ASSERT_EQUAL(1,obs->count); 152 World::get ()->signOff(obs);122 World::getInstance().signOff(obs); 153 123 delete obs; 154 124 }
Note:
See TracChangeset
for help on using the changeset viewer.