aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-02-09 10:23:45 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-02-09 10:23:45 +0100
commit3af29caae87b00ed8f002605573d227ad1b629a4 (patch)
tree9ac73034204b7fd7446a88a21cc7d1d59a209c8c /test
parentf2ff8c091e02b4aab8c7568807c09e43f51d1156 (diff)
Cleaning and add more unit tests for Ref<SparseMatrix> and Map<SparseMatrix>
Diffstat (limited to 'test')
-rw-r--r--test/sparse_basic.cpp20
-rw-r--r--test/sparse_ref.cpp5
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);