diff options
Diffstat (limited to 'test/commainitializer.cpp')
-rw-r--r-- | test/commainitializer.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/test/commainitializer.cpp b/test/commainitializer.cpp index 3cb94da62..f535117d5 100644 --- a/test/commainitializer.cpp +++ b/test/commainitializer.cpp @@ -34,8 +34,14 @@ void test_blocks() if(N1 > 0) { - VERIFY_RAISES_ASSERT((m_fixed << mat11, mat12, mat11, mat21, mat22)); - VERIFY_RAISES_ASSERT((m_fixed << mat11, mat12, mat21, mat21, mat22)); + if(M1 > 0) + { + VERIFY_RAISES_ASSERT((m_fixed << mat11, mat12, mat11, mat21, mat22)); + } + if(M2 > 0) + { + VERIFY_RAISES_ASSERT((m_fixed << mat11, mat12, mat21, mat21, mat22)); + } } else { @@ -49,20 +55,22 @@ void test_blocks() } -template<int N> +template<int depth, int N=0> struct test_block_recursion { static void run() { - test_blocks<(N>>6)&3, (N>>4)&3, (N>>2)&3, N & 3>(); - test_block_recursion<N-1>::run(); + test_block_recursion<depth-1, N>::run(); + test_block_recursion<depth-1, N + (1 << (depth-1))>::run(); } }; -template<> -struct test_block_recursion<-1> +template<int N> +struct test_block_recursion<0,N> { - static void run() { } + static void run() { + test_blocks<(N>>6)&3, (N>>4)&3, (N>>2)&3, N & 3>(); + } }; EIGEN_DECLARE_TEST(commainitializer) @@ -102,5 +110,5 @@ EIGEN_DECLARE_TEST(commainitializer) // recursively test all block-sizes from 0 to 3: - test_block_recursion<(1<<8) - 1>(); + test_block_recursion<8>::run(); } |