Changeset b540f3


Ignore:
Timestamp:
Jul 6, 2010, 3:50:04 PM (15 years ago)
Author:
Frederik Heber <heber@…>
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:
192f6e
Parents:
62c3dde
Message:

changed validate() for VectorValue, parsing not 10. 10. 10. but "10., 10., 10." to allow for negative values.

  • i.e. we now parse a single string and tokenize it ourselves.
  • TESTFIX: alle test cases asking the user for vectors had to be changed accordingly.
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/MapOfActions.cpp

    r62c3dde rb540f3  
    7171{
    7272  VectorValue VV;
    73   if (values.size() != 3) {
    74     cerr <<  "Specified vector does not have three components but " << values.size() << endl;
     73  std::vector<std::string> components;
     74
     75  // split comma-separated values
     76  if (values.size() != 1) {
     77    cerr <<  "Not one vector but " << components.size() << " given " << endl;
     78    throw boost::program_options::validation_error("Unequal to one vector given");
     79  }
     80  std::string argument(values.at(0));
     81  std::string::iterator Aiter = argument.begin();
     82  std::string::iterator Biter = argument.begin();
     83  for (; Aiter != argument.end(); ++Aiter) {
     84    if (*Aiter == ',') {
     85      components.push_back(string(Biter,Aiter));
     86      do {
     87        Aiter++;
     88      } while (*Aiter == ' ' || *Aiter == '\t');
     89      Biter = Aiter;
     90    }
     91  }
     92  components.push_back(string(Biter,argument.end()));
     93
     94  if (components.size() != 3) {
     95    cerr <<  "Specified vector does not have three components but " << components.size() << endl;
    7596    throw boost::program_options::validation_error("Specified vector does not have three components");
    7697  }
    77   VV.x = boost::lexical_cast<double>(values.at(0));
    78   VV.y = boost::lexical_cast<double>(values.at(1));
    79   VV.z = boost::lexical_cast<double>(values.at(2));
     98  VV.x = boost::lexical_cast<double>(components.at(0));
     99  VV.y = boost::lexical_cast<double>(components.at(1));
     100  VV.z = boost::lexical_cast<double>(components.at(2));
    80101  v = boost::any(VectorValue(VV));
    81102}
     
    84105{
    85106  BoxValue BV;
    86   if (values.size() != 6) {
    87     cerr <<  "Specified vector does not have three components but " << values.size() << endl;
     107  std::vector<std::string> components;
     108
     109  // split comma-separated values
     110  if (values.size() != 1) {
     111    cerr <<  "Not one vector but " << components.size() << " given " << endl;
     112    throw boost::program_options::validation_error("Unequal to one vector given");
     113  }
     114  std::string argument(values.at(0));
     115  std::string::iterator Aiter = argument.begin();
     116  std::string::iterator Biter = argument.begin();
     117  for (; Aiter != argument.end(); ++Aiter) {
     118    if (*Aiter == ',') {
     119      components.push_back(string(Biter,Aiter));
     120      do {
     121        Aiter++;
     122      } while (*Aiter == ' ' || *Aiter == '\t');
     123      Biter = Aiter;
     124    }
     125  }
     126  components.push_back(string(Biter,argument.end()));
     127
     128  if (components.size() != 6) {
     129    cerr <<  "Specified vector does not have three components but " << components.size() << endl;
    88130    throw boost::program_options::validation_error("Specified symmetric box matrix does not have six components");
    89131  }
    90   BV.xx = boost::lexical_cast<double>(values.at(0));
    91   BV.xy = boost::lexical_cast<double>(values.at(1));
    92   BV.xz = boost::lexical_cast<double>(values.at(2));
    93   BV.yy = boost::lexical_cast<double>(values.at(3));
    94   BV.yz = boost::lexical_cast<double>(values.at(4));
    95   BV.zz = boost::lexical_cast<double>(values.at(5));
     132  BV.xx = boost::lexical_cast<double>(components.at(0));
     133  BV.xy = boost::lexical_cast<double>(components.at(1));
     134  BV.xz = boost::lexical_cast<double>(components.at(2));
     135  BV.yy = boost::lexical_cast<double>(components.at(3));
     136  BV.yz = boost::lexical_cast<double>(components.at(4));
     137  BV.zz = boost::lexical_cast<double>(components.at(5));
    96138  v = boost::any(BoxValue(BV));
    97139}
     
    587629            ListRunner->second->add_options()
    588630              (getKeyAndShortForm(*OptionRunner).c_str(),
    589                   po::value<VectorValue>()->multitoken(),
     631                  po::value<VectorValue>(),
    590632                  getDescription(*OptionRunner).c_str())
    591633              ;
  • tests/regression/testsuite-analysis.at

    r62c3dde rb540f3  
    2929AT_KEYWORDS([analysis])
    3030AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/3/pre/test.conf .], 0)
    31 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 7 -C P --elements 1 --position 10. 10. 10. --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-end 20], 0, [stdout], [stderr])
     31AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 7 -C P --elements 1 --position "10., 10., 10." --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-end 20], 0, [stdout], [stderr])
    3232AT_CHECK([fgrep "Begin of CorrelationToPoint" stdout], 0, [ignore], [ignore])
    3333#AT_CHECK([file=output.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/3/post/$file], 0, [ignore], [ignore])
  • tests/regression/testsuite-domain.at

    r62c3dde rb540f3  
    33AT_SETUP([Domain - defining simulation domain])
    44AT_KEYWORDS([domain])
    5 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o pcp -B 10 0 10 0 0 10], 0, [stdout], [stderr])
     5AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o pcp -B "10, 0, 10, 0, 0, 10"], 0, [stdout], [stderr])
    66AT_CHECK([fgrep "BoxLength" test.conf], 0, [stdout], [stderr])
    77AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/1/post/test.conf], 0, [stdout], [stderr])
     
    1212AT_KEYWORDS([domain])
    1313AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/2/pre/test.conf .], 0)
    14 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b 15 0 15 0 0 15], 0, [stdout], [stderr])
     14AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b "15, 0, 15, 0, 0, 15"], 0, [stdout], [stderr])
    1515AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/2/post/test.conf], 0, [stdout], [stderr])
    1616AT_CLEANUP
     
    2020AT_KEYWORDS([domain])
    2121AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/3/pre/test.conf .], 0)
    22 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -c 5 10 15], 0, [stdout], [stderr])
     22AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -c "5, 10, 15"], 0, [stdout], [stderr])
    2323AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/3/post/test.conf], 0, [stdout], [stderr])
    2424AT_CLEANUP
     
    3636AT_KEYWORDS([domain])
    3737AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/5/pre/test.conf .], 0)
    38 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -s 0.5 1. 0.9], 0, [stdout], [stderr])
     38AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -s "0.5, 1., 0.9"], 0, [stdout], [stderr])
    3939AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/5/post/test.conf], 0, [stdout], [stderr])
    4040AT_CLEANUP
     
    4444AT_KEYWORDS([domain])
    4545AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf .], 0)
    46 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o xyz -d 1 1 1], 0, [stdout], [stderr])
     46AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o xyz -d "1, 1, 1"], 0, [stdout], [stderr])
    4747AT_CHECK([file=test.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    4848AT_CHECK([file=test.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    4949AT_CHECK([file=test.conf.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    5050AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf test-x.conf], 0)
    51 AT_CHECK([../../molecuilder test-x.conf -e ${abs_top_srcdir}/src/ -o xyz -d 2 1 1], 0, [stdout], [stderr])
     51AT_CHECK([../../molecuilder test-x.conf -e ${abs_top_srcdir}/src/ -o xyz -d "2, 1, 1"], 0, [stdout], [stderr])
    5252AT_CHECK([file=test-x.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    5353AT_CHECK([file=test-x.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    5454AT_CHECK([file=test-x.conf.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    5555AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf test-y.conf], 0)
    56 AT_CHECK([../../molecuilder test-y.conf -e ${abs_top_srcdir}/src/ -o xyz -d 1 2 1], 0, [stdout], [stderr])
     56AT_CHECK([../../molecuilder test-y.conf -e ${abs_top_srcdir}/src/ -o xyz -d "1, 2, 1"], 0, [stdout], [stderr])
    5757AT_CHECK([file=test-y.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    5858AT_CHECK([file=test-y.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    5959AT_CHECK([file=test-y.conf.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    6060AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf test-z.conf], 0)
    61 AT_CHECK([../../molecuilder test-z.conf -e ${abs_top_srcdir}/src/ -o xyz -d 1 1 2], 0, [stdout], [stderr])
     61AT_CHECK([../../molecuilder test-z.conf -e ${abs_top_srcdir}/src/ -o xyz -d "1, 1, 2"], 0, [stdout], [stderr])
    6262AT_CHECK([file=test-z.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    6363AT_CHECK([file=test-z.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
  • tests/regression/testsuite-filling.at

    r62c3dde rb540f3  
    1010H       0.758602 0.     -0.504284
    1111]])
    12 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -F water.xyz --MaxDistance -1 --distances 3.1 3.1 3.1  --lengths 2.1 0. 0. --DoRotate 0], 0, [stdout], [stderr])
     12AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -F water.xyz --MaxDistance -1 --distances "3.1, 3.1, 3.1"  --lengths "2.1, 0., 0." --DoRotate 0], 0, [stdout], [stderr])
    1313AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Filling/1/post/$file], 0, [ignore], [ignore])
    1414AT_CLEANUP
  • tests/regression/testsuite-molecules.at

    r62c3dde rb540f3  
    4545AT_KEYWORDS([Molecules])
    4646AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/pre/test.* .], 0)
    47 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t 1. 1. 1. --molecule-by-id 0 --periodic 0], 0, [stdout], [stderr])
     47AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t "1., 1., 1." --molecule-by-id 0 --periodic 0], 0, [stdout], [stderr])
    4848AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/post/$file], 0, [ignore], [ignore])
     49AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/pre/test2.* .], 0)
     50AT_CHECK([../../molecuilder test2.conf -e ${abs_top_srcdir}/src/ -t "-1., -1., -1." --molecule-by-id 0 --periodic 0], 0, [stdout], [stderr])
     51AT_CHECK([file=test2.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/post/$file], 0, [ignore], [ignore])
    4952AT_CLEANUP
    5053
     
    5356AT_KEYWORDS([Molecules])
    5457AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/7/pre/test.* .], 0)
    55 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t 12. 12. 12. --molecule-by-id 0 --periodic 1], 0, [stdout], [stderr])
     58AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t "12., 12., 12." --molecule-by-id 0 --periodic 1], 0, [stdout], [stderr])
    5659AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/7/post/$file], 0, [ignore], [ignore])
    5760AT_CLEANUP
  • tests/regression/testsuite-simple_configuration.at

    r62c3dde rb540f3  
    2222AT_CLEANUP
    2323
    24 # 3. add atom
     24# 3a. add atom
    2525AT_SETUP([Simple configuration - adding atom])
    2626AT_KEYWORDS([configuration])
    27 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -a 1 --position 10. 10. 10.], 0, [ignore], [ignore])
     27AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -a 1 --position "10., 10., 10."], 0, [ignore], [ignore])
    2828AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
    2929AT_CHECK([file=test.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
    3030AT_CHECK([file=test.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
     31AT_CHECK([../../molecuilder test2.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -a 1 --position "0., 0., -1."], 0, [ignore], [ignore])
     32AT_CHECK([file=test2.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
     33AT_CHECK([file=test2.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
     34AT_CHECK([file=test2.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
    3135AT_CLEANUP
    3236
     
    7579AT_KEYWORDS([configuration])
    7680AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/8/pre/test.* .], 0)
    77 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o xyz -R 7. --position 7.283585982 3.275186040 3.535886037], 0, [stdout], [stderr])
     81AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o xyz -R 7. --position "7.283585982, 3.275186040, 3.535886037"], 0, [stdout], [stderr])
    7882AT_CHECK([sort -n test.conf.xyz | grep -v "Created by" >test.conf.xyz-sorted], 0, [ignore], [ignore])
    7983AT_CHECK([sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/8/post/test.conf.xyz  | grep -v "Created by" >${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/8/post/test.conf.xyz-sorted], 0, [ignore], [ignore])
Note: See TracChangeset for help on using the changeset viewer.