add the possibility to reserve room for inner vector in SparseMatrix
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp
index a6c1485..d4579e4 100644
--- a/test/sparse_basic.cpp
+++ b/test/sparse_basic.cpp
@@ -140,6 +140,28 @@
m2.finalize();
VERIFY_IS_APPROX(m2,m1);
}
+
+ // test insert (un-compressed)
+ for(int mode=0;mode<4;++mode)
+ {
+ DenseMatrix m1(rows,cols);
+ m1.setZero();
+ SparseMatrixType m2(rows,cols);
+ VectorXi r(VectorXi::Constant(m2.outerSize(), ((mode%2)==0) ? m2.innerSize() : std::max<int>(1,m2.innerSize()/8)));
+ m2.reserve(r);
+ for (int k=0; k<rows*cols; ++k)
+ {
+ int i = internal::random<int>(0,rows-1);
+ int j = internal::random<int>(0,cols-1);
+ if (m1.coeff(i,j)==Scalar(0))
+ m2.insert(i,j) = m1(i,j) = internal::random<Scalar>();
+ if(mode==3)
+ m2.reserve(r);
+ }
+ m2.finalize();
+ m2.makeCompressed();
+ VERIFY_IS_APPROX(m2,m1);
+ }
// test basic computations
{