diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-05-13 23:34:04 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-05-13 23:34:04 +0200 |
commit | 6d08301dccca100d0ba75345a6fab88d22232847 (patch) | |
tree | 0a89555be8d44f9391605f9b20222557439ee268 /test/redux.cpp | |
parent | 42a1c983c1f78ee0d108e8e5e530f9645f8ef6e1 (diff) |
add regression test for previous fix
Diffstat (limited to 'test/redux.cpp')
-rw-r--r-- | test/redux.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
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<typename MatrixType> 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<int>(0,rows-1); + int c0 = ei_random<int>(0,cols-1); + int r1 = ei_random<int>(r0+1,rows)-r0; + int c1 = ei_random<int>(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<typename VectorType> void vectorRedux(const VectorType& w) |