Changeset ca331c
- Timestamp:
- Jun 18, 2012, 10:53:30 AM (13 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 345883
- Parents:
- 5b0581
- git-author:
- Frederik Heber <heber@…> (06/14/12 13:24:13)
- git-committer:
- Frederik Heber <heber@…> (06/18/12 10:53:30)
- Files:
-
- 4 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/ParserAction/SetTremoloAtomdataAction.cpp
r5b0581 rca331c 43 43 LOG(1, "Setting Tremolo's ATOMDATA to: '" << params.atomdata_string.get() << "'"); 44 44 45 parser.setAtomData(params.atomdata_string.get());45 const std::string old_atomdata = parser.getAtomData(); 46 46 47 return Action::success; 47 if (params.atomdata_reset.get()) 48 parser.resetAtomData(params.atomdata_string.get()); 49 else 50 parser.setAtomData(params.atomdata_string.get()); 51 52 return Action::state_ptr(new ParserSetTremoloAtomdataState(old_atomdata, params)); 48 53 } 49 54 50 55 Action::state_ptr ParserSetTremoloAtomdataAction::performUndo(Action::state_ptr _state) { 51 // ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());56 ParserSetTremoloAtomdataState *state = assert_cast<ParserSetTremoloAtomdataState*>(_state.get()); 52 57 53 return Action::failure;54 // string newName = state->mol->getName();55 // state->mol->setName(state->lastName);56 // 57 // return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));58 FormatParser<tremolo> &parser = FormatParserStorage::getInstance().getParser<tremolo>(); 59 LOG(1, "INFO: Reverting to 'ATOMDATA " << state->old_atomdata << "'."); 60 parser.resetAtomData(state->old_atomdata); 61 62 return Action::state_ptr(_state); 58 63 } 59 64 60 65 Action::state_ptr ParserSetTremoloAtomdataAction::performRedo(Action::state_ptr _state){ 61 return Action::failure; 66 ParserSetTremoloAtomdataState *state = assert_cast<ParserSetTremoloAtomdataState*>(_state.get()); 67 68 FormatParser<tremolo> &parser = FormatParserStorage::getInstance().getParser<tremolo>(); 69 70 if (state->params.atomdata_reset.get()) 71 parser.resetAtomData(state->params.atomdata_string.get()); 72 else 73 parser.setAtomData(state->params.atomdata_string.get()); 74 75 return Action::state_ptr(_state); 62 76 } 63 77 64 78 bool ParserSetTremoloAtomdataAction::canUndo() { 65 return false;79 return true; 66 80 } 67 81 68 82 bool ParserSetTremoloAtomdataAction::shouldUndo() { 69 return false;83 return true; 70 84 } 71 85 /** =========== end of function ====================== */ -
src/Actions/ParserAction/SetTremoloAtomdataAction.def
r5b0581 rca331c 9 9 #include <boost/filesystem.hpp> 10 10 11 #include "Parameters/Validators/DummyValidator.hpp" 11 12 #include "Parameters/Validators/Specific/AtomDataValidator.hpp" 12 13 … … 14 15 // ValueStorage by the token "Z" -> first column: int, Z, "Z" 15 16 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value 16 #define paramtypes (std::string) 17 #define paramtokens ("set-tremolo-atomdata") 18 #define paramdescriptions ("properties to set, space-separated") 19 # undef paramdefaults20 #define paramreferences (atomdata_string) 17 #define paramtypes (std::string)(bool) 18 #define paramtokens ("set-tremolo-atomdata")("reset") 19 #define paramdescriptions ("properties to set, space-separated")("whether to append (false) or overwrite (true) with given atomdata") 20 #define paramdefaults (NOPARAM_DEFAULT)(PARAM_DEFAULT(true)) 21 #define paramreferences (atomdata_string)(atomdata_reset) 21 22 #define paramvalids \ 22 (AtomDataValidator()) 23 (AtomDataValidator()) \ 24 (DummyValidator<bool>()) 23 25 24 # undef statetypes25 # undef statereferences26 #define statetypes (std::string) 27 #define statereferences (old_atomdata) 26 28 27 29 // some defines for all the names, you may use ACTION, STATE and PARAMS -
src/Parser/TremoloParser.cpp
r5b0581 rca331c 41 41 42 42 #include <algorithm> 43 #include <boost/lambda/lambda.hpp> 43 44 #include <boost/lexical_cast.hpp> 44 45 #include <boost/tokenizer.hpp> … … 47 48 #include <map> 48 49 #include <sstream> 50 #include <string> 49 51 #include <vector> 50 52 … … 531 533 } 532 534 535 std::string FormatParser< tremolo >::getAtomData() const 536 { 537 std::stringstream output; 538 std::for_each(usedFields_save.begin(), usedFields_save.end(), 539 output << boost::lambda::_1 << " "); 540 const std::string returnstring(output.str()); 541 return returnstring.substr(0, returnstring.find_last_of(" ")); 542 } 543 544 /** Appends the properties per atom to print to .data file by parsing line from 545 * \a atomdata_string. 546 * 547 * We just call \sa FormatParser< tremolo >::parseAtomDataKeysLine(). 548 * 549 * @param atomdata_string line to parse with space-separated values 550 */ 551 void FormatParser< tremolo >::setAtomData(const std::string &atomdata_string) 552 { 553 parseAtomDataKeysLine(atomdata_string, 0, usedFields_save); 554 } 555 533 556 /** Sets the properties per atom to print to .data file by parsing line from 534 557 * \a atomdata_string. … … 539 562 * @param atomdata_string line to parse with space-separated values 540 563 */ 541 void FormatParser< tremolo >:: setAtomData(const std::string &atomdata_string)564 void FormatParser< tremolo >::resetAtomData(const std::string &atomdata_string) 542 565 { 543 566 usedFields_save.clear(); -
src/Parser/TremoloParser.hpp
r5b0581 rca331c 53 53 void load(std::istream* file); 54 54 void save(std::ostream* file, const std::vector<atom *> &atoms); 55 std::string getAtomData() const; 55 56 void setAtomData(const std::string &atomdata_string); 57 void resetAtomData(const std::string &atomdata_string); 56 58 57 59 private: -
src/Parser/unittests/ParserTremoloUnitTest.cpp
r5b0581 rca331c 148 148 } 149 149 150 void ParserTremoloUnitTest::getsetAtomDataTest() { 151 stringstream input; 152 input << Tremolo_Atomdata1; 153 parser->load(&input); 154 155 CPPUNIT_ASSERT_EQUAL( std::string("Id name type x=3"), parser->getAtomData() ); 156 157 // overwrite keys 158 const std::string fewkeys("Id type x=3 neighbors=2"); 159 parser->resetAtomData(fewkeys); 160 CPPUNIT_ASSERT_EQUAL( fewkeys, parser->getAtomData() ); 161 162 // add some keys 163 const std::string morekeys("charge"); 164 parser->setAtomData(morekeys); 165 CPPUNIT_ASSERT_EQUAL( fewkeys+std::string(" ")+morekeys, parser->getAtomData() ); 166 167 // add similar key 168 const std::string otherkey("neighbors=4"); 169 parser->setAtomData(otherkey); 170 CPPUNIT_ASSERT( fewkeys+std::string(" ")+morekeys != parser->getAtomData() ); 171 } 172 150 173 void ParserTremoloUnitTest::readTremoloCoordinatesTest() { 151 174 stringstream input; -
src/Parser/unittests/ParserTremoloUnitTest.hpp
r5b0581 rca331c 22 22 CPPUNIT_TEST_SUITE( ParserTremoloUnitTest ) ; 23 23 CPPUNIT_TEST ( readTremoloPreliminaryCommentsTest ); 24 CPPUNIT_TEST ( getsetAtomDataTest ); 24 25 CPPUNIT_TEST ( readTremoloCoordinatesTest ); 25 26 CPPUNIT_TEST ( readTremoloVelocityTest ); … … 35 36 36 37 void readTremoloPreliminaryCommentsTest(); 38 void getsetAtomDataTest(); 37 39 void readTremoloCoordinatesTest(); 38 40 void readTremoloVelocityTest(); -
tests/Python/AllActions/options.dat
r5b0581 rca331c 123 123 random-number-engine-parameters "seed=2;" 124 124 repeat-box "1 1 1" 125 reset 1 125 126 rotate-around-origin "180." 126 127 rotate-around-origin "20." -
tests/regression/Makefile.am
r5b0581 rca331c 140 140 $(srcdir)/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-load.at \ 141 141 $(srcdir)/Parser/Tremolo-Potentials/testsuite-parser-tremolo-potentials-save.at \ 142 $(srcdir)/Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-resetatomdata.at \ 142 143 $(srcdir)/Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-setatomdata.at \ 143 144 $(srcdir)/Parser/Xyz/testsuite-parser-xyz-empty.at \ -
tests/regression/Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-setatomdata.at
r5b0581 rca331c 1 1 ### parsing tremolo 2 2 3 AT_SETUP([Parser - set tremolo's atomdata])3 AT_SETUP([Parser - reset tremolo's atomdata]) 4 4 AT_KEYWORDS([parser tremolo set-tremolo-atomdata]) 5 5 … … 8 8 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore]) 9 9 AT_CHECK([../../molecuilder -i argon.data --set-tremolo-atomdata "type x=3"], 0, [stdout], [ignore]) 10 AT_CHECK([ file=argon.data;diff -I '%.*' $file ${abs_top_srcdir}/tests/regression/Parser/Tremolo-SetAtomdata/post/argon.data], 0, [ignore], [ignore])10 AT_CHECK([diff -I '%.*' $file ${abs_top_srcdir}/tests/regression/Parser/Tremolo-SetAtomdata/post/argon.data], 0, [ignore], [ignore]) 11 11 12 12 AT_CLEANUP 13 14 AT_SETUP([Parser - reset tremolo's atomdata with Undo]) 15 AT_KEYWORDS([parser tremolo set-tremolo-atomdata undo]) 16 17 file=argon.data 18 AT_CHECK([/bin/cp ${abs_top_srcdir}/tests/regression/Parser/Tremolo-SetAtomdata/pre/argon.data $file], 0, [ignore], [ignore]) 19 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore]) 20 AT_CHECK([../../molecuilder -i argon.data --set-tremolo-atomdata "type x=3" --undo], 0, [stdout], [ignore]) 21 AT_CHECK([diff -I '%.*' $file ${abs_top_srcdir}/tests/regression/Parser/Tremolo-SetAtomdata/post/undo.data], 0, [ignore], [ignore]) 22 23 AT_CLEANUP 24 25 AT_SETUP([Parser - reset tremolo's atomdata with Redo]) 26 AT_KEYWORDS([parser tremolo set-tremolo-atomdata redo]) 27 28 file=argon.data 29 AT_CHECK([/bin/cp ${abs_top_srcdir}/tests/regression/Parser/Tremolo-SetAtomdata/pre/argon.data $file], 0, [ignore], [ignore]) 30 AT_CHECK([chmod u+w $file], 0, [ignore], [ignore]) 31 AT_CHECK([../../molecuilder -i argon.data --set-tremolo-atomdata "type x=3" --undo --redo], 0, [stdout], [ignore]) 32 AT_CHECK([diff -I '%.*' $file ${abs_top_srcdir}/tests/regression/Parser/Tremolo-SetAtomdata/post/argon.data], 0, [ignore], [ignore]) 33 34 AT_CLEANUP -
tests/regression/Parser/testsuite-parser.at
r5b0581 rca331c 59 59 # setting tremolo's atomdata line 60 60 m4_include([Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-setatomdata.at]) 61 m4_include([Parser/Tremolo-SetAtomdata/testsuite-parser-tremolo-resetatomdata.at]) 61 62 62 63 # writing and exttypes file
Note:
See TracChangeset
for help on using the changeset viewer.