Changeset 0275ad
- Timestamp:
- Feb 3, 2011, 9:59:57 AM (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, 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:
- 9964ff, c14c78
- Parents:
- 1ee3b8d
- git-author:
- Frederik Heber <heber@…> (01/07/11 00:15:49)
- git-committer:
- Frederik Heber <heber@…> (02/03/11 09:59:57)
- Files:
-
- 10 added
- 44 edited
-
configure.ac (modified) (1 diff)
-
src/Actions/RandomNumbersAction/SetRandomNumbersDistributionAction.cpp (modified) (3 diffs)
-
src/Actions/RandomNumbersAction/SetRandomNumbersDistributionAction.def (modified) (1 diff)
-
src/Actions/RandomNumbersAction/SetRandomNumbersEngineAction.cpp (modified) (3 diffs)
-
src/Actions/RandomNumbersAction/SetRandomNumbersEngineAction.def (modified) (1 diff)
-
src/Actions/ValueStorage.cpp (modified) (3 diffs)
-
src/Actions/ValueStorage.hpp (modified) (4 diffs)
-
src/RandomNumbers/Makefile.am (modified) (2 diffs)
-
src/RandomNumbers/RandomNumberDistribution.hpp (modified) (4 diffs)
-
src/RandomNumbers/RandomNumberDistributionFactory.cpp (modified) (3 diffs)
-
src/RandomNumbers/RandomNumberDistributionFactory.def (modified) (1 diff)
-
src/RandomNumbers/RandomNumberDistributionFactory.hpp (modified) (2 diffs)
-
src/RandomNumbers/RandomNumberDistributionFactory.undef (modified) (1 diff)
-
src/RandomNumbers/RandomNumberDistribution_Encapsulation.cpp (modified) (1 diff)
-
src/RandomNumbers/RandomNumberDistribution_Encapsulation.hpp (modified) (16 diffs)
-
src/RandomNumbers/RandomNumberDistribution_Parameters.cpp (added)
-
src/RandomNumbers/RandomNumberDistribution_Parameters.hpp (added)
-
src/RandomNumbers/RandomNumberEngine.hpp (modified) (2 diffs)
-
src/RandomNumbers/RandomNumberEngineFactory.cpp (modified) (3 diffs)
-
src/RandomNumbers/RandomNumberEngineFactory.def (modified) (1 diff)
-
src/RandomNumbers/RandomNumberEngineFactory.hpp (modified) (2 diffs)
-
src/RandomNumbers/RandomNumberEngineFactory.undef (modified) (1 diff)
-
src/RandomNumbers/RandomNumberEngine_Encapsulation.hpp (modified) (5 diffs)
-
src/RandomNumbers/RandomNumberEngine_Parameters.cpp (added)
-
src/RandomNumbers/RandomNumberEngine_Parameters.hpp (added)
-
src/RandomNumbers/RandomNumberGeneratorFactory.def (modified) (3 diffs)
-
src/RandomNumbers/unittests/RandomNumberDistributionFactoryUnitTest.cpp (modified) (4 diffs)
-
src/RandomNumbers/unittests/RandomNumberDistributionFactoryUnitTest.hpp (modified) (3 diffs)
-
src/RandomNumbers/unittests/RandomNumberEngineFactoryUnitTest.cpp (modified) (4 diffs)
-
src/RandomNumbers/unittests/RandomNumberEngineFactoryUnitTest.hpp (modified) (3 diffs)
-
src/UIElements/CommandLineUI/CommandLineDialog.cpp (modified) (1 diff)
-
src/UIElements/CommandLineUI/CommandLineDialog.hpp (modified) (2 diffs)
-
src/UIElements/CommandLineUI/CommandLineParser.cpp (modified) (1 diff)
-
src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp (modified) (1 diff)
-
src/UIElements/CommandLineUI/Query/RandomNumberDistribution_ParametersCommandLineQuery.cpp (added)
-
src/UIElements/CommandLineUI/TypeEnumContainer.cpp (modified) (2 diffs)
-
src/UIElements/CommandLineUI/TypeEnumContainer.hpp (modified) (1 diff)
-
src/UIElements/Dialog.cpp (modified) (1 diff)
-
src/UIElements/Dialog.hpp (modified) (4 diffs)
-
src/UIElements/Makefile.am (modified) (6 diffs)
-
src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.cpp (added)
-
src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.hpp (added)
-
src/UIElements/Qt4/QtDialog.cpp (modified) (1 diff)
-
src/UIElements/Qt4/QtDialog.hpp (modified) (2 diffs)
-
src/UIElements/Qt4/Query/QtQuery.hpp (modified) (4 diffs)
-
src/UIElements/Qt4/Query/RandomNumberDistribution_ParametersQtQuery.cpp (added)
-
src/UIElements/Query/RandomNumberDistribution_ParametersQuery.cpp (added)
-
src/UIElements/TextUI/Query/RandomNumberDistribution_ParametersTextQuery.cpp (added)
-
src/UIElements/TextUI/Query/TextQuery.hpp (modified) (1 diff)
-
src/UIElements/TextUI/TextDialog.cpp (modified) (1 diff)
-
src/UIElements/TextUI/TextDialog.hpp (modified) (2 diffs)
-
src/unittests/DummyUI.hpp (modified) (1 diff)
-
tests/regression/RandomNumbers/Distribution/testsuite-set-random-number-distribution.at (modified) (1 diff)
-
tests/regression/RandomNumbers/Engine/testsuite-set-random-number-engine.at (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
configure.ac
r1ee3b8d r0275ad 115 115 #AC_MSG_NOTICE(["GLU_CFLAGS: $GLU_CFLAGS, GLU_CXXFLAGS: $GLU_CXXFLAGS, GLU_LDFLAGS: $GLU_LDFLAGS, GLU_LIBS: $GLU_LIBS"]) 116 116 117 # CodePatterns library (needs PrototypeFactory::getPrototype())117 # CodePatterns library (needs ManipulablePrototypeFactory pattern) 118 118 AM_PATH_CODEPATTERNS([1.0.7], $have_debug,,[AC_MSG_ERROR([Missing CodePatterns library, please specify PKG_CONFIG_PATH or use --with-codepatterns...])]) 119 119 -
src/Actions/RandomNumbersAction/SetRandomNumbersDistributionAction.cpp
r1ee3b8d r0275ad 25 25 #include "World.hpp" 26 26 27 #include "RandomNumbers/RandomNumberGeneratorFactory.hpp" 27 #include "RandomNumbers/RandomNumberDistributionFactory.hpp" 28 #include "RandomNumbers/RandomNumberDistribution.hpp" 29 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp" 28 30 29 31 #include <iostream> … … 43 45 getParametersfromValueStorage(); 44 46 45 CommandSetRandomNumbersDistributionState *state = 46 new CommandSetRandomNumbersDistributionState( 47 RandomNumberGeneratorFactory::getInstance().getDistributionName(), 48 params); 49 RandomNumberGeneratorFactory::getInstance().setDistribution(params.distribution_type); 47 // note down old type 48 std::string oldtype = RandomNumberDistributionFactory::getInstance().getCurrentTypeName(); 49 DoLog(1) && (Log() << Verbose(1) << "Current distribution is " << oldtype << std::endl); 50 50 51 // set the new default 52 RandomNumberDistributionFactory::getInstance().setCurrentType(params.distribution_type); 51 53 DoLog(0) && (Log() << Verbose(0) << "Distribution of random number generator is now: " 52 << RandomNumber GeneratorFactory::getInstance().getDistributionName() << std::endl);54 << RandomNumberDistributionFactory::getInstance().getCurrentTypeName() << std::endl); 53 55 54 return Action::state_ptr(state); 56 // note down old parameters 57 RandomNumberDistribution_Parameters *oldparameters = 58 RandomNumberDistributionFactory::getInstance().getPrototype().getParameterSet(); 59 // set each parameter (that is not -1); 60 if (!params.parameters.isDefault()) { 61 RandomNumberDistribution_Parameters *oldparameters = 62 RandomNumberDistributionFactory::getInstance().getPrototype().getParameterSet(); 63 oldparameters->update(params.parameters); 64 DoLog(1) && (Log() << Verbose(1) << "Changing prototype's parameters to " 65 << params.parameters << "." << std::endl); 66 RandomNumberDistributionFactory::getInstance().manipulatePrototype(*oldparameters); 67 } 68 69 { 70 RandomNumberDistribution_Parameters *currentparameters = 71 RandomNumberDistributionFactory::getInstance().getPrototype().getParameterSet(); 72 DoLog(1) && (Log() << Verbose(1) << "Its parameters are: " << *currentparameters << std::endl); 73 delete currentparameters; 74 } 75 76 CommandSetRandomNumbersDistributionState *newstate = 77 new CommandSetRandomNumbersDistributionState(oldtype,*oldparameters,params); 78 delete oldparameters; 79 return Action::state_ptr(newstate); 55 80 } 56 81 … … 58 83 CommandSetRandomNumbersDistributionState *state = assert_cast<CommandSetRandomNumbersDistributionState*>(_state.get()); 59 84 85 // note down old type for redo 86 std::string newtype = RandomNumberDistributionFactory::getInstance().getCurrentTypeName(); 87 DoLog(1) && (Log() << Verbose(1) << "Newly set distribution was " << newtype << std::endl); 88 89 // note down old parameters for redo 90 RandomNumberDistribution_Parameters *newparameters = 91 RandomNumberDistributionFactory::getInstance().getPrototype().getParameterSet(); 92 93 // set the new default 94 RandomNumberDistributionFactory::getInstance().setCurrentType(state->old_distribution_type); 95 DoLog(0) && (Log() << Verbose(0) << "Distribution of random number generator is again: " 96 << RandomNumberDistributionFactory::getInstance().getCurrentTypeName() << std::endl); 97 98 // set each parameter back (that is not -1); 99 if (!state->old_parameters.isDefault()) { 100 DoLog(1) && (Log() << Verbose(1) << "Changing back prototype's parameters to " 101 << state->old_parameters << "." << std::endl); 102 RandomNumberDistributionFactory::getInstance().manipulatePrototype(state->old_parameters); 103 } 104 105 { 106 RandomNumberDistribution_Parameters *currentparameters = 107 RandomNumberDistributionFactory::getInstance().getPrototype().getParameterSet(); 108 DoLog(1) && (Log() << Verbose(1) << "Its parameters are: " << *currentparameters << std::endl); 109 delete currentparameters; 110 } 111 60 112 CommandSetRandomNumbersDistributionState *newstate = 61 new CommandSetRandomNumbersDistributionState( 62 RandomNumberGeneratorFactory::getInstance().getDistributionName(), 63 state->params); 64 RandomNumberGeneratorFactory::getInstance().setDistribution(state->old_distribution_type); 65 66 DoLog(0) && (Log() << Verbose(0) << "Distribution of random number generator is undone to: " 67 << RandomNumberGeneratorFactory::getInstance().getDistributionName() << std::endl); 68 113 new CommandSetRandomNumbersDistributionState(newtype,*newparameters,params); 114 delete newparameters; 69 115 return Action::state_ptr(newstate); 70 116 } -
src/Actions/RandomNumbersAction/SetRandomNumbersDistributionAction.def
r1ee3b8d r0275ad 7 7 8 8 // all includes and forward declarations necessary for non-integral types below 9 class MoleculeListClass; 9 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp" 10 10 11 11 // i.e. there is an integer with variable name Z that can be found in 12 12 // ValueStorage by the token "Z" -> first column: int, Z, "Z" 13 13 // "undefine" if no parameters are required, use (NODEFAULT) for each (undefined) default value 14 #define paramtypes (std::string) 15 #define paramtokens ("set-random-number-distribution") 16 #define paramdescriptions ("name of the distribution from boost::random") 17 # undef paramdefaults18 #define paramreferences (distribution_type) 14 #define paramtypes (std::string)(class RandomNumberDistribution_Parameters) 15 #define paramtokens ("set-random-number-distribution")("random-number-distribution-parameters") 16 #define paramdescriptions ("name of the distribution from boost::random")("parameter set for requested distribution") 17 #define paramdefaults (NODEFAULT)("p=-1") 18 #define paramreferences (distribution_type)(parameters) 19 19 20 #define statetypes (std::string) 21 #define statereferences (old_distribution_type) 20 #define statetypes (std::string)(RandomNumberDistribution_Parameters) 21 #define statereferences (old_distribution_type)(old_parameters) 22 22 23 23 // some defines for all the names, you may use ACTION, STATE and PARAMS -
src/Actions/RandomNumbersAction/SetRandomNumbersEngineAction.cpp
r1ee3b8d r0275ad 26 26 27 27 #include "RandomNumbers/RandomNumberEngine.hpp" 28 #include "RandomNumbers/RandomNumberEngine_Parameters.hpp" 28 29 #include "RandomNumbers/RandomNumberEngineFactory.hpp" 29 30 30 31 #include <iostream> 31 #include < fstream>32 #include <sstream> 32 33 #include <string> 33 34 … … 44 45 getParametersfromValueStorage(); 45 46 46 // create a new state for undo 47 CommandSetRandomNumbersEngineState *state = 48 new CommandSetRandomNumbersEngineState( 49 RandomNumberEngineFactory::getInstance().getCurrentTypeName(), 50 RandomNumberEngineFactory::getInstance().getPrototype().getseed(), 51 params); 52 // set new default 47 // note down old type 48 std::string oldtype = RandomNumberEngineFactory::getInstance().getCurrentTypeName(); 49 DoLog(1) && (Log() << Verbose(1) << "Current engine is " << oldtype << std::endl); 50 51 // set the new default 53 52 RandomNumberEngineFactory::getInstance().setCurrentType(params.engine_type); 54 // set new seed if given, have to use ugly const_cast as prototype is not manipulable 55 if (params.seed != -1) { 56 RandomNumberEngine &engine = 57 const_cast<RandomNumberEngine &>( 58 RandomNumberEngineFactory::getInstance().getPrototype(params.engine_type) 59 ); 60 engine.seed(params.seed); 53 DoLog(0) && (Log() << Verbose(0) << "Engine of random number generator is now: " 54 << RandomNumberEngineFactory::getInstance().getCurrentTypeName() << std::endl); 55 56 // note down old parameters 57 RandomNumberEngine_Parameters *oldparameters = 58 RandomNumberEngineFactory::getInstance().getPrototype().getParameterSet(); 59 // set each parameter (that is not -1); 60 { 61 std::stringstream input(params.parameters); 62 RandomNumberEngine_Parameters *currentparameters = 63 RandomNumberEngineFactory::getInstance().getPrototype().getParameterSet(); 64 input >> *currentparameters; // add new values on top 65 if (!currentparameters->isDefault()) { 66 DoLog(1) && (Log() << Verbose(1) << "Changing prototype's parameters." << std::endl); 67 RandomNumberEngineFactory::getInstance().manipulatePrototype(*currentparameters); 68 } 69 delete currentparameters; 61 70 } 62 71 63 DoLog(0) && (Log() << Verbose(0) << "Default random number engine is now: " 64 << RandomNumberEngineFactory::getInstance().getCurrentTypeName() << std::endl); 72 { 73 RandomNumberEngine_Parameters *currentparameters = 74 RandomNumberEngineFactory::getInstance().getPrototype().getParameterSet(); 75 DoLog(1) && (Log() << Verbose(1) << "Its parameters are: " << *currentparameters << std::endl); 76 delete currentparameters; 77 } 65 78 66 return Action::state_ptr(state); 79 std::stringstream output; 80 output << *oldparameters; 81 CommandSetRandomNumbersEngineState *newstate = 82 new CommandSetRandomNumbersEngineState(oldtype,output.str(),params); 83 delete oldparameters; 84 return Action::state_ptr(newstate); 67 85 } 68 86 … … 71 89 assert_cast<CommandSetRandomNumbersEngineState*>(_state.get()); 72 90 73 // create a new state for redo 74 CommandSetRandomNumbersEngineState *newstate = 75 new CommandSetRandomNumbersEngineState( 76 RandomNumberEngineFactory::getInstance().getCurrentTypeName(), 77 RandomNumberEngineFactory::getInstance().getPrototype().getseed(), 78 state->params); 79 // set new default 91 // note down old type for redo 92 std::string newtype = RandomNumberEngineFactory::getInstance().getCurrentTypeName(); 93 DoLog(1) && (Log() << Verbose(1) << "Newly set engine was " << newtype << std::endl); 94 95 // note down old parameters for redo 96 RandomNumberEngine_Parameters *newparameters = 97 RandomNumberEngineFactory::getInstance().getPrototype().getParameterSet(); 98 99 // set the new default 80 100 RandomNumberEngineFactory::getInstance().setCurrentType(state->old_engine_type); 81 RandomNumberEngine &engine = const_cast<RandomNumberEngine &>( 82 RandomNumberEngineFactory::getInstance().getPrototype(state->params.engine_type) 83 ); 84 // set new seed if given, have to use ugly const_cast as prototype is not manipulable 85 if (state->params.seed != -1) { 86 engine.seed(state->params.seed); 101 DoLog(0) && (Log() << Verbose(0) << "Engine of random number generator is again: " 102 << RandomNumberEngineFactory::getInstance().getCurrentTypeName() << std::endl); 103 104 // set each parameter back (that is not -1); 105 { 106 std::stringstream input(state->old_parameters); 107 RandomNumberEngine_Parameters *currentparameters = 108 RandomNumberEngineFactory::getInstance().getPrototype().getParameterSet(); 109 input >> *currentparameters; 110 if (!currentparameters->isDefault()) { 111 DoLog(1) && (Log() << Verbose(1) << "Changing prototype's parameters." << std::endl); 112 RandomNumberEngineFactory::getInstance().manipulatePrototype(*currentparameters); 113 } 114 delete currentparameters; 87 115 } 88 116 89 DoLog(0) && (Log() << Verbose(0) << "Default random number engine is undone to: " 90 << RandomNumberEngineFactory::getInstance().getCurrentTypeName() << std::endl); 117 { 118 RandomNumberEngine_Parameters *currentparameters = 119 RandomNumberEngineFactory::getInstance().getPrototype().getParameterSet(); 120 DoLog(1) && (Log() << Verbose(1) << "Its parameters are: " << *currentparameters << std::endl); 121 delete currentparameters; 122 } 91 123 124 std::stringstream output; 125 output << *newparameters; 126 CommandSetRandomNumbersEngineState *newstate = 127 new CommandSetRandomNumbersEngineState(newtype,output.str(),params); 128 delete newparameters; 92 129 return Action::state_ptr(newstate); 93 130 } -
src/Actions/RandomNumbersAction/SetRandomNumbersEngineAction.def
r1ee3b8d r0275ad 7 7 8 8 // all includes and forward declarations necessary for non-integral types below 9 class MoleculeListClass;10 9 11 10 // i.e. there is an integer with variable name Z that can be found in 12 11 // ValueStorage by the token "Z" -> first column: int, Z, "Z" 13 12 // "undefine" if no parameters are required, use (NODEFAULT) for each (undefined) default value 14 #define paramtypes (std::string)( int)15 #define paramtokens ("set-random-number-engine")("random-number- seed")13 #define paramtypes (std::string)(std::string) 14 #define paramtokens ("set-random-number-engine")("random-number-engine-parameters") 16 15 #define paramdescriptions ("name of the pseudo-random engine from boost::random")("seed of the pseudo-random number sequence") 17 #define paramdefaults (NODEFAULT)(" -1")18 #define paramreferences (engine_type)( seed)16 #define paramdefaults (NODEFAULT)("seed=-1") 17 #define paramreferences (engine_type)(parameters) 19 18 20 #define statetypes (std::string)( int)21 #define statereferences (old_engine_type)(old_ seed)19 #define statetypes (std::string)(std::string) 20 #define statereferences (old_engine_type)(old_parameters) 22 21 23 22 // some defines for all the names, you may use ACTION, STATE and PARAMS -
src/Actions/ValueStorage.cpp
r1ee3b8d r0275ad 34 34 #include "LinearAlgebra/RealSpaceMatrix.hpp" 35 35 #include "LinearAlgebra/Vector.hpp" 36 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp" 36 37 #include "atom.hpp" 37 38 #include "Box.hpp" … … 145 146 "ValueStorage::queryCurrentValue() - BoxVector in value map has only "+toString(i)+" components!"); 146 147 } 148 } else 149 throw IllegalTypeException(__FILE__,__LINE__); 150 } 151 152 void ValueStorage::queryCurrentValue(const char * name, class RandomNumberDistribution_Parameters &_T) { 153 if (typeid( RandomNumberDistribution_Parameters ) == *(OptionRegistry_instance.getOptionByName(name)->getType())) { 154 std::istringstream stream(CurrentValueMap[name]); 155 DoLog(0) && (Log() << Verbose(0) << "ValueStorage::queryCurrentValue() for "+toString(name)+" is "+CurrentValueMap[name]+"." << std::endl); 156 CurrentValueMap.erase(name); 157 stream >> _T; 158 ASSERT(!stream.fail(), 159 "ValueStorage::queryCurrentValue() - RandomNumberDistribution_Parameters in value map has only no components!"); 147 160 } else 148 161 throw IllegalTypeException(__FILE__,__LINE__); … … 309 322 } 310 323 324 void ValueStorage::setCurrentValue(const char * name, class RandomNumberDistribution_Parameters &_T) 325 { 326 if (typeid( RandomNumberDistribution_Parameters ) == *(OptionRegistry_instance.getOptionByName(name)->getType())){ 327 std::ostringstream stream; 328 stream << _T; 329 CurrentValueMap[name] = stream.str(); 330 DoLog(0) && (Log() << Verbose(0) << "ValueStorage::setCurrentValue() for "+toString(name)+" to "+stream.str()+"." << std::endl); 331 } else 332 throw IllegalTypeException(__FILE__,__LINE__); 333 } 334 311 335 void ValueStorage::setCurrentValue(const char * name, std::vector<const atom *>&_T) 312 336 { -
src/Actions/ValueStorage.hpp
r1ee3b8d r0275ad 38 38 class molecule; 39 39 class Vector; 40 class RandomNumberDistribution_Parameters; 40 41 41 42 namespace po = boost::program_options; … … 49 50 * I.e. this is the interface implemented in MapOfActions which both can safely rely on 50 51 * to store&retrieve/exchange values. 52 * 53 * \section <ValueStorage> (ValueStorage howto) 54 * 55 * If you ever need to add a particular class to the ValueStorage, do as follows: 56 * -# add a specialized queryCurrentValue and setCurrentValue to the definition 57 * of ValueStorage. 58 * -# implement both in the declaration of ValueStorage. 59 * -# in the implementation either directly implement the serializing of the 60 * class' members to a stringstream or use an already implemented operator<< 61 * or operator<<, respectively. 62 * 51 63 */ 52 64 class ValueStorage : public Singleton<ValueStorage> { … … 62 74 void queryCurrentValue(const char * name, class Vector &_T); 63 75 void queryCurrentValue(const char * name, class BoxVector &_T); 76 void queryCurrentValue(const char * name, class RandomNumberDistribution_Parameters &_T); 64 77 void queryCurrentValue(const char * name, std::vector<const atom *>&_T); 65 78 void queryCurrentValue(const char * name, std::vector<const element *>&_T); … … 106 119 void setCurrentValue(const char * name, class Box &_T); 107 120 void setCurrentValue(const char * name, class Vector &_T); 121 void setCurrentValue(const char * name, class RandomNumberDistribution_Parameters &_T); 108 122 void setCurrentValue(const char * name, std::vector<const atom *>&_T); 109 123 void setCurrentValue(const char * name, std::vector<const element *>&_T); -
src/RandomNumbers/Makefile.am
r1ee3b8d r0275ad 10 10 RANDOMSOURCE = \ 11 11 RandomNumberDistribution_Encapsulation.cpp \ 12 RandomNumberDistribution_Parameters.cpp \ 12 13 RandomNumberDistributionFactory.cpp \ 13 14 RandomNumberEngine_Encapsulation.cpp \ 15 RandomNumberEngine_Parameters.cpp \ 14 16 RandomNumberEngineFactory.cpp \ 15 17 RandomNumberGenerator.cpp \ … … 20 22 RANDOMHEADER = \ 21 23 RandomNumberDistribution.hpp \ 24 RandomNumberDistribution_Parameters.hpp \ 22 25 RandomNumberDistribution_Encapsulation.hpp \ 23 26 RandomNumberDistributionFactory.hpp \ 24 27 RandomNumberEngine.hpp \ 25 28 RandomNumberEngine_Encapsulation.hpp \ 29 RandomNumberEngine_Parameters.hpp \ 26 30 RandomNumberEngineFactory.hpp \ 27 31 RandomNumberGenerator.hpp \ -
src/RandomNumbers/RandomNumberDistribution.hpp
r1ee3b8d r0275ad 16 16 class RandomNumberDistributionFactoryTest; 17 17 class RandomNumberGenerator; 18 class RandomNumberDistribution_Parameters; 18 19 19 20 /** Abstract base class for a random number distribution. … … 37 38 38 39 public: 39 /** Getter for smallest value the engine produces. 40 /** Getter for the whole set of possible parameters. 41 * 42 * @return filled instance of RandomNumberDistribution_Parameters 43 */ 44 virtual RandomNumberDistribution_Parameters* getParameterSet() const=0; 45 46 /** Getter for smallest value the uniform_... engines produces. 40 47 * 41 48 * @return smallest value … … 43 50 virtual double min() const=0; 44 51 45 /** Getter for largest value the engineproduces.52 /** Getter for largest value the uniform_... engines produces. 46 53 * 47 54 * @return largest value … … 56 63 virtual double p() const=0; 57 64 65 /** Getter for binomial_distribution's parameter t. 66 * 67 * @return t 68 */ 69 virtual double t() const=0; 70 71 /** Getter for cauchy_distribution parameter median. 72 * 73 * @return median 74 */ 75 virtual double median() const=0; 76 77 /** Getter for cauchy_distribution parameter sigma. 78 * 79 * @return sigma 80 */ 81 virtual double sigma() const=0; 82 83 /** Getter for gamma_distribution parameter alpha. 84 * 85 * @return alpha 86 */ 87 virtual double alpha() const=0; 88 89 /** Getter for poisson_distribution's parameter mean. 90 * 91 * @return mean 92 */ 93 virtual double mean() const=0; 94 95 /** Getter for triangle_distribution parameter a. 96 * 97 * @return a 98 */ 99 virtual double a() const=0; 100 101 /** Getter for triangle_distribution parameter b. 102 * 103 * @return b 104 */ 105 virtual double b() const=0; 106 107 /** Getter for triangle_distribution parameter c. 108 * 109 * @return c 110 */ 111 virtual double c() const=0; 112 113 /** Getter for exponential_distribution parameter lambda. 114 * 115 * @return lambda 116 */ 117 virtual double lambda() const=0; 118 58 119 /** Getter for the type name of the internal distribution. 59 120 * 121 * @return name of distribution 60 122 */ 61 123 virtual std::string name()=0; -
src/RandomNumbers/RandomNumberDistributionFactory.cpp
r1ee3b8d r0275ad 42 42 43 43 #include "RandomNumberDistribution_Encapsulation.hpp" 44 #include "RandomNumberDistribution_Parameters.hpp" 44 45 45 46 #include "RandomNumberDistributionFactory.hpp" … … 47 48 // has to be included BEFORE PrototypeFactory_impl.hpp! 48 49 #include "RandomNumberDistributionFactory.def" 49 #include "CodePatterns/ PrototypeFactory_impl.hpp"50 #include "CodePatterns/ManipulablePrototypeFactory_impl.hpp" 50 51 51 52 RandomNumberDistributionFactory::RandomNumberDistributionFactory() … … 60 61 61 62 CONSTRUCT_SINGLETON(RandomNumberDistributionFactory) 62 CONSTRUCT_ PROTOTYPEFACTORY(RandomNumberDistribution)63 CONSTRUCT_MANIPULABLEPROTOTYPEFACTORY(RandomNumberDistribution, RandomNumberDistribution_Parameters) 63 64 64 65 #include "RandomNumberDistributionFactory.undef" -
src/RandomNumbers/RandomNumberDistributionFactory.def
r1ee3b8d r0275ad 25 25 #define FactoryNAME RandomNumberDistributionFactory 26 26 #define Abstract_Interface_Class RandomNumberDistribution 27 #define Abstract_Parameter_Class RandomNumberDistribution_Parameters 27 28 #define Abstract_Encapsulation_Class RandomNumberDistribution_Encapsulation 28 29 #define type_name_space boost:: -
src/RandomNumbers/RandomNumberDistributionFactory.hpp
r1ee3b8d r0275ad 21 21 #include "RandomNumberDistributionFactory.undef" 22 22 23 #include "CodePatterns/ PrototypeFactory.hpp"23 #include "CodePatterns/ManipulablePrototypeFactory.hpp" 24 24 25 25 #include <map> 26 26 27 27 class RandomNumberDistribution; 28 class RandomNumberDistribution_Parameters; 28 29 class RandomNumberDistributionFactoryUnitTest; 30 class CommandSetRandomNumbersDistributionAction; 29 31 30 32 /** This is the abstract factory class for random number distributions. … … 39 41 class RandomNumberDistributionFactory : 40 42 public Singleton<RandomNumberDistributionFactory>, 41 public PrototypeFactory<RandomNumberDistribution>43 public ManipulablePrototypeFactory<RandomNumberDistribution, RandomNumberDistribution_Parameters> 42 44 { 43 45 friend class Singleton<RandomNumberDistributionFactory>; 44 46 friend class RandomNumberDistributionFactoryTest; 47 friend class CommandSetRandomNumbersDistributionAction; 45 48 46 49 protected: -
src/RandomNumbers/RandomNumberDistributionFactory.undef
r1ee3b8d r0275ad 5 5 #undef FactoryNAME 6 6 #undef Abstract_Interface_Class 7 #undef Abstract_Parameter_Class 7 8 #undef Abstract_Encapsulation_Class 8 9 #undef type_name_space -
src/RandomNumbers/RandomNumberDistribution_Encapsulation.cpp
r1ee3b8d r0275ad 24 24 #include "RandomNumberDistribution_Encapsulation.hpp" 25 25 26 /* ========= manipulatedclone() ================ */ 27 28 template <> 29 RandomNumberDistribution_Encapsulation< boost::uniform_smallint<> >:: 30 RandomNumberDistribution_Encapsulation (const RandomNumberDistribution_Parameters&_params) : 31 distribution_type(_params.min, _params.max) 32 {} 33 34 template <> 35 RandomNumberDistribution_Encapsulation< boost::uniform_int<> >:: 36 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 37 distribution_type(_params.min, _params.max) 38 {} 39 40 template <> 41 RandomNumberDistribution_Encapsulation< boost::uniform_real<> >:: 42 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 43 distribution_type(_params.min, _params.max) 44 {} 45 46 template <> 47 RandomNumberDistribution_Encapsulation< boost::bernoulli_distribution<> >:: 48 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 49 distribution_type(_params.p) 50 {} 51 52 template <> 53 RandomNumberDistribution_Encapsulation< boost::binomial_distribution<> >:: 54 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 55 distribution_type((int)_params.t, _params.p) 56 {} 57 58 template <> 59 RandomNumberDistribution_Encapsulation< boost::cauchy_distribution<> >:: 60 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 61 distribution_type(_params.median, _params.sigma) 62 {} 63 64 template <> 65 RandomNumberDistribution_Encapsulation< boost::gamma_distribution<> >:: 66 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 67 distribution_type(_params.alpha) 68 {} 69 70 template <> 71 RandomNumberDistribution_Encapsulation< boost::poisson_distribution<> >:: 72 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 73 distribution_type(_params.mean) 74 {} 75 76 template <> 77 RandomNumberDistribution_Encapsulation< boost::geometric_distribution<> >:: 78 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 79 distribution_type(_params.p) 80 {} 81 82 template <> 83 RandomNumberDistribution_Encapsulation< boost::triangle_distribution<> >:: 84 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 85 distribution_type(_params.a, _params.b, _params.c) 86 {} 87 88 template <> 89 RandomNumberDistribution_Encapsulation< boost::exponential_distribution<> >:: 90 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 91 distribution_type(_params.lambda) 92 {} 93 94 template <> 95 RandomNumberDistribution_Encapsulation< boost::normal_distribution<> >:: 96 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 97 distribution_type(_params.mean, _params.sigma) 98 {} 99 100 template <> 101 RandomNumberDistribution_Encapsulation< boost::lognormal_distribution<> >:: 102 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) : 103 distribution_type(_params.mean, _params.sigma) 104 {} 26 105 27 106 /* =============== min() ======================= */ -
src/RandomNumbers/RandomNumberDistribution_Encapsulation.hpp
r1ee3b8d r0275ad 37 37 #include <boost/random/uniform_smallint.hpp> 38 38 39 #include "CodePatterns/ Clone.hpp"39 #include "CodePatterns/ManipulableClone.hpp" 40 40 #include "RandomNumberDistribution.hpp" 41 42 #include "RandomNumberDistribution_Parameters.hpp" 41 43 42 44 class RandomNumberDistributionFactory; … … 52 54 class RandomNumberDistribution_Encapsulation : 53 55 public RandomNumberDistribution, 54 public Clone<RandomNumberDistribution>56 public ManipulableClone<RandomNumberDistribution, RandomNumberDistribution_Parameters> 55 57 { 56 58 /** … … 61 63 62 64 public: 63 64 /** Getter for smallest value the engine produces. 65 /** Getter for the whole set of possible parameters. 66 * 67 * @return filled instance of RandomNumberDistribution_Parameters 68 */ 69 RandomNumberDistribution_Parameters* getParameterSet() const 70 { 71 RandomNumberDistribution_Parameters *params = new RandomNumberDistribution_Parameters(); 72 params->getParameters(this); 73 return params; 74 } 75 76 /** Getter for smallest value the uniform_... engines produces. 65 77 * 66 78 * @return smallest value 67 79 */ 68 80 double min() const { 69 ASSERT(0, "min() not implemented for "+name()); 70 return -1.; 71 } 72 73 /** Getter for largest value the engine produces. 81 return RandomNumberDistribution_Parameters::noset_value; 82 } 83 84 /** Getter for largest value the uniform_... engines produces. 74 85 * 75 86 * @return largest value 76 87 */ 77 88 double max() const { 78 ASSERT(0, "max() not implemented for "+name()); 79 return -1.; 89 return RandomNumberDistribution_Parameters::noset_value; 80 90 } 81 91 … … 85 95 */ 86 96 double p() const { 87 ASSERT(0, "p() not implemented for "+name()); 88 return -1.; 97 return RandomNumberDistribution_Parameters::noset_value; 89 98 } 90 99 … … 94 103 */ 95 104 double t() const { 96 ASSERT(0, "t() not implemented for "+name()); 97 return -1.; 105 return RandomNumberDistribution_Parameters::noset_value; 98 106 } 99 107 … … 103 111 */ 104 112 double median() const { 105 ASSERT(0, "median() not implemented for "+name()); 106 return -1.; 113 return RandomNumberDistribution_Parameters::noset_value; 107 114 } 108 115 … … 112 119 */ 113 120 double sigma() const { 114 ASSERT(0, "sigma() not implemented for "+name()); 115 return -1.; 121 return RandomNumberDistribution_Parameters::noset_value; 116 122 } 117 123 … … 121 127 */ 122 128 double alpha() const { 123 ASSERT(0, "alpha() not implemented for "+name()); 124 return -1.; 129 return RandomNumberDistribution_Parameters::noset_value; 125 130 } 126 131 … … 130 135 */ 131 136 double mean() const { 132 ASSERT(0, "mean() not implemented for "+name()); 133 return -1.; 137 return RandomNumberDistribution_Parameters::noset_value; 134 138 } 135 139 … … 139 143 */ 140 144 double a() const { 141 ASSERT(0, "a() not implemented for "+name()); 142 return -1.; 145 return RandomNumberDistribution_Parameters::noset_value; 143 146 } 144 147 … … 148 151 */ 149 152 double b() const { 150 ASSERT(0, "b() not implemented for "+name()); 151 return -1.; 153 return RandomNumberDistribution_Parameters::noset_value; 152 154 } 153 155 … … 157 159 */ 158 160 double c() const { 159 ASSERT(0, "c() not implemented for "+name()); 160 return -1.; 161 return RandomNumberDistribution_Parameters::noset_value; 161 162 } 162 163 … … 166 167 */ 167 168 double lambda() const { 168 ASSERT(0, "lambda() not implemented for "+name()); 169 return -1.; 169 return RandomNumberDistribution_Parameters::noset_value; 170 170 } 171 171 … … 193 193 RandomNumberDistribution* clone() const { 194 194 RandomNumberDistribution* MyClone = NULL; 195 MyClone = new RandomNumberDistribution_Encapsulation<distribution>(); 195 RandomNumberDistribution_Parameters *params = getParameterSet(); 196 MyClone = new RandomNumberDistribution_Encapsulation<distribution>(*params); 197 delete params; 196 198 return MyClone; 199 } 200 201 /** Clones and manipulates the current instance. 202 * 203 * Implementation of ManipulableClone pattern. 204 * 205 * @param _params set of parameters to instantiate manipulated clone with 206 * @return interface reference to cloned&manipulated instance 207 */ 208 ManipulableClone<RandomNumberDistribution, RandomNumberDistribution_Parameters>* 209 manipulatedclone(const RandomNumberDistribution_Parameters&_params) const 210 { 211 RandomNumberDistribution_Encapsulation<distribution>* newproto = 212 new RandomNumberDistribution_Encapsulation<distribution>(_params); 213 return newproto; 197 214 } 198 215 … … 205 222 {} 206 223 224 /** Constructor that instantiates a specific random number generator and 225 * distribution. 226 * 227 * @param _params set of parameters to instantiate manipulated clone with 228 * @param _distribution_type instance of the desired distribution 229 */ 230 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params) 231 {} 232 207 233 /** Destructor of the class. 208 234 * … … 216 242 // template member functions for the desired cases. 217 243 244 /* ========= manipulatedclone() ================ */ 245 246 template <> 247 RandomNumberDistribution_Encapsulation< boost::uniform_smallint<> >:: 248 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 249 250 template <> 251 RandomNumberDistribution_Encapsulation< boost::uniform_int<> >:: 252 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 253 254 template <> 255 RandomNumberDistribution_Encapsulation< boost::uniform_real<> >:: 256 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 257 258 template <> 259 RandomNumberDistribution_Encapsulation< boost::bernoulli_distribution<> >:: 260 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 261 262 template <> 263 RandomNumberDistribution_Encapsulation< boost::binomial_distribution<> >:: 264 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 265 266 template <> 267 RandomNumberDistribution_Encapsulation< boost::cauchy_distribution<> >:: 268 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 269 270 template <> 271 RandomNumberDistribution_Encapsulation< boost::gamma_distribution<> >:: 272 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 273 274 template <> 275 RandomNumberDistribution_Encapsulation< boost::poisson_distribution<> >:: 276 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 277 278 template <> 279 RandomNumberDistribution_Encapsulation< boost::geometric_distribution<> >:: 280 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 281 282 template <> 283 RandomNumberDistribution_Encapsulation< boost::triangle_distribution<> >:: 284 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 285 286 template <> 287 RandomNumberDistribution_Encapsulation< boost::exponential_distribution<> >:: 288 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 289 290 template <> 291 RandomNumberDistribution_Encapsulation< boost::normal_distribution<> >:: 292 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 293 294 template <> 295 RandomNumberDistribution_Encapsulation< boost::lognormal_distribution<> >:: 296 RandomNumberDistribution_Encapsulation(const RandomNumberDistribution_Parameters&_params); 297 218 298 /* =============== min() ======================= */ 219 299 -
src/RandomNumbers/RandomNumberEngine.hpp
r1ee3b8d r0275ad 16 16 class RandomNumberEngineFactoryTest; 17 17 class RandomNumberGenerator; 18 class RandomNumberEngine_Parameters; 18 19 19 20 /** Abstract base class for a random number engine. … … 37 38 38 39 public: 40 /** Getter for the whole set of possible parameters. 41 * 42 * @return filled instance of RandomNumberEngine_Parameters 43 */ 44 virtual RandomNumberEngine_Parameters* getParameterSet() const=0; 45 39 46 /** Set the generator's seed. 40 47 * -
src/RandomNumbers/RandomNumberEngineFactory.cpp
r1ee3b8d r0275ad 40 40 41 41 #include "RandomNumberEngine_Encapsulation.hpp" 42 #include "RandomNumberEngine_Parameters.hpp" 42 43 43 44 #include "RandomNumberEngineFactory.hpp" … … 45 46 // has to be included BEFORE PrototypeFactory_impl.hpp! 46 47 #include "RandomNumberEngineFactory.def" 47 #include "CodePatterns/ PrototypeFactory_impl.hpp"48 #include "CodePatterns/ManipulablePrototypeFactory_impl.hpp" 48 49 49 50 RandomNumberEngineFactory::RandomNumberEngineFactory() … … 58 59 59 60 CONSTRUCT_SINGLETON(RandomNumberEngineFactory) 60 CONSTRUCT_ PROTOTYPEFACTORY(RandomNumberEngine)61 CONSTRUCT_MANIPULABLEPROTOTYPEFACTORY(RandomNumberEngine, RandomNumberEngine_Parameters) 61 62 62 63 #include "RandomNumberEngineFactory.undef" -
src/RandomNumbers/RandomNumberEngineFactory.def
r1ee3b8d r0275ad 39 39 #define FactoryNAME RandomNumberEngineFactory 40 40 #define Abstract_Interface_Class RandomNumberEngine 41 #define Abstract_Parameter_Class RandomNumberEngine_Parameters 41 42 #define Abstract_Encapsulation_Class RandomNumberEngine_Encapsulation 42 43 #define type_name_space boost:: -
src/RandomNumbers/RandomNumberEngineFactory.hpp
r1ee3b8d r0275ad 21 21 #include "RandomNumberEngineFactory.undef" 22 22 23 #include "CodePatterns/ PrototypeFactory.hpp"23 #include "CodePatterns/ManipulablePrototypeFactory.hpp" 24 24 25 25 #include <map> 26 26 27 27 class RandomNumberEngine; 28 class RandomNumberEngine_Parameters; 28 29 class RandomNumberEngineFactoryUnitTest; 29 30 class CommandSetRandomNumbersEngineAction; … … 40 41 class RandomNumberEngineFactory : 41 42 public Singleton<RandomNumberEngineFactory>, 42 public PrototypeFactory<RandomNumberEngine>43 public ManipulablePrototypeFactory<RandomNumberEngine,RandomNumberEngine_Parameters> 43 44 { 44 45 friend class Singleton<RandomNumberEngineFactory>; -
src/RandomNumbers/RandomNumberEngineFactory.undef
r1ee3b8d r0275ad 7 7 #undef FactoryNAME 8 8 #undef Abstract_Interface_Class 9 #undef Abstract_Parameter_Class 9 10 #undef Abstract_Encapsulation_Class 10 11 #undef type_name_space -
src/RandomNumbers/RandomNumberEngine_Encapsulation.hpp
r1ee3b8d r0275ad 31 31 #include <boost/random/xor_combine.hpp> 32 32 33 #include "CodePatterns/ Clone.hpp"33 #include "CodePatterns/ManipulableClone.hpp" 34 34 #include "RandomNumberEngine.hpp" 35 35 36 36 class RandomNumberEngineFactory; 37 38 #include "RandomNumberEngine_Parameters.hpp" 37 39 38 40 /** Template class that encapsulates the random number engines from … … 46 48 class RandomNumberEngine_Encapsulation : 47 49 public RandomNumberEngine, 48 public Clone<RandomNumberEngine>50 public ManipulableClone<RandomNumberEngine, RandomNumberEngine_Parameters> 49 51 { 50 52 /** … … 55 57 56 58 public: 59 /** Getter for the whole set of possible parameters. 60 * 61 * @return filled instance of RandomNumberEngine_Parameters 62 */ 63 RandomNumberEngine_Parameters* getParameterSet() const 64 { 65 RandomNumberEngine_Parameters *params = new RandomNumberEngine_Parameters(); 66 params->getParameters(this); 67 return params; 68 } 69 57 70 /** Set the engine's seed. 58 71 * … … 110 123 */ 111 124 RandomNumberEngine* clone() const { 112 RandomNumberEngine* MyClone = NULL; 125 RandomNumberEngine_Parameters *params = getParameterSet(); 126 RandomNumberEngine* MyClone = new RandomNumberEngine_Encapsulation<engine>(*params); 127 //MyClone->seed(getseed()); 128 return MyClone; 129 } 130 131 /** Clones and manipulates the current instance. 132 * 133 * Implementation of ManipulableClone pattern. 134 * 135 * @param _params set of parameters to instantiate manipulated clone with 136 * @return interface reference to cloned&manipulated instance 137 */ 138 ManipulableClone<RandomNumberEngine, RandomNumberEngine_Parameters>* 139 manipulatedclone(const RandomNumberEngine_Parameters &_params) const { 140 RandomNumberEngine_Encapsulation<engine>* MyClone = NULL; 113 141 MyClone = new RandomNumberEngine_Encapsulation<engine>(); 114 MyClone->seed(getseed()); 142 MyClone->value_seed = _params.seed; 143 MyClone->seed(_params.seed); 115 144 return MyClone; 116 145 } … … 125 154 {} 126 155 156 /** Constructor that instantiates a specific random number generator and 157 * distribution. 158 * @param _engine_type instance of the desired engine 159 */ 160 RandomNumberEngine_Encapsulation(const RandomNumberEngine_Parameters &_params) : 161 value_seed(_params.seed) 162 {} 163 127 164 /** Destructor of the class. 128 165 * -
src/RandomNumbers/RandomNumberGeneratorFactory.def
r1ee3b8d r0275ad 27 27 */ 28 28 #define engine_seq \ 29 (minstd_rand0)\ 29 (minstd_rand0) 30 /* 30 31 (minstd_rand)\ 31 32 (rand48)\ … … 36 37 (mt11213b)\ 37 38 (mt19937) 39 */ 38 40 39 41 #define engine_seq_a \ 40 (lagged_fibonacci607)\ 42 (lagged_fibonacci607) 43 /* 41 44 (lagged_fibonacci1279)\ 42 45 (lagged_fibonacci2281)\ … … 55 58 (ranlux64_3_01)\ 56 59 (ranlux64_4_01) 57 60 */ 58 61 #endif /* RANDOMNUMBERGENERATORFACTORY_DEF_ */ -
src/RandomNumbers/unittests/RandomNumberDistributionFactoryUnitTest.cpp
r1ee3b8d r0275ad 73 73 rndA_1 = NULL; 74 74 rndA_2 = NULL; 75 rndA_3 = NULL; 75 76 RandomNumberDistributionFactory::getInstance(); 76 77 } … … 81 82 delete rndA_1; 82 83 delete rndA_2; 84 delete rndA_3; 83 85 RandomNumberDistributionFactory::purgeInstance(); 84 86 } … … 103 105 // check one of the distributions in the table 104 106 rndA = RandomNumberDistributionFactory::getInstance(). 105 PrototypeTable[RandomNumberDistributionFactory::uniform_smallint]->clone();107 ManipulablePrototypeTable[RandomNumberDistributionFactory::uniform_smallint]->clone(); 106 108 CPPUNIT_ASSERT_EQUAL( 107 109 std::string(typeid(boost::uniform_smallint<> ).name()), … … 114 116 } 115 117 118 void RandomNumberDistributionFactoryTest::PrototypeManipulationTest() 119 { 120 // make unmodified clone 121 rndA_1 = RandomNumberDistributionFactory::getInstance(). 122 getProduct(RandomNumberDistributionFactory::uniform_smallint); 123 124 // do something with the prototype 125 RandomNumberDistribution_Parameters *params = 126 rndA_1->getParameterSet(); 127 CPPUNIT_ASSERT( 20. != rndA_1->max() ); 128 params->max = 20.; 129 RandomNumberDistributionFactory::getInstance(). 130 manipulatePrototype(RandomNumberDistributionFactory::uniform_smallint, *params); 131 // ... and check max 132 rndA_2 = RandomNumberDistributionFactory::getInstance(). 133 getProduct(RandomNumberDistributionFactory::uniform_smallint); 134 CPPUNIT_ASSERT_EQUAL( 20., rndA_2->max()); 135 CPPUNIT_ASSERT( rndA_1->max() != rndA_2->max()); 136 // ... and check min (remains the same) 137 CPPUNIT_ASSERT( rndA_1->min() == rndA_2->min()); 138 139 // do something with the prototype again 140 params->max = 25.; 141 RandomNumberDistributionFactory::getInstance(). 142 manipulatePrototype(std::string("uniform_smallint"), *params); 143 // ... and check 144 rndA_3 = RandomNumberDistributionFactory::getInstance(). 145 getProduct(RandomNumberDistributionFactory::uniform_smallint); 146 CPPUNIT_ASSERT_EQUAL( 25., rndA_3->max()); 147 CPPUNIT_ASSERT( rndA_1->max() != rndA_3->max()); 148 CPPUNIT_ASSERT( rndA_2->max() != rndA_3->max()); 149 150 delete params; 151 } -
src/RandomNumbers/unittests/RandomNumberDistributionFactoryUnitTest.hpp
r1ee3b8d r0275ad 23 23 CPPUNIT_TEST_SUITE( RandomNumberDistributionFactoryTest ); 24 24 CPPUNIT_TEST ( DistributionTest ); 25 CPPUNIT_TEST ( PrototypeManipulationTest ); 25 26 CPPUNIT_TEST_SUITE_END(); 26 27 … … 30 31 31 32 void DistributionTest(); 33 void PrototypeManipulationTest(); 32 34 33 35 private: … … 35 37 RandomNumberDistribution * rndA_1; 36 38 RandomNumberDistribution * rndA_2; 39 RandomNumberDistribution * rndA_3; 37 40 }; 38 41 -
src/RandomNumbers/unittests/RandomNumberEngineFactoryUnitTest.cpp
r1ee3b8d r0275ad 77 77 rndA_1 = NULL; 78 78 rndA_2 = NULL; 79 rndA_3 = NULL; 79 80 RandomNumberEngineFactory::getInstance(); 80 81 } … … 85 86 delete rndA_1; 86 87 delete rndA_2; 88 delete rndA_3; 87 89 RandomNumberEngineFactory::purgeInstance(); 88 90 } … … 107 109 // check one of the engines in the table 108 110 rndA = RandomNumberEngineFactory::getInstance(). 109 PrototypeTable[RandomNumberEngineFactory::minstd_rand0]->clone();111 ManipulablePrototypeTable[RandomNumberEngineFactory::minstd_rand0]->clone(); 110 112 CPPUNIT_ASSERT_EQUAL( 111 113 std::string(typeid(boost::minstd_rand0).name()), … … 117 119 } 118 120 121 void RandomNumberEngineFactoryTest::PrototypeManipulationTest() 122 { 123 // make unmodified clone 124 rndA_1 = RandomNumberEngineFactory::getInstance(). 125 getProduct(RandomNumberEngineFactory::minstd_rand0); 126 127 // obtain manipulator 128 RandomNumberEngine &prototype = RandomNumberEngineFactory::getInstance(). 129 getPrototype(RandomNumberEngineFactory::minstd_rand0); 130 131 // change the prototype directly 132 CPPUNIT_ASSERT ( 0 != prototype.getseed() ); 133 prototype.seed(0); 134 135 // check that prototype has indeed been manipulated 136 rndA_2 = RandomNumberEngineFactory::getInstance(). 137 getProduct(RandomNumberEngineFactory::minstd_rand0); 138 CPPUNIT_ASSERT_EQUAL( (unsigned int)0, rndA_2->getseed() ); 139 CPPUNIT_ASSERT( rndA_2->getseed() != rndA_1->getseed()); 140 141 // manipulate prototype 142 RandomNumberEngine_Parameters *params = rndA_1->getParameterSet(); 143 CPPUNIT_ASSERT ( rndA_1->getseed() != (unsigned int)3 ); 144 params->seed = 3; 145 RandomNumberEngineFactory::getInstance(). 146 manipulatePrototype(RandomNumberEngineFactory::minstd_rand0, *params); 147 148 // 149 rndA_3 = RandomNumberEngineFactory::getInstance(). 150 getProduct(RandomNumberEngineFactory::minstd_rand0); 151 CPPUNIT_ASSERT_EQUAL( (unsigned int)3, rndA_3->getseed() ); 152 CPPUNIT_ASSERT( rndA_3->getseed() != rndA_1->getseed()); 153 154 delete params; 155 } 156 -
src/RandomNumbers/unittests/RandomNumberEngineFactoryUnitTest.hpp
r1ee3b8d r0275ad 23 23 CPPUNIT_TEST_SUITE( RandomNumberEngineFactoryTest ); 24 24 CPPUNIT_TEST ( EngineTest ); 25 CPPUNIT_TEST ( PrototypeManipulationTest ); 25 26 CPPUNIT_TEST_SUITE_END(); 26 27 … … 30 31 31 32 void EngineTest(); 33 void PrototypeManipulationTest(); 32 34 33 35 private: … … 35 37 RandomNumberEngine *rndA_1; 36 38 RandomNumberEngine *rndA_2; 39 RandomNumberEngine *rndA_3; 37 40 }; 38 41 -
src/UIElements/CommandLineUI/CommandLineDialog.cpp
r1ee3b8d r0275ad 108 108 } 109 109 110 void CommandLineDialog::queryRandomNumberDistribution_Parameters(const char* title, string _description){ 111 registerQuery(new RandomNumberDistribution_ParametersCommandLineQuery(title, _description)); 112 } 113 110 114 /************************** Query Infrastructure ************************/ 111 115 /* ---> shifted to folder Query */ -
src/UIElements/CommandLineUI/CommandLineDialog.hpp
r1ee3b8d r0275ad 51 51 virtual void queryElements(const char*, std::string = ""); 52 52 virtual void queryFile(const char*, std::string = ""); 53 53 virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = ""); 54 54 protected: 55 // specialized stuff for text queries 55 // specialized stuff for command line queries 56 // all placed into Query/CommandLineQuery.hpp 57 // !please adhere to alphabetical ordering! 56 58 class AtomCommandLineQuery; 57 59 class AtomsCommandLineQuery; … … 72 74 class VectorCommandLineQuery; 73 75 class VectorsCommandLineQuery; 76 class RandomNumberDistribution_ParametersCommandLineQuery; 74 77 }; 75 78 -
src/UIElements/CommandLineUI/CommandLineParser.cpp
r1ee3b8d r0275ad 326 326 ; 327 327 break; 328 case TypeEnumContainer::RandomNumberDistribution_ParametersType: 329 OptionList->add_options() 330 (currentOption->getKeyAndShortForm().c_str(), 331 currentOption->hasDefaultValue() ? 332 po::value < std::string >()->default_value(boost::lexical_cast< std::string >(currentOption->getDefaultValue().c_str())) : 333 po::value < std::string >(), 334 currentOption->getDescription().c_str()) 335 ; 336 break; 328 337 } 329 338 } -
src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp
r1ee3b8d r0275ad 143 143 }; 144 144 145 class CommandLineDialog::RandomNumberDistribution_ParametersCommandLineQuery : public Dialog::RandomNumberDistribution_ParametersQuery { 146 public: 147 RandomNumberDistribution_ParametersCommandLineQuery(std::string title, std::string _description = ""); 148 virtual ~RandomNumberDistribution_ParametersCommandLineQuery(); 149 virtual bool handle(); 150 }; 151 145 152 #endif /* COMMANDLINEQUERY_HPP_ */ -
src/UIElements/CommandLineUI/TypeEnumContainer.cpp
r1ee3b8d r0275ad 36 36 #include "element.hpp" 37 37 #include "molecule.hpp" 38 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp" 38 39 39 40 /** Constructor for class TypeEnumContainer. … … 63 64 TypeEnumMap[&typeid(const element *)] = ElementType; 64 65 TypeEnumMap[&typeid(std::vector<const element *>)] = ListOfElementsType; 66 TypeEnumMap[&typeid(RandomNumberDistribution_Parameters)] = RandomNumberDistribution_ParametersType; 65 67 66 68 // for debugging: list all stored types -
src/UIElements/CommandLineUI/TypeEnumContainer.hpp
r1ee3b8d r0275ad 44 44 ListOfMoleculesType, 45 45 ElementType, 46 ListOfElementsType 46 ListOfElementsType, 47 RandomNumberDistribution_ParametersType 47 48 }; 48 49 -
src/UIElements/Dialog.cpp
r1ee3b8d r0275ad 186 186 } 187 187 188 template <> void Dialog::query< RandomNumberDistribution_Parameters >(const char *token, std::string description) 189 { 190 queryRandomNumberDistribution_Parameters(token, description); 191 } 192 188 193 /************************** Query Infrastructure ************************/ 189 194 /* ---> shifted to folder Query */ -
src/UIElements/Dialog.hpp
r1ee3b8d r0275ad 20 20 21 21 #include <boost/filesystem.hpp> 22 23 22 #include "Box.hpp" 24 23 #include "LinearAlgebra/Vector.hpp" 24 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp" 25 25 26 26 class atom; … … 142 142 * -# you probably also need a QtDialog::...QueryPipe() to handle the signal/slot stuff, 143 143 * Qt's moc does not like nested classes. Hence, this has to go extra. 144 * -# TypeEnumContainer add new type to query 145 * -# CommandLineParser::AddOptionToParser() add new type to query 146 * -# CommandLineParser_valdiates.[ch]pp: If given above as a new type 147 * program_options::value, define and implement a validate() function here. 144 148 * 145 149 */ … … 170 174 virtual void queryElements(const char*, std::string = "")=0; 171 175 virtual void queryFile(const char*, std::string = "")=0; 176 virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = "")=0; 172 177 173 178 virtual bool display(); … … 419 424 }; 420 425 426 class RandomNumberDistribution_ParametersQuery : public Query { 427 public: 428 RandomNumberDistribution_ParametersQuery(std::string title, std::string _description = ""); 429 virtual ~RandomNumberDistribution_ParametersQuery(); 430 virtual bool handle()=0; 431 virtual void setResult(); 432 protected: 433 RandomNumberDistribution_Parameters tmp; 434 }; 435 421 436 void registerQuery(Query* query); 422 437 -
src/UIElements/Makefile.am
r1ee3b8d r0275ad 67 67 Query/MoleculesQuery.cpp \ 68 68 Query/Query.cpp \ 69 Query/RandomNumberDistribution_ParametersQuery.cpp \ 69 70 Query/StringQuery.cpp \ 70 71 Query/StringsQuery.cpp \ … … 103 104 TextUI/Query/VectorTextQuery.cpp \ 104 105 TextUI/Query/VectorsTextQuery.cpp \ 106 TextUI/Query/RandomNumberDistribution_ParametersTextQuery.cpp \ 105 107 TextUI/TextDialog.cpp \ 106 108 TextUI/TextStatusIndicator.cpp \ … … 133 135 CommandLineUI/Query/VectorCommandLineQuery.cpp \ 134 136 CommandLineUI/Query/VectorsCommandLineQuery.cpp \ 137 CommandLineUI/Query/RandomNumberDistribution_ParametersCommandLineQuery.cpp \ 135 138 CommandLineUI/CommandLineDialog.cpp \ 136 139 CommandLineUI/CommandLineParser.cpp \ … … 169 172 Qt4/Pipe/VectorQtQueryPipe.hpp \ 170 173 Qt4/Pipe/VectorsQtQueryPipe.hpp \ 174 Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.hpp \ 171 175 Menu/Qt4/QtMenuPipe.hpp \ 172 176 Views/Qt4/QtWorldView.hpp \ … … 191 195 Qt4/Pipe/VectorQtQueryPipe.cpp \ 192 196 Qt4/Pipe/VectorsQtQueryPipe.cpp \ 197 Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.cpp \ 193 198 Qt4/Query/AtomQtQuery.cpp \ 194 199 Qt4/Query/AtomsQtQuery.cpp \ … … 209 214 Qt4/Query/VectorQtQuery.cpp \ 210 215 Qt4/Query/VectorsQtQuery.cpp \ 216 Qt4/Query/RandomNumberDistribution_ParametersQtQuery.cpp \ 211 217 Qt4/QtMainWindow.cpp \ 212 218 Qt4/QtDialog.cpp \ -
src/UIElements/Qt4/QtDialog.cpp
r1ee3b8d r0275ad 165 165 } 166 166 167 void QtDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string) 168 { 169 registerQuery(new RandomNumberDistribution_ParametersQtQuery(title,inputLayout,this)); 170 } 171 167 172 /************************** Query Infrastructure ************************/ 168 173 /* ---> shifted to folder Query */ -
src/UIElements/Qt4/QtDialog.hpp
r1ee3b8d r0275ad 50 50 virtual void queryElements(const char*,std::string = ""); 51 51 virtual void queryFile(const char*,std::string = ""); 52 virtual void queryRandomNumberDistribution_Parameters(const char*,std::string = ""); 52 53 53 54 virtual bool display(); … … 74 75 class VectorQtQuery; 75 76 class VectorsQtQuery; 77 class RandomNumberDistribution_ParametersQtQuery; 76 78 77 79 private: -
src/UIElements/Qt4/Query/QtQuery.hpp
r1ee3b8d r0275ad 17 17 #include "Qt4/QtDialog.hpp" 18 18 19 class QHBoxLayout; 19 20 class QBoxLayout; 20 21 class QDialogButtonBox; … … 24 25 class QLineEdit; 25 26 class QListWidget; 27 class QPushButton; 26 28 class QTableWidget; 29 class QTextEdit; 27 30 class QComboBox; 28 31 … … 46 49 class VectorQtQueryPipe; 47 50 class VectorsQtQueryPipe; 48 51 class RandomNumberDistribution_ParametersQtQueryPipe; 49 52 50 53 class QtDialog::AtomQtQuery : public Dialog::AtomQuery { … … 310 313 }; 311 314 315 class QtDialog::RandomNumberDistribution_ParametersQtQuery : public Dialog::RandomNumberDistribution_ParametersQuery { 316 public: 317 RandomNumberDistribution_ParametersQtQuery(std::string title,QBoxLayout *,QtDialog *); 318 virtual ~RandomNumberDistribution_ParametersQtQuery(); 319 virtual bool handle(); 320 private: 321 QBoxLayout *parent; 322 QHBoxLayout *thisLayout; 323 QLabel *titleLabel; 324 QTextEdit *inputBox; 325 QPushButton *okButton; 326 327 RandomNumberDistribution_ParametersQtQueryPipe *pipe; 328 }; 329 312 330 #endif /* QTQUERY_HPP_ */ -
src/UIElements/TextUI/Query/TextQuery.hpp
r1ee3b8d r0275ad 143 143 }; 144 144 145 class TextDialog::RandomNumberDistribution_ParametersTextQuery : public Dialog::RandomNumberDistribution_ParametersQuery { 146 public: 147 RandomNumberDistribution_ParametersTextQuery(std::string title, std::string _description = NULL); 148 virtual ~RandomNumberDistribution_ParametersTextQuery(); 149 virtual bool handle(); 150 }; 151 145 152 #endif /* TEXTQUERY_HPP_ */ -
src/UIElements/TextUI/TextDialog.cpp
r1ee3b8d r0275ad 106 106 } 107 107 108 void TextDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string description){ 109 registerQuery(new RandomNumberDistribution_ParametersTextQuery(title,description)); 110 } 111 108 112 /************************** Query Infrastructure ************************/ 109 113 /* ---> shifted to folder Query */ -
src/UIElements/TextUI/TextDialog.hpp
r1ee3b8d r0275ad 48 48 virtual void queryElements(const char*, std::string = ""); 49 49 virtual void queryFile(const char*, std::string = ""); 50 virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = ""); 50 51 51 52 protected: … … 71 72 class VectorTextQuery; 72 73 class VectorsTextQuery; 74 class RandomNumberDistribution_ParametersTextQuery; 73 75 }; 74 76 -
src/unittests/DummyUI.hpp
r1ee3b8d r0275ad 41 41 virtual void queryElements(const char*, std::string = ""){} 42 42 virtual void queryFile(const char*, std::string = ""){} 43 virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = ""){} 43 44 }; 44 45 -
tests/regression/RandomNumbers/Distribution/testsuite-set-random-number-distribution.at
r1ee3b8d r0275ad 3 3 AT_SETUP([Random numbers - set the distribution with Undo/Redo]) 4 4 AT_KEYWORDS([random numbers]) 5 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution uniform_int], 0, [stdout], [stderr])5 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution "uniform_int" --random-number-distribution-parameters "max=20;"], 0, [stdout], [stderr]) 6 6 AT_CHECK([fgrep "uniform_int" stdout], 0, [ignore], [ignore]) 7 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution uniform_int --undo], 0, [stdout], [stderr]) 7 AT_CHECK([fgrep "Its parameters are: min=0;max=20;p=-1;t=-1;median=-1;sigma=-1;alpha=-1;mean=-1;a=-1;b=-1;c=-1;lambda=-1;" stdout], 0, [ignore], [ignore]) 8 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution "uniform_int" --random-number-distribution-parameters "max=20;" --undo], 0, [stdout], [stderr]) 8 9 AT_CHECK([fgrep "uniform_smallint" stdout], 0, [ignore], [ignore]) 9 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution uniform_int --undo --redo], 0, [stdout], [stderr]) 10 AT_CHECK([fgrep "Its parameters are: min=0;max=9;p=-1;t=-1;median=-1;sigma=-1;alpha=-1;mean=-1;a=-1;b=-1;c=-1;lambda=-1;" stdout], 0, [ignore], [ignore]) 11 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution "uniform_int" --random-number-distribution-parameters "max=20;" --undo --redo], 0, [stdout], [stderr]) 10 12 AT_CHECK([fgrep -c "uniform_int" stdout], 0, [stdout], [ignore]) 13 AT_CHECK([fgrep "3" stdout], 0, [ignore], [ignore]) 14 AT_CHECK([../../molecuilder -v 3 --set-random-number-distribution "uniform_int" --random-number-distribution-parameters "max=20;" --undo --redo], 0, [stdout], [stderr]) 15 AT_CHECK([fgrep -c "Its parameters are: min=0;max=20;p=-1;t=-1;median=-1;sigma=-1;alpha=-1;mean=-1;a=-1;b=-1;c=-1;lambda=-1;" stdout], 0, [stdout], [ignore]) 11 16 AT_CHECK([fgrep "2" stdout], 0, [stdout], [ignore]) 12 17 AT_CLEANUP -
tests/regression/RandomNumbers/Engine/testsuite-set-random-number-engine.at
r1ee3b8d r0275ad 3 3 AT_SETUP([Random numbers - set the engine with Undo/Redo]) 4 4 AT_KEYWORDS([random numbers]) 5 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine lagged_fibonacci607], 0, [stdout], [stderr])5 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine "lagged_fibonacci607" --random-number-engine-parameters "seed=2;"], 0, [stdout], [stderr]) 6 6 AT_CHECK([fgrep "lagged_fibonacci607" stdout], 0, [ignore], [ignore]) 7 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine lagged_fibonacci607 --undo], 0, [stdout], [stderr]) 7 AT_CHECK([fgrep "Its parameters are: seed=2;" stdout], 0, [ignore], [ignore]) 8 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine "lagged_fibonacci607" --random-number-engine-parameters "seed=2;" --undo], 0, [stdout], [stderr]) 8 9 AT_CHECK([fgrep "minstd_rand0" stdout], 0, [ignore], [ignore]) 9 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine lagged_fibonacci607 --undo --redo], 0, [stdout], [stderr]) 10 AT_CHECK([fgrep "Its parameters are: seed=1;" stdout], 0, [ignore], [ignore]) 11 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine "lagged_fibonacci607" --random-number-engine-parameters "seed=2;" --undo --redo], 0, [stdout], [stderr]) 10 12 AT_CHECK([fgrep -c "lagged_fibonacci607" stdout], 0, [stdout], [ignore]) 13 AT_CHECK([fgrep "3" stdout], 0, [stdout], [ignore]) 14 AT_CHECK([../../molecuilder -v 3 --set-random-number-engine "lagged_fibonacci607" --random-number-engine-parameters "seed=2;" --undo --redo], 0, [stdout], [stderr]) 15 AT_CHECK([fgrep -c "Its parameters are: seed=2;" stdout], 0, [stdout], [ignore]) 11 16 AT_CHECK([fgrep "2" stdout], 0, [stdout], [ignore]) 12 17 AT_CLEANUP
Note:
See TracChangeset
for help on using the changeset viewer.
