diff options
author | Gael Guennebaud <g.gael@free.fr> | 2011-12-20 18:10:02 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2011-12-20 18:10:02 +0100 |
commit | 50d756b9ea32027ce027c238baf4258ee086da38 (patch) | |
tree | 10145d59d66516a8eee556122e23c6620be3b04d /test/sparse_basic.cpp | |
parent | 15d781b64c9016a3563126106f1d24ee8321ba68 (diff) |
fix bug #394: innerVector::nonZeros() was broken for uncompressed mode
Diffstat (limited to 'test/sparse_basic.cpp')
-rw-r--r-- | test/sparse_basic.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp index 276db65aa..f36fcb36d 100644 --- a/test/sparse_basic.cpp +++ b/test/sparse_basic.cpp @@ -237,6 +237,26 @@ template<typename SparseMatrixType> void sparse_basic(const SparseMatrixType& re VERIFY_IS_APPROX(m2.innerVector(j0)+m2.innerVector(j1), refMat2.row(j0)+refMat2.row(j1)); else VERIFY_IS_APPROX(m2.innerVector(j0)+m2.innerVector(j1), refMat2.col(j0)+refMat2.col(j1)); + + SparseMatrixType m3(rows,rows); + m3.reserve(VectorXi::Constant(rows,rows/2)); + for(int j=0; j<rows; ++j) + for(int k=0; k<j; ++k) + m3.insertByOuterInner(j,k) = k+1; + for(int j=0; j<rows; ++j) + { + VERIFY(j==m3.innerVector(j).nonZeros()); + if(j>0) + VERIFY(j==m3.innerVector(j).lastCoeff()); + } + m3.makeCompressed(); + for(int j=0; j<rows; ++j) + { + VERIFY(j==m3.innerVector(j).nonZeros()); + if(j>0) + VERIFY(j==m3.innerVector(j).lastCoeff()); + } + //m2.innerVector(j0) = 2*m2.innerVector(j1); //refMat2.col(j0) = 2*refMat2.col(j1); //VERIFY_IS_APPROX(m2, refMat2); |