From 6d08301dccca100d0ba75345a6fab88d22232847 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Thu, 13 May 2010 23:34:04 +0200 Subject: [PATCH] add regression test for previous fix --- test/redux.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/redux.cpp b/test/redux.cpp index 2dc4dcc45..104cd4cdd 100644 --- a/test/redux.cpp +++ b/test/redux.cpp @@ -52,6 +52,17 @@ template void matrixRedux(const MatrixType& m) VERIFY_IS_APPROX(m1.prod(), p); VERIFY_IS_APPROX(m1.real().minCoeff(), ei_real(minc)); VERIFY_IS_APPROX(m1.real().maxCoeff(), ei_real(maxc)); + + // test sclice vectorization assuming assign is ok + int r0 = ei_random(0,rows-1); + int c0 = ei_random(0,cols-1); + int r1 = ei_random(r0+1,rows)-r0; + int c1 = ei_random(c0+1,cols)-c0; + VERIFY_IS_APPROX(m1.block(r0,c0,r1,c1).sum(), m1.block(r0,c0,r1,c1).eval().sum()); + VERIFY_IS_APPROX(m1.block(r0,c0,r1,c1).mean(), m1.block(r0,c0,r1,c1).eval().mean()); + VERIFY_IS_APPROX(m1.block(r0,c0,r1,c1).prod(), m1.block(r0,c0,r1,c1).eval().prod()); + VERIFY_IS_APPROX(m1.block(r0,c0,r1,c1).real().minCoeff(), m1.block(r0,c0,r1,c1).real().eval().minCoeff()); + VERIFY_IS_APPROX(m1.block(r0,c0,r1,c1).real().maxCoeff(), m1.block(r0,c0,r1,c1).real().eval().maxCoeff()); } template void vectorRedux(const VectorType& w)