diff options
author | Gael Guennebaud <g.gael@free.fr> | 2015-02-09 10:23:45 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2015-02-09 10:23:45 +0100 |
commit | 3af29caae87b00ed8f002605573d227ad1b629a4 (patch) | |
tree | 9ac73034204b7fd7446a88a21cc7d1d59a209c8c /test | |
parent | f2ff8c091e02b4aab8c7568807c09e43f51d1156 (diff) |
Cleaning and add more unit tests for Ref<SparseMatrix> and Map<SparseMatrix>
Diffstat (limited to 'test')
-rw-r--r-- | test/sparse_basic.cpp | 20 | ||||
-rw-r--r-- | test/sparse_ref.cpp | 5 |
2 files changed, 23 insertions, 2 deletions
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp index 097959c84..a19de296a 100644 --- a/test/sparse_basic.cpp +++ b/test/sparse_basic.cpp @@ -408,6 +408,26 @@ template<typename SparseMatrixType> void sparse_basic(const SparseMatrixType& re m.setFromTriplets(triplets.begin(), triplets.end()); VERIFY_IS_APPROX(m, refMat); } + + // test Map + { + DenseMatrix refMat2(rows, cols), refMat3(rows, cols); + SparseMatrixType m2(rows, cols), m3(rows, cols); + initSparse<Scalar>(density, refMat2, m2); + initSparse<Scalar>(density, refMat3, m3); + { + Map<SparseMatrixType> mapMat2(m2.rows(), m2.cols(), m2.nonZeros(), m2.outerIndexPtr(), m2.innerIndexPtr(), m2.valuePtr(), m2.innerNonZeroPtr()); + Map<SparseMatrixType> mapMat3(m3.rows(), m3.cols(), m3.nonZeros(), m3.outerIndexPtr(), m3.innerIndexPtr(), m3.valuePtr(), m3.innerNonZeroPtr()); + VERIFY_IS_APPROX(mapMat2+mapMat3, refMat2+refMat3); + VERIFY_IS_APPROX(mapMat2+mapMat3, refMat2+refMat3); + } + { + MappedSparseMatrix<Scalar,SparseMatrixType::Options,Index> mapMat2(m2.rows(), m2.cols(), m2.nonZeros(), m2.outerIndexPtr(), m2.innerIndexPtr(), m2.valuePtr(), m2.innerNonZeroPtr()); + MappedSparseMatrix<Scalar,SparseMatrixType::Options,Index> mapMat3(m3.rows(), m3.cols(), m3.nonZeros(), m3.outerIndexPtr(), m3.innerIndexPtr(), m3.valuePtr(), m3.innerNonZeroPtr()); + VERIFY_IS_APPROX(mapMat2+mapMat3, refMat2+refMat3); + VERIFY_IS_APPROX(mapMat2+mapMat3, refMat2+refMat3); + } + } // test triangularView { diff --git a/test/sparse_ref.cpp b/test/sparse_ref.cpp index b261cecf3..27700f827 100644 --- a/test/sparse_ref.cpp +++ b/test/sparse_ref.cpp @@ -69,8 +69,9 @@ void call_ref() VERIFY_EVALUATION_COUNT( call_ref_2(A*A, A*A), 1); Ref<SparseMatrix<float> > Ar(A); - VERIFY_EVALUATION_COUNT( call_ref_1(Ar, Ar), 0); - VERIFY_EVALUATION_COUNT( call_ref_2(Ar, Ar), 0); + VERIFY_IS_APPROX(Ar+Ar, A+A); + VERIFY_EVALUATION_COUNT( call_ref_1(Ar, A), 0); + VERIFY_EVALUATION_COUNT( call_ref_2(Ar, A), 0); Ref<SparseMatrix<float,RowMajor> > Br(B); VERIFY_EVALUATION_COUNT( call_ref_1(Br.transpose(), Br.transpose()), 0); |