Changeset 4fbca9c for src/unittests


Ignore:
Timestamp:
Dec 5, 2010, 12:01:43 AM (14 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:
cabb46
Parents:
e828c0
git-author:
Frederik Heber <heber@…> (12/04/10 18:05:33)
git-committer:
Frederik Heber <heber@…> (12/05/10 00:01:43)
Message:

PdbParser::save() fully working.

Location:
src/unittests
Files:
2 added
1 edited
2 moved

Legend:

Unmodified
Added
Removed
  • src/unittests/Makefile.am

    re828c0 r4fbca9c  
    3535  MoleculeDescriptorTest \
    3636  ObserverTest \
    37   ParserUnitTest \
     37  ParserCommonUnitTest \
     38  ParserTremoloUnitTest \
    3839  periodentafelTest \
    3940  PlaneUnittest \
     
    4849  VectorContentUnitTest \
    4950  VectorUnitTest
    50  
    51  
     51
     52
    5253check_PROGRAMS = $(TESTS)
    5354noinst_PROGRAMS = $(TESTS) TestRunner
     
    9697  MoleculeDescriptorTest.cpp \
    9798  ObserverTest.cpp \
    98   ParserUnitTest.cpp \
     99  ParserCommonUnitTest.cpp \
     100  ParserTremoloUnitTest.cpp \
    99101  periodentafelTest.cpp \
    100102  PlaneUnittest.cpp \
     
    137139  ObserverTest.hpp \
    138140  periodentafelTest.hpp \
    139   ParserUnitTest.hpp \
     141  ParserCommonUnitTest.hpp \
     142  ParserTremoloUnitTest.hpp \
    140143  PlaneUnittest.hpp \
    141144  RegistryUnitTest.hpp \
     
    203206LineUnittest_LDADD = ${ALLLIBS}
    204207
    205 LinkedCellUnitTest_SOURCES = UnitTestMain.cpp LinkedCellUnitTest.cpp LinkedCellUnitTest.hpp 
     208LinkedCellUnitTest_SOURCES = UnitTestMain.cpp LinkedCellUnitTest.cpp LinkedCellUnitTest.hpp
    206209LinkedCellUnitTest_LDADD = ${ALLLIBS}
    207210
     
    209212ListOfBondsUnitTest_LDADD = ${ALLLIBS}
    210213
    211 LogUnitTest_SOURCES = UnitTestMain.cpp logunittest.cpp logunittest.hpp 
     214LogUnitTest_SOURCES = UnitTestMain.cpp logunittest.cpp logunittest.hpp
    212215LogUnitTest_LDADD = ${ALLLIBS}
    213216
     
    227230ObserverTest_LDADD = ${ALLLIBS}
    228231
    229 ParserUnitTest_SOURCES = UnitTestMain.cpp ParserUnitTest.cpp ParserUnitTest.hpp
    230 ParserUnitTest_LDADD = ${ALLLIBS}
     232ParserCommonUnitTest_SOURCES = UnitTestMain.cpp ParserCommonUnitTest.cpp ParserCommonUnitTest.hpp
     233ParserCommonUnitTest_LDADD = ${ALLLIBS}
     234
     235ParserTremoloUnitTest_SOURCES = UnitTestMain.cpp ParserTremoloUnitTest.cpp ParserTremoloUnitTest.hpp
     236ParserTremoloUnitTest_LDADD = ${ALLLIBS}
    231237
    232238periodentafelTest_SOURCES = UnitTestMain.cpp periodentafelTest.cpp periodentafelTest.hpp
  • src/unittests/ParserCommonUnitTest.cpp

    re828c0 r4fbca9c  
    77
    88/*
    9  * ParserUnitTest.cpp
     9 * ParserCommonUnitTest.cpp
    1010 *
    1111 *  Created on: Mar 3, 2010
     
    1818#endif
    1919
    20 #include "ParserUnitTest.hpp"
     20#include "ParserCommonUnitTest.hpp"
    2121
    2222#include <cppunit/CompilerOutputter.h>
     
    2525
    2626#include "Parser/MpqcParser.hpp"
     27#include "Parser/PdbParser.hpp"
    2728#include "Parser/PcpParser.hpp"
    2829#include "Parser/TremoloParser.hpp"
     
    4142
    4243// Registers the fixture into the 'registry'
    43 CPPUNIT_TEST_SUITE_REGISTRATION( ParserUnitTest );
     44CPPUNIT_TEST_SUITE_REGISTRATION( ParserCommonUnitTest );
    4445
    4546static string waterPcp = "# ParallelCarParinello - main configuration file - created with molecuilder\n\
     
    117118Ion_Type1_1\t0.758602\t0.000000000\t0.504284\t0 # molecule nr 1\n\
    118119Ion_Type1_2\t0.758602\t0.000000000\t-0.504284\t0 # molecule nr 2\n";
     120//----|----*|---||--*||---|***|-------|-------|-------|-----|---------------|-|-
     121//000000011111111112222222222333333333344444444445555555555666666666677777777778
     122//345678901234567890123456789012345678901234567890123456789012345678901234567890
     123static string waterPdb = "\
     124REMARK  This is a test water molecule as written by TREMOLO.\n\
     125ATOM      1  OT  GMT-    0       1.583   1.785   1.480  1.00178.02           O-2\n\
     126ATOM      2  HT  GMT-    0       1.186   1.643   2.213  1.00103.58           H+1\n\
     127ATOM      3  HT  GMT-    0       2.642   1.896   1.730  1.00126.00           H+1\n\
     128ATOM      4  OT  GMT-    1       3.583   1.785   1.480  1.00178.02           O-2\n\
     129ATOM      5  HT  GMT-    1       3.186   1.643   2.213  1.00103.58           H+1\n\
     130ATOM      6  HT  GMT-    1       4.642   1.896   1.730  1.00126.00           H+1\n\
     131CONECT    1    2    3\n\
     132CONECT    2    1\n\
     133CONECT    3    1\n\
     134CONECT    4    5    6\n\
     135CONECT    5    4\n\
     136CONECT    6    4\n\
     137END";
    119138static string waterMpqc ="% Created by MoleCuilder\n\
    120139mpqc: (\n\
     
    144163)\n";
    145164static string waterXyz = "3\n\tH2O: water molecule\nO\t0\t0\t0\nH\t0.758602\t0\t0.504284\nH\t0.758602\t0\t-0.504284\n";
    146 static string Tremolo_Atomdata1 = "# ATOMDATA\tId\tname\tType\tx=3\n";
    147 static string Tremolo_Atomdata2 = "#\n#ATOMDATA Id name Type x=3\n1 hydrogen H 3.0 4.5 0.1\n\n";
    148 static string Tremolo_invalidkey = "#\n#ATOMDATA Id name foo Type x=3\n\n\n";
    149 static string Tremolo_velocity = "#\n#ATOMDATA Id name Type u=3\n1 hydrogen H 3.0 4.5 0.1\n\n";
    150 static string Tremolo_neighbours = "#\n#ATOMDATA Id Type neighbors=2\n1 H 3 0\n2 H 3 0\n3 O 1 2\n";
    151 static string Tremolo_improper = "#\n#ATOMDATA Id Type imprData\n8 H 9-10\n9 H 10-8,8-10\n10 O -\n";
    152 static string Tremolo_torsion = "#\n#ATOMDATA Id Type torsion\n8 H 9-10\n9 H 10-8,8-10\n10 O -\n";
    153 static string Tremolo_full = "# ATOMDATA\tx=3\tu=3\tF\tstress\tId\tneighbors=5\timprData\tGroupMeasureTypeNo\tType\textType\tname\tresName\tchainID\tresSeq\toccupancy\ttempFactor\tsegID\tCharge\tcharge\tGrpTypeNo\ttorsion\n0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t-\t0\tH\t-\t-\t-\t0\t0\t0\t0\t0\t0\t0\t0\t-\t\n";
    154 
    155 void ParserUnitTest::setUp() {
     165
     166void ParserCommonUnitTest::setUp() {
    156167  World::getInstance();
     168
     169  setVerbosity(2);
    157170
    158171  // we need hydrogens and oxygens in the following tests
     
    161174}
    162175
    163 void ParserUnitTest::tearDown() {
     176void ParserCommonUnitTest::tearDown() {
    164177  ChangeTracker::purgeInstance();
    165178  World::purgeInstance();
     
    168181/************************************ tests ***********************************/
    169182
    170 void ParserUnitTest::rewriteAnXyzTest() {
     183void ParserCommonUnitTest::rewriteAnXyzTest() {
    171184  cout << "Testing the XYZ parser." << endl;
    172185  XyzParser* testParser = new XyzParser();
     
    185198}
    186199
    187 void ParserUnitTest::readTremoloPreliminaryCommentsTest() {
    188   cout << "Testing the tremolo parser." << endl;
    189   TremoloParser* testParser = new TremoloParser();
    190   stringstream input, output;
    191 
    192   // Atomdata beginning with "# ATOMDATA"
    193   input << Tremolo_Atomdata1;
    194   testParser->load(&input);
    195   testParser->save(&output);
    196   CPPUNIT_ASSERT(Tremolo_Atomdata1 == output.str());
    197   input.clear();
    198   output.clear();
    199 
    200   // Atomdata beginning with "#ATOMDATA"
    201   input << Tremolo_Atomdata2;
    202   testParser->load(&input);
    203   testParser->save(&output);
    204   CPPUNIT_ASSERT(output.str().find("hydrogen") != string::npos);
    205   input.clear();
    206   output.clear();
    207 
    208   // Invalid key in Atomdata line
    209   input << Tremolo_invalidkey;
    210   testParser->load(&input);
    211   //TODO: proove invalidity
    212   input.clear();
    213 }
    214 
    215 void ParserUnitTest::readTremoloCoordinatesTest() {
    216   TremoloParser* testParser = new TremoloParser();
    217   stringstream input;
    218 
    219   // One simple data line
    220   input << Tremolo_Atomdata2;
    221   testParser->load(&input);
    222   CPPUNIT_ASSERT(World::getInstance().getAtom(AtomByType(1))->at(0) == 3.0);
    223   input.clear();
    224 }
    225 
    226 void ParserUnitTest::readTremoloVelocityTest() {
    227   TremoloParser* testParser = new TremoloParser();
    228   stringstream input;
    229 
    230   // One simple data line
    231   input << Tremolo_velocity;
    232   testParser->load(&input);
    233   CPPUNIT_ASSERT(World::getInstance().getAtom(AtomByType(1))->AtomicVelocity[0] == 3.0);
    234   input.clear();
    235 }
    236 
    237 void ParserUnitTest::readTremoloNeighborInformationTest() {
    238   TremoloParser* testParser = new TremoloParser();
    239   stringstream input;
    240 
    241   // Neighbor data
    242   input << Tremolo_neighbours;
    243   testParser->load(&input);
    244 
    245   CPPUNIT_ASSERT_EQUAL(3, World::getInstance().numAtoms());
    246   CPPUNIT_ASSERT(World::getInstance().getAtom(AtomByType(8))->
    247       IsBondedTo(World::getInstance().getAtom(AtomByType(1))));
    248   input.clear();
    249 }
    250 
    251 void ParserUnitTest::readAndWriteTremoloImprDataInformationTest() {
    252   TremoloParser* testParser = new TremoloParser();
    253   stringstream input, output;
    254 
    255   // Neighbor data
    256   input << Tremolo_improper;
    257   testParser->load(&input);
    258   testParser->save(&output);
    259   CPPUNIT_ASSERT_EQUAL(3, World::getInstance().numAtoms());
    260   CPPUNIT_ASSERT(output.str().find("2-0,0-2") != string::npos);
    261   input.clear();
    262   output.clear();
    263 }
    264 
    265 void ParserUnitTest::readAndWriteTremoloTorsionInformationTest() {
    266   TremoloParser* testParser = new TremoloParser();
    267   stringstream input, output;
    268 
    269   // Neighbor data
    270   input << Tremolo_torsion;
    271   testParser->load(&input);
    272   testParser->save(&output);
    273   CPPUNIT_ASSERT_EQUAL(3, World::getInstance().numAtoms());
    274   CPPUNIT_ASSERT(output.str().find("2-0,0-2") != string::npos);
    275   input.clear();
    276   output.clear();
    277 }
    278 
    279 void ParserUnitTest::writeTremoloTest() {
    280   TremoloParser* testParser = new TremoloParser();
    281   stringstream output;
    282 
    283   // with the maximum number of fields and minimal information, default values are printed
    284   atom* newAtom = World::getInstance().createAtom();
    285   newAtom->setType(1);
    286   testParser->setFieldsForSave("x=3 u=3 F stress Id neighbors=5 imprData GroupMeasureTypeNo Type extType name resName chainID resSeq occupancy tempFactor segID Charge charge GrpTypeNo torsion");
    287   testParser->save(&output);
    288   CPPUNIT_ASSERT(output.str() == Tremolo_full);
    289 
    290   cout << "testing the tremolo parser is done" << endl;
    291 }
    292 
    293 void ParserUnitTest::readwritePcpTest() {
     200void ParserCommonUnitTest::readwritePcpTest() {
    294201  stringstream input(waterPcp);
    295202  PcpParser* testParser = new PcpParser();
     
    299206  CPPUNIT_ASSERT_EQUAL(3, World::getInstance().numAtoms());
    300207
    301   string newWaterPcp = "";
    302   stringstream output;
    303   testParser->save(&output);
    304 
    305   input << output;
     208  // check that equality function is ok
     209  CPPUNIT_ASSERT(*testParser == *testParser);
     210
     211  stringstream output;
     212  testParser->save(&output);
     213
     214  input << output.str();
    306215  PcpParser* testParser2 = new PcpParser();
    307216  testParser2->load(&input);
     
    312221}
    313222
    314 void ParserUnitTest::writeMpqcTest() {
     223void ParserCommonUnitTest::readwritePdbTest() {
     224  stringstream input;
     225  input << waterPdb;
     226  PdbParser* testParser = new PdbParser();
     227  testParser->load(&input);
     228  input.clear();
     229
     230  CPPUNIT_ASSERT_EQUAL(6, World::getInstance().numAtoms());
     231
     232  stringstream output;
     233  testParser->save(&output);
     234
     235//  std::cout << "Save PDB is:" << std::endl;
     236//  std::cout << output.str() << std::endl;
     237
     238  input << output.str();
     239  PdbParser* testParser2 = new PdbParser();
     240  testParser2->load(&input);
     241
     242  CPPUNIT_ASSERT_EQUAL(12, World::getInstance().numAtoms());
     243}
     244
     245void ParserCommonUnitTest::writeMpqcTest() {
    315246  // build up water molecule
    316247  atom *Walker = NULL;
  • src/unittests/ParserTremoloUnitTest.hpp

    re828c0 r4fbca9c  
    11/*
    2  * ParserUnitTest.hpp
     2 * ParserTremoloUnitTest.hpp
    33 *
    44 *  Created on: Mar 3, 2010
    55 *      Author: metzler
    66 */
    7 #ifndef PARSERUNITTEST_HPP_
    8 #define PARSERUNITTEST_HPP_
     7#ifndef PARSERTREMOLOUNITTEST_HPP_
     8#define PARSERTREMOLOUNITTEST_HPP_
    99
    1010#include <cppunit/extensions/HelperMacros.h>
    1111#include <string>
    1212
    13 class ParserUnitTest :  public CppUnit::TestFixture
     13class ParserTremoloUnitTest :  public CppUnit::TestFixture
    1414{
    15   CPPUNIT_TEST_SUITE( ParserUnitTest ) ;
    16   CPPUNIT_TEST ( rewriteAnXyzTest );
     15  CPPUNIT_TEST_SUITE( ParserTremoloUnitTest ) ;
    1716  CPPUNIT_TEST ( readTremoloPreliminaryCommentsTest );
    1817  CPPUNIT_TEST ( readTremoloCoordinatesTest );
     
    2221  CPPUNIT_TEST ( readAndWriteTremoloTorsionInformationTest );
    2322  CPPUNIT_TEST ( writeTremoloTest );
    24   CPPUNIT_TEST ( readwritePcpTest );
    25   CPPUNIT_TEST ( writeMpqcTest );
    2623  CPPUNIT_TEST_SUITE_END();
    2724
     
    3027  void tearDown();
    3128
    32   void rewriteAnXyzTest();
    3329  void readTremoloPreliminaryCommentsTest();
    3430  void readTremoloCoordinatesTest();
     
    3834  void readAndWriteTremoloTorsionInformationTest();
    3935  void writeTremoloTest();
    40   void readwritePcpTest();
    41   void writeMpqcTest();
    4236};
    4337
    44 #endif /* PARSERUNITTEST_HPP_ */
     38#endif /* PARSERTREMOLOUNITTEST_HPP_ */
Note: See TracChangeset for help on using the changeset viewer.