Changeset ebcade
- Timestamp:
- Oct 6, 2009, 5:56:15 PM (16 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:
- e9f8f9
- Parents:
- cee0b57
- git-author:
- Frederik Heber <heber@…> (10/06/09 17:37:50)
- git-committer:
- Frederik Heber <heber@…> (10/06/09 17:56:15)
- Files:
-
- 69 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/builder.cpp
rcee0b57 rebcade 1382 1382 cout << "\t-p <file>\tParse given xyz file and create raw config file from it." << endl; 1383 1383 cout << "\t-P <file>\tParse given forces file and append as an MD step to config file via Verlet." << endl; 1384 cout << "\t-r \t\tConvert file from an old pcp syntax." << endl;1385 cout << "\t-R \t\tRemove all atoms out of sphere around a given one." << endl;1384 cout << "\t-r <id>\t\tRemove an atom with given id." << endl; 1385 cout << "\t-R <id> <radius>\t\tRemove all atoms out of sphere around a given one." << endl; 1386 1386 cout << "\t-s x1 x2 x3\tScale all atom coordinates by this vector (x1,x2,x3)." << endl; 1387 1387 cout << "\t-S <file> Store temperatures from the config file in <file>." << endl; … … 1480 1480 switch(argv[argptr-1][1]) { 1481 1481 case 'p': 1482 ExitFlag = 1;1482 if (ExitFlag == 0) ExitFlag = 1; 1483 1483 if ((argptr >= argc) || (argv[argptr][0] == '-')) { 1484 1484 ExitFlag = 255; … … 1496 1496 break; 1497 1497 case 'a': 1498 ExitFlag = 1;1498 if (ExitFlag == 0) ExitFlag = 1; 1499 1499 if ((argptr >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr+1]))) { 1500 1500 ExitFlag = 255; … … 1535 1535 break; 1536 1536 case 'D': 1537 ExitFlag = 1;1537 if (ExitFlag == 0) ExitFlag = 1; 1538 1538 { 1539 1539 cout << Verbose(1) << "Depth-First-Search Analysis." << endl; … … 1568 1568 break; 1569 1569 case 'E': 1570 ExitFlag = 1;1570 if (ExitFlag == 0) ExitFlag = 1; 1571 1571 if ((argptr+1 >= argc) || (!IsValidNumber(argv[argptr])) || (argv[argptr+1][0] == '-')) { 1572 1572 ExitFlag = 255; … … 1581 1581 break; 1582 1582 case 'F': 1583 ExitFlag = 1;1583 if (ExitFlag == 0) ExitFlag = 1; 1584 1584 if (argptr+5 >=argc) { 1585 1585 ExitFlag = 255; … … 1619 1619 break; 1620 1620 case 'A': 1621 ExitFlag = 1;1621 if (ExitFlag == 0) ExitFlag = 1; 1622 1622 if ((argptr >= argc) || (argv[argptr][0] == '-')) { 1623 1623 ExitFlag =255; … … 1632 1632 break; 1633 1633 case 'N': 1634 ExitFlag = 1;1634 if (ExitFlag == 0) ExitFlag = 1; 1635 1635 if ((argptr+1 >= argc) || (argv[argptr+1][0] == '-')){ 1636 1636 ExitFlag = 255; … … 1652 1652 break; 1653 1653 case 'S': 1654 ExitFlag = 1;1654 if (ExitFlag == 0) ExitFlag = 1; 1655 1655 if ((argptr >= argc) || (argv[argptr][0] == '-')) { 1656 1656 ExitFlag = 255; … … 1669 1669 break; 1670 1670 case 'L': 1671 ExitFlag = 1;1671 if (ExitFlag == 0) ExitFlag = 1; 1672 1672 if ((argptr >= argc) || (argv[argptr][0] == '-')) { 1673 1673 ExitFlag = 255; … … 1686 1686 break; 1687 1687 case 'P': 1688 ExitFlag = 1;1688 if (ExitFlag == 0) ExitFlag = 1; 1689 1689 if ((argptr >= argc) || (argv[argptr][0] == '-')) { 1690 1690 ExitFlag = 255; … … 1701 1701 break; 1702 1702 case 'R': 1703 ExitFlag = 1;1704 if ((argptr+1 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1]))) {1703 if (ExitFlag == 0) ExitFlag = 1; 1704 if ((argptr+1 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1]))) { 1705 1705 ExitFlag = 255; 1706 1706 cerr << "Not enough or invalid arguments given for removing atoms: -R <id> <distance>" << endl; … … 1726 1726 break; 1727 1727 case 't': 1728 ExitFlag = 1;1729 if ((argptr+2 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) {1728 if (ExitFlag == 0) ExitFlag = 1; 1729 if ((argptr+2 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) { 1730 1730 ExitFlag = 255; 1731 1731 cerr << "Not enough or invalid arguments given for translation: -t <x> <y> <z>" << endl; 1732 1732 } else { 1733 ExitFlag = 1;1733 if (ExitFlag == 0) ExitFlag = 1; 1734 1734 SaveFlag = true; 1735 1735 cout << Verbose(1) << "Translating all ions by given vector." << endl; … … 1741 1741 break; 1742 1742 case 'T': 1743 ExitFlag = 1;1744 if ((argptr+2 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) {1743 if (ExitFlag == 0) ExitFlag = 1; 1744 if ((argptr+2 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) { 1745 1745 ExitFlag = 255; 1746 1746 cerr << "Not enough or invalid arguments given for periodic translation: -T <x> <y> <z>" << endl; 1747 1747 } else { 1748 ExitFlag = 1;1748 if (ExitFlag == 0) ExitFlag = 1; 1749 1749 SaveFlag = true; 1750 1750 cout << Verbose(1) << "Translating all ions periodically by given vector." << endl; … … 1756 1756 break; 1757 1757 case 's': 1758 ExitFlag = 1;1759 if ((argptr >= argc) || ( !IsValidNumber(argv[argptr])) ) {1758 if (ExitFlag == 0) ExitFlag = 1; 1759 if ((argptr >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) ) { 1760 1760 ExitFlag = 255; 1761 1761 cerr << "Not enough or invalid arguments given for scaling: -s <factor/[factor_x]> [factor_y] [factor_z]" << endl; … … 1783 1783 break; 1784 1784 case 'b': 1785 ExitFlag = 1;1786 if ((argptr+5 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) || (!IsValidNumber(argv[argptr+3])) || (!IsValidNumber(argv[argptr+4])) || (!IsValidNumber(argv[argptr+5])) ) {1785 if (ExitFlag == 0) ExitFlag = 1; 1786 if ((argptr+5 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) || (!IsValidNumber(argv[argptr+3])) || (!IsValidNumber(argv[argptr+4])) || (!IsValidNumber(argv[argptr+5])) ) { 1787 1787 ExitFlag = 255; 1788 1788 cerr << "Not enough or invalid arguments given for centering in box: -b <xx> <xy> <xz> <yy> <yz> <zz>" << endl; … … 1800 1800 break; 1801 1801 case 'B': 1802 ExitFlag = 1;1803 if ((argptr+5 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) || (!IsValidNumber(argv[argptr+3])) || (!IsValidNumber(argv[argptr+4])) || (!IsValidNumber(argv[argptr+5])) ) {1802 if (ExitFlag == 0) ExitFlag = 1; 1803 if ((argptr+5 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) || (!IsValidNumber(argv[argptr+3])) || (!IsValidNumber(argv[argptr+4])) || (!IsValidNumber(argv[argptr+5])) ) { 1804 1804 ExitFlag = 255; 1805 1805 cerr << "Not enough or invalid arguments given for bounding in box: -B <xx> <xy> <xz> <yy> <yz> <zz>" << endl; … … 1817 1817 break; 1818 1818 case 'c': 1819 ExitFlag = 1;1820 if ((argptr+2 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) {1819 if (ExitFlag == 0) ExitFlag = 1; 1820 if ((argptr+2 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) { 1821 1821 ExitFlag = 255; 1822 1822 cerr << "Not enough or invalid arguments given for centering with boundary: -c <boundary_x> <boundary_y> <boundary_z>" << endl; … … 1841 1841 break; 1842 1842 case 'O': 1843 ExitFlag = 1;1843 if (ExitFlag == 0) ExitFlag = 1; 1844 1844 SaveFlag = true; 1845 1845 cout << Verbose(1) << "Centering atoms on edge and setting box dimensions." << endl; … … 1850 1850 break; 1851 1851 case 'r': 1852 ExitFlag = 1; 1853 SaveFlag = true; 1854 cout << Verbose(1) << "Converting config file from supposed old to new syntax." << endl; 1852 if (ExitFlag == 0) ExitFlag = 1; 1853 if ((argptr >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr]))) { 1854 ExitFlag = 255; 1855 cerr << "Not enough or invalid arguments given for removing atoms: -r <id>" << endl; 1856 } else { 1857 SaveFlag = true; 1858 cout << Verbose(1) << "Removing atom " << argv[argptr] << "." << endl; 1859 atom *first = mol->FindAtom(atoi(argv[argptr])); 1860 mol->RemoveAtom(first); 1861 argptr+=1; 1862 } 1855 1863 break; 1856 1864 case 'f': 1857 ExitFlag = 1;1858 if ((argptr+1 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1]))) {1865 if (ExitFlag == 0) ExitFlag = 1; 1866 if ((argptr+1 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1]))) { 1859 1867 ExitFlag = 255; 1860 1868 cerr << "Not enough or invalid arguments for fragmentation: -f <max. bond distance> <bond order>" << endl; … … 1874 1882 break; 1875 1883 case 'm': 1876 ExitFlag = 1;1884 if (ExitFlag == 0) ExitFlag = 1; 1877 1885 j = atoi(argv[argptr++]); 1878 1886 if ((j<0) || (j>1)) { … … 1888 1896 break; 1889 1897 case 'o': 1890 ExitFlag = 1;1898 if (ExitFlag == 0) ExitFlag = 1; 1891 1899 if ((argptr+1 >= argc) || (argv[argptr][0] == '-')){ 1892 1900 ExitFlag = 255; … … 1908 1916 break; 1909 1917 case 'U': 1910 ExitFlag = 1;1911 if ((argptr+1 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) ) {1918 if (ExitFlag == 0) ExitFlag = 1; 1919 if ((argptr+1 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) ) { 1912 1920 ExitFlag = 255; 1913 1921 cerr << "Not enough or invalid arguments given for suspension with specified volume: -U <volume> <density>" << endl; … … 1918 1926 } 1919 1927 case 'u': 1920 ExitFlag = 1;1921 if ((argptr >= argc) || ( !IsValidNumber(argv[argptr])) ) {1928 if (ExitFlag == 0) ExitFlag = 1; 1929 if ((argptr >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) ) { 1922 1930 if (volume != -1) 1923 1931 ExitFlag = 255; … … 1942 1950 break; 1943 1951 case 'd': 1944 ExitFlag = 1;1945 if ((argptr+2 >= argc) || ( !IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) {1952 if (ExitFlag == 0) ExitFlag = 1; 1953 if ((argptr+2 >= argc) || (argv[argptr][0] == '-') || (!IsValidNumber(argv[argptr])) || (!IsValidNumber(argv[argptr+1])) || (!IsValidNumber(argv[argptr+2])) ) { 1946 1954 ExitFlag = 255; 1947 1955 cerr << "Not enough or invalid arguments given for repeating cells: -d <repeat_x> <repeat_y> <repeat_z>" << endl; -
tests/Makefile.am
rcee0b57 rebcade 1 1 AUTOM4TE = autom4te 2 EXTRA_DIST = testsuite.at $(TESTSUITE) atlocal.in 2 EXTRA_DIST = testsuite.at $(TESTSUITE) atlocal.in regression 3 3 TESTSUITE = $(srcdir)/testsuite 4 4 -
tests/testsuite.at
rcee0b57 rebcade 1 1 # Process with autom4te to create an -*- Autotest -*- test suite. 2 2 # 3 # see regression/... subdirs wherein for each of the cases and each check (enumerated) is a pre and post dir. 4 # In pre initial files are placed, in post results can be found to be checked by diff in this testsuite. 3 5 4 6 AT_INIT([Molecular Builder]) … … 7 9 AT_BANNER([MoleCuilder - standard options]) 8 10 AT_SETUP([Standard Options]) 11 AT_KEYWORDS([options]) 9 12 AT_CHECK([pwd],[ignore],[ignore]) 10 13 AT_CHECK([../../molecuilder -v], 0, [stdout], [ignore]) … … 18 21 AT_CLEANUP 19 22 23 20 24 AT_BANNER([MoleCuilder - molecular config creation from xyz file and atom adding]) 21 AT_SETUP([Simple configuration]) 22 # 1. create a fake element database with the only element we need 23 AT_DATA([elements.db],[# Covalent radius of each element in Angstroem from CSD (binding is: [Rcov(A)+Rcov(B)-t,Rcov(A)+Rcov(B)+t] with t = 0.4A 24 #Element Name Symbol Period Group Block Atomic Number AtomicWeight Covalent Radius vdW Radius 25 Hydrogen H 1 1 s 1 1.008 0.23 1.09 26 ]) 27 # 2. create some simplest molecular geometry 25 AT_KEYWORDS([Atom handling]) 26 # 1. create some simplest molecular geometry 27 AT_SETUP([Simple configuration - xyz file generation]) 28 28 AT_DATA([test.xyz], [[1 29 29 # test configuration, created by molecuilder test suite 30 30 H 10. 10. 10. 31 31 ]]) 32 # 3. make sure config is empty and not remnant from last test with broken dirs 33 AT_DATA([test.conf], []) 34 AT_CHECK([../../molecuilder test.conf -e ./ -p test.xyz], 0, [ignore], [ignore]) 32 AT_CHECK([file=test.xyz; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/1/post/$file], 0, [ignore], [ignore]) 33 AT_CLEANUP 34 35 # 2. parsing an xyz 36 AT_SETUP([Simple configuration - parsing xyz file]) 37 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/2/pre/test.xyz .], 0) 38 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -p test.xyz], 0, [ignore], [ignore]) 35 39 AT_CHECK([fgrep "Ion_Type1_1" test.conf], 0, [Ion_Type1_1 10.000000000 10.000000000 10.000000000 0 # molecule nr 0 36 40 ], [ignore]) 37 AT_CHECK([mv test.conf main_pcp_linux], 0, [ignore], [ignore]) 38 AT_DATA([input], [maa 10. 10. 10. 1 39 s 40 q 41 ]) 42 AT_CHECK([../../molecuilder test.conf -e ./ <input], 0, [ignore], [ignore]) 43 AT_CHECK([diff main_pcp_linux test.conf], 0, [ignore], [ignore]) 44 # 4. test some more configuration 45 AT_CHECK([../../molecuilder test.conf -e ./ -t -s -b -E -c -b -a -U -T -u], 0, [ignore], [stderr]) 41 AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/2/post/$file], 0, [ignore], [ignore]) 42 AT_CHECK([file=test.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/2/post/$file], 0, [ignore], [ignore]) 43 AT_CHECK([file=test.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/2/post/$file], 0, [ignore], [ignore]) 44 45 # 3. add atom 46 AT_CLEANUP 47 AT_SETUP([Simple configuration - adding atom]) 48 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -a 1 10. 10. 10.], 0, [ignore], [ignore]) 49 AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/3/post/$file], 0, [ignore], [ignore]) 50 AT_CHECK([file=test.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/3/post/$file], 0, [ignore], [ignore]) 51 AT_CHECK([file=test.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/3/post/$file], 0, [ignore], [ignore]) 52 AT_CLEANUP 53 54 # 4. change the element 55 AT_SETUP([Simple configuration - Changing element]) 56 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/4/pre/test.conf test.conf], 0) 57 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -E 0 6], 0, [ignore], [ignore]) 58 AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/4/post/$file], 0, [ignore], [ignore]) 59 AT_CLEANUP 60 61 # 5. remove atom 62 AT_SETUP([Simple configuration - Atom removal]) 63 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/5/pre/test.conf .], 0) 64 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -r 0], 0, [ignore], [ignore]) 65 AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/5/post/$file], 0, [ignore], [ignore]) 66 AT_CHECK([file=test.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/5/post/$file], 0, [ignore], [ignore]) 67 AT_CHECK([file=test.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/5/post/$file], 0, [ignore], [ignore]) 68 AT_CLEANUP 69 70 # 6. test some more configuration that all desire parameters and count how many complain 71 AT_SETUP([Simple configuration - invalid commands on empty configs]) 72 AT_CHECK([../../molecuilder empty.conf -e ${abs_top_srcdir}/src/ -t -s -b -E -c -b -a -U -T -u], 255, [ignore], [stderr]) 73 AT_CHECK([fgrep -c "Not enough or invalid" stderr], 0, [1 74 ], [ignore]) 75 AT_CLEANUP 76 77 # 7. test some more configuration that all need parameters and count how many complain 78 AT_SETUP([Simple configuration - invalid commands on present configs]) 79 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/7/pre/test.conf .], 0) 80 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t -s -b -E -c -b -a -U -T -u], 255, [ignore], [stderr]) 46 81 AT_CHECK([fgrep -c "Not enough or invalid" stderr], 0, [9 47 82 ], [ignore]) 48 83 AT_CLEANUP 49 84 85 86 AT_BANNER([MoleCuilder - Graph routines test]) 87 AT_KEYWORDS([graph]) 88 AT_SETUP([Graph - DFS analysis]) 89 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Graph/1/pre/test.conf .], 0) 90 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -D 2.], 0, [stdout], [stderr]) 91 AT_CHECK([fgrep -c "No rings were detected in the molecular structure." stdout], 0, [1 92 ], [ignore]) 93 AT_CLEANUP 94 50 95 AT_BANNER([MoleCuilder - Fragmentation and Re-fragmentation test]) 51 AT_SETUP([Fragmentation]) 52 # 1. create a fake element database with the only two elements we need 53 AT_DATA([elements.db],[# Covalent radius of each element in Angstroem from CSD (binding is: [Rcov(A)+Rcov(B)-t,Rcov(A)+Rcov(B)+t] with t = 0.4A 54 #Element Name Symbol Period Group Block Atomic Number AtomicWeight Covalent Radius vdW Radius 55 Hydrogen H 1 1 s 1 1.008 0.23 1.09 56 Carbon C 2 14 p 6 12.011 0.68 1.70 57 ]) 58 # 2. create molecular geometry 59 AT_DATA([test.xyz], [[11 60 # test configuration, created by molecuilder test suite 61 C 9.782085945 3.275186040 3.535886037 62 C 8.532785963 4.158586027 3.535886037 63 C 7.283585982 3.275186040 3.535886037 64 H 9.782085945 2.645886050 2.645886050 65 H 9.782085945 2.645886050 4.425886024 66 H 10.672039608 3.904536878 3.535886037 67 H 8.532785963 4.787886018 2.645886050 68 H 8.532785963 4.787886018 4.425886024 69 H 6.393632318 3.904536877 3.535886037 70 H 7.283585982 2.645886050 2.645886050 71 H 7.283585982 2.645886050 4.425886024 72 ]]) 73 # 3. make sure config is empty and not remnant from last test with broken dirs 74 AT_DATA([test.conf], []) 75 # 4. create the config and check it 76 AT_CHECK([../../molecuilder test.conf -e ./ -p test.xyz], 0, [ignore], [ignore]) 96 AT_KEYWORDS([fragmentation]) 97 # 1. check config 98 AT_SETUP([Fragmentation - Checking present config]) 99 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Fragmentation/1/pre/test.conf .], 0) 77 100 AT_CHECK([fgrep "Ion_Type1_4" test.conf], 0, [Ion_Type1_4 8.532785963 4.787886018 2.645886050 0 # molecule nr 6 78 101 ], [ignore]) 79 102 AT_CHECK([fgrep "Ion_Type2_4" test.conf], 1, [ignore], [ignore]) 80 # 5. fragment the molecule and check the number of configs 81 AT_CHECK([../../molecuilder test.conf -e ./ -f 1.55 2], 0, [ignore], [ignore], [mkdir std; mv BondFragment*.conf* std/]) 103 AT_CLEANUP 104 # 2. fragment the molecule and check the number of configs 105 AT_SETUP([Fragmentation - Fragmentation]) 106 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Fragmentation/2/pre/test.conf .], 0) 107 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -f 1.55 2], 0, [ignore], [ignore], [mkdir std; mv BondFragment*.conf* std/]) 82 108 AT_CHECK([mkdir std; mv BondFragment*.conf* std/], 0) 83 109 AT_CHECK([ls -l std/BondFragment*.conf | wc -l], 0, [5 84 110 ], [ignore]) 85 # 3a. check whether parsing of BondFragment files and re-rwriting config files is working (exit code is 2 as we don't need to continue wrt to ...OrderAtSite) 86 AT_CHECK([../../molecuilder test.conf -e ./ -f 1.55 2], 2, [ignore], [ignore], [mkdir new; mv BondFragment*.conf* new/]) 111 AT_CLEANUP 112 # 3. check whether parsing of BondFragment files and re-rwriting config files is working (exit code is 2 as we don't need to continue wrt to ...OrderAtSite) 113 AT_SETUP([Fragmentation - Fragmentation is at MaxOrder]) 114 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Fragmentation/3/pre/* .], 0) 115 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -f 1.55 2], 2, [ignore], [ignore], [mkdir new; mv BondFragment*.conf* new/]) 87 116 AT_CHECK([mkdir new; mv BondFragment*.conf* new/], 0) 88 # 6. compare both dirs by diff'ing89 AT_CHECK([diff -I '.*Created by molecuilder.*' std/ new/], 0, [], [])90 117 AT_CLEANUP 91 118 119 120 AT_BANNER([MoleCuilder - Tesselation test]) 121 AT_KEYWORDS([Tesselation]) 122 # 1. Non convex tesselation 123 AT_SETUP([Tesselation - Non-Convex Envelope]) 124 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/1/pre/* .], 0) 125 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -N 4. NonConvexEnvelope], 0, [stdout], [stderr]) 126 AT_CHECK([file=NonConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/1/post/$file], 0, [ignore], [ignore]) 127 AT_CHECK([file=NonConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/1/post/$file], 0, [ignore], [ignore]) 128 AT_CLEANUP 129 130 # 2. convex tesselation (where the non-convex is already convex) 131 AT_SETUP([Tesselation - Convex Envelope]) 132 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/2/pre/* .], 0) 133 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o ConvexEnvelope NonConvexEnvelope], 0, [stdout], [stderr]) 134 AT_CHECK([file=ConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/2/post/$file], 0, [ignore], [ignore]) 135 AT_CHECK([file=ConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/2/post/$file], 0, [ignore], [ignore]) 136 AT_CHECK([fgrep "RESULT: The summed volume is 16.401577 angstrom^3" stdout], 0, [ignore], [ignore]) 137 AT_CHECK([diff ConvexEnvelope.dat NonConvexEnvelope.dat], 0, [ignore], [ignore]) 138 AT_CLEANUP 139 140 # 3. Big Non convex tesselation 141 AT_SETUP([Tesselation - Big non-Convex Envelope]) 142 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/3/pre/* .], 0) 143 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -N 4. NonConvexEnvelope], 0, [stdout], [stderr]) 144 AT_CHECK([file=NonConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/3/post/$file], 0, [ignore], [ignore]) 145 AT_CHECK([file=NonConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/3/post/$file], 0, [ignore], [ignore]) 146 AT_CLEANUP 147 148 # 4. Big convex tesselation - is not working yet 149 #AT_SETUP([Tesselation - big convex Envelope]) 150 #AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/4/pre/* .], 0) 151 #AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o ConvexEnvelope NonConvexEnvelope], 0, [stdout], [stderr]) 152 #AT_CHECK([file=ConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/4/post/$file], 0, [ignore], [ignore]) 153 #AT_CHECK([file=ConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/4/post/$file], 0, [ignore], [ignore]) 154 #AT_CHECK([fgrep "RESULT: The summed volume is 16.401577 angstrom^3" stdout], 0, [ignore], [ignore]) 155 #AT_CLEANUP 156
Note:
See TracChangeset
for help on using the changeset viewer.