Add new default option EIGEN_SPLIT_LARGE_TESTS and cmake macro ei_add_test_multi.

When enabled, large tests are split into smaller executables.
This needs minimal changes in the unit tests.
Updated the LU test to use it.
This commit is contained in:
Benoit Jacob
2009-10-19 13:29:00 -04:00
parent 9a700c2974
commit 580672ea43
3 changed files with 111 additions and 50 deletions

View File

@@ -3,6 +3,8 @@ add_custom_target(btest)
include(EigenTesting)
ei_init_testing()
option(EIGEN_SPLIT_LARGE_TESTS "Split large tests into smaller executables" ON)
find_package(GSL)
if(GSL_FOUND AND GSL_VERSION_MINOR LESS 9)
set(GSL_FOUND "")
@@ -119,7 +121,7 @@ ei_add_test(product_notemporary ${EI_OFLAG})
ei_add_test(stable_norm)
ei_add_test(bandmatrix)
ei_add_test(cholesky " " "${GSL_LIBRARIES}")
ei_add_test(lu ${EI_OFLAG})
ei_add_test_multi(6 lu ${EI_OFLAG})
ei_add_test(determinant)
ei_add_test(inverse ${EI_OFLAG})
ei_add_test(qr)

View File

@@ -153,22 +153,28 @@ template<typename MatrixType> void lu_verify_assert()
void test_lu()
{
for(int i = 0; i < g_repeat; i++) {
#if defined EIGEN_TEST_PART_1
CALL_SUBTEST( lu_non_invertible<Matrix3f>() );
CALL_SUBTEST( lu_verify_assert<Matrix3f>() );
#elif defined EIGEN_TEST_PART_2
CALL_SUBTEST( (lu_non_invertible<Matrix<double, 4, 6> >()) );
CALL_SUBTEST( (lu_verify_assert<Matrix<double, 4, 6> >()) );
#elif defined EIGEN_TEST_PART_3
CALL_SUBTEST( lu_non_invertible<MatrixXf>() );
CALL_SUBTEST( lu_non_invertible<MatrixXd>() );
CALL_SUBTEST( lu_non_invertible<MatrixXcf>() );
CALL_SUBTEST( lu_non_invertible<MatrixXcd>() );
CALL_SUBTEST( lu_invertible<MatrixXf>() );
CALL_SUBTEST( lu_verify_assert<MatrixXf>() );
#elif defined EIGEN_TEST_PART_4
CALL_SUBTEST( lu_non_invertible<MatrixXd>() );
CALL_SUBTEST( lu_invertible<MatrixXd>() );
CALL_SUBTEST( lu_verify_assert<MatrixXd>() );
#elif defined EIGEN_TEST_PART_5
CALL_SUBTEST( lu_non_invertible<MatrixXcf>() );
CALL_SUBTEST( lu_invertible<MatrixXcf>() );
CALL_SUBTEST( lu_verify_assert<MatrixXcf>() );
#elif defined EIGEN_TEST_PART_6
CALL_SUBTEST( lu_non_invertible<MatrixXcd>() );
CALL_SUBTEST( lu_invertible<MatrixXcd>() );
CALL_SUBTEST( lu_verify_assert<MatrixXcd>() );
#endif
}
CALL_SUBTEST( lu_verify_assert<Matrix3f>() );
CALL_SUBTEST( lu_verify_assert<Matrix3d>() );
CALL_SUBTEST( lu_verify_assert<MatrixXf>() );
CALL_SUBTEST( lu_verify_assert<MatrixXd>() );
CALL_SUBTEST( lu_verify_assert<MatrixXcf>() );
CALL_SUBTEST( lu_verify_assert<MatrixXcd>() );
}