From 5a6f4804fec060500644ce35dc659ca5bbf3a5d0 Mon Sep 17 00:00:00 2001
From: Justin Carpentier <justin.carpentier@inria.fr>
Date: Sat, 23 May 2020 09:52:10 +0200
Subject: [PATCH] test: test registration of a new type

---
 unittest/matrix.cpp            | 12 ++++++++++++
 unittest/python/test_matrix.py |  4 ++++
 2 files changed, 16 insertions(+)

diff --git a/unittest/matrix.cpp b/unittest/matrix.cpp
index 84a116f1..b7cbc593 100644
--- a/unittest/matrix.cpp
+++ b/unittest/matrix.cpp
@@ -81,12 +81,22 @@ MatrixDerived base(const Eigen::MatrixBase<MatrixDerived> & m)
   return m.derived();
 }
 
+template<typename Scalar>
+Eigen::Matrix<Scalar,6,6> matrix6(const Scalar & value)
+{
+  typedef Eigen::Matrix<Scalar,6,6> ReturnType;
+  return ReturnType::Constant(value);
+}
+
 BOOST_PYTHON_MODULE(matrix)
 {
   using namespace Eigen;
   namespace bp = boost::python;
   eigenpy::enableEigenPy();
 
+  typedef Eigen::Matrix<double,6,6> Matrix6;
+  eigenpy::enableEigenPySpecific<Matrix6>();
+
   Eigen::MatrixXd (*naturalsXX)(int,int,bool) = naturals;
   Eigen::VectorXd (*naturalsX)(int,bool) = naturals;
   Eigen::Matrix3d (*naturals33)(bool) = naturals;
@@ -108,4 +118,6 @@ BOOST_PYTHON_MODULE(matrix)
   
   bp::def("base", base<VectorXd>);
   bp::def("base", base<MatrixXd>);
+
+  bp::def("matrix6", matrix6<double>);
 }
diff --git a/unittest/python/test_matrix.py b/unittest/python/test_matrix.py
index 18fce68e..5734eb92 100644
--- a/unittest/python/test_matrix.py
+++ b/unittest/python/test_matrix.py
@@ -126,3 +126,7 @@ assert(mat1x1[0,0] == value)
 vec1x1 = eigenpy.vector1x1(value)
 assert(vec1x1.size == 1)
 assert(vec1x1[0] == value)
+
+# test registration of matrix6
+mat6 = eigenpy.matrix6(0.)
+assert(mat6.size == 36)
-- 
GitLab