aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/redux.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2010-05-13 23:34:04 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2010-05-13 23:34:04 +0200
commit6d08301dccca100d0ba75345a6fab88d22232847 (patch)
tree0a89555be8d44f9391605f9b20222557439ee268 /test/redux.cpp
parent42a1c983c1f78ee0d108e8e5e530f9645f8ef6e1 (diff)
add regression test for previous fix
Diffstat (limited to 'test/redux.cpp')
-rw-r--r--test/redux.cpp11
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)