From 6a84246a6a5dd980e78e5609b3098cdbce93807c Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 21 Nov 2016 21:46:42 +0100 Subject: Fix regression in assigment of sparse block to spasre block. --- test/sparse_block.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/sparse_block.cpp') diff --git a/test/sparse_block.cpp b/test/sparse_block.cpp index 49a5f135e..cb5213ade 100644 --- a/test/sparse_block.cpp +++ b/test/sparse_block.cpp @@ -223,6 +223,33 @@ template void sparse_block(const SparseMatrixType& re VERIFY_IS_APPROX(m2.block(r0,c0,r1,c1), refMat2.block(r0,c0,r1,c1)); VERIFY_IS_APPROX((2*m2).block(r0,c0,r1,c1), (2*refMat2).block(r0,c0,r1,c1)); + + if(m2.nonZeros()>0) + { + VERIFY_IS_APPROX(m2, refMat2); + SparseMatrixType m3(rows, cols); + DenseMatrix refMat3(rows, cols); refMat3.setZero(); + Index n = internal::random(1,10); + for(Index k=0; k(0,outer-1); + Index o2 = internal::random(0,outer-1); + if(SparseMatrixType::IsRowMajor) + { + m3.innerVector(o1) = m2.row(o2); + refMat3.row(o1) = refMat2.row(o2); + } + else + { + m3.innerVector(o1) = m2.col(o2); + refMat3.col(o1) = refMat2.col(o2); + } + if(internal::random()) + m3.makeCompressed(); + } + if(m3.nonZeros()>0) + VERIFY_IS_APPROX(m3, refMat3); + } } } -- cgit v1.2.3