Changeset 407782 for src/unittests/LineUnittest.cpp
- Timestamp:
- Jul 14, 2010, 12:42:13 PM (15 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:
- 41ea3c
- Parents:
- 5d880e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/unittests/LineUnittest.cpp
r5d880e r407782 29 29 void LineUnittest::setUp(){ 30 30 // three lines along the axes 31 la1 = new Line(zeroVec, e1);32 la2 = new Line(zeroVec, e2);33 la3 = new Line(zeroVec, e3);31 la1 = new Line(zeroVec,unitVec[0]); 32 la2 = new Line(zeroVec,unitVec[1]); 33 la3 = new Line(zeroVec,unitVec[2]); 34 34 35 35 // the lines along the planes defined by two coordinate axes 36 lp1 = new Line( e1,e1-e2);37 lp2 = new Line( e2,e2-e3);38 lp3 = new Line( e3,e3-e1);36 lp1 = new Line(unitVec[0],unitVec[0]-unitVec[1]); 37 lp2 = new Line(unitVec[1],unitVec[1]-unitVec[2]); 38 lp3 = new Line(unitVec[2],unitVec[2]-unitVec[0]); 39 39 } 40 40 void LineUnittest::tearDown(){ … … 52 52 53 53 // direction+origin should never fail 54 CPPUNIT_ASSERT_NO_THROW(Line(zeroVec, e1));55 CPPUNIT_ASSERT_NO_THROW(Line(zeroVec, e2));56 CPPUNIT_ASSERT_NO_THROW(Line(zeroVec, e3));54 CPPUNIT_ASSERT_NO_THROW(Line(zeroVec,unitVec[0])); 55 CPPUNIT_ASSERT_NO_THROW(Line(zeroVec,unitVec[1])); 56 CPPUNIT_ASSERT_NO_THROW(Line(zeroVec,unitVec[2])); 57 57 58 58 // two points fails if both points are the same 59 CPPUNIT_ASSERT_NO_THROW(makeLineThrough( e1,e2));60 CPPUNIT_ASSERT_NO_THROW(makeLineThrough( e2,e3));61 CPPUNIT_ASSERT_NO_THROW(makeLineThrough( e3,e1));59 CPPUNIT_ASSERT_NO_THROW(makeLineThrough(unitVec[0],unitVec[1])); 60 CPPUNIT_ASSERT_NO_THROW(makeLineThrough(unitVec[1],unitVec[2])); 61 CPPUNIT_ASSERT_NO_THROW(makeLineThrough(unitVec[2],unitVec[0])); 62 62 // for zerovectors 63 CPPUNIT_ASSERT_NO_THROW(makeLineThrough( e1,zeroVec));64 CPPUNIT_ASSERT_NO_THROW(makeLineThrough( e2,zeroVec));65 CPPUNIT_ASSERT_NO_THROW(makeLineThrough( e3,zeroVec));63 CPPUNIT_ASSERT_NO_THROW(makeLineThrough(unitVec[0],zeroVec)); 64 CPPUNIT_ASSERT_NO_THROW(makeLineThrough(unitVec[1],zeroVec)); 65 CPPUNIT_ASSERT_NO_THROW(makeLineThrough(unitVec[2],zeroVec)); 66 66 // now we pass two times the same point 67 67 CPPUNIT_ASSERT_THROW(makeLineThrough(zeroVec,zeroVec),LinearDependenceException); 68 CPPUNIT_ASSERT_THROW(makeLineThrough( e1,e1),LinearDependenceException);69 CPPUNIT_ASSERT_THROW(makeLineThrough( e2,e2),LinearDependenceException);70 CPPUNIT_ASSERT_THROW(makeLineThrough( e3,e3),LinearDependenceException);68 CPPUNIT_ASSERT_THROW(makeLineThrough(unitVec[0],unitVec[0]),LinearDependenceException); 69 CPPUNIT_ASSERT_THROW(makeLineThrough(unitVec[1],unitVec[1]),LinearDependenceException); 70 CPPUNIT_ASSERT_THROW(makeLineThrough(unitVec[2],unitVec[2]),LinearDependenceException); 71 71 72 72 } … … 78 78 void LineUnittest::constructionResultTest(){ 79 79 // test all directions 80 CPPUNIT_ASSERT(testDirection(la1->getDirection(), e1));81 CPPUNIT_ASSERT(testDirection(la2->getDirection(), e2));82 CPPUNIT_ASSERT(testDirection(la3->getDirection(), e3));80 CPPUNIT_ASSERT(testDirection(la1->getDirection(),unitVec[0])); 81 CPPUNIT_ASSERT(testDirection(la2->getDirection(),unitVec[1])); 82 CPPUNIT_ASSERT(testDirection(la3->getDirection(),unitVec[2])); 83 83 84 84 // test origins … … 92 92 CPPUNIT_ASSERT(la3->isContained(zeroVec)); 93 93 94 CPPUNIT_ASSERT(la1->isContained( e1));95 CPPUNIT_ASSERT(la2->isContained( e2));96 CPPUNIT_ASSERT(la3->isContained( e3));97 98 CPPUNIT_ASSERT(lp1->isContained( e1));99 CPPUNIT_ASSERT(lp2->isContained( e2));100 CPPUNIT_ASSERT(lp3->isContained( e3));101 102 CPPUNIT_ASSERT(lp1->isContained( e2));103 CPPUNIT_ASSERT(lp2->isContained( e3));104 CPPUNIT_ASSERT(lp3->isContained( e1));94 CPPUNIT_ASSERT(la1->isContained(unitVec[0])); 95 CPPUNIT_ASSERT(la2->isContained(unitVec[1])); 96 CPPUNIT_ASSERT(la3->isContained(unitVec[2])); 97 98 CPPUNIT_ASSERT(lp1->isContained(unitVec[0])); 99 CPPUNIT_ASSERT(lp2->isContained(unitVec[1])); 100 CPPUNIT_ASSERT(lp3->isContained(unitVec[2])); 101 102 CPPUNIT_ASSERT(lp1->isContained(unitVec[1])); 103 CPPUNIT_ASSERT(lp2->isContained(unitVec[2])); 104 CPPUNIT_ASSERT(lp3->isContained(unitVec[0])); 105 105 } 106 106 … … 112 112 113 113 // multiples of the second support vector 114 CPPUNIT_ASSERT(la1->isContained( e1));115 CPPUNIT_ASSERT(la2->isContained( e2));116 CPPUNIT_ASSERT(la3->isContained( e3));117 118 CPPUNIT_ASSERT(la1->isContained(2* e1));119 CPPUNIT_ASSERT(la2->isContained(2* e2));120 CPPUNIT_ASSERT(la3->isContained(2* e3));121 122 CPPUNIT_ASSERT(la1->isContained(3* e1));123 CPPUNIT_ASSERT(la2->isContained(3* e2));124 CPPUNIT_ASSERT(la3->isContained(3* e3));114 CPPUNIT_ASSERT(la1->isContained(unitVec[0])); 115 CPPUNIT_ASSERT(la2->isContained(unitVec[1])); 116 CPPUNIT_ASSERT(la3->isContained(unitVec[2])); 117 118 CPPUNIT_ASSERT(la1->isContained(2*unitVec[0])); 119 CPPUNIT_ASSERT(la2->isContained(2*unitVec[1])); 120 CPPUNIT_ASSERT(la3->isContained(2*unitVec[2])); 121 122 CPPUNIT_ASSERT(la1->isContained(3*unitVec[0])); 123 CPPUNIT_ASSERT(la2->isContained(3*unitVec[1])); 124 CPPUNIT_ASSERT(la3->isContained(3*unitVec[2])); 125 125 126 126 // negative multiples 127 CPPUNIT_ASSERT(la1->isContained(-1* e1));128 CPPUNIT_ASSERT(la2->isContained(-1* e2));129 CPPUNIT_ASSERT(la3->isContained(-1* e3));130 131 CPPUNIT_ASSERT(la1->isContained(-2* e1));132 CPPUNIT_ASSERT(la2->isContained(-2* e2));133 CPPUNIT_ASSERT(la3->isContained(-2* e3));127 CPPUNIT_ASSERT(la1->isContained(-1*unitVec[0])); 128 CPPUNIT_ASSERT(la2->isContained(-1*unitVec[1])); 129 CPPUNIT_ASSERT(la3->isContained(-1*unitVec[2])); 130 131 CPPUNIT_ASSERT(la1->isContained(-2*unitVec[0])); 132 CPPUNIT_ASSERT(la2->isContained(-2*unitVec[1])); 133 CPPUNIT_ASSERT(la3->isContained(-2*unitVec[2])); 134 134 135 135 // points that should not be on the lines 136 CPPUNIT_ASSERT(!la1->isContained( e2));137 CPPUNIT_ASSERT(!la2->isContained( e3));138 CPPUNIT_ASSERT(!la3->isContained( e1));139 140 CPPUNIT_ASSERT(!la1->isContained(2* e2));141 CPPUNIT_ASSERT(!la2->isContained(2* e3));142 CPPUNIT_ASSERT(!la3->isContained(2* e1));143 144 CPPUNIT_ASSERT(!la1->isContained(-1* e2));145 CPPUNIT_ASSERT(!la2->isContained(-1* e3));146 CPPUNIT_ASSERT(!la3->isContained(-1* e1));136 CPPUNIT_ASSERT(!la1->isContained(unitVec[1])); 137 CPPUNIT_ASSERT(!la2->isContained(unitVec[2])); 138 CPPUNIT_ASSERT(!la3->isContained(unitVec[0])); 139 140 CPPUNIT_ASSERT(!la1->isContained(2*unitVec[1])); 141 CPPUNIT_ASSERT(!la2->isContained(2*unitVec[2])); 142 CPPUNIT_ASSERT(!la3->isContained(2*unitVec[0])); 143 144 CPPUNIT_ASSERT(!la1->isContained(-1*unitVec[1])); 145 CPPUNIT_ASSERT(!la2->isContained(-1*unitVec[2])); 146 CPPUNIT_ASSERT(!la3->isContained(-1*unitVec[0])); 147 147 148 148 // For the plane lines 149 CPPUNIT_ASSERT(lp1->isContained( e1));150 CPPUNIT_ASSERT(lp2->isContained( e2));151 CPPUNIT_ASSERT(lp3->isContained( e3));152 153 CPPUNIT_ASSERT(lp1->isContained( e2));154 CPPUNIT_ASSERT(lp2->isContained( e3));155 CPPUNIT_ASSERT(lp3->isContained( e1));156 157 CPPUNIT_ASSERT(lp1->isContained( e1+2*(e1-e2)));158 CPPUNIT_ASSERT(lp2->isContained( e2+2*(e2-e3)));159 CPPUNIT_ASSERT(lp3->isContained( e3+2*(e3-e1)));160 161 CPPUNIT_ASSERT(lp1->isContained( e1-2*(e1-e2)));162 CPPUNIT_ASSERT(lp2->isContained( e2-2*(e2-e3)));163 CPPUNIT_ASSERT(lp3->isContained( e3-2*(e3-e1)));149 CPPUNIT_ASSERT(lp1->isContained(unitVec[0])); 150 CPPUNIT_ASSERT(lp2->isContained(unitVec[1])); 151 CPPUNIT_ASSERT(lp3->isContained(unitVec[2])); 152 153 CPPUNIT_ASSERT(lp1->isContained(unitVec[1])); 154 CPPUNIT_ASSERT(lp2->isContained(unitVec[2])); 155 CPPUNIT_ASSERT(lp3->isContained(unitVec[0])); 156 157 CPPUNIT_ASSERT(lp1->isContained(unitVec[0]+2*(unitVec[0]-unitVec[1]))); 158 CPPUNIT_ASSERT(lp2->isContained(unitVec[1]+2*(unitVec[1]-unitVec[2]))); 159 CPPUNIT_ASSERT(lp3->isContained(unitVec[2]+2*(unitVec[2]-unitVec[0]))); 160 161 CPPUNIT_ASSERT(lp1->isContained(unitVec[0]-2*(unitVec[0]-unitVec[1]))); 162 CPPUNIT_ASSERT(lp2->isContained(unitVec[1]-2*(unitVec[1]-unitVec[2]))); 163 CPPUNIT_ASSERT(lp3->isContained(unitVec[2]-2*(unitVec[2]-unitVec[0]))); 164 164 } 165 165 … … 177 177 // axes and plane lines 178 178 fixture = la1->getIntersection(*lp1); 179 CPPUNIT_ASSERT_EQUAL(fixture, e1);179 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 180 180 fixture = la2->getIntersection(*lp2); 181 CPPUNIT_ASSERT_EQUAL(fixture, e2);181 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 182 182 fixture = la3->getIntersection(*lp3); 183 CPPUNIT_ASSERT_EQUAL(fixture, e3);183 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 184 184 185 185 fixture = la1->getIntersection(*lp3); 186 CPPUNIT_ASSERT_EQUAL(fixture, e1);186 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 187 187 fixture = la2->getIntersection(*lp1); 188 CPPUNIT_ASSERT_EQUAL(fixture, e2);188 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 189 189 fixture = la3->getIntersection(*lp2); 190 CPPUNIT_ASSERT_EQUAL(fixture, e3);190 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 191 191 192 192 // two plane lines 193 193 fixture = lp1->getIntersection(*lp2); 194 CPPUNIT_ASSERT_EQUAL(fixture, e2);194 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 195 195 fixture = lp2->getIntersection(*lp3); 196 CPPUNIT_ASSERT_EQUAL(fixture, e3);196 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 197 197 fixture = lp3->getIntersection(*lp1); 198 CPPUNIT_ASSERT_EQUAL(fixture, e1);198 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 199 199 200 200 // When we have two times the same line, we check if the point is on the line … … 242 242 243 243 // rotate vectors on the axis around their lines 244 fixture = la1->rotateVector( e1,1.);245 CPPUNIT_ASSERT_EQUAL(fixture, e1);246 fixture = la2->rotateVector( e2,1.);247 CPPUNIT_ASSERT_EQUAL(fixture, e2);248 fixture = la3->rotateVector( e3,1.);249 CPPUNIT_ASSERT_EQUAL(fixture, e3);250 251 fixture = la1->rotateVector( e1,2.);252 CPPUNIT_ASSERT_EQUAL(fixture, e1);253 fixture = la2->rotateVector( e2,2.);254 CPPUNIT_ASSERT_EQUAL(fixture, e2);255 fixture = la3->rotateVector( e3,2.);256 CPPUNIT_ASSERT_EQUAL(fixture, e3);244 fixture = la1->rotateVector(unitVec[0],1.); 245 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 246 fixture = la2->rotateVector(unitVec[1],1.); 247 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 248 fixture = la3->rotateVector(unitVec[2],1.); 249 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 250 251 fixture = la1->rotateVector(unitVec[0],2.); 252 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 253 fixture = la2->rotateVector(unitVec[1],2.); 254 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 255 fixture = la3->rotateVector(unitVec[2],2.); 256 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 257 257 258 258 // more vectors on the axis 259 fixture = la1->rotateVector(2* e1,1.);260 CPPUNIT_ASSERT_EQUAL(fixture,2* e1);261 fixture = la2->rotateVector(2* e2,1.);262 CPPUNIT_ASSERT_EQUAL(fixture,2* e2);263 fixture = la3->rotateVector(2* e3,1.);264 CPPUNIT_ASSERT_EQUAL(fixture,2* e3);265 266 fixture = la1->rotateVector(2* e1,2.);267 CPPUNIT_ASSERT_EQUAL(fixture,2* e1);268 fixture = la2->rotateVector(2* e2,2.);269 CPPUNIT_ASSERT_EQUAL(fixture,2* e2);270 fixture = la3->rotateVector(2* e3,2.);271 CPPUNIT_ASSERT_EQUAL(fixture,2* e3);259 fixture = la1->rotateVector(2*unitVec[0],1.); 260 CPPUNIT_ASSERT_EQUAL(fixture,2*unitVec[0]); 261 fixture = la2->rotateVector(2*unitVec[1],1.); 262 CPPUNIT_ASSERT_EQUAL(fixture,2*unitVec[1]); 263 fixture = la3->rotateVector(2*unitVec[2],1.); 264 CPPUNIT_ASSERT_EQUAL(fixture,2*unitVec[2]); 265 266 fixture = la1->rotateVector(2*unitVec[0],2.); 267 CPPUNIT_ASSERT_EQUAL(fixture,2*unitVec[0]); 268 fixture = la2->rotateVector(2*unitVec[1],2.); 269 CPPUNIT_ASSERT_EQUAL(fixture,2*unitVec[1]); 270 fixture = la3->rotateVector(2*unitVec[2],2.); 271 CPPUNIT_ASSERT_EQUAL(fixture,2*unitVec[2]); 272 272 273 273 // negative factors 274 fixture = la1->rotateVector(-1* e1,1.);275 CPPUNIT_ASSERT_EQUAL(fixture,-1* e1);276 fixture = la2->rotateVector(-1* e2,1.);277 CPPUNIT_ASSERT_EQUAL(fixture,-1* e2);278 fixture = la3->rotateVector(-1* e3,1.);279 CPPUNIT_ASSERT_EQUAL(fixture,-1* e3);280 281 fixture = la1->rotateVector(-1* e1,2.);282 CPPUNIT_ASSERT_EQUAL(fixture,-1* e1);283 fixture = la2->rotateVector(-1* e2,2.);284 CPPUNIT_ASSERT_EQUAL(fixture,-1* e2);285 fixture = la3->rotateVector(-1* e3,2.);286 CPPUNIT_ASSERT_EQUAL(fixture,-1* e3);274 fixture = la1->rotateVector(-1*unitVec[0],1.); 275 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[0]); 276 fixture = la2->rotateVector(-1*unitVec[1],1.); 277 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[1]); 278 fixture = la3->rotateVector(-1*unitVec[2],1.); 279 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[2]); 280 281 fixture = la1->rotateVector(-1*unitVec[0],2.); 282 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[0]); 283 fixture = la2->rotateVector(-1*unitVec[1],2.); 284 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[1]); 285 fixture = la3->rotateVector(-1*unitVec[2],2.); 286 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[2]); 287 287 288 288 289 289 290 290 // now the real rotations 291 // e2 around e1292 fixture = la1->rotateVector( e2,0);293 CPPUNIT_ASSERT_EQUAL(fixture, e2);294 fixture = la1->rotateVector( e2,1./2.*M_PI);295 CPPUNIT_ASSERT_EQUAL(fixture,-1* e3);296 fixture = la1->rotateVector( e2,M_PI);297 CPPUNIT_ASSERT_EQUAL(fixture,-1* e2);298 fixture = la1->rotateVector( e2,2*M_PI);299 CPPUNIT_ASSERT_EQUAL(fixture, e2);300 301 // e3 around e2302 fixture = la2->rotateVector( e3,0);303 CPPUNIT_ASSERT_EQUAL(fixture, e3);304 fixture = la2->rotateVector( e3,1./2.*M_PI);305 CPPUNIT_ASSERT_EQUAL(fixture,-1* e1);306 fixture = la2->rotateVector( e3,M_PI);307 CPPUNIT_ASSERT_EQUAL(fixture,-1* e3);308 fixture = la2->rotateVector( e3,2*M_PI);309 CPPUNIT_ASSERT_EQUAL(fixture, e3);310 311 // e1 around e3312 fixture = la3->rotateVector( e1,0);313 CPPUNIT_ASSERT_EQUAL(fixture, e1);314 fixture = la3->rotateVector( e1,1./2.*M_PI);315 CPPUNIT_ASSERT_EQUAL(fixture,-1* e2);316 fixture = la3->rotateVector( e1,M_PI);317 CPPUNIT_ASSERT_EQUAL(fixture,-1* e1);318 fixture = la3->rotateVector( e1,2*M_PI);319 CPPUNIT_ASSERT_EQUAL(fixture, e1);291 // unitVec[1] around unitVec[0] 292 fixture = la1->rotateVector(unitVec[1],0); 293 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 294 fixture = la1->rotateVector(unitVec[1],1./2.*M_PI); 295 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[2]); 296 fixture = la1->rotateVector(unitVec[1],M_PI); 297 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[1]); 298 fixture = la1->rotateVector(unitVec[1],2*M_PI); 299 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 300 301 // unitVec[2] around unitVec[1] 302 fixture = la2->rotateVector(unitVec[2],0); 303 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 304 fixture = la2->rotateVector(unitVec[2],1./2.*M_PI); 305 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[0]); 306 fixture = la2->rotateVector(unitVec[2],M_PI); 307 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[2]); 308 fixture = la2->rotateVector(unitVec[2],2*M_PI); 309 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 310 311 // unitVec[0] around unitVec[2] 312 fixture = la3->rotateVector(unitVec[0],0); 313 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 314 fixture = la3->rotateVector(unitVec[0],1./2.*M_PI); 315 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[1]); 316 fixture = la3->rotateVector(unitVec[0],M_PI); 317 CPPUNIT_ASSERT_EQUAL(fixture,-1*unitVec[0]); 318 fixture = la3->rotateVector(unitVec[0],2*M_PI); 319 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 320 320 321 321 … … 323 323 324 324 // Vectors on the line 325 fixture = lp1->rotateVector( e1,1.);326 CPPUNIT_ASSERT_EQUAL(fixture, e1);327 fixture = lp1->rotateVector( e2,1.);328 CPPUNIT_ASSERT_EQUAL(fixture, e2);329 330 fixture = lp2->rotateVector( e2,1.);331 CPPUNIT_ASSERT_EQUAL(fixture, e2);332 fixture = lp2->rotateVector( e3,1.);333 CPPUNIT_ASSERT_EQUAL(fixture, e3);334 335 fixture = lp3->rotateVector( e3,1.);336 CPPUNIT_ASSERT_EQUAL(fixture, e3);337 fixture = lp3->rotateVector( e1,1.);338 CPPUNIT_ASSERT_EQUAL(fixture, e1);325 fixture = lp1->rotateVector(unitVec[0],1.); 326 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 327 fixture = lp1->rotateVector(unitVec[1],1.); 328 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 329 330 fixture = lp2->rotateVector(unitVec[1],1.); 331 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[1]); 332 fixture = lp2->rotateVector(unitVec[2],1.); 333 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 334 335 fixture = lp3->rotateVector(unitVec[2],1.); 336 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[2]); 337 fixture = lp3->rotateVector(unitVec[0],1.); 338 CPPUNIT_ASSERT_EQUAL(fixture,unitVec[0]); 339 339 340 340 // the real stuff … … 358 358 std::vector<Vector> res = la1->getSphereIntersections(); 359 359 CPPUNIT_ASSERT_EQUAL(res.size(),(size_t)2); 360 CPPUNIT_ASSERT(testDirection(res[0], e1));361 CPPUNIT_ASSERT(testDirection(res[1], e1));360 CPPUNIT_ASSERT(testDirection(res[0],unitVec[0])); 361 CPPUNIT_ASSERT(testDirection(res[1],unitVec[0])); 362 362 CPPUNIT_ASSERT(res[0]!=res[1]); 363 363 } … … 366 366 std::vector<Vector> res = la2->getSphereIntersections(); 367 367 CPPUNIT_ASSERT_EQUAL(res.size(),(size_t)2); 368 CPPUNIT_ASSERT(testDirection(res[0], e2));369 CPPUNIT_ASSERT(testDirection(res[1], e2));368 CPPUNIT_ASSERT(testDirection(res[0],unitVec[1])); 369 CPPUNIT_ASSERT(testDirection(res[1],unitVec[1])); 370 370 CPPUNIT_ASSERT(res[0]!=res[1]); 371 371 } … … 374 374 std::vector<Vector> res = la3->getSphereIntersections(); 375 375 CPPUNIT_ASSERT_EQUAL(res.size(),(size_t)2); 376 CPPUNIT_ASSERT(testDirection(res[0], e3));377 CPPUNIT_ASSERT(testDirection(res[1], e3));376 CPPUNIT_ASSERT(testDirection(res[0],unitVec[2])); 377 CPPUNIT_ASSERT(testDirection(res[1],unitVec[2])); 378 378 CPPUNIT_ASSERT(res[0]!=res[1]); 379 379 } … … 382 382 std::vector<Vector> res = lp1->getSphereIntersections(); 383 383 CPPUNIT_ASSERT_EQUAL(res.size(),(size_t)2); 384 CPPUNIT_ASSERT((res[0]== e1) || (res[0]==e2));385 CPPUNIT_ASSERT((res[1]== e1) || (res[1]==e2));384 CPPUNIT_ASSERT((res[0]==unitVec[0]) || (res[0]==unitVec[1])); 385 CPPUNIT_ASSERT((res[1]==unitVec[0]) || (res[1]==unitVec[1])); 386 386 CPPUNIT_ASSERT(res[0]!=res[1]); 387 387 } … … 390 390 std::vector<Vector> res = lp2->getSphereIntersections(); 391 391 CPPUNIT_ASSERT_EQUAL(res.size(),(size_t)2); 392 CPPUNIT_ASSERT((res[0]== e2) || (res[0]==e3));393 CPPUNIT_ASSERT((res[1]== e2) || (res[1]==e3));392 CPPUNIT_ASSERT((res[0]==unitVec[1]) || (res[0]==unitVec[2])); 393 CPPUNIT_ASSERT((res[1]==unitVec[1]) || (res[1]==unitVec[2])); 394 394 CPPUNIT_ASSERT(res[0]!=res[1]); 395 395 } … … 398 398 std::vector<Vector> res = lp3->getSphereIntersections(); 399 399 CPPUNIT_ASSERT_EQUAL(res.size(),(size_t)2); 400 CPPUNIT_ASSERT((res[0]== e3) || (res[0]==e1));401 CPPUNIT_ASSERT((res[1]== e3) || (res[1]==e1));402 CPPUNIT_ASSERT(res[0]!=res[1]); 403 } 404 } 400 CPPUNIT_ASSERT((res[0]==unitVec[2]) || (res[0]==unitVec[0])); 401 CPPUNIT_ASSERT((res[1]==unitVec[2]) || (res[1]==unitVec[0])); 402 CPPUNIT_ASSERT(res[0]!=res[1]); 403 } 404 }
Note:
See TracChangeset
for help on using the changeset viewer.