Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision 0936451cc73a5f07a9a4d57aa947d09abf3898a4)
+++ src/Makefile.am	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -1,12 +1,17 @@
-SOURCE = atom.cpp bond.cpp boundary.cpp builder.cpp config.cpp element.cpp ellipsoid.cpp helpers.cpp linkedcell.cpp moleculelist.cpp molecules.cpp parser.cpp periodentafel.cpp tesselation.cpp tesselationhelpers.cpp vector.cpp verbose.cpp
-HEADER = atom.hpp bond.hpp boundary.hpp config.hpp defs.hpp element.hpp ellipsoid.hpp helpers.hpp linkedcell.hpp molecules.hpp parser.hpp periodentafel.hpp stackclass.hpp tesselation.hpp tesselationhelpers.hpp vector.hpp verbose.hpp
+SOURCE = atom.cpp bond.cpp boundary.cpp config.cpp element.cpp ellipsoid.cpp helpers.cpp leastsquaremin.cpp linkedcell.cpp moleculelist.cpp molecules.cpp parser.cpp periodentafel.cpp tesselation.cpp tesselationhelpers.cpp vector.cpp verbose.cpp
+HEADER = atom.hpp bond.hpp boundary.hpp config.hpp defs.hpp element.hpp ellipsoid.hpp helpers.hpp leastsquaremin.hpp linkedcell.hpp molecules.hpp parser.hpp periodentafel.hpp stackclass.hpp tesselation.hpp tesselationhelpers.hpp vector.hpp verbose.hpp
 
-bin_PROGRAMS = molecuilder joiner analyzer
+bin_PROGRAMS = molecuilder joiner analyzer VectorUnitTest
 molecuilderdir = ${bindir}
 molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db
-molecuilder_SOURCES =  ${SOURCE} ${HEADER}
+molecuilder_SOURCES =  ${SOURCE} builder.cpp  ${HEADER}
 joiner_SOURCES = joiner.cpp datacreator.cpp element.cpp helpers.cpp periodentafel.cpp parser.cpp verbose.cpp datacreator.hpp helpers.hpp parser.hpp periodentafel.hpp 
 analyzer_SOURCES = analyzer.cpp datacreator.cpp element.cpp helpers.cpp periodentafel.cpp parser.cpp verbose.cpp helpers.hpp periodentafel.hpp parser.hpp datacreator.hpp 
 
+TESTS = VectorUnitTest
+check_PROGRAMS = $(TESTS)
+VectorUnitTest_SOURCES = defs.hpp helpers.cpp helpers.hpp leastsquaremin.cpp leastsquaremin.hpp vectorunittest.cpp vectorunittest.hpp vector.cpp vector.hpp verbose.cpp verbose.hpp 
+VectorUnitTest_CXXFLAGS = $(CPPUNIT_CFLAGS)
+VectorUnitTest_LDFLAGS = $(CPPUNIT_LIBS) -ldl
 
 EXTRA_DIST = ${molecuilder_DATA}
Index: src/leastsquaremin.cpp
===================================================================
--- src/leastsquaremin.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
+++ src/leastsquaremin.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -0,0 +1,29 @@
+/*
+ * leastsquaremin.cpp
+ *
+ *  Created on: Aug 18, 2009
+ *      Author: heber
+ */
+
+#include "leastsquaremin.hpp"
+
+/** Determines sum of squared distances of \a X to all \a **vectors.
+ * \param *x reference vector
+ * \param *params
+ * \return sum of square distances
+ */
+double LSQ (const gsl_vector * x, void * params)
+{
+  double sum = 0.;
+  struct LSQ_params *par = (struct LSQ_params *)params;
+  Vector **vectors = par->vectors;
+  int num = par->num;
+
+  for (int i=num;i--;) {
+    for(int j=NDIM;j--;)
+      sum += (gsl_vector_get(x,j) - (vectors[i])->x[j])*(gsl_vector_get(x,j) - (vectors[i])->x[j]);
+  }
+
+  return sum;
+};
+
Index: src/leastsquaremin.hpp
===================================================================
--- src/leastsquaremin.hpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
+++ src/leastsquaremin.hpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -0,0 +1,35 @@
+/*
+ * leastsquaremin.hpp
+ *
+ *  Created on: Aug 18, 2009
+ *      Author: heber
+ */
+
+#ifndef LEASTSQUAREMIN_HPP_
+#define LEASTSQUAREMIN_HPP_
+
+#include "vector.hpp"
+
+class element;
+class molecule;
+
+/** Parameter structure for least square minimsation.
+ */
+struct LSQ_params {
+  Vector **vectors;
+  int num;
+};
+
+double LSQ(const gsl_vector * x, void * params);
+
+/** Parameter structure for least square minimsation.
+ */
+struct lsq_params {
+  gsl_vector *x;
+  const molecule *mol;
+  element *type;
+};
+
+
+
+#endif /* LEASTSQUAREMIN_HPP_ */
Index: src/molecules.cpp
===================================================================
--- src/molecules.cpp	(revision 0936451cc73a5f07a9a4d57aa947d09abf3898a4)
+++ src/molecules.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -7,26 +7,4 @@
 #include "config.hpp"
 #include "molecules.hpp"
-
-/************************************* Other Functions *************************************/
-
-/** Determines sum of squared distances of \a X to all \a **vectors.
- * \param *x reference vector
- * \param *params
- * \return sum of square distances
- */
-double LSQ (const gsl_vector * x, void * params)
-{
-  double sum = 0.;
-  struct LSQ_params *par = (struct LSQ_params *)params;
-  Vector **vectors = par->vectors;
-  int num = par->num;
-
-  for (int i=num;i--;) {
-    for(int j=NDIM;j--;)
-      sum += (gsl_vector_get(x,j) - (vectors[i])->x[j])*(gsl_vector_get(x,j) - (vectors[i])->x[j]);
-  }
-
-  return sum;
-};
 
 /************************************* Functions for class molecule *********************************/
Index: src/molecules.hpp
===================================================================
--- src/molecules.hpp	(revision 0936451cc73a5f07a9a4d57aa947d09abf3898a4)
+++ src/molecules.hpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -28,4 +28,5 @@
 #include "bond.hpp"
 #include "element.hpp"
+#include "leastsquaremin.hpp"
 #include "linkedcell.hpp"
 #include "parser.hpp"
@@ -83,25 +84,4 @@
 
 
-// some algebraic matrix stuff
-#define RDET3(a) ((a)[0]*(a)[4]*(a)[8] + (a)[3]*(a)[7]*(a)[2] + (a)[6]*(a)[1]*(a)[5] - (a)[2]*(a)[4]*(a)[6] - (a)[5]*(a)[7]*(a)[0] - (a)[8]*(a)[1]*(a)[3])  //!< hard-coded determinant of a 3x3 matrix
-#define RDET2(a0,a1,a2,a3) ((a0)*(a3)-(a1)*(a2))                      //!< hard-coded determinant of a 2x2 matrix
-
-
-/** Parameter structure for least square minimsation.
- */
-struct LSQ_params {
-  Vector **vectors;
-  int num;
-};
-
-double LSQ(const gsl_vector * x, void * params);
-
-/** Parameter structure for least square minimsation.
- */
-struct lsq_params {
-  gsl_vector *x;
-  const molecule *mol;
-  element *type;
-};
 
 #define MaxThermostats 6      //!< maximum number of thermostat entries in Ions#ThermostatNames and Ions#ThermostatImplemented 
Index: src/tesselation.cpp
===================================================================
--- src/tesselation.cpp	(revision 0936451cc73a5f07a9a4d57aa947d09abf3898a4)
+++ src/tesselation.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -2938,9 +2938,9 @@
 double getAngle(const Vector &point, const Vector &reference, const Vector OrthogonalVector)
 {
-  if (reference.IsNull())
+  if (reference.IsZero())
     return M_PI;
 
   // calculate both angles and correct with in-plane vector
-  if (point.IsNull())
+  if (point.IsZero())
     return M_PI;
   double phi = point.Angle(&reference);
Index: src/vector.cpp
===================================================================
--- src/vector.cpp	(revision 0936451cc73a5f07a9a4d57aa947d09abf3898a4)
+++ src/vector.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -6,6 +6,9 @@
 
 
-#include "molecules.hpp"
-
+#include "defs.hpp"
+#include "helpers.hpp"
+#include "leastsquaremin.hpp"
+#include "vector.hpp"
+#include "verbose.hpp"
 
 /************************************ Functions for class vector ************************************/
@@ -247,5 +250,5 @@
 
 /** Calculates the intersection of the two lines that are both on the same plane.
- * Note that we do not check whether they are on the same plane.
+ * Note that we do not check whether they are on the same plane. Vector is calculated with respecy to second line.
  * \param *out output stream for debugging
  * \param *Line1a first vector of first line
@@ -276,14 +279,8 @@
   *out << Verbose(3) << "INFO: Normal of plane is " << *Normal << "." << endl;
 
-  // create normal vector to one line
-  Line.CopyVector(Line1b);
-  Line.SubtractVector(Line1a);
-  LineNormal.MakeNormalVector(&Line, Normal);
-  *out << Verbose(3) << "INFO: Normal of first line is " << LineNormal << "." << endl;
-
   // check if lines are parallel
   helper.CopyVector(Line2b);
   helper.SubtractVector(Line2a);
-  if (fabs(helper.ScalarProduct(&LineNormal)) < MYEPSILON) {
+  if (fabs(helper.ScalarProduct(Normal)) < MYEPSILON) {
     *out << Verbose(1) << "Lines " << helper << " and " << Line << " are parallel, no cross point!" << endl;
     result = false;
@@ -291,8 +288,8 @@
     helper.CopyVector(Line2a);
     helper.SubtractVector(Line1a);
-    factor1 = helper.ScalarProduct(&LineNormal);
+    factor1 = helper.ScalarProduct(Normal);
     helper.CopyVector(Line2b);
     helper.SubtractVector(Line1a);
-    factor2 = helper.ScalarProduct(&LineNormal);
+    factor2 = helper.ScalarProduct(Normal);
     if (fabs(factor2) > MYEPSILON) {
       CopyVector(Line2a);
@@ -380,7 +377,15 @@
  * @return true - vector is zero, false - vector is not
  */
-bool Vector::IsNull() const
-{
-  return (fabs(x[0]+x[1]+x[2]) < MYEPSILON);
+bool Vector::IsZero() const
+{
+  return (fabs(x[0])+fabs(x[1])+fabs(x[2]) < MYEPSILON);
+};
+
+/** Checks whether vector has length of 1.
+ * @return true - vector is normalized, false - vector is not
+ */
+bool Vector::IsOne() const
+{
+  return (fabs(Norm() - 1.) < MYEPSILON);
 };
 
@@ -437,4 +442,16 @@
   return a;
 };
+
+/** Subtracts vector \a from this lhs component-wise.
+ * \param a base vector
+ * \param b vector components to add
+ * \return lhs - a
+ */
+Vector& operator-=(Vector& a, const Vector& b)
+{
+  a.SubtractVector(&b);
+  return a;
+};
+
 /** factor each component of \a a times a double \a m.
  * \param a base vector
@@ -461,10 +478,36 @@
 };
 
+/** Subtracts vector \a from \b component-wise.
+ * \param a first vector
+ * \param b second vector
+ * \return a - b
+ */
+Vector& operator-(const Vector& a, const Vector& b)
+{
+  Vector *x = new Vector;
+  x->CopyVector(&a);
+  x->SubtractVector(&b);
+  return *x;
+};
+
 /** Factors given vector \a a times \a m.
  * \param a vector
  * \param m factor
- * \return a + b
+ * \return m * a
  */
 Vector& operator*(const Vector& a, const double m)
+{
+  Vector *x = new Vector;
+  x->CopyVector(&a);
+  x->Scale(m);
+  return *x;
+};
+
+/** Factors given vector \a a times \a m.
+ * \param m factor
+ * \param a vector
+ * \return m * a
+ */
+Vector& operator*(const double m, const Vector& a )
 {
   Vector *x = new Vector;
Index: src/vector.hpp
===================================================================
--- src/vector.hpp	(revision 0936451cc73a5f07a9a4d57aa947d09abf3898a4)
+++ src/vector.hpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -5,4 +5,7 @@
 
 #include "helpers.hpp"
+
+#include <gsl/gsl_vector.h>
+#include <gsl/gsl_multimin.h>
 
 class Vector;
@@ -28,5 +31,6 @@
   double NormSquared() const;
   double Angle(const Vector *y) const;
-  bool IsNull() const;
+  bool IsZero() const;
+  bool IsOne() const;
 
   void AddVector(const Vector *y);
@@ -64,8 +68,17 @@
 
 ostream & operator << (ostream& ost, const Vector &m);
-//Vector& operator+=(Vector& a, const Vector& b);
-//Vector& operator*=(Vector& a, const double m);
-//Vector& operator*(const Vector& a, const double m);
-//Vector& operator+(const Vector& a, const Vector& b);
+Vector& operator+=(Vector& a, const Vector& b);
+Vector& operator-=(Vector& a, const Vector& b);
+Vector& operator*=(Vector& a, const double m);
+Vector& operator*(const Vector& a, const double m);
+Vector& operator*(const double m, const Vector& a);
+Vector& operator+(const Vector& a, const Vector& b);
+Vector& operator-(const Vector& a, const Vector& b);
+
+// some algebraic matrix stuff
+#define RDET3(a) ((a)[0]*(a)[4]*(a)[8] + (a)[3]*(a)[7]*(a)[2] + (a)[6]*(a)[1]*(a)[5] - (a)[2]*(a)[4]*(a)[6] - (a)[5]*(a)[7]*(a)[0] - (a)[8]*(a)[1]*(a)[3])  //!< hard-coded determinant of a 3x3 matrix
+#define RDET2(a0,a1,a2,a3) ((a0)*(a3)-(a1)*(a2))                      //!< hard-coded determinant of a 2x2 matrix
+
+
 
 #endif /*VECTOR_HPP_*/
Index: src/vectorunittest.cpp
===================================================================
--- src/vectorunittest.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
+++ src/vectorunittest.cpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -0,0 +1,187 @@
+/*
+ * unittest.cpp
+ *
+ *  Created on: Aug 17, 2009
+ *      Author: heber
+ */
+
+
+using namespace std;
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "vectorunittest.hpp"
+#include "vector.hpp"
+#include "defs.hpp"
+
+/********************************************** Test classes **************************************/
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( VectorTest );
+
+
+void VectorTest::setUp()
+{
+};
+
+
+void VectorTest::tearDown()
+{
+};
+
+/** UnitTest for Constructors and Vector::IsZero() and Vector::IsOne().
+ */
+void VectorTest::UnityTest()
+{
+  Vector zero(0.,0.,0.);
+  Vector unit(1.,0.,0.);
+  Vector otherunit(1./sqrt(2.),0.,1./sqrt(2.));
+  Vector notunit(0.,1.,1.);
+
+  // unity and zero tests
+  CPPUNIT_ASSERT_EQUAL( true, zero.IsZero() );
+  CPPUNIT_ASSERT_EQUAL( false, zero.IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, unit.IsZero() );
+  CPPUNIT_ASSERT_EQUAL( true, unit.IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, notunit.IsOne() );
+  CPPUNIT_ASSERT_EQUAL( true, otherunit.IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, otherunit.IsZero() );
+};
+
+/** UnitTest for Vector::CopyVector(), Vector::AddVector, Vector::SubtractVector() and Vector::Scale()/
+ */
+void VectorTest::SimpleAlgebraTest()
+{
+  Vector zero(0.,0.,0.);
+  Vector unit(1.,0.,0.);
+  Vector otherunit(0.,1.,0.);
+  Vector notunit(0.,1.,1.);
+  Vector helper;
+  double factor;
+
+  // summation and scaling
+  helper.CopyVector(&zero);
+  helper.AddVector(&unit);
+  CPPUNIT_ASSERT_EQUAL( true, helper.IsOne() );
+  helper.CopyVector(&zero);
+  helper.SubtractVector(&unit);
+  CPPUNIT_ASSERT_EQUAL( true, helper.IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, helper.IsZero() );
+  helper.CopyVector(&zero);
+  helper.AddVector(&zero);
+  CPPUNIT_ASSERT_EQUAL( true, helper.IsZero() );
+  helper.CopyVector(&notunit);
+  helper.SubtractVector(&otherunit);
+  CPPUNIT_ASSERT_EQUAL( true, helper.IsOne() );
+  helper.CopyVector(&unit);
+  helper.AddVector(&otherunit);
+  CPPUNIT_ASSERT_EQUAL( false, helper.IsOne() );
+  helper.CopyVector(&notunit);
+  helper.SubtractVector(&unit);
+  helper.SubtractVector(&otherunit);
+  CPPUNIT_ASSERT_EQUAL( false, helper.IsZero() );
+  helper.CopyVector(&unit);
+  helper.Scale(0.98);
+  CPPUNIT_ASSERT_EQUAL( false, helper.IsOne() );
+  helper.CopyVector(&unit);
+  helper.Scale(1.);
+  CPPUNIT_ASSERT_EQUAL( true, helper.IsOne() );
+  helper.CopyVector(&unit);
+  factor = 0.98;
+  helper.Scale(factor);
+  CPPUNIT_ASSERT_EQUAL( false, helper.IsOne() );
+  helper.CopyVector(&unit);
+  factor = 1.;
+  helper.Scale(factor);
+  CPPUNIT_ASSERT_EQUAL( true, helper.IsOne() );
+};
+
+
+/** UnitTest for operator versions of Vector::CopyVector(), Vector::AddVector, Vector::SubtractVector() and Vector::Scale().
+ */
+void VectorTest::OperatorAlgebraTest()
+{
+  Vector zero(0.,0.,0.);
+  Vector unit(1.,0.,0.);
+  Vector otherunit(0.,1.,0.);
+  Vector notunit(0.,1.,1.);
+
+  // summation and scaling
+  CPPUNIT_ASSERT_EQUAL( true, (zero+unit).IsOne() );
+  CPPUNIT_ASSERT_EQUAL( true, (zero-unit).IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, (zero-unit).IsZero() );
+  CPPUNIT_ASSERT_EQUAL( true, (zero+zero).IsZero() );
+  CPPUNIT_ASSERT_EQUAL( true, (notunit-otherunit).IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, (unit+otherunit).IsOne() );
+  CPPUNIT_ASSERT_EQUAL( false, (notunit-unit-otherunit).IsZero() );
+  CPPUNIT_ASSERT_EQUAL( false, (unit*0.98).IsOne() );
+  CPPUNIT_ASSERT_EQUAL( true, (unit*1.).IsOne() );
+};
+
+/** UnitTest for scalar products, norms, distances and angles.
+ */
+void VectorTest::EuclidianTest()
+{
+  Vector zero(0.,0.,0.);
+  Vector unit(1.,0.,0.);
+  Vector otherunit(0.,1.,0.);
+  Vector notunit(0.,1.,1.);
+  Vector two(2.,1.,0.);
+
+  // SCP
+  CPPUNIT_ASSERT_EQUAL( 0., zero.ScalarProduct(&zero) );
+  CPPUNIT_ASSERT_EQUAL( 0., zero.ScalarProduct(&unit) );
+  CPPUNIT_ASSERT_EQUAL( 0., zero.ScalarProduct(&otherunit) );
+  CPPUNIT_ASSERT_EQUAL( 0., zero.ScalarProduct(&notunit) );
+  CPPUNIT_ASSERT_EQUAL( 1., unit.ScalarProduct(&unit) );
+  CPPUNIT_ASSERT_EQUAL( 0., otherunit.ScalarProduct(&unit) );
+  CPPUNIT_ASSERT_EQUAL( 0., otherunit.ScalarProduct(&unit) );
+  CPPUNIT_ASSERT_EQUAL( 1., otherunit.ScalarProduct(&notunit) );
+  CPPUNIT_ASSERT_EQUAL( 2., two.ScalarProduct(&unit) );
+  CPPUNIT_ASSERT_EQUAL( 1., two.ScalarProduct(&otherunit) );
+  CPPUNIT_ASSERT_EQUAL( 1., two.ScalarProduct(&notunit) );
+
+  // Norms
+  CPPUNIT_ASSERT_EQUAL( 0., zero.Norm() );
+  CPPUNIT_ASSERT_EQUAL( 0., zero.NormSquared() );
+  CPPUNIT_ASSERT_EQUAL( 1., unit.Norm() );
+  CPPUNIT_ASSERT_EQUAL( 1., unit.NormSquared() );
+  CPPUNIT_ASSERT_EQUAL( 1., otherunit.Norm() );
+  CPPUNIT_ASSERT_EQUAL( 1., otherunit.NormSquared() );
+  CPPUNIT_ASSERT_EQUAL( 2., notunit.NormSquared() );
+  CPPUNIT_ASSERT_EQUAL( sqrt(2.), notunit.Norm() );
+
+  // distances
+  CPPUNIT_ASSERT_EQUAL( 1., zero.Distance(&unit) );
+  CPPUNIT_ASSERT_EQUAL( sqrt(2.), otherunit.Distance(&unit) );
+  CPPUNIT_ASSERT_EQUAL( sqrt(2.), zero.Distance(&notunit) );
+  CPPUNIT_ASSERT_EQUAL( 1., otherunit.Distance(&notunit) );
+  CPPUNIT_ASSERT_EQUAL( sqrt(5.), two.Distance(&notunit) );
+
+  // Angles
+  CPPUNIT_ASSERT_EQUAL( M_PI, zero.Angle(&unit) );
+};
+
+
+/********************************************** Main routine **************************************/
+
+int main(int argc, char **argv)
+{
+  // Get the top level suite from the registry
+  CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
+
+  // Adds the test to the list of test to run
+  CppUnit::TextUi::TestRunner runner;
+  runner.addTest( suite );
+
+  // Change the default outputter to a compiler error format outputter
+  runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(),
+                                                       std::cerr ) );
+  // Run the tests.
+  bool wasSucessful = runner.run();
+
+  // Return error code 1 if the one of test failed.
+  return wasSucessful ? 0 : 1;
+};
Index: src/vectorunittest.hpp
===================================================================
--- src/vectorunittest.hpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
+++ src/vectorunittest.hpp	(revision 54a746bf13a012b2b59a27439528a582d34912f8)
@@ -0,0 +1,36 @@
+/*
+ * cppunuit.hpp
+ *
+ *  Created on: Aug 17, 2009
+ *      Author: heber
+ */
+
+#ifndef VECTORUNITTEST_HPP_
+#define VECTORUNITTEST_HPP_
+
+#include <cppunit/extensions/HelperMacros.h>
+
+
+/********************************************** Test classes **************************************/
+
+class VectorTest : public CppUnit::TestFixture
+{
+    CPPUNIT_TEST_SUITE( VectorTest) ;
+    CPPUNIT_TEST ( UnityTest );
+    CPPUNIT_TEST ( SimpleAlgebraTest );
+    CPPUNIT_TEST ( OperatorAlgebraTest );
+    CPPUNIT_TEST ( EuclidianTest );
+    CPPUNIT_TEST_SUITE_END();
+
+public:
+      void setUp();
+      void tearDown();
+
+     void UnityTest();
+     void OperatorAlgebraTest();
+     void SimpleAlgebraTest();
+     void EuclidianTest();
+};
+
+
+#endif /* VECTORUNITTEST_HPP_ */
