From 627595ad191ffbb2bdab0466d15b951fdce55273 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 10 Jun 2009 11:20:30 +0200 Subject: * rename PartialRedux to VectorwiseOp * add VectorwiseOp's +, -, +=, -= operators --- test/array.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/array.cpp b/test/array.cpp index 053f97327..37deeaa4f 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -33,7 +33,8 @@ template void array(const MatrixType& m) typedef typename MatrixType::Scalar Scalar; typedef typename NumTraits::Real RealScalar; - typedef Matrix VectorType; + typedef Matrix ColVectorType; + typedef Matrix RowVectorType; int rows = m.rows(); int cols = m.cols(); @@ -42,6 +43,9 @@ template void array(const MatrixType& m) m2 = MatrixType::Random(rows, cols), m3(rows, cols); + ColVectorType cv1 = ColVectorType::Random(rows); + RowVectorType rv1 = RowVectorType::Random(cols); + Scalar s1 = ei_random(), s2 = ei_random(); @@ -62,6 +66,16 @@ template void array(const MatrixType& m) if (!ei_isApprox(m1.sum(), (m1+m2).sum())) VERIFY_IS_NOT_APPROX(((m1+m2).rowwise().sum()).sum(), m1.sum()); VERIFY_IS_APPROX(m1.colwise().sum(), m1.colwise().redux(ei_scalar_sum_op())); + + // vector-wise ops + m3 = m1; + VERIFY_IS_APPROX(m3.colwise() += cv1, m1.colwise() + cv1); + m3 = m1; + VERIFY_IS_APPROX(m3.colwise() -= cv1, m1.colwise() - cv1); + m3 = m1; + VERIFY_IS_APPROX(m3.rowwise() += rv1, m1.rowwise() + rv1); + m3 = m1; + VERIFY_IS_APPROX(m3.rowwise() -= rv1, m1.rowwise() - rv1); } template void comparisons(const MatrixType& m) @@ -89,13 +103,13 @@ template void comparisons(const MatrixType& m) VERIFY(! (m1.cwise() < m3).all() ); VERIFY(! (m1.cwise() > m3).all() ); } - + // comparisons to scalar VERIFY( (m1.cwise() != (m1(r,c)+1) ).any() ); VERIFY( (m1.cwise() > (m1(r,c)-1) ).any() ); VERIFY( (m1.cwise() < (m1(r,c)+1) ).any() ); VERIFY( (m1.cwise() == m1(r,c) ).any() ); - + // test Select VERIFY_IS_APPROX( (m1.cwise()m2).select(m1,m2), m1.cwise().max(m2) ); @@ -112,7 +126,7 @@ template void comparisons(const MatrixType& m) .select(m1,0), m3); // even shorter version: VERIFY_IS_APPROX( (m1.cwise().abs().cwise()RealScalar(0.1)).count() == rows*cols); VERIFY_IS_APPROX(((m1.cwise().abs().cwise()+1).cwise()>RealScalar(0.1)).colwise().count(), RowVectorXi::Constant(cols,rows)); -- cgit v1.2.3