From 8a50ed86f3016935b6495971f514db85a459e93b Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Sat, 5 Jan 2013 23:49:47 +0100 Subject: Check that minCoeff(int*)/maxCoeff(int*) always pick the first entry in case of multiple extrema. --- test/visitor.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test/visitor.cpp') diff --git a/test/visitor.cpp b/test/visitor.cpp index 087306258..b771be73d 100644 --- a/test/visitor.cpp +++ b/test/visitor.cpp @@ -97,6 +97,17 @@ template void vectorVisitor(const VectorType& w) VERIFY_IS_APPROX(maxc, eigen_maxc); VERIFY_IS_APPROX(minc, v.minCoeff()); VERIFY_IS_APPROX(maxc, v.maxCoeff()); + + Index idx0 = internal::random(0,size-1); + Index idx1 = eigen_minidx; + Index idx2 = eigen_maxidx; + VectorType v1(v), v2(v); + v1(idx0) = v1(idx1); + v2(idx0) = v2(idx2); + v1.minCoeff(&eigen_minidx); + v2.maxCoeff(&eigen_maxidx); + VERIFY(eigen_minidx == (std::min)(idx0,idx1)); + VERIFY(eigen_maxidx == (std::min)(idx0,idx2)); } void test_visitor() @@ -111,6 +122,7 @@ void test_visitor() } for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_7( vectorVisitor(Vector4f()) ); + CALL_SUBTEST_7( vectorVisitor(Matrix()) ); CALL_SUBTEST_8( vectorVisitor(VectorXd(10)) ); CALL_SUBTEST_9( vectorVisitor(RowVectorXd(10)) ); CALL_SUBTEST_10( vectorVisitor(VectorXf(33)) ); -- cgit v1.2.3