Index: src/unittests/Makefile.am
===================================================================
--- src/unittests/Makefile.am	(revision dcea0ff41d177c467f6145566a26f86eb3065627)
+++ src/unittests/Makefile.am	(revision 5f612eea044e919bffc18a83cd7ddd35f981c765)
@@ -3,4 +3,7 @@
 AM_LDFLAGS = $(CPPUNIT_LIBS) -ldl
 AM_CXXFLAGS = $(CPPUNIT_CFLAGS)
+
+MENUTESTS = \
+  ActionSequenceTest
 
 TESTS = \
@@ -10,5 +13,8 @@
   AnalysisCorrelationToSurfaceUnitTest \
   AnalysisPairCorrelationUnitTest \
+  atomsCalculationTest \
+  AtomDescriptorTest \
   BondGraphUnitTest \
+  CacheableTest \
   CountBondsUnitTest \
   GSLMatrixSymmetricUnitTest \
@@ -20,81 +26,181 @@
   ListOfBondsUnitTest \
   LogUnitTest \
+  manipulateAtomsTest \
   MemoryUsageObserverUnitTest \
   MemoryAllocatorUnitTest \
+  MoleculeDescriptorTest \
+  ObserverTest \
+  SingletonTest \
   StackClassUnitTest \
   TesselationUnitTest \
   Tesselation_BoundaryTriangleUnitTest \
   Tesselation_InOutsideUnitTest \
-  VectorUnitTest
+  VectorUnitTest \
+  ${MENUTESTS}
   
-check_PROGRAMS = $(TESTS)
-noinst_PROGRAMS = $(TESTS)
-
-ActOnAllUnitTest_SOURCES = ../test/ActOnAllTest.hpp ActOnAllUnitTest.cpp ActOnAllUnitTest.hpp
-ActOnAllUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-AnalysisBondsUnitTests_SOURCES = analysisbondsunittest.cpp analysisbondsunittest.hpp
-AnalysisBondsUnitTests_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-AnalysisCorrelationToPointUnitTest_SOURCES = analysis_correlation.hpp AnalysisCorrelationToPointUnitTest.cpp AnalysisCorrelationToPointUnitTest.hpp
-AnalysisCorrelationToPointUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-AnalysisCorrelationToSurfaceUnitTest_SOURCES = analysis_correlation.hpp AnalysisCorrelationToSurfaceUnitTest.cpp AnalysisCorrelationToSurfaceUnitTest.hpp
-AnalysisCorrelationToSurfaceUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-AnalysisPairCorrelationUnitTest_SOURCES = analysis_correlation.hpp AnalysisPairCorrelationUnitTest.cpp AnalysisPairCorrelationUnitTest.hpp
-AnalysisPairCorrelationUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-BondGraphUnitTest_SOURCES = bondgraphunittest.cpp bondgraphunittest.hpp
-BondGraphUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-CountBondsUnitTest_SOURCES = CountBondsUnitTest.cpp CountBondsUnitTest.hpp
-CountBondsUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-GSLMatrixSymmetricUnitTest_SOURCES = gslmatrixsymmetricunittest.cpp gslmatrixsymmetricunittest.hpp
-GSLMatrixSymmetricUnitTest_LDADD = ../libgslwrapper.a
-
-GSLMatrixUnitTest_SOURCES = gslmatrixunittest.cpp gslmatrixunittest.hpp
-GSLMatrixUnitTest_LDADD = ../libgslwrapper.a
-
-GSLVectorUnitTest_SOURCES = gslvectorunittest.cpp gslvectorunittest.hpp
-GSLVectorUnitTest_LDADD = ../libgslwrapper.a
-
-InfoUnitTest_SOURCES = infounittest.cpp infounittest.hpp
-InfoUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-LinearSystemOfEquationsUnitTest_SOURCES = linearsystemofequationsunittest.cpp linearsystemofequationsunittest.hpp
-LinearSystemOfEquationsUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-LinkedCellUnitTest_SOURCES = LinkedCellUnitTest.cpp LinkedCellUnitTest.hpp 
-LinkedCellUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-ListOfBondsUnitTest_SOURCES = listofbondsunittest.cpp listofbondsunittest.hpp
-ListOfBondsUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-LogUnitTest_SOURCES = logunittest.cpp logunittest.hpp 
-LogUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-MemoryAllocatorUnitTest_SOURCES = memoryallocatorunittest.cpp memoryallocatorunittest.hpp 
-MemoryAllocatorUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-MemoryUsageObserverUnitTest_SOURCES = memoryusageobserverunittest.cpp memoryusageobserverunittest.hpp 
-MemoryUsageObserverUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-StackClassUnitTest_SOURCES = stackclassunittest.cpp stackclassunittest.hpp
-StackClassUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-TesselationUnitTest_SOURCES = tesselationunittest.cpp tesselationunittest.hpp
-TesselationUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-Tesselation_BoundaryTriangleUnitTest_SOURCES = tesselation_boundarytriangleunittest.cpp tesselation_boundarytriangleunittest.hpp
-Tesselation_BoundaryTriangleUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-Tesselation_InOutsideUnitTest_SOURCES = tesselation_insideoutsideunittest.cpp tesselation_insideoutsideunittest.hpp
-Tesselation_InOutsideUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
-VectorUnitTest_SOURCES = vectorunittest.cpp vectorunittest.hpp 
-VectorUnitTest_LDADD = ../libmolecuilder.a ../libgslwrapper.a
-
+  
+check_PROGRAMS = $(TESTS) 
+noinst_PROGRAMS = $(TESTS) TestRunner
+
+GSLLIBS = ../libgslwrapper.a
+ALLLIBS = ../libmolecuilder.a ${GSLLIBS} $(BOOST_LIB) ${BOOST_THREAD_LIB}
+
+TESTSOURCES = \
+  ActOnAllUnitTest.cpp \
+  ActionSequenceTest.cpp \
+  analysisbondsunittest.cpp \
+  AnalysisCorrelationToPointUnitTest.cpp \
+  AnalysisCorrelationToSurfaceUnitTest.cpp  \
+  AnalysisPairCorrelationUnitTest.cpp \
+  AtomDescriptorTest.cpp \
+  atomsCalculationTest.cpp \
+  bondgraphunittest.cpp \
+  CacheableTest.cpp \
+  CountBondsUnitTest.cpp \
+  gslmatrixsymmetricunittest.cpp \
+  gslmatrixunittest.cpp \
+  gslvectorunittest.cpp \
+  infounittest.cpp \
+  linearsystemofequationsunittest.cpp \
+  LinkedCellUnitTest.cpp \
+  listofbondsunittest.cpp \
+  logunittest.cpp \
+  manipulateAtomsTest.cpp \
+  memoryallocatorunittest.cpp  \
+  memoryusageobserverunittest.cpp \
+  MoleculeDescriptorTest.cpp \
+  ObserverTest.cpp \
+  SingletonTest.cpp \
+  stackclassunittest.cpp \
+  tesselationunittest.cpp \
+  tesselation_boundarytriangleunittest.cpp \
+  tesselation_insideoutsideunittest.cpp \
+  vectorunittest.cpp
+
+TESTHEADERS = \
+  ActOnAllUnitTest.hpp \
+  ActionSequenceTest.hpp \
+  analysisbondsunittest.hpp \
+  AnalysisCorrelationToPointUnitTest.hpp \
+  AnalysisCorrelationToSurfaceUnitTest.hpp  \
+  AnalysisPairCorrelationUnitTest.hpp \
+  AtomDescriptorTest.hpp \
+  atomsCalculationTest.hpp \
+  bondgraphunittest.hpp \
+  CacheableTest.hpp \
+  CountBondsUnitTest.hpp \
+  gslmatrixsymmetricunittest.hpp \
+  gslmatrixunittest.hpp \
+  gslvectorunittest.hpp \
+  infounittest.hpp \
+  linearsystemofequationsunittest.hpp \
+  LinkedCellUnitTest.hpp \
+  listofbondsunittest.hpp \
+  logunittest.hpp \
+  manipulateAtomsTest.hpp \
+  memoryallocatorunittest.hpp  \
+  memoryusageobserverunittest.hpp \
+  MoleculeDescriptorTest.hpp \
+  ObserverTest.hpp \
+  SingletonTest.hpp \
+  stackclassunittest.hpp \
+  tesselationunittest.hpp \
+  tesselation_boundarytriangleunittest.hpp \
+  tesselation_insideoutsideunittest.hpp \
+  vectorunittest.hpp
+  
+
+ActOnAllUnitTest_SOURCES = UnitTestMain.cpp ../test/ActOnAllTest.hpp ActOnAllUnitTest.cpp ActOnAllUnitTest.hpp
+ActOnAllUnitTest_LDADD = ${ALLLIBS}
+
+AnalysisBondsUnitTests_SOURCES = UnitTestMain.cpp analysisbondsunittest.cpp analysisbondsunittest.hpp
+AnalysisBondsUnitTests_LDADD = ${ALLLIBS}
+
+AnalysisCorrelationToPointUnitTest_SOURCES = UnitTestMain.cpp analysis_correlation.hpp AnalysisCorrelationToPointUnitTest.cpp AnalysisCorrelationToPointUnitTest.hpp
+AnalysisCorrelationToPointUnitTest_LDADD = ${ALLLIBS}
+
+AnalysisCorrelationToSurfaceUnitTest_SOURCES = UnitTestMain.cpp analysis_correlation.hpp AnalysisCorrelationToSurfaceUnitTest.cpp AnalysisCorrelationToSurfaceUnitTest.hpp
+AnalysisCorrelationToSurfaceUnitTest_LDADD = ${ALLLIBS}
+
+AnalysisPairCorrelationUnitTest_SOURCES = UnitTestMain.cpp analysis_correlation.hpp AnalysisPairCorrelationUnitTest.cpp AnalysisPairCorrelationUnitTest.hpp
+AnalysisPairCorrelationUnitTest_LDADD = ${ALLLIBS}
+
+atomsCalculationTest_SOURCES = UnitTestMain.cpp atomsCalculationTest.cpp atomsCalculationTest.hpp
+atomsCalculationTest_LDADD = ${ALLLIBS}
+
+BondGraphUnitTest_SOURCES = UnitTestMain.cpp bondgraphunittest.cpp bondgraphunittest.hpp
+BondGraphUnitTest_LDADD = ${ALLLIBS}
+
+CountBondsUnitTest_SOURCES = UnitTestMain.cpp CountBondsUnitTest.cpp CountBondsUnitTest.hpp
+CountBondsUnitTest_LDADD = ${ALLLIBS}
+
+GSLMatrixSymmetricUnitTest_SOURCES = UnitTestMain.cpp gslmatrixsymmetricunittest.cpp gslmatrixsymmetricunittest.hpp
+GSLMatrixSymmetricUnitTest_LDADD = ${GSLLIBS}
+
+GSLMatrixUnitTest_SOURCES = UnitTestMain.cpp gslmatrixunittest.cpp gslmatrixunittest.hpp
+GSLMatrixUnitTest_LDADD = ${GSLLIBS}
+
+GSLVectorUnitTest_SOURCES = UnitTestMain.cpp gslvectorunittest.cpp gslvectorunittest.hpp
+GSLVectorUnitTest_LDADD = ${GSLLIBS}
+
+InfoUnitTest_SOURCES = UnitTestMain.cpp infounittest.cpp infounittest.hpp
+InfoUnitTest_LDADD = ${ALLLIBS}
+
+LinearSystemOfEquationsUnitTest_SOURCES = UnitTestMain.cpp linearsystemofequationsunittest.cpp linearsystemofequationsunittest.hpp
+LinearSystemOfEquationsUnitTest_LDADD = ${ALLLIBS}
+
+LinkedCellUnitTest_SOURCES = UnitTestMain.cpp LinkedCellUnitTest.cpp LinkedCellUnitTest.hpp 
+LinkedCellUnitTest_LDADD = ${ALLLIBS}
+
+ListOfBondsUnitTest_SOURCES = UnitTestMain.cpp listofbondsunittest.cpp listofbondsunittest.hpp
+ListOfBondsUnitTest_LDADD = ${ALLLIBS}
+
+LogUnitTest_SOURCES = UnitTestMain.cpp logunittest.cpp logunittest.hpp 
+LogUnitTest_LDADD = ${ALLLIBS}
+
+MemoryAllocatorUnitTest_SOURCES = UnitTestMain.cpp memoryallocatorunittest.cpp memoryallocatorunittest.hpp 
+MemoryAllocatorUnitTest_LDADD = ${ALLLIBS}
+
+MemoryUsageObserverUnitTest_SOURCES = UnitTestMain.cpp memoryusageobserverunittest.cpp memoryusageobserverunittest.hpp 
+MemoryUsageObserverUnitTest_LDADD = ${ALLLIBS}
+
+MoleculeDescriptorTest_SOURCES = UnitTestMain.cpp MoleculeDescriptorTest.cpp MoleculeDescriptorTest.hpp
+MoleculeDescriptorTest_LDADD = ${ALLLIBS}
+
+SingletonTest_SOURCES = UnitTestMain.cpp SingletonTest.cpp SingletonTest.hpp
+SingletonTest_LDADD = $(BOOST_LIB) ${BOOST_THREAD_LIB}
+
+StackClassUnitTest_SOURCES = UnitTestMain.cpp stackclassunittest.cpp stackclassunittest.hpp
+StackClassUnitTest_LDADD = ${ALLLIBS}
+
+TesselationUnitTest_SOURCES = UnitTestMain.cpp tesselationunittest.cpp tesselationunittest.hpp
+TesselationUnitTest_LDADD = ${ALLLIBS}
+
+Tesselation_BoundaryTriangleUnitTest_SOURCES = UnitTestMain.cpp tesselation_boundarytriangleunittest.cpp tesselation_boundarytriangleunittest.hpp
+Tesselation_BoundaryTriangleUnitTest_LDADD = ${ALLLIBS}
+
+Tesselation_InOutsideUnitTest_SOURCES = UnitTestMain.cpp tesselation_insideoutsideunittest.cpp tesselation_insideoutsideunittest.hpp
+Tesselation_InOutsideUnitTest_LDADD = ${ALLLIBS}
+
+VectorUnitTest_SOURCES = UnitTestMain.cpp vectorunittest.cpp vectorunittest.hpp 
+VectorUnitTest_LDADD = ${ALLLIBS}
+
+ActionSequenceTest_SOURCES = UnitTestMain.cpp ../../../TestRunnerClient.hpp ActionSequenceTest.cpp ActionSequenceTest.hpp
+ActionSequenceTest_LDADD = ${ALLLIBS}
+
+ObserverTest_SOURCES = UnitTestMain.cpp ObserverTest.cpp ObserverTest.hpp
+ObserverTest_LDADD = ${ALLLIBS}
+
+CacheableTest_SOURCES = UnitTestMain.cpp CacheableTest.cpp CacheableTest.hpp
+CacheableTest_LDADD = ${ALLLIBS}
+
+AtomDescriptorTest_SOURCES = UnitTestMain.cpp AtomDescriptorTest.cpp AtomDescriptorTest.hpp
+AtomDescriptorTest_LDADD = ${ALLLIBS}
+
+manipulateAtomsTest_SOURCES = UnitTestMain.cpp manipulateAtomsTest.cpp manipulateAtomsTest.hpp
+manipulateAtomsTest_LDADD = ${ALLLIBS}
+
+TestRunner_SOURCES = TestRunnerMain.cpp $(TESTSOURCES) $(TESTHEADERS)
+TestRunner_LDADD = ${ALLLIBS}
 
 #AUTOMAKE_OPTIONS = parallel-tests
