From 3fb65734abb04dfb616284066a7fc09bc729b83c Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Tue, 19 Jul 2011 10:45:42 +0200 Subject: fix triangular unit test: it only accepts small matrices --- test/triangular.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'test/triangular.cpp') diff --git a/test/triangular.cpp b/test/triangular.cpp index 7d49f6f65..73bb27cb5 100644 --- a/test/triangular.cpp +++ b/test/triangular.cpp @@ -113,14 +113,14 @@ template void triangular_square(const MatrixType& m) // check M * inv(L) using in place API m4 = m3; - m3.transpose().template triangularView().solveInPlace(trm4); - VERIFY(m4.cwiseAbs().isIdentity(test_precision())); + m1.transpose().template triangularView().solveInPlace(trm4); + VERIFY_IS_APPROX(m4 * m1.template triangularView(), m3); // check M * inv(U) using in place API m3 = m1.template triangularView(); m4 = m3; m3.transpose().template triangularView().solveInPlace(trm4); - VERIFY(m4.cwiseAbs().isIdentity(test_precision())); + VERIFY_IS_APPROX(m4 * m1.template triangularView(), m3); // check solve with unit diagonal m3 = m1.template triangularView(); @@ -172,7 +172,7 @@ template void triangular_rect(const MatrixType& m) MatrixType m1up = m1.template triangularView(); MatrixType m2up = m2.template triangularView(); - if (rows*cols>1) + if (rows>1 && cols>1) { VERIFY(m1up.isUpperTriangular()); VERIFY(m2up.transpose().isLowerTriangular()); @@ -242,10 +242,11 @@ void bug_159() void test_triangular() { + int maxsize = std::min(EIGEN_TEST_MAX_SIZE,20); for(int i = 0; i < g_repeat ; i++) { - int r = internal::random(2,EIGEN_TEST_MAX_SIZE); EIGEN_UNUSED_VARIABLE(r); - int c = internal::random(2,EIGEN_TEST_MAX_SIZE); EIGEN_UNUSED_VARIABLE(c); + int r = internal::random(2,maxsize); EIGEN_UNUSED_VARIABLE(r); + int c = internal::random(2,maxsize); EIGEN_UNUSED_VARIABLE(c); CALL_SUBTEST_1( triangular_square(Matrix()) ); CALL_SUBTEST_2( triangular_square(Matrix()) ); -- cgit v1.2.3