aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/nullary.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2017-01-25 15:27:13 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2017-01-25 15:27:13 +0100
commitd06a48959abac6369336d3873d46aee78f8fbec2 (patch)
tree8b27c8d01d972f84dae89dee40e8618782e74f63 /test/nullary.cpp
parente96c77668d0cbe8951ef2dbfae10d2fd6f4566a1 (diff)
bug #1383: Fix regression from 3.2 with LinSpaced(n,0,n-1) with n==0.
Diffstat (limited to 'test/nullary.cpp')
-rw-r--r--test/nullary.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/nullary.cpp b/test/nullary.cpp
index 351d26e74..bb0cea937 100644
--- a/test/nullary.cpp
+++ b/test/nullary.cpp
@@ -152,6 +152,30 @@ void testVectorType(const VectorType& base)
m.tail(size-1).setLinSpaced(low, high);
VERIFY_IS_APPROX(m(size-1), high);
}
+
+ // regression test for bug 1383 (LinSpaced with empty size/range)
+ {
+ Index n0 = VectorType::SizeAtCompileTime==Dynamic ? 0 : VectorType::SizeAtCompileTime;
+ low = internal::random<Scalar>();
+ m = VectorType::LinSpaced(n0,low,low-1);
+ VERIFY(m.size()==n0);
+
+ if(VectorType::SizeAtCompileTime==Dynamic)
+ {
+ VERIFY_IS_EQUAL(VectorType::LinSpaced(n0,0,Scalar(n0-1)).sum(),Scalar(0));
+ VERIFY_IS_EQUAL(VectorType::LinSpaced(n0,low,low-1).sum(),Scalar(0));
+ }
+
+ m.setLinSpaced(n0,0,Scalar(n0-1));
+ VERIFY(m.size()==n0);
+ m.setLinSpaced(n0,low,low-1);
+ VERIFY(m.size()==n0);
+
+ // empty range only:
+ VERIFY_IS_APPROX(VectorType::LinSpaced(size,low,low),VectorType::Constant(size,low));
+ m.setLinSpaced(size,low,low);
+ VERIFY_IS_APPROX(m,VectorType::Constant(size,low));
+ }
}
template<typename MatrixType>