From 2f67236be11a9991cad2d42a55a0c2e5a90e4488 Mon Sep 17 00:00:00 2001
From: Justin Carpentier <justin.carpentier@inria.fr>
Date: Mon, 6 Sep 2021 21:19:07 +0200
Subject: [PATCH] test: fix user_type for Windows

---
 unittest/python/test_user_type.py |  8 ++++----
 unittest/user_type.cpp            | 10 ++++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/unittest/python/test_user_type.py b/unittest/python/test_user_type.py
index 316c0314..956108d3 100644
--- a/unittest/python/test_user_type.py
+++ b/unittest/python/test_user_type.py
@@ -6,13 +6,13 @@ rows = 10
 cols = 20
 
 def test(dtype):
-  mat = np.ones((rows,cols),dtype=dtype)
+  mat = np.array(np.ones((rows,cols)).astype(np.intc),dtype=dtype)
   mat = np.random.rand(rows,cols).astype(dtype)
   mat_copy = mat.copy()
   assert (mat == mat_copy).all()
   assert not (mat != mat_copy).all()
 
-#  if version.parse(np.__version__) >= version.parse("1.21.0"): # check if it fixes for new versio of NumPy 
+#  if version.parse(np.__version__) >= version.parse("1.21.0"): # check if it fixes for new versio of NumPy
 #    mat.fill(mat.dtype.type(20.))
 #    mat_copy = mat.copy()
 #    assert((mat == mat_copy).all())
@@ -20,7 +20,7 @@ def test(dtype):
 
   mat_op = mat + mat
   mat_op = mat.copy(order='F') + mat.copy(order='C')
-  
+
   mat_op = mat - mat
   mat_op = mat * mat
   mat_op = mat.dot(mat.T)
@@ -45,7 +45,7 @@ def test_cast(from_dtype,to_dtype):
 
   from_mat = np.zeros((rows,cols),dtype=from_dtype)
   to_mat = from_mat.astype(dtype=to_dtype)
-  
+
 test(user_type.CustomDouble)
 
 test_cast(user_type.CustomDouble,np.double)
diff --git a/unittest/user_type.cpp b/unittest/user_type.cpp
index 22bc5660..46a34480 100644
--- a/unittest/user_type.cpp
+++ b/unittest/user_type.cpp
@@ -198,12 +198,14 @@ BOOST_PYTHON_MODULE(user_type)
   eigenpy::registerCast<double,DoubleType>(true);
   eigenpy::registerCast<DoubleType,int32_t>(false);
   eigenpy::registerCast<int32_t,DoubleType>(true);
-  eigenpy::registerCast<DoubleType,int64_t>(false);
-  eigenpy::registerCast<int64_t,DoubleType>(true);
+  eigenpy::registerCast<DoubleType,long long>(false);
+  eigenpy::registerCast<long long,DoubleType>(true);
   eigenpy::registerCast<FloatType,double>(true);
   eigenpy::registerCast<double,FloatType>(false);
-  eigenpy::registerCast<FloatType,int64_t>(false);
-  eigenpy::registerCast<int64_t,FloatType>(true);
+  eigenpy::registerCast<FloatType,long long>(false);
+  eigenpy::registerCast<long long,FloatType>(true);
+  eigenpy::registerCast<FloatType,int32_t>(false);
+  eigenpy::registerCast<int32_t,FloatType>(true);
 
   bp::implicitly_convertible<double,DoubleType>();
   bp::implicitly_convertible<DoubleType,double>();
-- 
GitLab