From 2c247fc8a85f1e31bdef8804488a4959f7ce99cc Mon Sep 17 00:00:00 2001 From: Hauke Heibel Date: Fri, 22 May 2009 14:27:58 +0200 Subject: LU and PartialLU decomposition interface unification. Added default ctor and public compute method as well as safe-guards against uninitialized usage. Added unit tests for the safe-guards. --- test/lu.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'test/lu.cpp') diff --git a/test/lu.cpp b/test/lu.cpp index 625241330..923acee3e 100644 --- a/test/lu.cpp +++ b/test/lu.cpp @@ -92,6 +92,37 @@ template void lu_invertible() VERIFY(lu.solve(m3, &m2)); } +template void lu_verify_assert() +{ + MatrixType tmp; + + LU lu; + VERIFY_RAISES_ASSERT(lu.matrixLU()) + VERIFY_RAISES_ASSERT(lu.permutationP()) + VERIFY_RAISES_ASSERT(lu.permutationQ()) + VERIFY_RAISES_ASSERT(lu.computeKernel(&tmp)) + VERIFY_RAISES_ASSERT(lu.computeImage(&tmp)) + VERIFY_RAISES_ASSERT(lu.kernel()) + VERIFY_RAISES_ASSERT(lu.image()) + VERIFY_RAISES_ASSERT(lu.solve(tmp,&tmp)) + VERIFY_RAISES_ASSERT(lu.determinant()) + VERIFY_RAISES_ASSERT(lu.rank()) + VERIFY_RAISES_ASSERT(lu.dimensionOfKernel()) + VERIFY_RAISES_ASSERT(lu.isInjective()) + VERIFY_RAISES_ASSERT(lu.isSurjective()) + VERIFY_RAISES_ASSERT(lu.isInvertible()) + VERIFY_RAISES_ASSERT(lu.computeInverse(&tmp)) + VERIFY_RAISES_ASSERT(lu.inverse()) + + PartialLU plu; + VERIFY_RAISES_ASSERT(plu.matrixLU()) + VERIFY_RAISES_ASSERT(plu.permutationP()) + VERIFY_RAISES_ASSERT(plu.solve(tmp,&tmp)) + VERIFY_RAISES_ASSERT(plu.determinant()) + VERIFY_RAISES_ASSERT(plu.computeInverse(&tmp)) + VERIFY_RAISES_ASSERT(plu.inverse()) +} + void test_lu() { for(int i = 0; i < g_repeat; i++) { @@ -104,4 +135,11 @@ void test_lu() CALL_SUBTEST( lu_invertible() ); CALL_SUBTEST( lu_invertible() ); } + + CALL_SUBTEST( lu_verify_assert() ); + CALL_SUBTEST( lu_verify_assert() ); + CALL_SUBTEST( lu_verify_assert() ); + CALL_SUBTEST( lu_verify_assert() ); + CALL_SUBTEST( lu_verify_assert() ); + CALL_SUBTEST( lu_verify_assert() ); } -- cgit v1.2.3