aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/diagonal.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2017-01-23 22:06:08 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2017-01-23 22:06:08 +0100
commitba3f977946ed0ac5dde82a15a9c11784513155f2 (patch)
tree0957843366137775716aed69feb8bf59c43b2b79 /test/diagonal.cpp
parentb0db4eff367017f8b273b7d407b3fe0e86808ed2 (diff)
bug #1376: add missing assertion on size mismatch with compound assignment operators (e.g., mat += mat.col(j))
Diffstat (limited to 'test/diagonal.cpp')
-rw-r--r--test/diagonal.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/diagonal.cpp b/test/diagonal.cpp
index ee00cad55..c1546e97d 100644
--- a/test/diagonal.cpp
+++ b/test/diagonal.cpp
@@ -68,6 +68,21 @@ template<typename MatrixType> void diagonal(const MatrixType& m)
}
}
+template<typename MatrixType> void diagonal_assert(const MatrixType& m) {
+ Index rows = m.rows();
+ Index cols = m.cols();
+
+ MatrixType m1 = MatrixType::Random(rows, cols);
+
+ if (rows>=2 && cols>=2)
+ {
+ VERIFY_RAISES_ASSERT( m1 += m1.diagonal() );
+ VERIFY_RAISES_ASSERT( m1 -= m1.diagonal() );
+ VERIFY_RAISES_ASSERT( m1.array() *= m1.diagonal().array() );
+ VERIFY_RAISES_ASSERT( m1.array() /= m1.diagonal().array() );
+ }
+}
+
void test_diagonal()
{
for(int i = 0; i < g_repeat; i++) {
@@ -81,4 +96,6 @@ void test_diagonal()
CALL_SUBTEST_1( diagonal(MatrixXf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) );
CALL_SUBTEST_1( diagonal(Matrix<float,Dynamic,4>(3, 4)) );
}
+
+ CALL_SUBTEST_1( diagonal_assert(MatrixXf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) );
}