diff --git a/tests/exceptions.cpp b/tests/exceptions.cpp
index 40d43275ae90b757b150a176f98885df687ce49e..00b464dfa8a60cc70e9bd29a8b158bc2a338471d 100644
--- a/tests/exceptions.cpp
+++ b/tests/exceptions.cpp
@@ -15,7 +15,19 @@
 using boost::test_tools::output_test_stream;
 using namespace dynamicgraph;
 
+BOOST_AUTO_TEST_CASE(exception_abstract_param) {
+
+  /// Test param from Exception
+  /// Default constructor
+  ExceptionAbstract::Param aParamSimple;
+  /// Advanced constructor
+  ExceptionAbstract::Param aParam(60, "function_test", "my_file");
+  aParamSimple.initCopy(aParam);
+}
+
 BOOST_AUTO_TEST_CASE(exception_abstract) {
+
+  /// Test exception abstract with a simple message
   std::string msg_aea("Test exception abstract");
   ExceptionAbstract aEA(10, msg_aea);
 
@@ -27,9 +39,22 @@ BOOST_AUTO_TEST_CASE(exception_abstract) {
   output << aEA;
   BOOST_CHECK(
       output.is_equal("AbstractError [#10]:  Test exception abstract\n"));
+}
 
-  std::string msg_aet("Test exception abstract");
-  ExceptionTraces aET(ExceptionTraces::GENERIC, msg_aet);
+BOOST_AUTO_TEST_CASE(exception_traces) {
 
+  std::string msg_aet("Test exception traces simple");
+  ExceptionTraces aET(ExceptionTraces::GENERIC, msg_aet);
+  output_test_stream output;
   output << aET;
+  BOOST_CHECK(
+      output.is_equal("TracesError [#300]:  Test exception traces simple\n"));
+
+  /// Test exception traces with a format.
+  int a = 2, b = 3;
+  std::string msg_aet2("Test exception traces ");
+  ExceptionTraces aET2(ExceptionTraces::GENERIC, msg_aet2, "(%d,%d)", a, b);
+  output << aET2;
+  BOOST_CHECK(
+      output.is_equal("TracesError [#300]:  Test exception traces (2,3)\n"));
 }
diff --git a/tests/signal-all.cpp b/tests/signal-all.cpp
index 899130f030de83e229d5d8f83392df94acf5d820..e7ba10435505d8a61f0fc31d233bd01f276313b4 100644
--- a/tests/signal-all.cpp
+++ b/tests/signal-all.cpp
@@ -144,11 +144,55 @@ BOOST_AUTO_TEST_CASE(test_cast_helper) {
   iss.str("1");
   defaultCR.cast(iss);
 
+  bool res = false;
   try {
     std::istringstream iss_fail;
     iss.str("test");
     defaultCR.cast(iss_fail);
   } catch (ExceptionSignal &e) {
     // Take int, not string
+    res = true;
+  }
+  BOOST_CHECK(res);
+
+  /// Test cast register with Vector
+  output_test_stream output;
+  dynamicgraph::Vector avec;
+  DefaultCastRegisterer<dynamicgraph::Vector> defaultVR;
+  avec.resize(4);
+  avec[0] = 1.0;
+  avec[1] = 2.0;
+  avec[2] = 3.0;
+  avec[3] = 4.0;
+  res = true;
+  try {
+    defaultVR.trace(avec, output);
+  } catch (ExceptionSignal &e) {
+    /// Exception in case of wrong cast.
+    /// This should not happen.
+    res = false;
   }
+  BOOST_CHECK(res);
+
+  /// Test cast register with Matrix
+  dynamicgraph::Matrix amatrix;
+  DefaultCastRegisterer<dynamicgraph::Matrix> defaultMR;
+  amatrix.resize(2, 2);
+  amatrix(0, 0) = 0.0;
+  amatrix(0, 1) = 1.0;
+  amatrix(1, 0) = 2.0;
+  amatrix(1, 1) = 3.0;
+  res = true;
+  try {
+    defaultMR.trace(amatrix, output);
+  } catch (ExceptionSignal &e) {
+    /// Exception in case of wrong cast.
+    /// This should happen
+    res = false;
+  }
+  BOOST_CHECK(res);
+
+  std::istringstream aiss("test");
+  DefaultCastRegisterer<std::string> defaultSR;
+  boost::any aTest = defaultSR.cast(aiss);
 }
diff --git a/tests/signal-cast-registerer.cpp b/tests/signal-cast-registerer.cpp
index 3a9c4a7183421a4e6086bab623d431a9094760ac..a37d352d583f29b761da14eaa357f732be17e799 100644
--- a/tests/signal-cast-registerer.cpp
+++ b/tests/signal-cast-registerer.cpp
@@ -214,6 +214,13 @@ BOOST_AUTO_TEST_CASE(custom_vector_registerer) {
   } catch (ExceptionSignal &e) {
     std::cout << "Test passed : ss[-1] != \")\"";
   }
+
+  try {
+    output_test_stream output;
+    myVectorSignal.trace(output);
+  } catch (ExceptionSignal &e) {
+    std::cout << "Test passed : ss[-1] != \")\"";
+  }
 }
 
 BOOST_AUTO_TEST_CASE(custom_matrix_registerer) {
diff --git a/tests/signal-ptr.cpp b/tests/signal-ptr.cpp
index de90b79847781e903c9d4f3b1b00f8cbd6088019..2646bca5e9c560dd0fdc27a6bb0686ec0f045c05 100644
--- a/tests/signal-ptr.cpp
+++ b/tests/signal-ptr.cpp
@@ -155,6 +155,7 @@ BOOST_AUTO_TEST_CASE(normal_test) {
   BOOST_CHECK(true);
 
   sigPtrA.setFunction(boost::bind(&DummyClass<double>::fun, &pro3, _1, _2));
+  sigPtrA.recompute(3);
 
   /// Plugging signal.
   SignalBase<int> &sigRef = sig, sigBase("sigBase");
@@ -261,6 +262,9 @@ BOOST_AUTO_TEST_CASE(plug_signal_string) {
   Signal<std::string, int> outSig("output");
   SignalPtr<std::string, int> inSig(NULL, "input");
 
+  Signal<dynamicgraph::Vector, int> outSigVec("outputVec");
+  SignalPtr<dynamicgraph::Vector, int> inSigVec(NULL, "inputVec");
+
   std::string str("two words");
   outSig.setConstant(str);
   inSig.plug(&outSig);
@@ -270,6 +274,20 @@ BOOST_AUTO_TEST_CASE(plug_signal_string) {
   std::string res(os1.str());
   BOOST_CHECK(res == str);
 
+  dynamicgraph::Vector aVec;
+  aVec.resize(5);
+  aVec(0) = 1.0;
+  aVec(1) = 2.0;
+  aVec(2) = 3.0;
+  aVec(3) = 4.0;
+  aVec(4) = 5.0;
+  outSigVec.setConstant(aVec);
+  inSigVec.plug(&outSigVec);
+  inSigVec.recompute(1);
+  output_test_stream output;
+  inSigVec.get(output);
+  BOOST_CHECK(output.is_equal("1\n2\n3\n4\n5\n"));
+
   Signal<std::string, int> s("signal");
   std::ostringstream os2;
   s.setConstant(str);
diff --git a/tests/value.cpp b/tests/value.cpp
index 2c8698620f65c90571cc5ab09c7e3105f7955965..23de53e62d87f2b8db4c4805605f9a731c6ed62e 100644
--- a/tests/value.cpp
+++ b/tests/value.cpp
@@ -64,7 +64,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   bool res = false;
   try {
     int aInt(anet);
-    output << aInt;
   } catch (const dg::ExceptionAbstract &aea) {
     output << aea.getExceptionName();
     output2 << aea.what();
@@ -79,7 +78,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   res = false;
   try {
     bool abool(anet);
-    output << abool;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }
@@ -90,7 +88,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   res = false;
   try {
     unsigned int aint(anet);
-    output << aint;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }
@@ -101,7 +98,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   res = false;
   try {
     double adouble(anet);
-    output << adouble;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }
@@ -112,7 +108,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   res = false;
   try {
     float afloat(anet);
-    output << afloat;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }
@@ -123,7 +118,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   res = false;
   try {
     std::string astring(anet);
-    output << astring;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }
@@ -135,7 +129,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   try {
     dg::Vector avector;
     avector = anet;
-    output << avector;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }
@@ -147,7 +140,6 @@ BOOST_AUTO_TEST_CASE(value_exceptions) {
   try {
     Eigen::MatrixXd amatrixXd;
     amatrixXd = anet;
-    output << amatrixXd;
   } catch (const dg::ExceptionAbstract &aea) {
     res = (aea.getCode() == dg::ExceptionAbstract::TOOLS);
   }