From 376b4bffe77bdbc005f2692b66de09f107d47d16 Mon Sep 17 00:00:00 2001 From: Tomas Oberhuber <tomas.oberhuber@fjfi.cvut.cz> Date: Wed, 15 Jan 2020 14:42:57 +0100 Subject: [PATCH] Fixing multidiagonal matrix unit tests fro CUDA. --- .../Matrices/MultidiagonalMatrixTest.h | 54 +++++-------------- 1 file changed, 13 insertions(+), 41 deletions(-) diff --git a/src/UnitTests/Matrices/MultidiagonalMatrixTest.h b/src/UnitTests/Matrices/MultidiagonalMatrixTest.h index 21a836d2d6..49bcfa11c4 100644 --- a/src/UnitTests/Matrices/MultidiagonalMatrixTest.h +++ b/src/UnitTests/Matrices/MultidiagonalMatrixTest.h @@ -159,7 +159,7 @@ void test_GetCompressedRowLengths() * | 0 0 0 0 1 0 1 0 | -> 2 * \ 0 0 0 0 0 1 0 0 / -> 1 */ - + const IndexType rows = 8; const IndexType cols = 8; @@ -354,22 +354,12 @@ void test_SetElement() RealType value = 1; for( IndexType i = 0; i < rows; i++ ) for( IndexType j = 0; j < cols; j++ ) - { - bool found( false ); - for( IndexType k = 0; k < diagonals.getSize(); k++ ) - { - if( i + diagonals[ k ] == j ) - { - m.setElement( i, j, value++ ); - found = true; - break; - } - } - if( ! found ) + if( diagonals.containsValue( j - i ) ) + m.setElement( i, j, value++ ); + else { EXPECT_THROW( m.setElement( i, j, value++ ), std::logic_error ); } - } EXPECT_EQ( m.getElement( 0, 0 ), 1 ); EXPECT_EQ( m.getElement( 0, 1 ), 2 ); @@ -427,24 +417,16 @@ void test_AddElement() RealType value = 1; for( IndexType i = 0; i < rows; i++ ) for( IndexType j = 0; j < cols; j++ ) - { - bool found( false ); - for( IndexType k = 0; k < diagonals.getSize(); k++ ) + if( diagonals.containsValue( j - i ) ) { - if( i + diagonals[ k ] == j ) - { - if( j >= i ) - m.setElement( i, j, value++ ); - else value++; - found = true; - break; - } + if( j >= i ) + m.setElement( i, j, value ); + value++; } - if( ! found ) + else { EXPECT_THROW( m.setElement( i, j, value++ ), std::logic_error ); } - } // Check the added elements EXPECT_EQ( m.getElement( 0, 0 ), 1 ); @@ -486,29 +468,19 @@ void test_AddElement() * 2 * | 0 0 13 14 0 | + | 0 0 13 14 0 | = | 0 0 39 42 0 | * | 0 0 0 19 20 | | 16 0 0 19 20 | | 16 0 0 57 60 | * \ 0 0 0 0 25 / \ 0 22 0 0 25 / \ 0 22 0 0 75 / - * + * */ value = 1; RealType multiplicator = 2; for( IndexType i = 0; i < rows; i++ ) for( IndexType j = 0; j < cols; j++ ) - { - bool found( false ); - for( IndexType k = 0; k < diagonals.getSize(); k++ ) - { - if( i + diagonals[ k ] == j ) - { - m.addElement( i, j, value++, multiplicator ); - found = true; - break; - } - } - if( ! found ) + if( diagonals.containsValue( j - i ) ) + m.addElement( i, j, value++, multiplicator ); + else { EXPECT_THROW( m.addElement( i, j, value++, multiplicator ), std::logic_error ); } - } EXPECT_EQ( m.getElement( 0, 0 ), 3 ); EXPECT_EQ( m.getElement( 0, 1 ), 6 ); -- GitLab