Add unit test for bug #879

This commit is contained in:
Gael Guennebaud 2015-06-16 22:11:41 +02:00
parent 9ab8ac5c8b
commit 736a805883

View File

@ -33,6 +33,8 @@ template<typename Scalar> void mmtr(int size)
MatrixColMaj osc(othersize,size); osc.setRandom(); MatrixColMaj osc(othersize,size); osc.setRandom();
MatrixRowMaj sor(size,othersize); sor.setRandom(); MatrixRowMaj sor(size,othersize); sor.setRandom();
MatrixRowMaj osr(othersize,size); osr.setRandom(); MatrixRowMaj osr(othersize,size); osr.setRandom();
MatrixColMaj sqc(size,size); sqc.setRandom();
MatrixRowMaj sqr(size,size); sqr.setRandom();
Scalar s = internal::random<Scalar>(); Scalar s = internal::random<Scalar>();
@ -50,6 +52,16 @@ template<typename Scalar> void mmtr(int size)
CHECK_MMTR(matc, Upper, -= s*(osc.transpose()*osc.conjugate())); CHECK_MMTR(matc, Upper, -= s*(osc.transpose()*osc.conjugate()));
CHECK_MMTR(matr, Lower, -= s*soc*soc.adjoint()); CHECK_MMTR(matr, Lower, -= s*soc*soc.adjoint());
CHECK_MMTR(matr, Upper, -= soc*(s*soc.adjoint())); CHECK_MMTR(matr, Upper, -= soc*(s*soc.adjoint()));
CHECK_MMTR(matc, Lower, -= s*sqr*sqc.template triangularView<Upper>());
CHECK_MMTR(matc, Upper, = s*sqc*sqr.template triangularView<Upper>());
CHECK_MMTR(matc, Lower, += s*sqr*sqc.template triangularView<Lower>());
CHECK_MMTR(matc, Upper, = s*sqc*sqc.template triangularView<Lower>());
CHECK_MMTR(matc, Lower, = (s*sqr).template triangularView<Upper>()*sqc);
CHECK_MMTR(matc, Upper, -= (s*sqc).template triangularView<Upper>()*sqc);
CHECK_MMTR(matc, Lower, = (s*sqr).template triangularView<Lower>()*sqc);
CHECK_MMTR(matc, Upper, += (s*sqc).template triangularView<Lower>()*sqc);
} }
void test_product_mmtr() void test_product_mmtr()