Index: src/Parameters/ContinuousParameter_impl.hpp
===================================================================
--- src/Parameters/ContinuousParameter_impl.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ src/Parameters/ContinuousParameter_impl.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -23,5 +23,5 @@
 template<typename T>
 ContinuousParameter<T>::ContinuousParameter(const std::string &_name) :
-  Parameter(_name),
+  Parameter<T>(_name),
   ContinuousValue<T>(range<T>(std::numeric_limits<T>::min(), std::numeric_limits<T>::max()))
 {};
@@ -34,5 +34,5 @@
 template<typename T>
 ContinuousParameter<T>::ContinuousParameter(const std::string &_name, const T &_value) :
-  Parameter(_name),
+  Parameter<T>(_name),
   ContinuousValue<T>(range<T>(std::numeric_limits<T>::min(), std::numeric_limits<T>::max()))
 {
@@ -47,5 +47,5 @@
 template<typename T>
 ContinuousParameter<T>::ContinuousParameter(const std::string &_name, const range<T> &_ValidRange) :
-  Parameter(_name),
+  Parameter<T>(_name),
   ContinuousValue<T>(_ValidRange)
 {};
@@ -59,5 +59,5 @@
 template<typename T>
 ContinuousParameter<T>::ContinuousParameter(const std::string &_name, const range<T> &_ValidRange, const T &_value) :
-  Parameter(_name),
+  Parameter<T>(_name),
   ContinuousValue<T>(_ValidRange)
 {
@@ -83,5 +83,5 @@
   status = status &&
       (*dynamic_cast<const ContinuousValue<T> *>(this) == dynamic_cast<const ContinuousValue<T> &>(_instance));
-  status = status && (Parameter::getName() == _instance.Parameter::getName());
+  status = status && (Parameter<T>::getName() == _instance.Parameter<T>::getName());
   return status;
 }
@@ -94,5 +94,5 @@
 Parameter<T>* ContinuousParameter<T>::clone() const
 {
-  ContinuousParameter<T> *instance = new ContinuousParameter<T>(Parameter::getName(), ContinuousValue<T>::getValidRange());
+  ContinuousParameter<T> *instance = new ContinuousParameter<T>(Parameter<T>::getName(), ContinuousValue<T>::getValidRange());
   instance->setValue(ContinuousValue<T>::getValue());
   return instance;
Index: src/Parameters/ContinuousValue_impl.hpp
===================================================================
--- src/Parameters/ContinuousValue_impl.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ src/Parameters/ContinuousValue_impl.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -85,9 +85,9 @@
  */
 template <class T>
-const std::string ContinuousValue<T>::get() const
+const T & ContinuousValue<T>::get() const
 {
   ASSERT(ValueSet,
       "ContinuousValue<T>::get() - requesting unset value.");
-  return toString(value);
+  return value;
 }
 
@@ -97,9 +97,7 @@
  */
 template <class T>
-void ContinuousValue<T>::set(const std::string _value)
+void ContinuousValue<T>::set(const T & _value)
 {
-  const T castvalue = Converter(_value);
-//  LOG(0, "Converted value reads " << castvalue <<".");
-  setValue(castvalue);
+  setValue(_value);
 //  LOG(0, "STATUS: Value is now set to " << value << ".");
 }
Index: src/Parameters/DiscreteParameter_impl.hpp
===================================================================
--- src/Parameters/DiscreteParameter_impl.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ src/Parameters/DiscreteParameter_impl.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -23,5 +23,5 @@
 template<typename T>
 DiscreteParameter<T>::DiscreteParameter(const std::string &_name) :
-  Parameter(_name)
+  Parameter<T>(_name)
 {};
 
@@ -33,5 +33,5 @@
 template<typename T>
 DiscreteParameter<T>::DiscreteParameter(const std::string &_name, const std::vector<T> &_ValidValues) :
-  Parameter(_name),
+  Parameter<T>(_name),
   DiscreteValue<T>(_ValidValues)
 {};
@@ -45,5 +45,5 @@
 template<typename T>
 DiscreteParameter<T>::DiscreteParameter(const std::string &_name, const std::vector<T> &_ValidValues, const T &_value) :
-  Parameter(_name),
+  Parameter<T>(_name),
   DiscreteValue<T>(_ValidValues)
 {
@@ -69,5 +69,5 @@
   status = status &&
       (*dynamic_cast<const DiscreteValue<T> *>(this) == dynamic_cast<const DiscreteValue<T> &>(_instance));
-  status = status && (Parameter::getName() == _instance.Parameter::getName());
+  status = status && (Parameter<T>::getName() == _instance.Parameter<T>::getName());
   return status;
 }
@@ -78,7 +78,7 @@
  */
 template<typename T>
-Parameter* DiscreteParameter<T>::clone() const
+Parameter<T>* DiscreteParameter<T>::clone() const
 {
-  DiscreteParameter<T> *instance = new DiscreteParameter<T>(Parameter::getName(), DiscreteValue<T>::getValidValues());
+  DiscreteParameter<T> *instance = new DiscreteParameter<T>(Parameter<T>::getName(), DiscreteValue<T>::getValidValues());
   instance->setValue(DiscreteValue<T>::getValue());
   return instance;
Index: src/Parameters/DiscreteValue.hpp
===================================================================
--- src/Parameters/DiscreteValue.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ src/Parameters/DiscreteValue.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -37,5 +37,5 @@
 
   // functions for ValueInterface
-  bool isValid(const std::string _value) const;
+  bool isValid(const T &_value) const;
   const T & get() const;
   void set(const T & _value);
Index: src/Parameters/unittests/ContinuousParameterTest.cpp
===================================================================
--- src/Parameters/unittests/ContinuousParameterTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/ContinuousParameterTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,103 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ContinuousParameterTest.cpp
+ *
+ *  Created on: Sep 30, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "ContinuousParameterTest.hpp"
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "Parameters/ContinuousParameter.hpp"
+
+#include "CodePatterns/Range.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( ContinuousParameterTest );
+
+
+void ContinuousParameterTest::setUp()
+{
+  // failing asserts should be thrown
+  ASSERT_DO(Assert::Throw);
+
+  ValidRange = new range<int>(1,4);
+}
+
+void ContinuousParameterTest::tearDown()
+{
+  delete ValidRange;
+}
+
+/************************************ tests ***********************************/
+
+/** Unit test for comparator.
+ *
+ */
+void ContinuousParameterTest::comparatorTest()
+{
+  // create instance
+  ContinuousParameter<int> test("intParam", *ValidRange);
+  ContinuousParameter<int> samenamedsamevalued("intParam", *ValidRange);
+  ContinuousParameter<int> samenamedelsevalued("intParam", *ValidRange);
+  ContinuousParameter<int> elsenamedsamevalued("int2Param", *ValidRange);
+  ContinuousParameter<int> elsenamedelsevalued("int2Param", *ValidRange);
+  test.setValue(1);
+  samenamedsamevalued.setValue(1);
+  samenamedelsevalued.setValue(2);
+  elsenamedsamevalued.setValue(1);
+  elsenamedelsevalued.setValue(2);
+
+  CPPUNIT_ASSERT( test == samenamedsamevalued );
+  CPPUNIT_ASSERT( test != samenamedelsevalued );
+  CPPUNIT_ASSERT( test != elsenamedsamevalued );
+  CPPUNIT_ASSERT( test != elsenamedelsevalued );
+}
+
+/** Unit test for clone.
+ *
+ */
+void ContinuousParameterTest::cloneTest()
+{
+  // create instance
+  ContinuousParameter<int> test("intParam", *ValidRange);
+
+  // check that we throw because of unset parameter
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.clone(), Assert::AssertionFailure);
+#endif
+
+  // set parameter
+  test.setValue(2);
+
+  // is returned as Parameter but we can compare only in true class as
+  // Parameter may also be a DiscreteParameter where comparison is nonsense
+  ContinuousParameter<int> *instance = dynamic_cast< ContinuousParameter<int> *> (test.clone());
+
+  // different places in memory
+  CPPUNIT_ASSERT( &test != instance);
+
+  // but same contents
+  CPPUNIT_ASSERT( test == *instance);
+}
+
Index: src/Parameters/unittests/ContinuousParameterTest.hpp
===================================================================
--- src/Parameters/unittests/ContinuousParameterTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/ContinuousParameterTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,39 @@
+/*
+ * ContinuousParameterTest.hpp
+ *
+ *  Created on: Sep 30, 2011
+ *      Author: heber
+ */
+#ifndef CONTINUOUSPARAMETERTEST_HPP_
+#define CONTINUOUSPARAMETERTEST_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string>
+
+#include <cppunit/extensions/HelperMacros.h>
+
+template<class T> struct range;
+
+class ContinuousParameterTest :  public CppUnit::TestFixture
+{
+  CPPUNIT_TEST_SUITE( ContinuousParameterTest ) ;
+  CPPUNIT_TEST ( comparatorTest );
+  CPPUNIT_TEST ( cloneTest );
+  CPPUNIT_TEST_SUITE_END();
+
+public:
+  void setUp();
+  void tearDown();
+
+  void comparatorTest();
+  void cloneTest();
+
+private:
+  range<int> *ValidRange;
+};
+
+#endif /* CONTINUOUSPARAMETERTEST_HPP_ */
Index: src/Parameters/unittests/ContinuousParameterUnitTest.cpp
===================================================================
--- src/Parameters/unittests/ContinuousParameterUnitTest.cpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,103 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * ContinuousParameterUnitTest.cpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ContinuousParameterUnitTest.hpp"
-
-#include <cppunit/CompilerOutputter.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
-
-#include "Parser/Parameters/ContinuousParameter.hpp"
-
-#include "CodePatterns/Range.hpp"
-
-#ifdef HAVE_TESTRUNNER
-#include "UnitTestMain.hpp"
-#endif /*HAVE_TESTRUNNER*/
-
-// Registers the fixture into the 'registry'
-CPPUNIT_TEST_SUITE_REGISTRATION( ContinuousParameterTest );
-
-
-void ContinuousParameterTest::setUp()
-{
-  // failing asserts should be thrown
-  ASSERT_DO(Assert::Throw);
-
-  ValidRange = new range<int>(1,4);
-}
-
-void ContinuousParameterTest::tearDown()
-{
-  delete ValidRange;
-}
-
-/************************************ tests ***********************************/
-
-/** Unit test for comparator.
- *
- */
-void ContinuousParameterTest::comparatorTest()
-{
-  // create instance
-  ContinuousParameter<int> test("intParam", *ValidRange);
-  ContinuousParameter<int> samenamedsamevalued("intParam", *ValidRange);
-  ContinuousParameter<int> samenamedelsevalued("intParam", *ValidRange);
-  ContinuousParameter<int> elsenamedsamevalued("int2Param", *ValidRange);
-  ContinuousParameter<int> elsenamedelsevalued("int2Param", *ValidRange);
-  test.setValue(1);
-  samenamedsamevalued.setValue(1);
-  samenamedelsevalued.setValue(2);
-  elsenamedsamevalued.setValue(1);
-  elsenamedelsevalued.setValue(2);
-
-  CPPUNIT_ASSERT( test == samenamedsamevalued );
-  CPPUNIT_ASSERT( test != samenamedelsevalued );
-  CPPUNIT_ASSERT( test != elsenamedsamevalued );
-  CPPUNIT_ASSERT( test != elsenamedelsevalued );
-}
-
-/** Unit test for clone.
- *
- */
-void ContinuousParameterTest::cloneTest()
-{
-  // create instance
-  ContinuousParameter<int> test("intParam", *ValidRange);
-
-  // check that we throw because of unset parameter
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.clone(), Assert::AssertionFailure);
-#endif
-
-  // set parameter
-  test.setValue(2);
-
-  // is returned as Parameter but we can compare only in true class as
-  // Parameter may also be a DiscreteParameter where comparison is nonsense
-  ContinuousParameter<int> *instance = dynamic_cast< ContinuousParameter<int> *> (test.clone());
-
-  // different places in memory
-  CPPUNIT_ASSERT( &test != instance);
-
-  // but same contents
-  CPPUNIT_ASSERT( test == *instance);
-}
-
Index: src/Parameters/unittests/ContinuousParameterUnitTest.hpp
===================================================================
--- src/Parameters/unittests/ContinuousParameterUnitTest.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,39 +1,0 @@
-/*
- * ContinuousParameterUnitTest.hpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-#ifndef CONTINUOUSPARAMETERUNITTEST_HPP_
-#define CONTINUOUSPARAMETERUNITTEST_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-
-#include <cppunit/extensions/HelperMacros.h>
-
-template<class T> struct range;
-
-class ContinuousParameterTest :  public CppUnit::TestFixture
-{
-  CPPUNIT_TEST_SUITE( ContinuousParameterTest ) ;
-  CPPUNIT_TEST ( comparatorTest );
-  CPPUNIT_TEST ( cloneTest );
-  CPPUNIT_TEST_SUITE_END();
-
-public:
-  void setUp();
-  void tearDown();
-
-  void comparatorTest();
-  void cloneTest();
-
-private:
-  range<int> *ValidRange;
-};
-
-#endif /* CONTINUOUSPARAMETERUNITTEST_HPP_ */
Index: src/Parameters/unittests/ContinuousValueTest.cpp
===================================================================
--- src/Parameters/unittests/ContinuousValueTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/ContinuousValueTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,239 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ContinuousValueTest.cpp
+ *
+ *  Created on: Sep 29, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "ContinuousValueTest.hpp"
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "Parameters/ContinuousValue.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( ContinuousValueTest );
+
+
+void ContinuousValueTest::setUp()
+{
+  // failing asserts should be thrown
+  ASSERT_DO(Assert::Throw);
+
+  ValidRange = new range<int>(1,4);
+}
+
+void ContinuousValueTest::tearDown()
+{
+  delete ValidRange;
+}
+
+/************************************ tests ***********************************/
+
+/** Unit test for isValid.
+ *
+ */
+void ContinuousValueTest::isValidValueTest()
+{
+  // create instance
+  ContinuousValue<int> test(*ValidRange);
+
+  // checking valid values
+  for (int i=1; i<=4;++i)
+    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
+
+  // checking invalid values
+  for (int i=-10; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+  for (int i=5; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+}
+
+/** Unit test for isValid.
+ *
+ */
+void ContinuousValueTest::isValidTest()
+{
+  // create instance
+  ContinuousValue<int> test(*ValidRange);
+
+  // checking valid values
+  for (int i=1; i<=4;++i)
+    CPPUNIT_ASSERT_EQUAL(true, test.isValid(i));
+
+  // checking invalid values
+  for (int i=-10; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValid(i));
+  for (int i=5; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValid(i));
+}
+
+/** Unit test for setting/getting valid range.
+ *
+ */
+void ContinuousValueTest::setgetValidRangeTest()
+{
+  {
+    // create instance
+    ContinuousValue<int> test(*ValidRange);
+
+    // extending range and checking
+    for (int i=5; i<=6;++i)
+      CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+    test.setValidRange(range<int>(1,6));
+    for (int i=5; i<=6;++i)
+      CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
+  }
+
+  {
+    // create instance
+    ContinuousValue<int> test(*ValidRange);
+
+    // lowering range with set value
+    test.setValue(4);
+    CPPUNIT_ASSERT_EQUAL(true, test.ValueSet);
+#ifndef NDEBUG
+    std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+    CPPUNIT_ASSERT_THROW(test.setValidRange(range<int>(1,3)), Assert::AssertionFailure);
+#else
+    test.setValidRange(range<int>(1,3));
+#endif
+#ifndef NDEBUG
+    // no value is not set
+    std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+    CPPUNIT_ASSERT_THROW(test.get(), Assert::AssertionFailure);
+#endif
+    // value gets invalidated in either case
+    CPPUNIT_ASSERT_EQUAL(false, test.ValueSet);
+  }
+}
+
+/** Unit test for setValue and getValue.
+ *
+ */
+void ContinuousValueTest::settergetterValueTest()
+{
+  // create instance
+  ContinuousValue<int> test(*ValidRange);
+
+  // unset calling of get, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.getValue(), Assert::AssertionFailure);
+#endif
+
+  // setting invalid, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.setValue(5), Assert::AssertionFailure);
+#endif
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.setValue(0), Assert::AssertionFailure);
+#endif
+
+  CPPUNIT_ASSERT_EQUAL(false, test.ValueSet);
+  // checking all valid ones
+  for (int i=1; i<=4;++i) {
+    test.setValue(i);
+    CPPUNIT_ASSERT_EQUAL(true, test.ValueSet);
+    CPPUNIT_ASSERT_EQUAL(i, test.getValue());
+  }
+}
+
+/** Unit test for setters and getters.
+ *
+ */
+void ContinuousValueTest::settergetterTest()
+{
+  // create instance
+  ContinuousValue<int> test(*ValidRange);
+
+  // unset calling of get, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.get(), Assert::AssertionFailure);
+#endif
+
+  // setting invalid, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.set(5), Assert::AssertionFailure);
+#endif
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.set(0), Assert::AssertionFailure);
+#endif
+
+  // checking all valid ones
+  for (int i=1; i<=4;++i) {
+    test.set(i);
+    CPPUNIT_ASSERT_EQUAL(i, test.get());
+  }
+}
+
+/** Unit test for comparator.
+ *
+ */
+void ContinuousValueTest::comparatorTest()
+{
+  {
+    // create instance
+    ContinuousValue<int> test(*ValidRange);
+    ContinuousValue<int> instance(*ValidRange);
+    test.setValue(1);
+    instance.setValue(1);
+
+    // same value, same range
+    {
+      CPPUNIT_ASSERT(test == instance);
+    }
+
+    // different value, same range
+    {
+      const int oldvalue = instance.getValue();
+      instance.setValue(2);
+      CPPUNIT_ASSERT(test != instance);
+      instance.setValue(oldvalue);
+    }
+  }
+  {
+    ContinuousValue<int> test(*ValidRange);
+    range<int> OtherValidRange(1,5);
+    ContinuousValue<int> instance(OtherValidRange);
+
+    test.setValue(1);
+    instance.setValue(1);
+
+    // same value, same range
+    {
+      CPPUNIT_ASSERT(test != instance);
+    }
+
+    // different value, same range
+    {
+      const int oldvalue = instance.getValue();
+      instance.setValue(2);
+      CPPUNIT_ASSERT(test != instance);
+      instance.setValue(oldvalue);
+    }
+  }
+}
Index: src/Parameters/unittests/ContinuousValueTest.hpp
===================================================================
--- src/Parameters/unittests/ContinuousValueTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/ContinuousValueTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,47 @@
+/*
+ * ContinuousValueTest.hpp
+ *
+ *  Created on: Sep 29, 2011
+ *      Author: heber
+ */
+#ifndef CONTINUOUSVALUETEST_HPP_
+#define CONTINUOUSVALUETEST_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string>
+
+#include <cppunit/extensions/HelperMacros.h>
+
+template<class T> struct range;
+
+class ContinuousValueTest :  public CppUnit::TestFixture
+{
+  CPPUNIT_TEST_SUITE( ContinuousValueTest ) ;
+  CPPUNIT_TEST ( isValidValueTest );
+  CPPUNIT_TEST ( isValidTest );
+  CPPUNIT_TEST ( setgetValidRangeTest );
+  CPPUNIT_TEST ( settergetterValueTest );
+  CPPUNIT_TEST ( settergetterTest );
+  CPPUNIT_TEST ( comparatorTest );
+  CPPUNIT_TEST_SUITE_END();
+
+public:
+  void setUp();
+  void tearDown();
+
+  void isValidValueTest();
+  void isValidTest();
+  void setgetValidRangeTest();
+  void settergetterValueTest();
+  void settergetterTest();
+  void comparatorTest();
+
+private:
+  range<int> *ValidRange;
+};
+
+#endif /* CONTINUOUSVALUETEST_HPP_ */
Index: src/Parameters/unittests/ContinuousValueUnitTest.cpp
===================================================================
--- src/Parameters/unittests/ContinuousValueUnitTest.cpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,241 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * ContinuousValueUnitTest.cpp
- *
- *  Created on: Sep 29, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ContinuousValueUnitTest.hpp"
-
-#include <cppunit/CompilerOutputter.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
-
-#include "Parser/Parameters/ContinuousValue.hpp"
-
-#include "CodePatterns/toString.hpp"
-
-#ifdef HAVE_TESTRUNNER
-#include "UnitTestMain.hpp"
-#endif /*HAVE_TESTRUNNER*/
-
-// Registers the fixture into the 'registry'
-CPPUNIT_TEST_SUITE_REGISTRATION( ContinuousValueTest );
-
-
-void ContinuousValueTest::setUp()
-{
-  // failing asserts should be thrown
-  ASSERT_DO(Assert::Throw);
-
-  ValidRange = new range<int>(1,4);
-}
-
-void ContinuousValueTest::tearDown()
-{
-  delete ValidRange;
-}
-
-/************************************ tests ***********************************/
-
-/** Unit test for isValid.
- *
- */
-void ContinuousValueTest::isValidValueTest()
-{
-  // create instance
-  ContinuousValue<int> test(*ValidRange);
-
-  // checking valid values
-  for (int i=1; i<=4;++i)
-    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
-
-  // checking invalid values
-  for (int i=-10; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-  for (int i=5; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-}
-
-/** Unit test for isValid.
- *
- */
-void ContinuousValueTest::isValidTest()
-{
-  // create instance
-  ContinuousValue<int> test(*ValidRange);
-
-  // checking valid values
-  for (int i=1; i<=4;++i)
-    CPPUNIT_ASSERT_EQUAL(true, test.isValid(toString(i)));
-
-  // checking invalid values
-  for (int i=-10; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValid(toString(i)));
-  for (int i=5; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValid(toString(i)));
-}
-
-/** Unit test for setting/getting valid range.
- *
- */
-void ContinuousValueTest::setgetValidRangeTest()
-{
-  {
-    // create instance
-    ContinuousValue<int> test(*ValidRange);
-
-    // extending range and checking
-    for (int i=5; i<=6;++i)
-      CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-    test.setValidRange(range<int>(1,6));
-    for (int i=5; i<=6;++i)
-      CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
-  }
-
-  {
-    // create instance
-    ContinuousValue<int> test(*ValidRange);
-
-    // lowering range with set value
-    test.setValue(4);
-    CPPUNIT_ASSERT_EQUAL(true, test.ValueSet);
-#ifndef NDEBUG
-    std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-    CPPUNIT_ASSERT_THROW(test.setValidRange(range<int>(1,3)), Assert::AssertionFailure);
-#else
-    test.setValidRange(range<int>(1,3));
-#endif
-#ifndef NDEBUG
-    // no value is not set
-    std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-    CPPUNIT_ASSERT_THROW(test.get(), Assert::AssertionFailure);
-#endif
-    // value gets invalidated in either case
-    CPPUNIT_ASSERT_EQUAL(false, test.ValueSet);
-  }
-}
-
-/** Unit test for setValue and getValue.
- *
- */
-void ContinuousValueTest::settergetterValueTest()
-{
-  // create instance
-  ContinuousValue<int> test(*ValidRange);
-
-  // unset calling of get, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.getValue(), Assert::AssertionFailure);
-#endif
-
-  // setting invalid, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.setValue(5), Assert::AssertionFailure);
-#endif
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.setValue(0), Assert::AssertionFailure);
-#endif
-
-  CPPUNIT_ASSERT_EQUAL(false, test.ValueSet);
-  // checking all valid ones
-  for (int i=1; i<=4;++i) {
-    test.setValue(i);
-    CPPUNIT_ASSERT_EQUAL(true, test.ValueSet);
-    CPPUNIT_ASSERT_EQUAL(i, test.getValue());
-  }
-}
-
-/** Unit test for setters and getters.
- *
- */
-void ContinuousValueTest::settergetterTest()
-{
-  // create instance
-  ContinuousValue<int> test(*ValidRange);
-
-  // unset calling of get, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.get(), Assert::AssertionFailure);
-#endif
-
-  // setting invalid, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.set(toString(5)), Assert::AssertionFailure);
-#endif
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.set(toString(0)), Assert::AssertionFailure);
-#endif
-
-  // checking all valid ones
-  for (int i=1; i<=4;++i) {
-    test.set(toString(i));
-    CPPUNIT_ASSERT_EQUAL(toString(i), test.get());
-  }
-}
-
-/** Unit test for comparator.
- *
- */
-void ContinuousValueTest::comparatorTest()
-{
-  {
-    // create instance
-    ContinuousValue<int> test(*ValidRange);
-    ContinuousValue<int> instance(*ValidRange);
-    test.setValue(1);
-    instance.setValue(1);
-
-    // same value, same range
-    {
-      CPPUNIT_ASSERT(test == instance);
-    }
-
-    // different value, same range
-    {
-      const int oldvalue = instance.getValue();
-      instance.setValue(2);
-      CPPUNIT_ASSERT(test != instance);
-      instance.setValue(oldvalue);
-    }
-  }
-  {
-    ContinuousValue<int> test(*ValidRange);
-    range<int> OtherValidRange(1,5);
-    ContinuousValue<int> instance(OtherValidRange);
-
-    test.setValue(1);
-    instance.setValue(1);
-
-    // same value, same range
-    {
-      CPPUNIT_ASSERT(test != instance);
-    }
-
-    // different value, same range
-    {
-      const int oldvalue = instance.getValue();
-      instance.setValue(2);
-      CPPUNIT_ASSERT(test != instance);
-      instance.setValue(oldvalue);
-    }
-  }
-}
Index: src/Parameters/unittests/ContinuousValueUnitTest.hpp
===================================================================
--- src/Parameters/unittests/ContinuousValueUnitTest.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/*
- * ContinuousValueUnitTest.hpp
- *
- *  Created on: Sep 29, 2011
- *      Author: heber
- */
-#ifndef CONTINUOUSVALUEUNITTEST_HPP_
-#define CONTINUOUSVALUEUNITTEST_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-
-#include <cppunit/extensions/HelperMacros.h>
-
-template<class T> struct range;
-
-class ContinuousValueTest :  public CppUnit::TestFixture
-{
-  CPPUNIT_TEST_SUITE( ContinuousValueTest ) ;
-  CPPUNIT_TEST ( isValidValueTest );
-  CPPUNIT_TEST ( isValidTest );
-  CPPUNIT_TEST ( setgetValidRangeTest );
-  CPPUNIT_TEST ( settergetterValueTest );
-  CPPUNIT_TEST ( settergetterTest );
-  CPPUNIT_TEST ( comparatorTest );
-  CPPUNIT_TEST_SUITE_END();
-
-public:
-  void setUp();
-  void tearDown();
-
-  void isValidValueTest();
-  void isValidTest();
-  void setgetValidRangeTest();
-  void settergetterValueTest();
-  void settergetterTest();
-  void comparatorTest();
-
-private:
-  range<int> *ValidRange;
-};
-
-#endif /* CONTINUOUSVALUEUNITTEST_HPP_ */
Index: src/Parameters/unittests/DiscreteParameterTest.cpp
===================================================================
--- src/Parameters/unittests/DiscreteParameterTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/DiscreteParameterTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,105 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * DiscreteParameterTest.cpp
+ *
+ *  Created on: Sep 30, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "DiscreteParameterTest.hpp"
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "Parameters/DiscreteParameter.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+using namespace std;
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( DiscreteParameterTest );
+
+
+void DiscreteParameterTest::setUp()
+{
+  // failing asserts should be thrown
+  ASSERT_DO(Assert::Throw);
+
+  for (int i=1; i<=3;++i) {
+    ValidValues.push_back(i);
+  }
+}
+
+void DiscreteParameterTest::tearDown()
+{
+  ValidValues.clear();
+}
+
+/************************************ tests ***********************************/
+
+/** Unit test for comparator.
+ *
+ */
+void DiscreteParameterTest::comparatorTest()
+{
+  // create instance
+  DiscreteParameter<int> test("intParam", ValidValues);
+  DiscreteParameter<int> samenamedsamevalued("intParam", ValidValues);
+  DiscreteParameter<int> samenamedelsevalued("intParam", ValidValues);
+  DiscreteParameter<int> elsenamedsamevalued("int2Param", ValidValues);
+  DiscreteParameter<int> elsenamedelsevalued("int2Param", ValidValues);
+  test.setValue(1);
+  samenamedsamevalued.setValue(1);
+  samenamedelsevalued.setValue(2);
+  elsenamedsamevalued.setValue(1);
+  elsenamedelsevalued.setValue(2);
+
+  CPPUNIT_ASSERT( test == samenamedsamevalued );
+  CPPUNIT_ASSERT( test != samenamedelsevalued );
+  CPPUNIT_ASSERT( test != elsenamedsamevalued );
+  CPPUNIT_ASSERT( test != elsenamedelsevalued );
+}
+
+/** Unit test for clone.
+ *
+ */
+void DiscreteParameterTest::cloneTest()
+{
+  // create instance
+  DiscreteParameter<int> test("intParam", ValidValues);
+
+  // check that we throw because of unset parameter
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.clone(), Assert::AssertionFailure);
+#endif
+
+  // set parameter
+  test.setValue(2);
+
+  // is returned as Parameter but we can compare only in true class as
+  // Parameter may also be a ContinuousParameter where comparison is nonsense
+  DiscreteParameter<int> *instance = dynamic_cast< DiscreteParameter<int> *> (test.clone());
+
+  // different places in memory
+  CPPUNIT_ASSERT( &test != instance);
+
+  // but same contents
+  CPPUNIT_ASSERT( test == *instance);
+}
+
Index: src/Parameters/unittests/DiscreteParameterTest.hpp
===================================================================
--- src/Parameters/unittests/DiscreteParameterTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/DiscreteParameterTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,37 @@
+/*
+ * DiscreteParameterTest.hpp
+ *
+ *  Created on: Sep 30, 2011
+ *      Author: heber
+ */
+#ifndef DISCRETEPARAMETERTEST_HPP_
+#define DISCRETEPARAMETERTEST_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <vector>
+
+class DiscreteParameterTest :  public CppUnit::TestFixture
+{
+  CPPUNIT_TEST_SUITE( DiscreteParameterTest ) ;
+  CPPUNIT_TEST ( comparatorTest );
+  CPPUNIT_TEST ( cloneTest );
+  CPPUNIT_TEST_SUITE_END();
+
+public:
+  void setUp();
+  void tearDown();
+
+  void comparatorTest();
+  void cloneTest();
+
+private:
+  std::vector<int> ValidValues;
+};
+
+#endif /* DISCRETEPARAMETERTEST_HPP_ */
Index: src/Parameters/unittests/DiscreteParameterUnitTest.cpp
===================================================================
--- src/Parameters/unittests/DiscreteParameterUnitTest.cpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,105 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * DiscreteParameterUnitTest.cpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "DiscreteParameterUnitTest.hpp"
-
-#include <cppunit/CompilerOutputter.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
-
-#include "Parser/Parameters/DiscreteParameter.hpp"
-
-#ifdef HAVE_TESTRUNNER
-#include "UnitTestMain.hpp"
-#endif /*HAVE_TESTRUNNER*/
-
-using namespace std;
-
-// Registers the fixture into the 'registry'
-CPPUNIT_TEST_SUITE_REGISTRATION( DiscreteParameterTest );
-
-
-void DiscreteParameterTest::setUp()
-{
-  // failing asserts should be thrown
-  ASSERT_DO(Assert::Throw);
-
-  for (int i=1; i<=3;++i) {
-    ValidValues.push_back(i);
-  }
-}
-
-void DiscreteParameterTest::tearDown()
-{
-  ValidValues.clear();
-}
-
-/************************************ tests ***********************************/
-
-/** Unit test for comparator.
- *
- */
-void DiscreteParameterTest::comparatorTest()
-{
-  // create instance
-  DiscreteParameter<int> test("intParam", ValidValues);
-  DiscreteParameter<int> samenamedsamevalued("intParam", ValidValues);
-  DiscreteParameter<int> samenamedelsevalued("intParam", ValidValues);
-  DiscreteParameter<int> elsenamedsamevalued("int2Param", ValidValues);
-  DiscreteParameter<int> elsenamedelsevalued("int2Param", ValidValues);
-  test.setValue(1);
-  samenamedsamevalued.setValue(1);
-  samenamedelsevalued.setValue(2);
-  elsenamedsamevalued.setValue(1);
-  elsenamedelsevalued.setValue(2);
-
-  CPPUNIT_ASSERT( test == samenamedsamevalued );
-  CPPUNIT_ASSERT( test != samenamedelsevalued );
-  CPPUNIT_ASSERT( test != elsenamedsamevalued );
-  CPPUNIT_ASSERT( test != elsenamedelsevalued );
-}
-
-/** Unit test for clone.
- *
- */
-void DiscreteParameterTest::cloneTest()
-{
-  // create instance
-  DiscreteParameter<int> test("intParam", ValidValues);
-
-  // check that we throw because of unset parameter
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.clone(), Assert::AssertionFailure);
-#endif
-
-  // set parameter
-  test.setValue(2);
-
-  // is returned as Parameter but we can compare only in true class as
-  // Parameter may also be a ContinuousParameter where comparison is nonsense
-  DiscreteParameter<int> *instance = dynamic_cast< DiscreteParameter<int> *> (test.clone());
-
-  // different places in memory
-  CPPUNIT_ASSERT( &test != instance);
-
-  // but same contents
-  CPPUNIT_ASSERT( test == *instance);
-}
-
Index: src/Parameters/unittests/DiscreteParameterUnitTest.hpp
===================================================================
--- src/Parameters/unittests/DiscreteParameterUnitTest.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/*
- * DiscreteParameterUnitTest.hpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-#ifndef DISCRETEPARAMETERUNITTEST_HPP_
-#define DISCRETEPARAMETERUNITTEST_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <cppunit/extensions/HelperMacros.h>
-
-#include <vector>
-
-class DiscreteParameterTest :  public CppUnit::TestFixture
-{
-  CPPUNIT_TEST_SUITE( DiscreteParameterTest ) ;
-  CPPUNIT_TEST ( comparatorTest );
-  CPPUNIT_TEST ( cloneTest );
-  CPPUNIT_TEST_SUITE_END();
-
-public:
-  void setUp();
-  void tearDown();
-
-  void comparatorTest();
-  void cloneTest();
-
-private:
-  std::vector<int> ValidValues;
-};
-
-#endif /* DISCRETEPARAMETERUNITTEST_HPP_ */
Index: src/Parameters/unittests/DiscreteValueTest.cpp
===================================================================
--- src/Parameters/unittests/DiscreteValueTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/DiscreteValueTest.cpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,259 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * DiscreteValueTest.cpp
+ *
+ *  Created on: Sep 28, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "DiscreteValueTest.hpp"
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "Parameters/DiscreteValue.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+using namespace std;
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( DiscreteValueTest );
+
+
+void DiscreteValueTest::setUp()
+{
+  // failing asserts should be thrown
+  ASSERT_DO(Assert::Throw);
+
+  for (int i=1; i<=3;++i) {
+    ValidValues.push_back(i);
+  }
+}
+
+void DiscreteValueTest::tearDown()
+{
+  ValidValues.clear();
+}
+
+/************************************ tests ***********************************/
+
+/** Unit test for findIndexOfValue.
+ *
+ */
+void DiscreteValueTest::findIndexOfValueTest()
+{
+  // create instance
+  DiscreteValue<int> test(ValidValues);
+
+  // check valid values indices
+  CPPUNIT_ASSERT_EQUAL((size_t)0, test.findIndexOfValue(1));
+  CPPUNIT_ASSERT_EQUAL((size_t)1, test.findIndexOfValue(2));
+  CPPUNIT_ASSERT_EQUAL((size_t)2, test.findIndexOfValue(3));
+
+  // check invalid ones
+  for (int i=-10; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL((size_t)-1, test.findIndexOfValue(i));
+  for (int i=4; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL((size_t)-1, test.findIndexOfValue(i));
+}
+
+/** Unit test for isValidValue.
+ *
+ */
+void DiscreteValueTest::isValidValueTest()
+{
+  // create instance
+  DiscreteValue<int> test(ValidValues);
+
+  // checking valid values
+  for (int i=1; i<=3;++i)
+    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
+
+  // checking invalid values
+  for (int i=-10; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+  for (int i=4; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+}
+
+/** Unit test for isValid.
+ *
+ */
+void DiscreteValueTest::isValidTest()
+{
+  // create instance
+  DiscreteValue<int> test(ValidValues);
+
+  // checking valid values
+  for (int i=1; i<=3;++i)
+    CPPUNIT_ASSERT_EQUAL(true, test.isValid(i));
+
+  // checking invalid values
+  for (int i=-10; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValid(i));
+  for (int i=4; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValid(i));
+}
+
+/** Unit test for appendValidValue.
+ *
+ */
+void DiscreteValueTest::appendValidValueTest()
+{
+  // create instance
+  DiscreteValue<int> test(ValidValues);
+
+  // adding values 4,5,6
+  for (int i=4; i<=6;++i) {
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+    test.appendValidValue(i);
+    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
+  }
+
+  // adding same value, throws assertion
+  const size_t size_before = test.ValidValues.size();
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  for (int i=1; i<=6;++i)
+    CPPUNIT_ASSERT_THROW(test.appendValidValue(i), Assert::AssertionFailure);
+#endif
+  CPPUNIT_ASSERT_EQUAL( size_before, test.ValidValues.size() );
+
+  // checking valid values
+  for (int i=1; i<=6;++i)
+    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
+
+  // checking invalid values
+  for (int i=-10; i<=0;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+
+  // checking invalid values
+  for (int i=7; i<=10;++i)
+    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
+}
+
+/** Unit test for setters and getters.
+ *
+ */
+void DiscreteValueTest::settergetterTest()
+{
+  // create instance
+  DiscreteValue<int> test(ValidValues);
+
+  // unset calling of get, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.get(), Assert::AssertionFailure);
+#endif
+
+  // setting invalid, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.set(4), Assert::AssertionFailure);
+#endif
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.set(0), Assert::AssertionFailure);
+#endif
+
+  // checking all valid ones
+  for (int i=1; i<=3;++i) {
+    test.set(i);
+    CPPUNIT_ASSERT_EQUAL(i, test.get());
+  }
+
+}
+
+/** Unit test for setValue and getValue.
+ *
+ */
+void DiscreteValueTest::settergetterValueTest()
+{
+  // create instance
+  DiscreteValue<int> test(ValidValues);
+
+  // unset calling of get, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.getValue(), Assert::AssertionFailure);
+#endif
+
+  // setting invalid, throws
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.setValue(4), Assert::AssertionFailure);
+#endif
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.setValue(0), Assert::AssertionFailure);
+#endif
+
+  // checking all valid ones
+  for (int i=1; i<=3;++i) {
+    test.setValue(i);
+    CPPUNIT_ASSERT_EQUAL(i, test.getValue());
+  }
+}
+
+/** Unit test for comparator.
+ *
+ */
+void DiscreteValueTest::comparatorTest()
+{
+  {
+    // create instance
+    DiscreteValue<int> test(ValidValues);
+    DiscreteValue<int> instance(ValidValues);
+    test.setValue(1);
+    instance.setValue(1);
+
+    // same value, same range
+    {
+      CPPUNIT_ASSERT(test == instance);
+    }
+
+    // different value, same range
+    {
+      const int oldvalue = instance.getValue();
+      instance.setValue(2);
+      CPPUNIT_ASSERT(test != instance);
+      instance.setValue(oldvalue);
+    }
+  }
+  {
+    DiscreteValue<int> test(ValidValues);
+    DiscreteValue<int> instance(ValidValues);
+    instance.appendValidValue(4);
+
+    test.setValue(1);
+    instance.setValue(1);
+
+    // same value, same range
+    {
+      CPPUNIT_ASSERT(test != instance);
+    }
+
+    // different value, same range
+    {
+      const int oldvalue = instance.getValue();
+      instance.setValue(2);
+      CPPUNIT_ASSERT(test != instance);
+      instance.setValue(oldvalue);
+    }
+  }
+}
Index: src/Parameters/unittests/DiscreteValueTest.hpp
===================================================================
--- src/Parameters/unittests/DiscreteValueTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
+++ src/Parameters/unittests/DiscreteValueTest.hpp	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -0,0 +1,47 @@
+/*
+ * DiscreteValueTest.hpp
+ *
+ *  Created on: Sep 28, 2011
+ *      Author: heber
+ */
+#ifndef DISCRETEVALUETEST_HPP_
+#define DISCRETEVALUETEST_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <vector>
+
+class DiscreteValueTest :  public CppUnit::TestFixture
+{
+  CPPUNIT_TEST_SUITE( DiscreteValueTest ) ;
+  CPPUNIT_TEST ( findIndexOfValueTest );
+  CPPUNIT_TEST ( isValidValueTest );
+  CPPUNIT_TEST ( isValidTest );
+  CPPUNIT_TEST ( appendValidValueTest );
+  CPPUNIT_TEST ( settergetterTest );
+  CPPUNIT_TEST ( settergetterValueTest );
+  CPPUNIT_TEST ( comparatorTest );
+  CPPUNIT_TEST_SUITE_END();
+
+public:
+  void setUp();
+  void tearDown();
+
+  void findIndexOfValueTest();
+  void isValidValueTest();
+  void isValidTest();
+  void appendValidValueTest();
+  void settergetterTest();
+  void settergetterValueTest();
+  void comparatorTest();
+
+private:
+  std::vector<int> ValidValues;
+};
+
+#endif /* DISCRETEVALUETEST_HPP_ */
Index: src/Parameters/unittests/DiscreteValueUnitTest.cpp
===================================================================
--- src/Parameters/unittests/DiscreteValueUnitTest.cpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,261 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * DiscreteValueUnitTest.cpp
- *
- *  Created on: Sep 28, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "DiscreteValueUnitTest.hpp"
-
-#include <cppunit/CompilerOutputter.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
-
-#include "Parser/Parameters/DiscreteValue.hpp"
-
-#include "CodePatterns/toString.hpp"
-
-#ifdef HAVE_TESTRUNNER
-#include "UnitTestMain.hpp"
-#endif /*HAVE_TESTRUNNER*/
-
-using namespace std;
-
-// Registers the fixture into the 'registry'
-CPPUNIT_TEST_SUITE_REGISTRATION( DiscreteValueTest );
-
-
-void DiscreteValueTest::setUp()
-{
-  // failing asserts should be thrown
-  ASSERT_DO(Assert::Throw);
-
-  for (int i=1; i<=3;++i) {
-    ValidValues.push_back(i);
-  }
-}
-
-void DiscreteValueTest::tearDown()
-{
-  ValidValues.clear();
-}
-
-/************************************ tests ***********************************/
-
-/** Unit test for findIndexOfValue.
- *
- */
-void DiscreteValueTest::findIndexOfValueTest()
-{
-  // create instance
-  DiscreteValue<int> test(ValidValues);
-
-  // check valid values indices
-  CPPUNIT_ASSERT_EQUAL((size_t)0, test.findIndexOfValue(1));
-  CPPUNIT_ASSERT_EQUAL((size_t)1, test.findIndexOfValue(2));
-  CPPUNIT_ASSERT_EQUAL((size_t)2, test.findIndexOfValue(3));
-
-  // check invalid ones
-  for (int i=-10; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL((size_t)-1, test.findIndexOfValue(i));
-  for (int i=4; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL((size_t)-1, test.findIndexOfValue(i));
-}
-
-/** Unit test for isValidValue.
- *
- */
-void DiscreteValueTest::isValidValueTest()
-{
-  // create instance
-  DiscreteValue<int> test(ValidValues);
-
-  // checking valid values
-  for (int i=1; i<=3;++i)
-    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
-
-  // checking invalid values
-  for (int i=-10; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-  for (int i=4; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-}
-
-/** Unit test for isValid.
- *
- */
-void DiscreteValueTest::isValidTest()
-{
-  // create instance
-  DiscreteValue<int> test(ValidValues);
-
-  // checking valid values
-  for (int i=1; i<=3;++i)
-    CPPUNIT_ASSERT_EQUAL(true, test.isValid(toString(i)));
-
-  // checking invalid values
-  for (int i=-10; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValid(toString(i)));
-  for (int i=4; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValid(toString(i)));
-}
-
-/** Unit test for appendValidValue.
- *
- */
-void DiscreteValueTest::appendValidValueTest()
-{
-  // create instance
-  DiscreteValue<int> test(ValidValues);
-
-  // adding values 4,5,6
-  for (int i=4; i<=6;++i) {
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-    test.appendValidValue(i);
-    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
-  }
-
-  // adding same value, throws assertion
-  const size_t size_before = test.ValidValues.size();
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  for (int i=1; i<=6;++i)
-    CPPUNIT_ASSERT_THROW(test.appendValidValue(i), Assert::AssertionFailure);
-#endif
-  CPPUNIT_ASSERT_EQUAL( size_before, test.ValidValues.size() );
-
-  // checking valid values
-  for (int i=1; i<=6;++i)
-    CPPUNIT_ASSERT_EQUAL(true, test.isValidValue(i));
-
-  // checking invalid values
-  for (int i=-10; i<=0;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-
-  // checking invalid values
-  for (int i=7; i<=10;++i)
-    CPPUNIT_ASSERT_EQUAL(false, test.isValidValue(i));
-}
-
-/** Unit test for setters and getters.
- *
- */
-void DiscreteValueTest::settergetterTest()
-{
-  // create instance
-  DiscreteValue<int> test(ValidValues);
-
-  // unset calling of get, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.get(), Assert::AssertionFailure);
-#endif
-
-  // setting invalid, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.set(toString(4)), Assert::AssertionFailure);
-#endif
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.set(toString(0)), Assert::AssertionFailure);
-#endif
-
-  // checking all valid ones
-  for (int i=1; i<=3;++i) {
-    test.set(toString(i));
-    CPPUNIT_ASSERT_EQUAL(toString(i), test.get());
-  }
-
-}
-
-/** Unit test for setValue and getValue.
- *
- */
-void DiscreteValueTest::settergetterValueTest()
-{
-  // create instance
-  DiscreteValue<int> test(ValidValues);
-
-  // unset calling of get, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.getValue(), Assert::AssertionFailure);
-#endif
-
-  // setting invalid, throws
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.setValue(4), Assert::AssertionFailure);
-#endif
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.setValue(0), Assert::AssertionFailure);
-#endif
-
-  // checking all valid ones
-  for (int i=1; i<=3;++i) {
-    test.setValue(i);
-    CPPUNIT_ASSERT_EQUAL(i, test.getValue());
-  }
-}
-
-/** Unit test for comparator.
- *
- */
-void DiscreteValueTest::comparatorTest()
-{
-  {
-    // create instance
-    DiscreteValue<int> test(ValidValues);
-    DiscreteValue<int> instance(ValidValues);
-    test.setValue(1);
-    instance.setValue(1);
-
-    // same value, same range
-    {
-      CPPUNIT_ASSERT(test == instance);
-    }
-
-    // different value, same range
-    {
-      const int oldvalue = instance.getValue();
-      instance.setValue(2);
-      CPPUNIT_ASSERT(test != instance);
-      instance.setValue(oldvalue);
-    }
-  }
-  {
-    DiscreteValue<int> test(ValidValues);
-    DiscreteValue<int> instance(ValidValues);
-    instance.appendValidValue(4);
-
-    test.setValue(1);
-    instance.setValue(1);
-
-    // same value, same range
-    {
-      CPPUNIT_ASSERT(test != instance);
-    }
-
-    // different value, same range
-    {
-      const int oldvalue = instance.getValue();
-      instance.setValue(2);
-      CPPUNIT_ASSERT(test != instance);
-      instance.setValue(oldvalue);
-    }
-  }
-}
Index: src/Parameters/unittests/DiscreteValueUnitTest.hpp
===================================================================
--- src/Parameters/unittests/DiscreteValueUnitTest.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/*
- * DiscreteValueUnitTest.hpp
- *
- *  Created on: Sep 28, 2011
- *      Author: heber
- */
-#ifndef DISCRETEVALUEUNITTEST_HPP_
-#define DISCRETEVALUEUNITTEST_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <cppunit/extensions/HelperMacros.h>
-
-#include <vector>
-
-class DiscreteValueTest :  public CppUnit::TestFixture
-{
-  CPPUNIT_TEST_SUITE( DiscreteValueTest ) ;
-  CPPUNIT_TEST ( findIndexOfValueTest );
-  CPPUNIT_TEST ( isValidValueTest );
-  CPPUNIT_TEST ( isValidTest );
-  CPPUNIT_TEST ( appendValidValueTest );
-  CPPUNIT_TEST ( settergetterTest );
-  CPPUNIT_TEST ( settergetterValueTest );
-  CPPUNIT_TEST ( comparatorTest );
-  CPPUNIT_TEST_SUITE_END();
-
-public:
-  void setUp();
-  void tearDown();
-
-  void findIndexOfValueTest();
-  void isValidValueTest();
-  void isValidTest();
-  void appendValidValueTest();
-  void settergetterTest();
-  void settergetterValueTest();
-  void comparatorTest();
-
-private:
-  std::vector<int> ValidValues;
-};
-
-#endif /* DISCRETEVALUEUNITTEST_HPP_ */
Index: src/Parameters/unittests/Makefile.am
===================================================================
--- src/Parameters/unittests/Makefile.am	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ src/Parameters/unittests/Makefile.am	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -3,47 +3,41 @@
 
 
-PARSERPARAMETERSTESTSSOURCES = \
-	../Parameters/unittests/ContinuousValueUnitTest.cpp \
-	../Parameters/unittests/ContinuousParameterUnitTest.cpp \
-	../Parameters/unittests/DiscreteValueUnitTest.cpp \
-	../Parameters/unittests/DiscreteParameterUnitTest.cpp \
-	../Parameters/unittests/ParameterStorageUnitTest.cpp \
-	../Parameters/unittests/StringParameterUnitTest.cpp
+PARAMETERSTESTSSOURCES = \
+	../Parameters/unittests/ContinuousValueTest.cpp \
+	../Parameters/unittests/ContinuousParameterTest.cpp \
+	../Parameters/unittests/DiscreteValueTest.cpp \
+	../Parameters/unittests/DiscreteParameterTest.cpp
 
-PARSERPARAMETERSTESTSHEADERS = \
-	../Parameters/unittests/ContinuousValueUnitTest.hpp \
-	../Parameters/unittests/ContinuousParameterUnitTest.hpp \
-	../Parameters/unittests/DiscreteValueUnitTest.hpp \
-	../Parameters/unittests/DiscreteParameterUnitTest.hpp \
-	../Parameters/unittests/ParameterStorageUnitTest.hpp \
-	../Parameters/unittests/StringParameterUnitTest.hpp
+PARAMETERSTESTSHEADERS = \
+	../Parameters/unittests/ContinuousValueTest.hpp \
+	../Parameters/unittests/ContinuousParameterTest.hpp \
+	../Parameters/unittests/DiscreteValueTest.hpp \
+	../Parameters/unittests/DiscreteParameterTest.hpp
 
-PARSERPARAMETERSTESTS = \
-	ContinuousValueUnitTest \
-	ContinuousParameterUnitTest \
-	DiscreteValueUnitTest \
-	DiscreteParameterUnitTest \
-	ParameterStorageUnitTest \
-	StringParameterUnitTest
+PARAMETERSTESTS = \
+	ContinuousValueTest \
+	ContinuousParameterTest \
+	DiscreteValueTest \
+	DiscreteParameterTest
 
-TESTS += $(PARSERPARAMETERSTESTS)
-check_PROGRAMS += $(PARSERPARAMETERSTESTS) 
-noinst_PROGRAMS += $(PARSERPARAMETERSTESTS)
+TESTS += $(PARAMETERSTESTS)
+check_PROGRAMS += $(PARAMETERSTESTS) 
+noinst_PROGRAMS += $(PARAMETERSTESTS)
 
-PARSERPARAMETERSLIBS =
+PARAMETERSLIBS =
 
 
-ContinuousValueUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	../Parameters/unittests/ContinuousValueUnitTest.cpp \
-	../Parameters/unittests/ContinuousValueUnitTest.hpp \
+ContinuousValueTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
+	../Parameters/unittests/ContinuousValueTest.cpp \
+	../Parameters/unittests/ContinuousValueTest.hpp \
 	../Parameters/ContinuousValue.hpp \
 	../Parameters/ContinuousValue_impl.hpp \
 	../Parameters/ValueInterface.hpp
-ContinuousValueUnitTest_LDADD = \
-	$(PARSERPARAMETERSLIBS)
+ContinuousValueTest_LDADD = \
+	$(PARAMETERSLIBS)
  
-ContinuousParameterUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	../Parameters/unittests/ContinuousParameterUnitTest.cpp \
-	../Parameters/unittests/ContinuousParameterUnitTest.hpp \
+ContinuousParameterTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
+	../Parameters/unittests/ContinuousParameterTest.cpp \
+	../Parameters/unittests/ContinuousParameterTest.hpp \
 	../Parameters/ContinuousValue.hpp \
 	../Parameters/ContinuousValue_impl.hpp \
@@ -52,19 +46,19 @@
 	../Parameters/Parameter.hpp \
 	../Parameters/ValueInterface.hpp
-ContinuousParameterUnitTest_LDADD = \
-	$(PARSERPARAMETERSLIBS)
+ContinuousParameterTest_LDADD = \
+	$(PARAMETERSLIBS)
  
-DiscreteValueUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	../Parameters/unittests/DiscreteValueUnitTest.cpp \
-	../Parameters/unittests/DiscreteValueUnitTest.hpp \
+DiscreteValueTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
+	../Parameters/unittests/DiscreteValueTest.cpp \
+	../Parameters/unittests/DiscreteValueTest.hpp \
 	../Parameters/DiscreteValue.hpp \
 	../Parameters/DiscreteValue_impl.hpp \
 	../Parameters/ValueInterface.hpp
-DiscreteValueUnitTest_LDADD = \
-	$(PARSERPARAMETERSLIBS)
+DiscreteValueTest_LDADD = \
+	$(PARAMETERSLIBS)
 
-DiscreteParameterUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	../Parameters/unittests/DiscreteParameterUnitTest.cpp \
-	../Parameters/unittests/DiscreteParameterUnitTest.hpp \
+DiscreteParameterTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
+	../Parameters/unittests/DiscreteParameterTest.cpp \
+	../Parameters/unittests/DiscreteParameterTest.hpp \
 	../Parameters/DiscreteValue.hpp \
 	../Parameters/DiscreteValue_impl.hpp \
@@ -73,30 +67,6 @@
 	../Parameters/Parameter.hpp \
 	../Parameters/ValueInterface.hpp
-DiscreteParameterUnitTest_LDADD = \
-	$(PARSERPARAMETERSLIBS)
-
-ParameterStorageUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	../Parameters/unittests/ParameterStorageUnitTest.cpp \
-	../Parameters/unittests/ParameterStorageUnitTest.hpp \
-	../Parameters/ParameterStorage.cpp \
-	../Parameters/ParameterStorage.hpp \
-	../Parameters/ContinuousValue.hpp \
-	../Parameters/ContinuousValue_impl.hpp \
-	../Parameters/DiscreteValue.hpp \
-	../Parameters/DiscreteValue_impl.hpp \
-	../Parameters/ValueInterface.hpp
-ParameterStorageUnitTest_LDADD = \
-	$(CodePatterns_LIBS) \
-	$(PARSERPARAMETERSLIBS)
-
-StringParameterUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	../Parameters/unittests/StringParameterUnitTest.cpp \
-	../Parameters/unittests/StringParameterUnitTest.hpp \
-	../Parameters/StringParameter.cpp \
-	../Parameters/StringParameter.hpp \
-	../Parameters/Parameter.hpp \
-	../Parameters/ValueInterface.hpp
-StringParameterUnitTest_LDADD = \
-	$(PARSERPARAMETERSLIBS)
+DiscreteParameterTest_LDADD = \
+	$(PARAMETERSLIBS)
  
  
Index: src/Parameters/unittests/ParameterStorageUnitTest.cpp
===================================================================
--- src/Parameters/unittests/ParameterStorageUnitTest.cpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,70 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * ParameterStorageUnitTest.cpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <cppunit/CompilerOutputter.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
-
-#include "ParameterStorageUnitTest.hpp"
-
-#include <typeinfo>
-
-#include "Parser/Parameters/ParameterStorage.hpp"
-#include "Parser/Parameters/ContinuousParameter.hpp"
-#include "Parser/Parameters/DiscreteParameter.hpp"
-
-#ifdef HAVE_TESTRUNNER
-#include "UnitTestMain.hpp"
-#endif /*HAVE_TESTRUNNER*/
-
-/********************************************** Test classes **************************************/
-
-// Registers the fixture into the 'registry'
-CPPUNIT_TEST_SUITE_REGISTRATION( ParameterStorageTest );
-
-
-void ParameterStorageTest::setUp()
-{}
-
-
-void ParameterStorageTest::tearDown()
-{}
-
-void ParameterStorageTest::instanceTest()
-{
-  std::vector<int> ValidValues;
-  for( int i=1; i<=4; ++i)
-    ValidValues.push_back(i);
-  range<double> ValidRange(1., 4.);
-  Parameter *intParam = new DiscreteParameter<int>("intParam", ValidValues);
-  Parameter *doubleParam = new ContinuousParameter<double>("doubleParam", ValidRange);
-  // note: delete is done by registry in tearDown ...
-
-  // check that both are not present
-  CPPUNIT_ASSERT_EQUAL(false, storage.isPresentByName("intParam"));
-  CPPUNIT_ASSERT_EQUAL(false, storage.isPresentByName("doubleParam"));
-  storage.registerInstance(intParam);
-  storage.registerInstance(doubleParam);
-  CPPUNIT_ASSERT_EQUAL(true, storage.isPresentByName("intParam"));
-  CPPUNIT_ASSERT_EQUAL(true, storage.isPresentByName("doubleParam"));
-
-  // retrieve instances and check address
-  CPPUNIT_ASSERT_EQUAL(intParam, storage.getByName("intParam"));
-  CPPUNIT_ASSERT_EQUAL(doubleParam, storage.getByName("doubleParam"));
-}
Index: src/Parameters/unittests/ParameterStorageUnitTest.hpp
===================================================================
--- src/Parameters/unittests/ParameterStorageUnitTest.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/*
- * ParameterStorageUnitTest.hpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-
-#ifndef PARAMETERSTORAGEUNITTEST_HPP_
-#define PARAMETERSTORAGEUNITTEST_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <cppunit/extensions/HelperMacros.h>
-
-#include "Parser/Parameters/ParameterStorage.hpp"
-
-/********************************************** Test classes **************************************/
-
-class ParameterStorageTest : public CppUnit::TestFixture
-{
-    CPPUNIT_TEST_SUITE( ParameterStorageTest) ;
-    CPPUNIT_TEST ( instanceTest );
-    CPPUNIT_TEST_SUITE_END();
-
-public:
-      void setUp();
-      void tearDown();
-      void instanceTest();
-
-private:
-      ParameterStorage storage;
-};
-
-#endif /* PARAMETERSTORAGEUNITTEST_HPP_ */
Index: src/Parameters/unittests/StringParameterUnitTest.cpp
===================================================================
--- src/Parameters/unittests/StringParameterUnitTest.cpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,100 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * StringParameterUnitTest.cpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "StringParameterUnitTest.hpp"
-
-#include <cppunit/CompilerOutputter.h>
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
-
-#include "Parser/Parameters/StringParameter.hpp"
-
-#include "CodePatterns/Assert.hpp"
-
-#ifdef HAVE_TESTRUNNER
-#include "UnitTestMain.hpp"
-#endif /*HAVE_TESTRUNNER*/
-
-// Registers the fixture into the 'registry'
-CPPUNIT_TEST_SUITE_REGISTRATION( StringParameterTest );
-
-
-void StringParameterTest::setUp()
-{
-  // failing asserts should be thrown
-  ASSERT_DO(Assert::Throw);
-}
-
-void StringParameterTest::tearDown()
-{
-}
-
-/************************************ tests ***********************************/
-
-/** Unit test for comparator.
- *
- */
-void StringParameterTest::comparatorTest()
-{
-  // create instance
-  StringParameter test("stringParam");
-  StringParameter samenamedsamevalued("stringParam");
-  StringParameter samenamedelsevalued("stringParam");
-  StringParameter elsenamedsamevalued("string2Param");
-  StringParameter elsenamedelsevalued("string2Param");
-  test.set(std::string("1"));
-  samenamedsamevalued.set(std::string("1"));
-  samenamedelsevalued.set(std::string("2"));
-  elsenamedsamevalued.set(std::string("1"));
-  elsenamedelsevalued.set(std::string("2"));
-
-  CPPUNIT_ASSERT( test == samenamedsamevalued );
-  CPPUNIT_ASSERT( test != samenamedelsevalued );
-  CPPUNIT_ASSERT( test != elsenamedsamevalued );
-  CPPUNIT_ASSERT( test != elsenamedelsevalued );
-}
-
-/** Unit test for clone.
- *
- */
-void StringParameterTest::cloneTest()
-{
-  // create instance
-  StringParameter test("intParam");
-
-  // check that we throw because of unset parameter
-#ifndef NDEBUG
-  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
-  CPPUNIT_ASSERT_THROW(test.clone(), Assert::AssertionFailure);
-#endif
-
-  // set parameter
-  test.set(std::string("1"));
-
-  // is returned as Parameter but we can compare only in true class as
-  // Parameter may also be a DiscreteParameter where comparison is nonsense
-  StringParameter *instance = dynamic_cast< StringParameter *> (test.clone());
-
-  // different places in memory
-  CPPUNIT_ASSERT( &test != instance);
-
-  // but same contents
-  CPPUNIT_ASSERT( test == *instance);
-}
-
Index: src/Parameters/unittests/StringParameterUnitTest.hpp
===================================================================
--- src/Parameters/unittests/StringParameterUnitTest.hpp	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ 	(revision )
@@ -1,35 +1,0 @@
-/*
- * StringParameterUnitTest.hpp
- *
- *  Created on: Sep 30, 2011
- *      Author: heber
- */
-#ifndef STRINGPARAMETERUNITTEST_HPP_
-#define STRINGPARAMETERUNITTEST_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-
-#include <cppunit/extensions/HelperMacros.h>
-
-class StringParameterTest :  public CppUnit::TestFixture
-{
-  CPPUNIT_TEST_SUITE( StringParameterTest ) ;
-  CPPUNIT_TEST ( comparatorTest );
-  CPPUNIT_TEST ( cloneTest );
-  CPPUNIT_TEST_SUITE_END();
-
-public:
-  void setUp();
-  void tearDown();
-
-  void comparatorTest();
-  void cloneTest();
-
-};
-
-#endif /* STRINGPARAMETERUNITTEST_HPP_ */
Index: src/unittests/Makefile.am
===================================================================
--- src/unittests/Makefile.am	(revision c6840955ef22e9d69031736a671ae0837c31572d)
+++ src/unittests/Makefile.am	(revision dbb533a8e99f70b7509610a615ac25dbf78b5892)
@@ -16,4 +16,5 @@
 include ../../src/Graph/unittests/Makefile.am
 include ../../src/LinkedCell/unittests/Makefile.am
+include ../../src/Parameters/unittests/Makefile.am
 include ../../src/Parser/unittests/Makefile.am
 include ../../src/RandomNumbers/unittests/Makefile.am
@@ -79,4 +80,5 @@
 	${LINKEDCELLTESTSSOURCES} \
 	${LINEARALGEBRATESTSSOURCES} \
+	${PARAMETERTESTSSOURCES} \
 	${PARSERTESTSSOURCES} \
 	${RANDOMNUMBERTESTSSOURCES} \
@@ -104,4 +106,5 @@
 	${LINKEDCELLTESTHEADERS} \
 	${LINEARALGEBRATESTSHEADERS} \
+	${PARAMETERTESTSHEADERS} \
 	${PARSERTESTSHEADERS} \
 	${RANDOMNUMBERTESTSHEADERS} \
