- File:
-
- 1 edited
-
src/unittests/analysisbondsunittest.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/unittests/analysisbondsunittest.cpp
r220cf37 r6056f1 15 15 #include <stdio.h> 16 16 17 #include "analysis_bonds.hpp"18 #include "analysisbondsunittest.hpp"19 17 #include "atom.hpp" 20 18 #include "bond.hpp" … … 23 21 #include "molecule.hpp" 24 22 #include "periodentafel.hpp" 23 #include "analysisbondsunittest.hpp" 25 24 26 25 /********************************************** Test classes **************************************/ … … 42 41 hydrogen = new element; 43 42 hydrogen->Z = 1; 44 hydrogen->Valence = 1;45 hydrogen->NoValenceOrbitals = 1;46 43 strcpy(hydrogen->name, "hydrogen"); 47 44 strcpy(hydrogen->symbol, "H"); 48 45 carbon = new element; 49 carbon->Z = 1; 50 carbon->Valence = 4; 51 carbon->NoValenceOrbitals = 4; 46 carbon->Z = 2; 52 47 strcpy(carbon->name, "carbon"); 53 48 strcpy(carbon->symbol, "C"); … … 63 58 Walker = new atom(); 64 59 Walker->type = hydrogen; 65 Walker->node->Init(1. 5, 0., 1.5);60 Walker->node->Init(1., 0., 1. ); 66 61 TestMolecule->AddAtom(Walker); 67 62 Walker = new atom(); 68 63 Walker->type = hydrogen; 69 Walker->node->Init(0., 1. 5, 1.5);64 Walker->node->Init(0., 1., 1. ); 70 65 TestMolecule->AddAtom(Walker); 71 66 Walker = new atom(); 72 67 Walker->type = hydrogen; 73 Walker->node->Init(1. 5, 1.5, 0. );68 Walker->node->Init(1., 1., 0. ); 74 69 TestMolecule->AddAtom(Walker); 75 70 Walker = new atom(); … … 77 72 Walker->node->Init(0., 0., 0. ); 78 73 TestMolecule->AddAtom(Walker); 79 Walker = new atom();80 Walker->type = carbon;81 Walker->node->Init(0.5, 0.5, 0.5 );82 TestMolecule->AddAtom(Walker);83 74 84 75 // check that TestMolecule was correctly constructed 85 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 5);76 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 86 77 87 78 // create a small file with table … … 91 82 test << "H\t1.\t1.2\n"; 92 83 test << "C\t1.2\t1.5\n"; 93 test.close();94 84 BG = new BondGraph(true); 95 96 CPPUNIT_ASSERT_EQUAL( true , BG->LoadBondLengthTable(*filename) );97 CPPUNIT_ASSERT_EQUAL( 1., BG->GetBondLength(0,0) );98 CPPUNIT_ASSERT_EQUAL( 1.2, BG->GetBondLength(0,1) );99 CPPUNIT_ASSERT_EQUAL( 1.5, BG->GetBondLength(1,1) );100 101 BG->ConstructBondGraph(TestMolecule);102 85 }; 103 86 … … 117 100 }; 118 101 119 /** UnitTest for GetMaxMinMeanBondCount().102 /** UnitTest for AnalysisBondsTest::LoadBondLengthTable(). 120 103 */ 121 void AnalysisBondsTest:: GetMaxMinMeanBondCountTest()104 void AnalysisBondsTest::BondsTest() 122 105 { 123 double Min = 20.; // check that initialization resets these arbitrary values 124 double Mean = 200.; 125 double Max = 1e-6; 126 GetMaxMinMeanBondCount(TestMolecule, Min, Mean, Max); 127 CPPUNIT_ASSERT_EQUAL( 1., Min ); 128 CPPUNIT_ASSERT_EQUAL( 1.6, Mean ); 129 CPPUNIT_ASSERT_EQUAL( 4., Max ); 106 CPPUNIT_ASSERT_EQUAL( true , BG->LoadBondLengthTable(*filename) ); 107 CPPUNIT_ASSERT_EQUAL( 1., BG->GetBondLength(0,0) ); 108 CPPUNIT_ASSERT_EQUAL( 1.2, BG->GetBondLength(0,1) ); 109 CPPUNIT_ASSERT_EQUAL( 1.5, BG->GetBondLength(1,1) ); 110 111 CPPUNIT_ASSERT_EQUAL( true , true ); 130 112 131 113 }; 132 133 /** UnitTest for MinMaxBondDistanceBetweenElements().134 */135 void AnalysisBondsTest::MinMeanMaxBondDistanceBetweenElementsTest()136 {137 double Min = 20.; // check that initialization resets these arbitrary values138 double Mean = 2e+6;139 double Max = 1e-6;140 double Min2 = 20.;141 double Mean2 = 2e+6;142 double Max2 = 1e-6;143 const double maxbondlength = sqrt(1.*1. + 1.*1. + .5*.5);144 const double minbondlength = sqrt(.5*.5 + .5*.5 + .5*.5);145 const double meanbondlength = (minbondlength+3.*maxbondlength)/4.;146 // check bond lengths C-H147 MinMeanMaxBondDistanceBetweenElements(TestMolecule, hydrogen, carbon, Min, Mean, Max);148 CPPUNIT_ASSERT_EQUAL( minbondlength , Min );149 CPPUNIT_ASSERT_EQUAL( meanbondlength , Mean );150 CPPUNIT_ASSERT_EQUAL( maxbondlength , Max );151 152 // check that elements are symmetric, i.e. C-H == H-C153 MinMeanMaxBondDistanceBetweenElements(TestMolecule, carbon, hydrogen, Min2, Mean2, Max2);154 CPPUNIT_ASSERT_EQUAL( Min , Min2 );155 CPPUNIT_ASSERT_EQUAL( Mean , Mean2 );156 CPPUNIT_ASSERT_EQUAL( Max , Max2 );157 158 // check no bond case (no bonds H-H in system!)159 MinMeanMaxBondDistanceBetweenElements(TestMolecule, hydrogen, hydrogen, Min, Mean, Max);160 CPPUNIT_ASSERT_EQUAL( 0. , Min );161 CPPUNIT_ASSERT_EQUAL( 0. , Mean );162 CPPUNIT_ASSERT_EQUAL( 0. , Max );163 };164 165 114 166 115 /********************************************** Main routine **************************************/
Note:
See TracChangeset
for help on using the changeset viewer.
