Ignore:
Timestamp:
Aug 28, 2010, 3:21:11 AM (15 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, Candidate_v1.7.0, 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:
a6e6b5, f8982c
Parents:
2ad482 (diff), fd4905 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Frederik Heber <heber@…> (08/28/10 03:17:48)
git-committer:
Frederik Heber <heber@…> (08/28/10 03:21:11)
Message:

Merge branch 'StructureRefactoring' into Shapes

Conflicts:

src/Box.cpp
src/Box.hpp
src/Descriptors/AtomShapeDescriptor.cpp
src/Descriptors/AtomShapeDescriptor.hpp
src/Descriptors/AtomShapeDescriptor_impl.hpp
src/LinearAlgebra/Line.cpp
src/LinearAlgebra/Line.hpp
src/LinearAlgebra/Matrix.cpp
src/LinearAlgebra/Matrix.hpp
src/Makefile.am
src/Shapes/BaseShapes.cpp
src/Shapes/BaseShapes_impl.hpp
src/Shapes/Shape.cpp
src/Shapes/Shape.hpp
src/Shapes/ShapeOps_impl.hpp
src/Shapes/Shape_impl.hpp
src/unittests/ShapeUnittest.cpp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/unittests/ShapeUnittest.cpp

    r2ad482 r6c438f  
     1/*
     2 * Project: MoleCuilder
     3 * Description: creates and alters molecular systems
     4 * Copyright (C)  2010 University of Bonn. All rights reserved.
     5 * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
     6 */
     7
    18/*
    29 * ShapeUnittest.cpp
     
    613 */
    714
     15// include config.h
     16#ifdef HAVE_CONFIG_H
     17#include <config.h>
     18#endif
     19
    820#include "ShapeUnittest.hpp"
    921
     
    1224#include <cppunit/ui/text/TestRunner.h>
    1325
     26#include <cmath>
     27
    1428#ifdef HAVE_TESTRUNNER
    1529#include "UnitTestMain.hpp"
    1630#endif /*HAVE_TESTRUNNER*/
    1731
     32#include "LinearAlgebra/Vector.hpp"
    1833#include "Shapes/Shape.hpp"
     34
    1935#include "Shapes/BaseShapes.hpp"
    20 #include "vector.cpp"
    2136
    2237// Registers the fixture into the 'registry'
     
    115130  CPPUNIT_ASSERT(Everywhere().isInside(v222));
    116131
    117   CPPUNIT_ASSERT(Cuboid().isInside(v000));
    118   CPPUNIT_ASSERT(Cuboid().isInside(v100));
    119   CPPUNIT_ASSERT(Cuboid().isInside(v200));
    120   CPPUNIT_ASSERT(Cuboid().isInside(v010));
    121   CPPUNIT_ASSERT(Cuboid().isInside(v110));
    122   CPPUNIT_ASSERT(Cuboid().isInside(v210));
    123   CPPUNIT_ASSERT(Cuboid().isInside(v020));
    124   CPPUNIT_ASSERT(Cuboid().isInside(v120));
    125   CPPUNIT_ASSERT(Cuboid().isInside(v220));
    126   CPPUNIT_ASSERT(Cuboid().isInside(v001));
    127   CPPUNIT_ASSERT(Cuboid().isInside(v101));
    128   CPPUNIT_ASSERT(Cuboid().isInside(v201));
    129   CPPUNIT_ASSERT(Cuboid().isInside(v011));
    130   CPPUNIT_ASSERT(Cuboid().isInside(v111));
    131   CPPUNIT_ASSERT(Cuboid().isInside(v211));
    132   CPPUNIT_ASSERT(Cuboid().isInside(v021));
    133   CPPUNIT_ASSERT(Cuboid().isInside(v121));
    134   CPPUNIT_ASSERT(Cuboid().isInside(v221));
    135   CPPUNIT_ASSERT(Cuboid().isInside(v002));
    136   CPPUNIT_ASSERT(Cuboid().isInside(v102));
    137   CPPUNIT_ASSERT(Cuboid().isInside(v202));
    138   CPPUNIT_ASSERT(Cuboid().isInside(v012));
    139   CPPUNIT_ASSERT(Cuboid().isInside(v112));
    140   CPPUNIT_ASSERT(Cuboid().isInside(v212));
    141   CPPUNIT_ASSERT(Cuboid().isInside(v022));
    142   CPPUNIT_ASSERT(Cuboid().isInside(v122));
    143   CPPUNIT_ASSERT(Cuboid().isInside(v222));
    144 
    145   CPPUNIT_ASSERT(Sphere().isInside(v000));
    146   CPPUNIT_ASSERT(Sphere().isInside(v100));
    147   CPPUNIT_ASSERT(Sphere().isInside(v200));
    148   CPPUNIT_ASSERT(Sphere().isInside(v010));
    149   CPPUNIT_ASSERT(!Sphere().isInside(v110));
    150   CPPUNIT_ASSERT(!Sphere().isInside(v210));
    151   CPPUNIT_ASSERT(Sphere().isInside(v020));
    152   CPPUNIT_ASSERT(!Sphere().isInside(v120));
    153   CPPUNIT_ASSERT(!Sphere().isInside(v220));
    154   CPPUNIT_ASSERT(Sphere().isInside(v001));
    155   CPPUNIT_ASSERT(!Sphere().isInside(v101));
    156   CPPUNIT_ASSERT(!Sphere().isInside(v201));
    157   CPPUNIT_ASSERT(!Sphere().isInside(v011));
    158   CPPUNIT_ASSERT(!Sphere().isInside(v111));
    159   CPPUNIT_ASSERT(!Sphere().isInside(v211));
    160   CPPUNIT_ASSERT(!Sphere().isInside(v021));
    161   CPPUNIT_ASSERT(!Sphere().isInside(v121));
    162   CPPUNIT_ASSERT(!Sphere().isInside(v221));
    163   CPPUNIT_ASSERT(Sphere().isInside(v002));
    164   CPPUNIT_ASSERT(!Sphere().isInside(v102));
    165   CPPUNIT_ASSERT(!Sphere().isInside(v202));
    166   CPPUNIT_ASSERT(!Sphere().isInside(v012));
    167   CPPUNIT_ASSERT(!Sphere().isInside(v112));
    168   CPPUNIT_ASSERT(!Sphere().isInside(v212));
    169   CPPUNIT_ASSERT(!Sphere().isInside(v022));
    170   CPPUNIT_ASSERT(!Sphere().isInside(v122));
    171   CPPUNIT_ASSERT(!Sphere().isInside(v222));
     132  Shape s1 = Sphere();
     133
     134  CPPUNIT_ASSERT(s1.isInside(v000));
     135  CPPUNIT_ASSERT(s1.isInside(v100));
     136  CPPUNIT_ASSERT(s1.isInside(v200));
     137  CPPUNIT_ASSERT(s1.isInside(v010));
     138  CPPUNIT_ASSERT(!s1.isInside(v110));
     139  CPPUNIT_ASSERT(!s1.isInside(v210));
     140  CPPUNIT_ASSERT(s1.isInside(v020));
     141  CPPUNIT_ASSERT(!s1.isInside(v120));
     142  CPPUNIT_ASSERT(!s1.isInside(v220));
     143  CPPUNIT_ASSERT(s1.isInside(v001));
     144  CPPUNIT_ASSERT(!s1.isInside(v101));
     145  CPPUNIT_ASSERT(!s1.isInside(v201));
     146  CPPUNIT_ASSERT(!s1.isInside(v011));
     147  CPPUNIT_ASSERT(!s1.isInside(v111));
     148  CPPUNIT_ASSERT(!s1.isInside(v211));
     149  CPPUNIT_ASSERT(!s1.isInside(v021));
     150  CPPUNIT_ASSERT(!s1.isInside(v121));
     151  CPPUNIT_ASSERT(!s1.isInside(v221));
     152  CPPUNIT_ASSERT(s1.isInside(v002));
     153  CPPUNIT_ASSERT(!s1.isInside(v102));
     154  CPPUNIT_ASSERT(!s1.isInside(v202));
     155  CPPUNIT_ASSERT(!s1.isInside(v012));
     156  CPPUNIT_ASSERT(!s1.isInside(v112));
     157  CPPUNIT_ASSERT(!s1.isInside(v212));
     158  CPPUNIT_ASSERT(!s1.isInside(v022));
     159  CPPUNIT_ASSERT(!s1.isInside(v122));
     160  CPPUNIT_ASSERT(!s1.isInside(v222));
     161
     162  Shape s2 = Cuboid();
     163
     164  CPPUNIT_ASSERT(s2.isInside(v000));
     165  CPPUNIT_ASSERT(s2.isInside(v100));
     166  CPPUNIT_ASSERT(!s2.isInside(v200));
     167  CPPUNIT_ASSERT(s2.isInside(v010));
     168  CPPUNIT_ASSERT(s2.isInside(v110));
     169  CPPUNIT_ASSERT(!s2.isInside(v210));
     170  CPPUNIT_ASSERT(!s2.isInside(v020));
     171  CPPUNIT_ASSERT(!s2.isInside(v120));
     172  CPPUNIT_ASSERT(!s2.isInside(v220));
     173  CPPUNIT_ASSERT(s2.isInside(v001));
     174  CPPUNIT_ASSERT(s2.isInside(v101));
     175  CPPUNIT_ASSERT(!s2.isInside(v201));
     176  CPPUNIT_ASSERT(s2.isInside(v011));
     177  CPPUNIT_ASSERT(s2.isInside(v111));
     178  CPPUNIT_ASSERT(!s2.isInside(v211));
     179  CPPUNIT_ASSERT(!s2.isInside(v021));
     180  CPPUNIT_ASSERT(!s2.isInside(v121));
     181  CPPUNIT_ASSERT(!s2.isInside(v221));
     182  CPPUNIT_ASSERT(!s2.isInside(v002));
     183  CPPUNIT_ASSERT(!s2.isInside(v102));
     184  CPPUNIT_ASSERT(!s2.isInside(v202));
     185  CPPUNIT_ASSERT(!s2.isInside(v012));
     186  CPPUNIT_ASSERT(!s2.isInside(v112));
     187  CPPUNIT_ASSERT(!s2.isInside(v212));
     188  CPPUNIT_ASSERT(!s2.isInside(v022));
     189  CPPUNIT_ASSERT(!s2.isInside(v122));
     190  CPPUNIT_ASSERT(!s2.isInside(v222));
    172191}
    173192
     
    201220  CPPUNIT_ASSERT(!Nowhere().isOnSurface(v222));
    202221
    203   CPPUNIT_ASSERT(!Cuboid().isOnSurface(v000));
     222  CPPUNIT_ASSERT(Cuboid().isOnSurface(v000));
    204223  CPPUNIT_ASSERT(Cuboid().isOnSurface(v100));
    205   CPPUNIT_ASSERT(Cuboid().isOnSurface(v200));
     224  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v200));
    206225  CPPUNIT_ASSERT(Cuboid().isOnSurface(v010));
    207226  CPPUNIT_ASSERT(Cuboid().isOnSurface(v110));
    208   CPPUNIT_ASSERT(Cuboid().isOnSurface(v210));
    209   CPPUNIT_ASSERT(Cuboid().isOnSurface(v020));
    210   CPPUNIT_ASSERT(Cuboid().isOnSurface(v120));
    211   CPPUNIT_ASSERT(Cuboid().isOnSurface(v220));
     227  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v210));
     228  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v020));
     229  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v120));
     230  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v220));
    212231  CPPUNIT_ASSERT(Cuboid().isOnSurface(v001));
    213232  CPPUNIT_ASSERT(Cuboid().isOnSurface(v101));
    214   CPPUNIT_ASSERT(Cuboid().isOnSurface(v201));
     233  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v201));
    215234  CPPUNIT_ASSERT(Cuboid().isOnSurface(v011));
    216235  CPPUNIT_ASSERT(Cuboid().isOnSurface(v111));
    217   CPPUNIT_ASSERT(Cuboid().isOnSurface(v211));
    218   CPPUNIT_ASSERT(Cuboid().isOnSurface(v021));
    219   CPPUNIT_ASSERT(Cuboid().isOnSurface(v121));
    220   CPPUNIT_ASSERT(Cuboid().isOnSurface(v221));
    221   CPPUNIT_ASSERT(Cuboid().isOnSurface(v002));
    222   CPPUNIT_ASSERT(Cuboid().isOnSurface(v102));
    223   CPPUNIT_ASSERT(Cuboid().isOnSurface(v202));
    224   CPPUNIT_ASSERT(Cuboid().isOnSurface(v012));
    225   CPPUNIT_ASSERT(Cuboid().isOnSurface(v112));
    226   CPPUNIT_ASSERT(Cuboid().isOnSurface(v212));
    227   CPPUNIT_ASSERT(Cuboid().isOnSurface(v022));
    228   CPPUNIT_ASSERT(Cuboid().isOnSurface(v122));
    229   CPPUNIT_ASSERT(Cuboid().isOnSurface(v222));
     236  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v211));
     237  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v021));
     238  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v121));
     239  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v221));
     240  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v002));
     241  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v102));
     242  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v202));
     243  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v012));
     244  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v112));
     245  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v212));
     246  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v022));
     247  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v122));
     248  CPPUNIT_ASSERT(!Cuboid().isOnSurface(v222));
    230249
    231250  CPPUNIT_ASSERT(!Sphere().isOnSurface(v000));
     
    322341
    323342}
     343
    324344void ShapeUnittest::operatorTest(){
    325345  {
     
    504524
    505525  {
    506     Shape s1 = Sphere() && Cuboid(); // should be the same as Sphere
     526    Shape s1 = Sphere() && Cuboid(); // Sphere in upper place
    507527
    508528    CPPUNIT_ASSERT(s1.isInside(v000));
    509529    CPPUNIT_ASSERT(s1.isInside(v100));
    510     CPPUNIT_ASSERT(s1.isInside(v200));
     530    CPPUNIT_ASSERT(!s1.isInside(v200));
    511531    CPPUNIT_ASSERT(s1.isInside(v010));
    512532    CPPUNIT_ASSERT(!s1.isInside(v110));
    513533    CPPUNIT_ASSERT(!s1.isInside(v210));
    514     CPPUNIT_ASSERT(s1.isInside(v020));
     534    CPPUNIT_ASSERT(!s1.isInside(v020));
    515535    CPPUNIT_ASSERT(!s1.isInside(v120));
    516536    CPPUNIT_ASSERT(!s1.isInside(v220));
     
    524544    CPPUNIT_ASSERT(!s1.isInside(v121));
    525545    CPPUNIT_ASSERT(!s1.isInside(v221));
    526     CPPUNIT_ASSERT(s1.isInside(v002));
     546    CPPUNIT_ASSERT(!s1.isInside(v002));
    527547    CPPUNIT_ASSERT(!s1.isInside(v102));
    528548    CPPUNIT_ASSERT(!s1.isInside(v202));
     
    534554    CPPUNIT_ASSERT(!s1.isInside(v222));
    535555
    536     CPPUNIT_ASSERT(!s1.isOnSurface(v000));
     556    CPPUNIT_ASSERT(s1.isOnSurface(v000));
    537557    CPPUNIT_ASSERT(s1.isOnSurface(v100));
    538     CPPUNIT_ASSERT(s1.isOnSurface(v200));
     558    CPPUNIT_ASSERT(!s1.isOnSurface(v200));
    539559    CPPUNIT_ASSERT(s1.isOnSurface(v010));
    540560    CPPUNIT_ASSERT(!s1.isOnSurface(v110));
    541561    CPPUNIT_ASSERT(!s1.isOnSurface(v210));
    542     CPPUNIT_ASSERT(s1.isOnSurface(v020));
     562    CPPUNIT_ASSERT(!s1.isOnSurface(v020));
    543563    CPPUNIT_ASSERT(!s1.isOnSurface(v120));
    544564    CPPUNIT_ASSERT(!s1.isOnSurface(v220));
     
    552572    CPPUNIT_ASSERT(!s1.isOnSurface(v121));
    553573    CPPUNIT_ASSERT(!s1.isOnSurface(v221));
    554     CPPUNIT_ASSERT(s1.isOnSurface(v002));
     574    CPPUNIT_ASSERT(!s1.isOnSurface(v002));
    555575    CPPUNIT_ASSERT(!s1.isOnSurface(v102));
    556576    CPPUNIT_ASSERT(!s1.isOnSurface(v202));
     
    570590    CPPUNIT_ASSERT(s2.isInside(v010));
    571591    CPPUNIT_ASSERT(s2.isInside(v110));
    572     CPPUNIT_ASSERT(s2.isInside(v210));
     592    CPPUNIT_ASSERT(!s2.isInside(v210));
    573593    CPPUNIT_ASSERT(s2.isInside(v020));
    574     CPPUNIT_ASSERT(s2.isInside(v120));
    575     CPPUNIT_ASSERT(s2.isInside(v220));
     594    CPPUNIT_ASSERT(!s2.isInside(v120));
     595    CPPUNIT_ASSERT(!s2.isInside(v220));
    576596    CPPUNIT_ASSERT(s2.isInside(v001));
    577597    CPPUNIT_ASSERT(s2.isInside(v101));
    578     CPPUNIT_ASSERT(s2.isInside(v201));
     598    CPPUNIT_ASSERT(!s2.isInside(v201));
    579599    CPPUNIT_ASSERT(s2.isInside(v011));
    580600    CPPUNIT_ASSERT(s2.isInside(v111));
    581     CPPUNIT_ASSERT(s2.isInside(v211));
    582     CPPUNIT_ASSERT(s2.isInside(v021));
    583     CPPUNIT_ASSERT(s2.isInside(v121));
    584     CPPUNIT_ASSERT(s2.isInside(v221));
     601    CPPUNIT_ASSERT(!s2.isInside(v211));
     602    CPPUNIT_ASSERT(!s2.isInside(v021));
     603    CPPUNIT_ASSERT(!s2.isInside(v121));
     604    CPPUNIT_ASSERT(!s2.isInside(v221));
    585605    CPPUNIT_ASSERT(s2.isInside(v002));
    586     CPPUNIT_ASSERT(s2.isInside(v102));
    587     CPPUNIT_ASSERT(s2.isInside(v202));
    588     CPPUNIT_ASSERT(s2.isInside(v012));
    589     CPPUNIT_ASSERT(s2.isInside(v112));
    590     CPPUNIT_ASSERT(s2.isInside(v212));
    591     CPPUNIT_ASSERT(s2.isInside(v022));
    592     CPPUNIT_ASSERT(s2.isInside(v122));
    593     CPPUNIT_ASSERT(s2.isInside(v222));
     606    CPPUNIT_ASSERT(!s2.isInside(v102));
     607    CPPUNIT_ASSERT(!s2.isInside(v202));
     608    CPPUNIT_ASSERT(!s2.isInside(v012));
     609    CPPUNIT_ASSERT(!s2.isInside(v112));
     610    CPPUNIT_ASSERT(!s2.isInside(v212));
     611    CPPUNIT_ASSERT(!s2.isInside(v022));
     612    CPPUNIT_ASSERT(!s2.isInside(v122));
     613    CPPUNIT_ASSERT(!s2.isInside(v222));
    594614
    595615    CPPUNIT_ASSERT(!s2.isOnSurface(v000));
     
    598618    CPPUNIT_ASSERT(s2.isOnSurface(v010));
    599619    CPPUNIT_ASSERT(s2.isOnSurface(v110));
    600     CPPUNIT_ASSERT(s2.isOnSurface(v210));
     620    CPPUNIT_ASSERT(!s2.isOnSurface(v210));
    601621    CPPUNIT_ASSERT(s2.isOnSurface(v020));
    602     CPPUNIT_ASSERT(s2.isOnSurface(v120));
    603     CPPUNIT_ASSERT(s2.isOnSurface(v220));
     622    CPPUNIT_ASSERT(!s2.isOnSurface(v120));
     623    CPPUNIT_ASSERT(!s2.isOnSurface(v220));
    604624    CPPUNIT_ASSERT(s2.isOnSurface(v001));
    605625    CPPUNIT_ASSERT(s2.isOnSurface(v101));
    606     CPPUNIT_ASSERT(s2.isOnSurface(v201));
     626    CPPUNIT_ASSERT(!s2.isOnSurface(v201));
    607627    CPPUNIT_ASSERT(s2.isOnSurface(v011));
    608628    CPPUNIT_ASSERT(s2.isOnSurface(v111));
    609     CPPUNIT_ASSERT(s2.isOnSurface(v211));
    610     CPPUNIT_ASSERT(s2.isOnSurface(v021));
    611     CPPUNIT_ASSERT(s2.isOnSurface(v121));
    612     CPPUNIT_ASSERT(s2.isOnSurface(v221));
     629    CPPUNIT_ASSERT(!s2.isOnSurface(v211));
     630    CPPUNIT_ASSERT(!s2.isOnSurface(v021));
     631    CPPUNIT_ASSERT(!s2.isOnSurface(v121));
     632    CPPUNIT_ASSERT(!s2.isOnSurface(v221));
    613633    CPPUNIT_ASSERT(s2.isOnSurface(v002));
    614     CPPUNIT_ASSERT(s2.isOnSurface(v102));
    615     CPPUNIT_ASSERT(s2.isOnSurface(v202));
    616     CPPUNIT_ASSERT(s2.isOnSurface(v012));
    617     CPPUNIT_ASSERT(s2.isOnSurface(v112));
    618     CPPUNIT_ASSERT(s2.isOnSurface(v212));
    619     CPPUNIT_ASSERT(s2.isOnSurface(v022));
    620     CPPUNIT_ASSERT(s2.isOnSurface(v122));
    621     CPPUNIT_ASSERT(s2.isOnSurface(v222));
     634    CPPUNIT_ASSERT(!s2.isOnSurface(v102));
     635    CPPUNIT_ASSERT(!s2.isOnSurface(v202));
     636    CPPUNIT_ASSERT(!s2.isOnSurface(v012));
     637    CPPUNIT_ASSERT(!s2.isOnSurface(v112));
     638    CPPUNIT_ASSERT(!s2.isOnSurface(v212));
     639    CPPUNIT_ASSERT(!s2.isOnSurface(v022));
     640    CPPUNIT_ASSERT(!s2.isOnSurface(v122));
     641    CPPUNIT_ASSERT(!s2.isOnSurface(v222));
    622642  }
    623643
    624644}
     645
     646void ShapeUnittest::PointsOnSurfaceTest(){
     647  Shape s = Sphere();
     648  const size_t N = 200;
     649  std::vector<Vector> PointsOnSurface = s.getHomogeneousPointsOnSurface(N);
     650  for (std::vector<Vector>::const_iterator iter = PointsOnSurface.begin(); iter != PointsOnSurface.end(); ++iter) {
     651    CPPUNIT_ASSERT(fabs(1. - (*iter).NormSquared()) < MYEPSILON);
     652  }
     653  CPPUNIT_ASSERT_EQUAL(N, PointsOnSurface.size());
     654}
     655
Note: See TracChangeset for help on using the changeset viewer.