aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/inverse.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2010-06-02 10:12:13 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2010-06-02 10:12:13 +0200
commit143e6ab9d0a86407763e3608ef60f8c9c69a33fd (patch)
treeceb91f35a72b6c8d1b46d7f8ad41a2fcbbb41e51 /test/inverse.cpp
parent4ebb80490ab24c41e066c6a3082b29777adbb6e5 (diff)
improve aliasing detection for inverse and add unit test
Diffstat (limited to 'test/inverse.cpp')
-rw-r--r--test/inverse.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/inverse.cpp b/test/inverse.cpp
index 1e567ad14..4d9297eb4 100644
--- a/test/inverse.cpp
+++ b/test/inverse.cpp
@@ -82,6 +82,19 @@ template<typename MatrixType> void inverse(const MatrixType& m)
m3.computeInverseWithCheck(m4, invertible);
VERIFY( rows==1 ? invertible : !invertible );
#endif
+
+ // check in-place inversion
+ if(MatrixType::RowsAtCompileTime>=2 && MatrixType::RowsAtCompileTime<=4)
+ {
+ // in-place is forbidden
+ VERIFY_RAISES_ASSERT(m1 = m1.inverse());
+ }
+ else
+ {
+ m2 = m1.inverse();
+ m1 = m1.inverse();
+ VERIFY_IS_APPROX(m1,m2);
+ }
}
void test_inverse()