sparse_vector test: retry initSparse until at least one nonzero

libeigen/eigen!2493

Co-authored-by: Rasmus Munk Larsen <rlarsen@nvidia.com>
diff --git a/test/sparse_vector.cpp b/test/sparse_vector.cpp
index e4b1963..8d4db08 100644
--- a/test/sparse_vector.cpp
+++ b/test/sparse_vector.cpp
@@ -26,7 +26,12 @@
   DenseVector refV1 = DenseVector::Random(rows), refV2 = DenseVector::Random(rows), refV3 = DenseVector::Random(rows);
 
   std::vector<int> zerocoords, nonzerocoords;
-  initSparse<Scalar>(densityVec, refV1, v1, &zerocoords, &nonzerocoords);
+  // Retry until at least one nonzero is produced: code below indexes nonzerocoords[0].
+  do {
+    zerocoords.clear();
+    nonzerocoords.clear();
+    initSparse<Scalar>(densityVec, refV1, v1, &zerocoords, &nonzerocoords);
+  } while (nonzerocoords.empty());
   initSparse<Scalar>(densityMat, refM1, m1);
 
   initSparse<Scalar>(densityVec, refV2, v2);