From ccec6bd771905cf1771868001dc90d58b4911a4d Mon Sep 17 00:00:00 2001 From: Lukas Cejka <lukas.ostatek@gmail.com> Date: Mon, 5 Nov 2018 20:29:30 +0100 Subject: [PATCH] Adding commented-out, provisional and non-functioning test for vectorProduct function. Adding only for backup purposes. --- src/UnitTests/Matrices/SparseMatrixTest.h | 115 +++++++++++++++++----- 1 file changed, 88 insertions(+), 27 deletions(-) diff --git a/src/UnitTests/Matrices/SparseMatrixTest.h b/src/UnitTests/Matrices/SparseMatrixTest.h index 1e7825dec6..f9e31c8aed 100644 --- a/src/UnitTests/Matrices/SparseMatrixTest.h +++ b/src/UnitTests/Matrices/SparseMatrixTest.h @@ -311,33 +311,82 @@ void test_SetRow() int row2 [ 3 ] = { 22, 22, 22 }; int colIndexes2 [3] = { 0, 1, 2 }; int row3 [ 3 ] = { 33, 33, 33 }; int colIndexes3 [3] = { 3, 4, 5 }; - m.setRow(0, colIndexes1, row1, 3); - m.setRow(1, colIndexes2, row2, 3); - m.setRow(2, colIndexes3, row3, 3); - - EXPECT_EQ( m.getElement( 0, 0 ), 11); - EXPECT_EQ( m.getElement( 0, 1 ), 11); - EXPECT_EQ( m.getElement( 0, 2 ), 11); - EXPECT_EQ( m.getElement( 0, 3 ), 0); - EXPECT_EQ( m.getElement( 0, 4 ), 0); - EXPECT_EQ( m.getElement( 0, 5 ), 0); - EXPECT_EQ( m.getElement( 0, 6 ), 0); - - EXPECT_EQ( m.getElement( 1, 0 ), 22); - EXPECT_EQ( m.getElement( 1, 1 ), 22); - EXPECT_EQ( m.getElement( 1, 2 ), 22); - EXPECT_EQ( m.getElement( 1, 3 ), 0); - EXPECT_EQ( m.getElement( 1, 4 ), 0); - EXPECT_EQ( m.getElement( 1, 5 ), 0); - EXPECT_EQ( m.getElement( 1, 6 ), 0); - - EXPECT_EQ( m.getElement( 2, 0 ), 0); - EXPECT_EQ( m.getElement( 2, 1 ), 0); - EXPECT_EQ( m.getElement( 2, 2 ), 0); - EXPECT_EQ( m.getElement( 2, 3 ), 33); - EXPECT_EQ( m.getElement( 2, 4 ), 33); - EXPECT_EQ( m.getElement( 2, 5 ), 33); - EXPECT_EQ( m.getElement( 2, 6 ), 0); + m.setRow( 0, colIndexes1, row1, 3 ); + m.setRow( 1, colIndexes2, row2, 3 ); + m.setRow( 2, colIndexes3, row3, 3 ); + + EXPECT_EQ( m.getElement( 0, 0 ), 11 ); + EXPECT_EQ( m.getElement( 0, 1 ), 11 ); + EXPECT_EQ( m.getElement( 0, 2 ), 11 ); + EXPECT_EQ( m.getElement( 0, 3 ), 0 ); + EXPECT_EQ( m.getElement( 0, 4 ), 0 ); + EXPECT_EQ( m.getElement( 0, 5 ), 0 ); + EXPECT_EQ( m.getElement( 0, 6 ), 0 ); + + EXPECT_EQ( m.getElement( 1, 0 ), 22 ); + EXPECT_EQ( m.getElement( 1, 1 ), 22 ); + EXPECT_EQ( m.getElement( 1, 2 ), 22 ); + EXPECT_EQ( m.getElement( 1, 3 ), 0 ); + EXPECT_EQ( m.getElement( 1, 4 ), 0 ); + EXPECT_EQ( m.getElement( 1, 5 ), 0 ); + EXPECT_EQ( m.getElement( 1, 6 ), 0 ); + + EXPECT_EQ( m.getElement( 2, 0 ), 0 ); + EXPECT_EQ( m.getElement( 2, 1 ), 0 ); + EXPECT_EQ( m.getElement( 2, 2 ), 0 ); + EXPECT_EQ( m.getElement( 2, 3 ), 33 ); + EXPECT_EQ( m.getElement( 2, 4 ), 33 ); + EXPECT_EQ( m.getElement( 2, 5 ), 33 ); + EXPECT_EQ( m.getElement( 2, 6 ), 0 ); +} + +template< typename Matrix > +void test_VectorProduct() +{ +/* + * Sets up the following 5x4 sparse matrix: + * + * / 1 2 3 0 \ + * | 0 0 0 4 | + * | 5 6 7 0 | + * | 0 8 9 10 | + * \ 0 0 11 12 / + */ +// const int m_rows = 5; +// const int m_cols = 4; +// +// Matrix m; +// m.reset(); +// m.setDimensions( m_rows, m_cols ); +// typename Matrix::CompressedRowLengthsVector rowLengths; +// rowLengths.setSize( m_rows ); +// rowLengths.setValue( 4 ); +// m.setCompressedRowLengths( rowLengths ); +// +// int value = 1; +// for( int i = 0; i < m_cols - 1; i++ ) // 0th row +// m.setElement( 0, i, value++ ); +// +// m.setElement( 1, 3, value++ ); // 1st row +// +// for( int i = 0; i < m_cols - 1; i++ ) // 2nd row +// m.setElement( 2, i, value++ ); +// +// for( int i = 1; i < m_cols; i++ ) // 3rd row +// m.setElement( 3, i, value++ ); +// +// for( int i = 2; i < m_cols; i++ ) // 4th row +// m.setElement( 4, i, value++ ); +// +// const int inVector [ 5 ] = { 1, 1, 1, 1, 1 }; +// int outVector [ 4 ] = { 0, 0, 0, 0 }; +// +// m.vectorProduct( inVector, outVector); +// +// EXPECT_EQ( outVector[0], 6 ); +// EXPECT_EQ( outVector[1], 16 ); +// EXPECT_EQ( outVector[2], 30 ); +// EXPECT_EQ( outVector[3], 26 ); } TEST( SparseMatrixTest, CSR_GetTypeTest_Host ) @@ -436,6 +485,18 @@ TEST( SparseMatrixTest, CSR_setRowTest_Cuda ) } #endif +TEST( SparseMatrixTest, CSR_vectorProductTest_Host ) +{ + test_VectorProduct< CSR_host_int >(); +} + +#ifdef HAVE_CUDA +TEST( SparseMatrixTest, CSR_vectorProductTest_Cuda ) +{ + test_VectorProduct< CSR_cuda_int >(); +} +#endif + #endif #include "../GtestMissingError.h" -- GitLab