summaryrefslogtreecommitdiffhomepage
path: root/eigen/failtest
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-09-18 12:42:15 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-11-02 15:12:04 +0100
commit44861dcbfeee041223c4aac1ee075e92fa4daa01 (patch)
tree6dfdfd9637846a7aedd71ace97d7d2ad366496d7 /eigen/failtest
parentf3fe458b9e0a29a99a39d47d9a76dc18964b6fec (diff)
update
Diffstat (limited to 'eigen/failtest')
-rw-r--r--eigen/failtest/CMakeLists.txt54
-rw-r--r--eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp15
-rw-r--r--eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp15
-rw-r--r--eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp16
-rw-r--r--eigen/failtest/block_on_const_type_actually_const_0.cpp16
-rw-r--r--eigen/failtest/block_on_const_type_actually_const_1.cpp16
-rw-r--r--eigen/failtest/colpivqr_int.cpp14
-rw-r--r--eigen/failtest/const_qualified_block_method_retval_0.cpp15
-rw-r--r--eigen/failtest/const_qualified_block_method_retval_1.cpp15
-rw-r--r--eigen/failtest/const_qualified_diagonal_method_retval.cpp15
-rw-r--r--eigen/failtest/const_qualified_transpose_method_retval.cpp15
-rw-r--r--eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp15
-rw-r--r--eigen/failtest/diagonal_on_const_type_actually_const.cpp16
-rw-r--r--eigen/failtest/eigensolver_cplx.cpp14
-rw-r--r--eigen/failtest/eigensolver_int.cpp14
-rw-r--r--eigen/failtest/failtest_sanity_check.cpp5
-rw-r--r--eigen/failtest/fullpivlu_int.cpp14
-rw-r--r--eigen/failtest/fullpivqr_int.cpp14
-rw-r--r--eigen/failtest/jacobisvd_int.cpp14
-rw-r--r--eigen/failtest/ldlt_int.cpp14
-rw-r--r--eigen/failtest/llt_int.cpp14
-rw-r--r--eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp15
-rw-r--r--eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp15
-rw-r--r--eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp15
-rw-r--r--eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp15
-rw-r--r--eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp15
-rw-r--r--eigen/failtest/map_on_const_type_actually_const_0.cpp15
-rw-r--r--eigen/failtest/map_on_const_type_actually_const_1.cpp15
-rw-r--r--eigen/failtest/partialpivlu_int.cpp14
-rw-r--r--eigen/failtest/qr_int.cpp14
-rw-r--r--eigen/failtest/ref_1.cpp18
-rw-r--r--eigen/failtest/ref_2.cpp15
-rw-r--r--eigen/failtest/ref_3.cpp15
-rw-r--r--eigen/failtest/ref_4.cpp15
-rw-r--r--eigen/failtest/ref_5.cpp16
-rw-r--r--eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp15
-rw-r--r--eigen/failtest/transpose_on_const_type_actually_const.cpp16
37 files changed, 583 insertions, 0 deletions
diff --git a/eigen/failtest/CMakeLists.txt b/eigen/failtest/CMakeLists.txt
new file mode 100644
index 0000000..cadc6a2
--- /dev/null
+++ b/eigen/failtest/CMakeLists.txt
@@ -0,0 +1,54 @@
+message(STATUS "Running the failtests")
+
+ei_add_failtest("failtest_sanity_check")
+
+ei_add_failtest("block_nonconst_ctor_on_const_xpr_0")
+ei_add_failtest("block_nonconst_ctor_on_const_xpr_1")
+ei_add_failtest("block_nonconst_ctor_on_const_xpr_2")
+ei_add_failtest("transpose_nonconst_ctor_on_const_xpr")
+ei_add_failtest("diagonal_nonconst_ctor_on_const_xpr")
+
+ei_add_failtest("const_qualified_block_method_retval_0")
+ei_add_failtest("const_qualified_block_method_retval_1")
+ei_add_failtest("const_qualified_transpose_method_retval")
+ei_add_failtest("const_qualified_diagonal_method_retval")
+
+ei_add_failtest("map_nonconst_ctor_on_const_ptr_0")
+ei_add_failtest("map_nonconst_ctor_on_const_ptr_1")
+ei_add_failtest("map_nonconst_ctor_on_const_ptr_2")
+ei_add_failtest("map_nonconst_ctor_on_const_ptr_3")
+ei_add_failtest("map_nonconst_ctor_on_const_ptr_4")
+
+ei_add_failtest("map_on_const_type_actually_const_0")
+ei_add_failtest("map_on_const_type_actually_const_1")
+ei_add_failtest("block_on_const_type_actually_const_0")
+ei_add_failtest("block_on_const_type_actually_const_1")
+ei_add_failtest("transpose_on_const_type_actually_const")
+ei_add_failtest("diagonal_on_const_type_actually_const")
+
+ei_add_failtest("ref_1")
+ei_add_failtest("ref_2")
+ei_add_failtest("ref_3")
+ei_add_failtest("ref_4")
+ei_add_failtest("ref_5")
+
+ei_add_failtest("partialpivlu_int")
+ei_add_failtest("fullpivlu_int")
+ei_add_failtest("llt_int")
+ei_add_failtest("ldlt_int")
+ei_add_failtest("qr_int")
+ei_add_failtest("colpivqr_int")
+ei_add_failtest("fullpivqr_int")
+ei_add_failtest("jacobisvd_int")
+ei_add_failtest("eigensolver_int")
+ei_add_failtest("eigensolver_cplx")
+
+if (EIGEN_FAILTEST_FAILURE_COUNT)
+ message(FATAL_ERROR
+ "${EIGEN_FAILTEST_FAILURE_COUNT} out of ${EIGEN_FAILTEST_COUNT} failtests FAILED. "
+ "To debug these failures, manually compile these programs in ${CMAKE_CURRENT_SOURCE_DIR}, "
+ "with and without #define EIGEN_SHOULD_FAIL_TO_BUILD.")
+else()
+ message(STATUS "Failtest SUCCESS: all ${EIGEN_FAILTEST_COUNT} failtests passed.")
+ message(STATUS "")
+endif()
diff --git a/eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp b/eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp
new file mode 100644
index 0000000..40b8201
--- /dev/null
+++ b/eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Block<Matrix3d,3,3> b(m,0,0);
+}
+
+int main() {}
diff --git a/eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp b/eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp
new file mode 100644
index 0000000..ef6d537
--- /dev/null
+++ b/eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Block<Matrix3d> b(m,0,0,3,3);
+}
+
+int main() {}
diff --git a/eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp b/eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp
new file mode 100644
index 0000000..43f18ae
--- /dev/null
+++ b/eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp
@@ -0,0 +1,16 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ // row/column constructor
+ Block<Matrix3d,3,1> b(m,0);
+}
+
+int main() {}
diff --git a/eigen/failtest/block_on_const_type_actually_const_0.cpp b/eigen/failtest/block_on_const_type_actually_const_0.cpp
new file mode 100644
index 0000000..009bebe
--- /dev/null
+++ b/eigen/failtest/block_on_const_type_actually_const_0.cpp
@@ -0,0 +1,16 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(){
+ Matrix3f m;
+ Block<CV_QUALIFIER Matrix3f>(m, 0, 0, 3, 3).coeffRef(0, 0) = 1.0f;
+}
+
+int main() {}
diff --git a/eigen/failtest/block_on_const_type_actually_const_1.cpp b/eigen/failtest/block_on_const_type_actually_const_1.cpp
new file mode 100644
index 0000000..4c3e93f
--- /dev/null
+++ b/eigen/failtest/block_on_const_type_actually_const_1.cpp
@@ -0,0 +1,16 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(){
+ MatrixXf m;
+ Block<CV_QUALIFIER MatrixXf, 3, 3>(m, 0, 0).coeffRef(0, 0) = 1.0f;
+}
+
+int main() {}
diff --git a/eigen/failtest/colpivqr_int.cpp b/eigen/failtest/colpivqr_int.cpp
new file mode 100644
index 0000000..db11910
--- /dev/null
+++ b/eigen/failtest/colpivqr_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/QR"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ ColPivHouseholderQR<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/const_qualified_block_method_retval_0.cpp b/eigen/failtest/const_qualified_block_method_retval_0.cpp
new file mode 100644
index 0000000..a6bd5fe
--- /dev/null
+++ b/eigen/failtest/const_qualified_block_method_retval_0.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Block<Matrix3d,3,3> b(m.block<3,3>(0,0));
+}
+
+int main() {}
diff --git a/eigen/failtest/const_qualified_block_method_retval_1.cpp b/eigen/failtest/const_qualified_block_method_retval_1.cpp
new file mode 100644
index 0000000..ef40c24
--- /dev/null
+++ b/eigen/failtest/const_qualified_block_method_retval_1.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Block<Matrix3d> b(m.block(0,0,3,3));
+}
+
+int main() {}
diff --git a/eigen/failtest/const_qualified_diagonal_method_retval.cpp b/eigen/failtest/const_qualified_diagonal_method_retval.cpp
new file mode 100644
index 0000000..809594a
--- /dev/null
+++ b/eigen/failtest/const_qualified_diagonal_method_retval.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Diagonal<Matrix3d> b(m.diagonal());
+}
+
+int main() {}
diff --git a/eigen/failtest/const_qualified_transpose_method_retval.cpp b/eigen/failtest/const_qualified_transpose_method_retval.cpp
new file mode 100644
index 0000000..2d7f19c
--- /dev/null
+++ b/eigen/failtest/const_qualified_transpose_method_retval.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Transpose<Matrix3d> b(m.transpose());
+}
+
+int main() {}
diff --git a/eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp b/eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp
new file mode 100644
index 0000000..76398a2
--- /dev/null
+++ b/eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Diagonal<Matrix3d> d(m);
+}
+
+int main() {}
diff --git a/eigen/failtest/diagonal_on_const_type_actually_const.cpp b/eigen/failtest/diagonal_on_const_type_actually_const.cpp
new file mode 100644
index 0000000..d4b2fd9
--- /dev/null
+++ b/eigen/failtest/diagonal_on_const_type_actually_const.cpp
@@ -0,0 +1,16 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(){
+ MatrixXf m;
+ Diagonal<CV_QUALIFIER MatrixXf>(m).coeffRef(0) = 1.0f;
+}
+
+int main() {}
diff --git a/eigen/failtest/eigensolver_cplx.cpp b/eigen/failtest/eigensolver_cplx.cpp
new file mode 100644
index 0000000..c2e21e1
--- /dev/null
+++ b/eigen/failtest/eigensolver_cplx.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/Eigenvalues"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR std::complex<double>
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ EigenSolver<Matrix<SCALAR,Dynamic,Dynamic> > eig(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/eigensolver_int.cpp b/eigen/failtest/eigensolver_int.cpp
new file mode 100644
index 0000000..eda8dc2
--- /dev/null
+++ b/eigen/failtest/eigensolver_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/Eigenvalues"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ EigenSolver<Matrix<SCALAR,Dynamic,Dynamic> > eig(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/failtest_sanity_check.cpp b/eigen/failtest/failtest_sanity_check.cpp
new file mode 100644
index 0000000..769fa94
--- /dev/null
+++ b/eigen/failtest/failtest_sanity_check.cpp
@@ -0,0 +1,5 @@
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+This is just some text that won't compile as a C++ file, as a basic sanity check for failtest.
+#else
+int main() {}
+#endif
diff --git a/eigen/failtest/fullpivlu_int.cpp b/eigen/failtest/fullpivlu_int.cpp
new file mode 100644
index 0000000..e9d2c6e
--- /dev/null
+++ b/eigen/failtest/fullpivlu_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/LU"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ FullPivLU<Matrix<SCALAR,Dynamic,Dynamic> > lu(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/fullpivqr_int.cpp b/eigen/failtest/fullpivqr_int.cpp
new file mode 100644
index 0000000..d182a7b
--- /dev/null
+++ b/eigen/failtest/fullpivqr_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/QR"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ FullPivHouseholderQR<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/jacobisvd_int.cpp b/eigen/failtest/jacobisvd_int.cpp
new file mode 100644
index 0000000..12790ae
--- /dev/null
+++ b/eigen/failtest/jacobisvd_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/SVD"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ JacobiSVD<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/ldlt_int.cpp b/eigen/failtest/ldlt_int.cpp
new file mode 100644
index 0000000..243e457
--- /dev/null
+++ b/eigen/failtest/ldlt_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/Cholesky"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ LDLT<Matrix<SCALAR,Dynamic,Dynamic> > ldlt(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/llt_int.cpp b/eigen/failtest/llt_int.cpp
new file mode 100644
index 0000000..cb02065
--- /dev/null
+++ b/eigen/failtest/llt_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/Cholesky"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ LLT<Matrix<SCALAR,Dynamic,Dynamic> > llt(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp b/eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp
new file mode 100644
index 0000000..d75686f
--- /dev/null
+++ b/eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER float *ptr){
+ Map<Matrix3f> m(ptr);
+}
+
+int main() {}
diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp b/eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp
new file mode 100644
index 0000000..eda134d
--- /dev/null
+++ b/eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER float *ptr, DenseIndex size){
+ Map<ArrayXf> m(ptr, size);
+}
+
+int main() {}
diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp b/eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp
new file mode 100644
index 0000000..06b4b62
--- /dev/null
+++ b/eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER float *ptr, DenseIndex rows, DenseIndex cols){
+ Map<MatrixXf> m(ptr, rows, cols);
+}
+
+int main() {}
diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp b/eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp
new file mode 100644
index 0000000..830f6f0
--- /dev/null
+++ b/eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER float *ptr, DenseIndex rows, DenseIndex cols){
+ Map<MatrixXf, Aligned, InnerStride<2> > m(ptr, rows, cols, InnerStride<2>());
+}
+
+int main() {}
diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp b/eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp
new file mode 100644
index 0000000..c3e8c95
--- /dev/null
+++ b/eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER
+#else
+#define CV_QUALIFIER const
+#endif
+
+using namespace Eigen;
+
+void foo(const float *ptr, DenseIndex rows, DenseIndex cols){
+ Map<CV_QUALIFIER MatrixXf, Unaligned, OuterStride<> > m(ptr, rows, cols, OuterStride<>(2));
+}
+
+int main() {}
diff --git a/eigen/failtest/map_on_const_type_actually_const_0.cpp b/eigen/failtest/map_on_const_type_actually_const_0.cpp
new file mode 100644
index 0000000..8cb6aa0
--- /dev/null
+++ b/eigen/failtest/map_on_const_type_actually_const_0.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(float *ptr){
+ Map<CV_QUALIFIER MatrixXf>(ptr, 1, 1).coeffRef(0,0) = 1.0f;
+}
+
+int main() {}
diff --git a/eigen/failtest/map_on_const_type_actually_const_1.cpp b/eigen/failtest/map_on_const_type_actually_const_1.cpp
new file mode 100644
index 0000000..04e067c
--- /dev/null
+++ b/eigen/failtest/map_on_const_type_actually_const_1.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(float *ptr){
+ Map<CV_QUALIFIER Vector3f>(ptr).coeffRef(0) = 1.0f;
+}
+
+int main() {}
diff --git a/eigen/failtest/partialpivlu_int.cpp b/eigen/failtest/partialpivlu_int.cpp
new file mode 100644
index 0000000..98ef282
--- /dev/null
+++ b/eigen/failtest/partialpivlu_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/LU"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ PartialPivLU<Matrix<SCALAR,Dynamic,Dynamic> > lu(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/qr_int.cpp b/eigen/failtest/qr_int.cpp
new file mode 100644
index 0000000..ce200e8
--- /dev/null
+++ b/eigen/failtest/qr_int.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/QR"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define SCALAR int
+#else
+#define SCALAR float
+#endif
+
+using namespace Eigen;
+
+int main()
+{
+ HouseholderQR<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10));
+}
diff --git a/eigen/failtest/ref_1.cpp b/eigen/failtest/ref_1.cpp
new file mode 100644
index 0000000..8b798d5
--- /dev/null
+++ b/eigen/failtest/ref_1.cpp
@@ -0,0 +1,18 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void call_ref(Ref<VectorXf> a) { }
+
+int main()
+{
+ VectorXf a(10);
+ CV_QUALIFIER VectorXf& ac(a);
+ call_ref(ac);
+}
diff --git a/eigen/failtest/ref_2.cpp b/eigen/failtest/ref_2.cpp
new file mode 100644
index 0000000..0b779cc
--- /dev/null
+++ b/eigen/failtest/ref_2.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+using namespace Eigen;
+
+void call_ref(Ref<VectorXf> a) { }
+
+int main()
+{
+ MatrixXf A(10,10);
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+ call_ref(A.row(3));
+#else
+ call_ref(A.col(3));
+#endif
+}
diff --git a/eigen/failtest/ref_3.cpp b/eigen/failtest/ref_3.cpp
new file mode 100644
index 0000000..f46027d
--- /dev/null
+++ b/eigen/failtest/ref_3.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+using namespace Eigen;
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+void call_ref(Ref<VectorXf> a) { }
+#else
+void call_ref(const Ref<const VectorXf> &a) { }
+#endif
+
+int main()
+{
+ VectorXf a(10);
+ call_ref(a+a);
+}
diff --git a/eigen/failtest/ref_4.cpp b/eigen/failtest/ref_4.cpp
new file mode 100644
index 0000000..6c11fa4
--- /dev/null
+++ b/eigen/failtest/ref_4.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+using namespace Eigen;
+
+void call_ref(Ref<MatrixXf,0,OuterStride<> > a) {}
+
+int main()
+{
+ MatrixXf A(10,10);
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+ call_ref(A.transpose());
+#else
+ call_ref(A);
+#endif
+}
diff --git a/eigen/failtest/ref_5.cpp b/eigen/failtest/ref_5.cpp
new file mode 100644
index 0000000..846d527
--- /dev/null
+++ b/eigen/failtest/ref_5.cpp
@@ -0,0 +1,16 @@
+#include "../Eigen/Core"
+
+using namespace Eigen;
+
+void call_ref(Ref<VectorXf> a) { }
+
+int main()
+{
+ VectorXf a(10);
+ DenseBase<VectorXf> &ac(a);
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+ call_ref(ac);
+#else
+ call_ref(ac.derived());
+#endif
+}
diff --git a/eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp b/eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp
new file mode 100644
index 0000000..4223e7f
--- /dev/null
+++ b/eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp
@@ -0,0 +1,15 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(CV_QUALIFIER Matrix3d &m){
+ Transpose<Matrix3d> t(m);
+}
+
+int main() {}
diff --git a/eigen/failtest/transpose_on_const_type_actually_const.cpp b/eigen/failtest/transpose_on_const_type_actually_const.cpp
new file mode 100644
index 0000000..d0b7d0d
--- /dev/null
+++ b/eigen/failtest/transpose_on_const_type_actually_const.cpp
@@ -0,0 +1,16 @@
+#include "../Eigen/Core"
+
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+#define CV_QUALIFIER const
+#else
+#define CV_QUALIFIER
+#endif
+
+using namespace Eigen;
+
+void foo(){
+ MatrixXf m;
+ Transpose<CV_QUALIFIER MatrixXf>(m).coeffRef(0, 0) = 1.0f;
+}
+
+int main() {}