- File:
-
- 1 edited
-
src/unittests/analysisbondsunittest.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/unittests/analysisbondsunittest.cpp
r6056f1 r220cf37 15 15 #include <stdio.h> 16 16 17 #include "analysis_bonds.hpp" 18 #include "analysisbondsunittest.hpp" 17 19 #include "atom.hpp" 18 20 #include "bond.hpp" … … 21 23 #include "molecule.hpp" 22 24 #include "periodentafel.hpp" 23 #include "analysisbondsunittest.hpp"24 25 25 26 /********************************************** Test classes **************************************/ … … 41 42 hydrogen = new element; 42 43 hydrogen->Z = 1; 44 hydrogen->Valence = 1; 45 hydrogen->NoValenceOrbitals = 1; 43 46 strcpy(hydrogen->name, "hydrogen"); 44 47 strcpy(hydrogen->symbol, "H"); 45 48 carbon = new element; 46 carbon->Z = 2; 49 carbon->Z = 1; 50 carbon->Valence = 4; 51 carbon->NoValenceOrbitals = 4; 47 52 strcpy(carbon->name, "carbon"); 48 53 strcpy(carbon->symbol, "C"); … … 58 63 Walker = new atom(); 59 64 Walker->type = hydrogen; 60 Walker->node->Init(1. , 0., 1.);65 Walker->node->Init(1.5, 0., 1.5 ); 61 66 TestMolecule->AddAtom(Walker); 62 67 Walker = new atom(); 63 68 Walker->type = hydrogen; 64 Walker->node->Init(0., 1. , 1.);69 Walker->node->Init(0., 1.5, 1.5 ); 65 70 TestMolecule->AddAtom(Walker); 66 71 Walker = new atom(); 67 72 Walker->type = hydrogen; 68 Walker->node->Init(1. , 1., 0. );73 Walker->node->Init(1.5, 1.5, 0. ); 69 74 TestMolecule->AddAtom(Walker); 70 75 Walker = new atom(); … … 72 77 Walker->node->Init(0., 0., 0. ); 73 78 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); 74 83 75 84 // check that TestMolecule was correctly constructed 76 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4);85 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 5 ); 77 86 78 87 // create a small file with table … … 82 91 test << "H\t1.\t1.2\n"; 83 92 test << "C\t1.2\t1.5\n"; 93 test.close(); 84 94 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); 85 102 }; 86 103 … … 100 117 }; 101 118 102 /** UnitTest for AnalysisBondsTest::LoadBondLengthTable().119 /** UnitTest for GetMaxMinMeanBondCount(). 103 120 */ 104 void AnalysisBondsTest:: BondsTest()121 void AnalysisBondsTest::GetMaxMinMeanBondCountTest() 105 122 { 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 ); 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 ); 112 130 113 131 }; 132 133 /** UnitTest for MinMaxBondDistanceBetweenElements(). 134 */ 135 void AnalysisBondsTest::MinMeanMaxBondDistanceBetweenElementsTest() 136 { 137 double Min = 20.; // check that initialization resets these arbitrary values 138 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-H 147 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-C 153 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 114 165 115 166 /********************************************** Main routine **************************************/
Note:
See TracChangeset
for help on using the changeset viewer.
