diff --git a/test/triangular.cpp b/test/triangular.cpp index a74ca5e0b..65cd6f8f9 100644 --- a/test/triangular.cpp +++ b/test/triangular.cpp @@ -121,11 +121,40 @@ template void triangular(const MatrixType& m) m3.setZero(); m3.template part().setOnes(); VERIFY_IS_APPROX(m2,m3); +} +void selfadjoint() +{ + Matrix2i m; + m << 1, 2, + 3, 4; + VERIFY(m.part() == m); + + Matrix2i m1 = Matrix2i::Zero(); + m1.part() = m; + Matrix2i ref1; + ref1 << 1, 2, + 2, 4; + VERIFY(m1 == ref1); + + Matrix2i m2 = Matrix2i::Zero(); + m2.part() = m.part(); + Matrix2i ref2; + ref2 << 1, 2, + 2, 4; + VERIFY(m2 == ref2); + + Matrix2i m3 = Matrix2i::Zero(); + m3.part() = m.part(); + Matrix2i ref3; + ref3 << 1, 0, + 0, 4; + VERIFY(m3 == ref3); } void test_triangular() { + CALL_SUBTEST( selfadjoint() ); for(int i = 0; i < g_repeat ; i++) { CALL_SUBTEST( triangular(Matrix()) ); CALL_SUBTEST( triangular(Matrix()) );