diff --git a/tests/value.cpp b/tests/value.cpp
index 657c06934c97e0ac4a4ab135ac5fc0b652deede2..0386e019ee9379fe37cfa2598a52838a61aa27fb 100644
--- a/tests/value.cpp
+++ b/tests/value.cpp
@@ -11,6 +11,128 @@
 
 using boost::test_tools::output_test_stream;
 
+BOOST_AUTO_TEST_CASE(value_bool) {
+  using dynamicgraph::command::Value;
+
+  bool abool1(false);
+  Value value1(abool1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=bool, value=0"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=bool, value=0"));
+  }
+}
+
+BOOST_AUTO_TEST_CASE(value_unsigned_int) {
+  using dynamicgraph::command::Value;
+
+  unsigned int aint1(5);
+  Value value1(aint1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=unsigned int, value=5"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=unsigned int, value=5"));
+  }
+}
+
+BOOST_AUTO_TEST_CASE(value_int) {
+  using dynamicgraph::command::Value;
+
+  int aint1(5);
+  Value value1(aint1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=int, value=5"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=int, value=5"));
+  }
+}
+
+BOOST_AUTO_TEST_CASE(value_float) {
+  using dynamicgraph::command::Value;
+
+  float afloat1(0.5);
+  Value value1(afloat1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=float, value=0.5"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=float, value=0.5"));
+  }
+}
+
+BOOST_AUTO_TEST_CASE(value_double) {
+  using dynamicgraph::command::Value;
+
+  double adouble1(0.5);
+  Value value1(adouble1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=double, value=0.5"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=double, value=0.5"));
+  }
+}
+
+BOOST_AUTO_TEST_CASE(value_vector) {
+  using dynamicgraph::command::Value;
+
+  dynamicgraph::Vector avector1;
+  avector1.resize(2);
+  avector1[0]=0.5;avector1[1]=1.5;
+  Value value1(avector1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=vector, value=0.5\n1.5"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=vector, value=0.5\n1.5"));
+  }
+}
+
 BOOST_AUTO_TEST_CASE(value_string) {
   using dynamicgraph::command::Value;
 
@@ -46,3 +168,53 @@ BOOST_AUTO_TEST_CASE(value_string) {
     BOOST_CHECK(output.is_equal("Type=string, value=value #2"));
   }
 }
+
+BOOST_AUTO_TEST_CASE(value_matrixXd) {
+  using dynamicgraph::command::Value;
+
+  Eigen::MatrixXd avector1;
+  avector1.resize(2,2);
+  avector1(0,0)=0.5;avector1(0,1)=1.5;
+  avector1(1,0)=2.5;avector1(1,1)=3.5;
+  Value value1(avector1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=matrixXd, value=0.5 1.5\n2.5 3.5"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=matrixXd, value=0.5 1.5\n2.5 3.5"));
+  }
+}
+
+BOOST_AUTO_TEST_CASE(value_matrix4d) {
+  using dynamicgraph::command::Value;
+
+  Eigen::Matrix4d avector1;
+  avector1.setZero();
+  avector1(0,0)=0.5;avector1(0,1)=1.5;
+  avector1(1,0)=2.5;avector1(1,1)=3.5;
+  Value value1(avector1);
+  Value value=value1;
+
+  {
+    output_test_stream output;
+    output << value1;
+    BOOST_CHECK(output.is_equal("Type=matrix4d, value=0.5 1.5   0   0\n"
+                                "2.5 3.5   0   0\n  0   0   0   0\n"
+                                "  0   0   0   0"));
+  }
+
+  {
+    output_test_stream output;
+    output << value;
+    BOOST_CHECK(output.is_equal("Type=matrix4d, value=0.5 1.5   0   0\n"
+                                "2.5 3.5   0   0\n  0   0   0   0\n"
+                                "  0   0   0   0"));
+  }
+}