Skip to content
Snippets Groups Projects
Commit db8ab1ee authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Added symmetric sparse matrix unit tests for CSR format.

parent 95966e9c
No related branches found
No related tags found
1 merge request!48Segments
......@@ -37,6 +37,9 @@ IF( BUILD_CUDA )
CUDA_ADD_EXECUTABLE( BinarySparseMatrixCopyTest BinarySparseMatrixCopyTest.cu OPTIONS ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( BinarySparseMatrixCopyTest ${GTEST_BOTH_LIBRARIES} )
CUDA_ADD_EXECUTABLE( SymmetricSparseMatrixTest_CSR SymmetricSparseMatrixTest_CSR.cu OPTIONS ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( SymmetricSparseMatrixTest_CSR ${GTEST_BOTH_LIBRARIES} )
ELSE( BUILD_CUDA )
ADD_EXECUTABLE( DenseMatrixTest DenseMatrixTest.cpp )
TARGET_COMPILE_OPTIONS( DenseMatrixTest PRIVATE ${CXX_TESTS_FLAGS} )
......@@ -86,6 +89,10 @@ ELSE( BUILD_CUDA )
TARGET_COMPILE_OPTIONS( BinarySparseMatrixCopyTest PRIVATE ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( BinarySparseMatrixCopyTest ${GTEST_BOTH_LIBRARIES} )
ADD_EXECUTABLE( SymmetricSparseMatrixTest_CSR SymmetricSparseMatrixTest_CSR.cpp )
TARGET_COMPILE_OPTIONS( SymmetricSparseMatrixTest_CSR PRIVATE ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( SymmetricSparseMatrixTest_CSR ${GTEST_BOTH_LIBRARIES} )
ENDIF( BUILD_CUDA )
ADD_TEST( DenseMatrixTest ${EXECUTABLE_OUTPUT_PATH}/DenseMatrixTest${CMAKE_EXECUTABLE_SUFFIX} )
......@@ -100,6 +107,7 @@ ADD_TEST( BinarySparseMatrixTest_CSR ${EXECUTABLE_OUTPUT_PATH}/BinarySparseMatri
ADD_TEST( BinarySparseMatrixTest_Ellpack ${EXECUTABLE_OUTPUT_PATH}/BinarySparseMatrixTest_Ellpack${CMAKE_EXECUTABLE_SUFFIX} )
ADD_TEST( BinarySparseMatrixTest_SlicedEllpack ${EXECUTABLE_OUTPUT_PATH}/BinarySparseMatrixTest_SlicedEllpack${CMAKE_EXECUTABLE_SUFFIX} )
ADD_TEST( BinarySparseMatrixCopyTest ${EXECUTABLE_OUTPUT_PATH}/BinarySparseMatrixCopyTest${CMAKE_EXECUTABLE_SUFFIX} )
ADD_TEST( SymmetricSparseMatrixTest_CSR ${EXECUTABLE_OUTPUT_PATH}/SymmetricSparseMatrixTest_CSR${CMAKE_EXECUTABLE_SUFFIX} )
if( ${BUILD_MPI} )
if( BUILD_CUDA )
......
/***************************************************************************
SymmetricSparseMatrixTest.h - description
-------------------
begin : Feb 11, 2020
copyright : (C) 2020 by Tomas Oberhuber et al.
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#ifdef HAVE_GTEST
#include <gtest/gtest.h>
#include <iostream>
#include <TNL/Matrices/SparseMatrix.h>
#include "SparseMatrixTest.hpp"
// test fixture for typed tests
template< typename Matrix >
class MatrixTest : public ::testing::Test
{
protected:
using MatrixType = Matrix;
};
TYPED_TEST_SUITE( MatrixTest, MatrixTypes);
TYPED_TEST( MatrixTest, Constructors )
{
using MatrixType = typename TestFixture::MatrixType;
test_Constructors< MatrixType >();
}
TYPED_TEST( MatrixTest, setDimensionsTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_SetDimensions< MatrixType >();
}
TYPED_TEST( MatrixTest, setCompressedRowLengthsTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_SetCompressedRowLengths< MatrixType >();
}
TYPED_TEST( MatrixTest, setLikeTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_SetLike< MatrixType, MatrixType >();
}
TYPED_TEST( MatrixTest, resetTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_Reset< MatrixType >();
}
TYPED_TEST( MatrixTest, getRowTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_GetRow< MatrixType >();
}
TYPED_TEST( MatrixTest, setElementTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_SetElement< MatrixType >();
}
TYPED_TEST( MatrixTest, addElementTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_AddElement< MatrixType >();
}
TYPED_TEST( MatrixTest, vectorProductTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_VectorProduct< MatrixType >();
}
TYPED_TEST( MatrixTest, rowsReduction )
{
using MatrixType = typename TestFixture::MatrixType;
test_RowsReduction< MatrixType >();
}
TYPED_TEST( MatrixTest, saveAndLoadTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_SaveAndLoad< MatrixType >( saveAndLoadTestFileName );
}
TYPED_TEST( MatrixTest, printTest )
{
using MatrixType = typename TestFixture::MatrixType;
test_Print< MatrixType >();
}
#endif
#include "../main.h"
/***************************************************************************
SymmetricSparseMatrixTest_CSR.cpp - description
-------------------
begin : Feb 11, 2020
copyright : (C) 2020 by Tomas Oberhuber et al.
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#include "SymmetricSparseMatrixTest_CSR.h"
/***************************************************************************
SymmetricSparseMatrixTest_CSR.cu - description
-------------------
begin : Feb 11, 2020
copyright : (C) 2020 by Tomas Oberhuber et al.
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#include "SymmetricSparseMatrixTest_CSR.h"
/***************************************************************************
SymmetricSparseMatrixTest_CSR.h - description
-------------------
begin : Feb 11, 2020
copyright : (C) 2020 by Tomas Oberhuber et al.
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#ifdef HAVE_GTEST
#include <gtest/gtest.h>
#include <TNL/Containers/Segments/CSR.h>
#include <TNL/Matrices/SparseMatrix.h>
// test fixture for typed tests
template< typename Matrix >
class MatrixTest : public ::testing::Test
{
protected:
using MatrixType = Matrix;
};
// types for which MatrixTest is instantiated
using MatrixTypes = ::testing::Types
<
TNL::Matrices::SparseMatrix< int, TNL::Devices::Host, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< long, TNL::Devices::Host, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< float, TNL::Devices::Host, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< double, TNL::Devices::Host, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< int, TNL::Devices::Host, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< long, TNL::Devices::Host, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< float, TNL::Devices::Host, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< double, TNL::Devices::Host, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< int, TNL::Devices::Host, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< long, TNL::Devices::Host, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< float, TNL::Devices::Host, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< double, TNL::Devices::Host, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >
#ifdef HAVE_CUDA
,TNL::Matrices::SparseMatrix< int, TNL::Devices::Cuda, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< long, TNL::Devices::Cuda, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< float, TNL::Devices::Cuda, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< double, TNL::Devices::Cuda, short, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< int, TNL::Devices::Cuda, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< long, TNL::Devices::Cuda, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< float, TNL::Devices::Cuda, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< double, TNL::Devices::Cuda, int, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< int, TNL::Devices::Cuda, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< long, TNL::Devices::Cuda, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< float, TNL::Devices::Cuda, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >,
TNL::Matrices::SparseMatrix< double, TNL::Devices::Cuda, long, TNL::Matrices::SymmetricMatrix, TNL::Containers::Segments::CSR >
#endif // HAVE_CUDA
>;
const char* saveAndLoadTestFileName "test_SymmetricSparseMatrixTest_CSR_segments";
#include "SparseMatrixTest.h"
#endif // HAVE_GTEST
#include "../main.h"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment