Make SparseMatrix::coeff() returns a const reference and add a non const version of SparseMatrix::diagonal()
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp
index 2380dfa..097959c 100644
--- a/test/sparse_basic.cpp
+++ b/test/sparse_basic.cpp
@@ -472,6 +472,12 @@
     SparseMatrixType m2(rows, cols);
     initSparse<Scalar>(density, refMat2, m2);
     VERIFY_IS_APPROX(m2.diagonal(), refMat2.diagonal().eval());
+    VERIFY_IS_APPROX(const_cast<const SparseMatrixType&>(m2).diagonal(), refMat2.diagonal().eval());
+    
+    initSparse<Scalar>(density, refMat2, m2, ForceNonZeroDiag);
+    m2.diagonal()      += refMat2.diagonal();
+    refMat2.diagonal() += refMat2.diagonal();
+    VERIFY_IS_APPROX(m2, refMat2);
   }
   
   // test conservative resize