diff options
author | Gael Guennebaud <g.gael@free.fr> | 2016-02-01 15:04:33 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2016-02-01 15:04:33 +0100 |
commit | ec469700dcf82fd9b5668fe3c82d9dac49d147df (patch) | |
tree | 84cdee05c58b8ed5a35f18278422e830f88c7156 /test | |
parent | 6e0a86194ce6664e83d8035cbdd6047e5a27ed43 (diff) |
bug #557: make InnerIterator of sparse storage types more versatile by adding default-ctor, copy-ctor/assignment
Diffstat (limited to 'test')
-rw-r--r-- | test/sparse_basic.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp index 5a5650705..0a06c828b 100644 --- a/test/sparse_basic.cpp +++ b/test/sparse_basic.cpp @@ -460,6 +460,33 @@ template<typename SparseMatrixType> void sparse_basic(const SparseMatrixType& re refMat1.setIdentity(); VERIFY_IS_APPROX(m1, refMat1); } + + // test array/vector of InnerIterator + { + typedef typename SparseMatrixType::InnerIterator IteratorType; + + DenseMatrix refMat2 = DenseMatrix::Zero(rows, cols); + SparseMatrixType m2(rows, cols); + initSparse<Scalar>(density, refMat2, m2); + IteratorType static_array[2]; + static_array[0] = IteratorType(m2,0); + static_array[1] = IteratorType(m2,m2.outerSize()-1); + VERIFY( static_array[0] || m2.innerVector(static_array[0].outer()).nonZeros() == 0 ); + VERIFY( static_array[1] || m2.innerVector(static_array[1].outer()).nonZeros() == 0 ); + if(static_array[0] && static_array[1]) + { + ++(static_array[1]); + static_array[1] = IteratorType(m2,0); + VERIFY( static_array[1] ); + VERIFY( static_array[1].index() == static_array[0].index() ); + VERIFY( static_array[1].outer() == static_array[0].outer() ); + VERIFY( static_array[1].value() == static_array[0].value() ); + } + + std::vector<IteratorType> iters(2); + iters[0] = IteratorType(m2,0); + iters[1] = IteratorType(m2,m2.outerSize()-1); + } } |