aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/diagonal.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2016-01-28 21:43:20 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2016-01-28 21:43:20 +0100
commitc1d900af61561194ad01b16a89da9f9ce1a09723 (patch)
treeb5e05631504694aa63acbd880d4af478fa12b58c /test/diagonal.cpp
parent12f8bd12a27a9359e0383aed3f44436c08ea3f92 (diff)
bug #178: remove additional const on nested expression, and remove several const_cast.
Diffstat (limited to 'test/diagonal.cpp')
-rw-r--r--test/diagonal.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/diagonal.cpp b/test/diagonal.cpp
index 53814a588..ee00cad55 100644
--- a/test/diagonal.cpp
+++ b/test/diagonal.cpp
@@ -20,6 +20,8 @@ template<typename MatrixType> void diagonal(const MatrixType& m)
MatrixType m1 = MatrixType::Random(rows, cols),
m2 = MatrixType::Random(rows, cols);
+ Scalar s1 = internal::random<Scalar>();
+
//check diagonal()
VERIFY_IS_APPROX(m1.diagonal(), m1.transpose().diagonal());
m2.diagonal() = 2 * m1.diagonal();
@@ -58,6 +60,11 @@ template<typename MatrixType> void diagonal(const MatrixType& m)
VERIFY_IS_APPROX(m2.template diagonal<N2>(), static_cast<Scalar>(2) * m1.diagonal(N2));
m2.diagonal(N2)[0] *= 3;
VERIFY_IS_APPROX(m2.diagonal(N2)[0], static_cast<Scalar>(6) * m1.diagonal(N2)[0]);
+
+ m2.diagonal(N2).x() = s1;
+ VERIFY_IS_APPROX(m2.diagonal(N2).x(), s1);
+ m2.diagonal(N2).coeffRef(0) = Scalar(2)*s1;
+ VERIFY_IS_APPROX(m2.diagonal(N2).coeff(0), Scalar(2)*s1);
}
}