bug #1088: fix setIdenity for non-compressed sparse-matrix
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp
index 993f784..e8ebd70 100644
--- a/test/sparse_basic.cpp
+++ b/test/sparse_basic.cpp
@@ -434,6 +434,20 @@
SparseMatrixType m1(rows, rows);
m1.setIdentity();
VERIFY_IS_APPROX(m1, refMat1);
+ for(int k=0; k<rows*rows/4; ++k)
+ {
+ Index i = internal::random<Index>(0,rows-1);
+ Index j = internal::random<Index>(0,rows-1);
+ Index v = internal::random<Scalar>();
+ m1.coeffRef(i,j) = v;
+ refMat1.coeffRef(i,j) = v;
+ VERIFY_IS_APPROX(m1, refMat1);
+ if(internal::random<Index>(0,10)<2)
+ m1.makeCompressed();
+ }
+ m1.setIdentity();
+ refMat1.setIdentity();
+ VERIFY_IS_APPROX(m1, refMat1);
}
}