From 11e253bc101d804c1e2dfea90f3c8256700324d4 Mon Sep 17 00:00:00 2001 From: "David J. Luitz" Date: Thu, 30 Dec 2010 15:16:23 +0100 Subject: [Sparse] Added regression tests for the two bugfixes, the code passes all sparse_product tests --- test/sparse_product.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/sparse_product.cpp') diff --git a/test/sparse_product.cpp b/test/sparse_product.cpp index ce42c5f52..da4ecc306 100644 --- a/test/sparse_product.cpp +++ b/test/sparse_product.cpp @@ -137,6 +137,31 @@ template void sparse_product(const SparseMatrixType& } } +// New test for Bug in SparseTimeDenseProduct +template void sparse_product_regression_test() +{ + // This code does not compile with afflicted versions of the bug +/* SparseMatrixType sm1(3,2); + DenseMatrixType m2(2,2); + sm1.setZero(); + m2.setZero(); + + DenseMatrixType m3 = sm1*m2; + */ + + + // This code produces a segfault with afflicted versions of another SparseTimeDenseProduct + // bug + + SparseMatrixType sm2(20000,2); + DenseMatrixType m3(2,2); + sm2.setZero(); + m3.setZero(); + DenseMatrixType m4(sm2*m3); + + VERIFY_IS_APPROX( m4(0,0), 0.0 ); +} + void test_sparse_product() { for(int i = 0; i < g_repeat; i++) { @@ -145,5 +170,7 @@ void test_sparse_product() CALL_SUBTEST_1( sparse_product(SparseMatrix(33, 33)) ); CALL_SUBTEST_3( sparse_product(DynamicSparseMatrix(8, 8)) ); + + CALL_SUBTEST_4( (sparse_product_regression_test, Matrix >()) ); } } -- cgit v1.2.3