src/vamos/geometry/test_Three_Vector.cc

Go to the documentation of this file.
00001 #include <cppunit/TestCaller.h>
00002 #include <cppunit/TestSuite.h>
00003 #include <cppunit/ui/text/TestRunner.h>
00004 #include <cppunit/extensions/HelperMacros.h>
00005 #include <cppunit/extensions/TestFactoryRegistry.h>
00006 
00007 #include "../include/vamos/geometry/Three_Vector.h"
00008 
00009 using namespace Vamos_Geometry;
00010 
00011 class Null_Vector : public CppUnit::TestFixture {
00012   CPPUNIT_TEST_SUITE (Null_Vector);
00013   CPPUNIT_TEST (Zero_Length);
00014   CPPUNIT_TEST_SUITE_END ();
00015 
00016   Three_Vector m_Vector;
00017 
00018 public:
00019   void setUp () {}
00020   void tearDown () {}
00021 
00022   void Zero_Length () {
00023     CPPUNIT_ASSERT (m_Vector.abs () == 0.0);
00024   }
00025 };
00026 
00027 class Unit_Vectors : public CppUnit::TestFixture {
00028   CPPUNIT_TEST_SUITE (Unit_Vectors);
00029   CPPUNIT_TEST (dot_products);
00030   CPPUNIT_TEST (cross_products);
00031   CPPUNIT_TEST (add);
00032   CPPUNIT_TEST (subtract);
00033   CPPUNIT_TEST_SUITE_END ();
00034 
00035   Three_Vector* mp_x;
00036   Three_Vector* mp_y;
00037   Three_Vector* mp_z;
00038 
00039 public:
00040   void setUp () {
00041     mp_x = new Three_Vector (1.0, 0.0, 0.0);
00042     mp_y = new Three_Vector (0.0, 1.0, 0.0);
00043     mp_z = new Three_Vector (0.0, 0.0, 1.0);
00044   }
00045   void tearDown () {
00046     delete mp_x;
00047     delete mp_y;
00048     delete mp_z;
00049   }
00050 
00051   void dot_products () {
00052     CPPUNIT_ASSERT (mp_x->dot (*mp_y) == 0.0); 
00053     CPPUNIT_ASSERT (mp_x->dot (*mp_z) == 0.0); 
00054     CPPUNIT_ASSERT (mp_y->dot (*mp_x) == 0.0); 
00055     CPPUNIT_ASSERT (mp_y->dot (*mp_z) == 0.0); 
00056     CPPUNIT_ASSERT (mp_z->dot (*mp_x) == 0.0); 
00057     CPPUNIT_ASSERT (mp_z->dot (*mp_y) == 0.0); 
00058   }
00059   void cross_products () {
00060     CPPUNIT_ASSERT (mp_x->cross (*mp_y) == *mp_z);
00061     CPPUNIT_ASSERT (mp_x->cross (*mp_z) == -*mp_y);
00062     CPPUNIT_ASSERT (mp_y->cross (*mp_x) == -*mp_z);
00063     CPPUNIT_ASSERT (mp_y->cross (*mp_z) == *mp_x);
00064     CPPUNIT_ASSERT (mp_z->cross (*mp_x) == *mp_y);
00065     CPPUNIT_ASSERT (mp_z->cross (*mp_y) == -*mp_x);
00066   }
00067   void add () {
00068     CPPUNIT_ASSERT (*mp_x + *mp_y + *mp_z == Three_Vector (1.0, 1.0, 1.0));
00069   }
00070   void subtract () {
00071     CPPUNIT_ASSERT (Three_Vector (1.0, 1.0, 1.0) - *mp_x - *mp_y == *mp_z);
00072   }
00073 };
00074 
00075 class One_Two_Three : public CppUnit::TestFixture
00076 {
00077   CPPUNIT_TEST_SUITE (One_Two_Three);
00078   CPPUNIT_TEST (Negate);
00079   CPPUNIT_TEST_SUITE_END ();
00080 
00081   Three_Vector* m_123;
00082 
00083 public:
00084   void setUp () {
00085     m_123 = new Three_Vector (1.0, 2.0, 3.0);
00086   }
00087   void tearDown ()
00088   {
00089     delete m_123;
00090   }
00091 
00092   void Negate ()
00093   {
00094     CPPUNIT_ASSERT (-*m_123 == Three_Vector (-1.0, -2.0, -3.0));
00095   }
00096 };
00097 
00098 CPPUNIT_TEST_SUITE_REGISTRATION (Null_Vector);
00099 CPPUNIT_TEST_SUITE_REGISTRATION (Unit_Vectors);
00100 CPPUNIT_TEST_SUITE_REGISTRATION (One_Two_Three);
00101 int main ()
00102 {
00103   CppUnit::TextUi::TestRunner runner;
00104   runner.addTest (CppUnit::TestFactoryRegistry::getRegistry ().makeTest ());
00105   return !runner.run ();
00106 }

Generated on Thu Oct 19 04:05:55 2006 by  doxygen 1.4.6