diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-06-02 10:12:13 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-06-02 10:12:13 +0200 |
commit | 143e6ab9d0a86407763e3608ef60f8c9c69a33fd (patch) | |
tree | ceb91f35a72b6c8d1b46d7f8ad41a2fcbbb41e51 /test | |
parent | 4ebb80490ab24c41e066c6a3082b29777adbb6e5 (diff) |
improve aliasing detection for inverse and add unit test
Diffstat (limited to 'test')
-rw-r--r-- | test/inverse.cpp | 13 |
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() |