From eaf3f6c16699bba8301a9adf267308b0d1ad9c67 Mon Sep 17 00:00:00 2001 From: Lukas Cejka <lukas.ostatek@gmail.com> Date: Thu, 22 Nov 2018 09:31:08 +0100 Subject: [PATCH] Added attempt to make tests easier to read. Added notes. --- src/UnitTests/Matrices/SparseMatrixTest.h | 251 +++++++++++++++++++++- 1 file changed, 247 insertions(+), 4 deletions(-) diff --git a/src/UnitTests/Matrices/SparseMatrixTest.h b/src/UnitTests/Matrices/SparseMatrixTest.h index 7b7530b570..e564e83b2d 100644 --- a/src/UnitTests/Matrices/SparseMatrixTest.h +++ b/src/UnitTests/Matrices/SparseMatrixTest.h @@ -1066,6 +1066,8 @@ void test_Print() // test_Print< BiEllpackMatrixType >(); //} +// GTEST ::testing::Types<> has a limit of 38. + // test fixture for typed tests template< typename Matrix > class ChEllpackMatrixTest : public ::testing::Test @@ -1370,10 +1372,6 @@ TYPED_TEST( EllpackMatrixTest, setCompressedRowLengthsTest ) using EllpackMatrixType = typename TestFixture::EllpackMatrixType; test_SetCompressedRowLengths< EllpackMatrixType >(); -// bool testRan = false; -// EXPECT_TRUE( testRan ); -// std::cout << "\n\n THIS TEST DID NOT RUN!\n"; -// std::cout << "\n This method isn't testable for different forMats, their implementations differ based on their algorithm.\n\n"; } TYPED_TEST( EllpackMatrixTest, setLikeTest ) @@ -1446,6 +1444,251 @@ TYPED_TEST( EllpackMatrixTest, printTest ) //} //#endif + +// ATTEMPTED TO COMBINE THEM ALL TOGETHER: + +//// test fixture for typed tests +//template< typename Matrix > +//class SparseMatrixTest : public ::testing::Test +//{ +//protected: +// using ChEllpackMatrixType = Matrix; +// using CSRMatrixType = Matrix; +// using EllpackMatrixType = Matrix; +//// using SlpackMatrixType = Matrix; +//}; +// +//// types for which MatrixTest is instantiated +//using ChEllpackMatrixTypes = ::testing::Types +//< +// TNL::Matrices::ChunkedEllpack< int, TNL::Devices::Host, short >, +// TNL::Matrices::ChunkedEllpack< long, TNL::Devices::Host, short >, +// TNL::Matrices::ChunkedEllpack< float, TNL::Devices::Host, short >, +// TNL::Matrices::ChunkedEllpack< double, TNL::Devices::Host, short >, +// TNL::Matrices::ChunkedEllpack< int, TNL::Devices::Host, int >, +// TNL::Matrices::ChunkedEllpack< long, TNL::Devices::Host, int >, +// TNL::Matrices::ChunkedEllpack< float, TNL::Devices::Host, int >, +// TNL::Matrices::ChunkedEllpack< double, TNL::Devices::Host, int >, +// TNL::Matrices::ChunkedEllpack< int, TNL::Devices::Host, long >, +// TNL::Matrices::ChunkedEllpack< long, TNL::Devices::Host, long >, +// TNL::Matrices::ChunkedEllpack< float, TNL::Devices::Host, long >, +// TNL::Matrices::ChunkedEllpack< double, TNL::Devices::Host, long >, +//#ifdef HAVE_CUDA +// TNL::Matrices::ChunkedEllpack< int, TNL::Devices::Cuda, short >, +// TNL::Matrices::ChunkedEllpack< long, TNL::Devices::Cuda, short >, +// TNL::Matrices::ChunkedEllpack< float, TNL::Devices::Cuda, short >, +// TNL::Matrices::ChunkedEllpack< double, TNL::Devices::Cuda, short >, +// TNL::Matrices::ChunkedEllpack< int, TNL::Devices::Cuda, int >, +// TNL::Matrices::ChunkedEllpack< long, TNL::Devices::Cuda, int >, +// TNL::Matrices::ChunkedEllpack< float, TNL::Devices::Cuda, int >, +// TNL::Matrices::ChunkedEllpack< double, TNL::Devices::Cuda, int >, +// TNL::Matrices::ChunkedEllpack< int, TNL::Devices::Cuda, long >, +// TNL::Matrices::ChunkedEllpack< long, TNL::Devices::Cuda, long >, +// TNL::Matrices::ChunkedEllpack< float, TNL::Devices::Cuda, long >, +// TNL::Matrices::ChunkedEllpack< double, TNL::Devices::Cuda, long > +//#endif +//>; +// +//// types for which MatrixTest is instantiated +//using CSRMatrixTypes = ::testing::Types +//< +// TNL::Matrices::CSR< int, TNL::Devices::Host, short >, +// TNL::Matrices::CSR< long, TNL::Devices::Host, short >, +// TNL::Matrices::CSR< float, TNL::Devices::Host, short >, +// TNL::Matrices::CSR< double, TNL::Devices::Host, short >, +// TNL::Matrices::CSR< int, TNL::Devices::Host, int >, +// TNL::Matrices::CSR< long, TNL::Devices::Host, int >, +// TNL::Matrices::CSR< float, TNL::Devices::Host, int >, +// TNL::Matrices::CSR< double, TNL::Devices::Host, int >, +// TNL::Matrices::CSR< int, TNL::Devices::Host, long >, +// TNL::Matrices::CSR< long, TNL::Devices::Host, long >, +// TNL::Matrices::CSR< float, TNL::Devices::Host, long >, +// TNL::Matrices::CSR< double, TNL::Devices::Host, long >, +//#ifdef HAVE_CUDA +// TNL::Matrices::CSR< int, TNL::Devices::Cuda, short >, +// TNL::Matrices::CSR< long, TNL::Devices::Cuda, short >, +// TNL::Matrices::CSR< float, TNL::Devices::Cuda, short >, +// TNL::Matrices::CSR< double, TNL::Devices::Cuda, short >, +// TNL::Matrices::CSR< int, TNL::Devices::Cuda, int >, +// TNL::Matrices::CSR< long, TNL::Devices::Cuda, int >, +// TNL::Matrices::CSR< float, TNL::Devices::Cuda, int >, +// TNL::Matrices::CSR< double, TNL::Devices::Cuda, int >, +// TNL::Matrices::CSR< int, TNL::Devices::Cuda, long >, +// TNL::Matrices::CSR< long, TNL::Devices::Cuda, long >, +// TNL::Matrices::CSR< float, TNL::Devices::Cuda, long >, +// TNL::Matrices::CSR< double, TNL::Devices::Cuda, long > +//#endif +//>; +// +//// types for which MatrixTest is instantiated +//using EllpackMatrixTypes = ::testing::Types +//< +// TNL::Matrices::Ellpack< int, TNL::Devices::Host, short >, +// TNL::Matrices::Ellpack< long, TNL::Devices::Host, short >, +// TNL::Matrices::Ellpack< float, TNL::Devices::Host, short >, +// TNL::Matrices::Ellpack< double, TNL::Devices::Host, short >, +// TNL::Matrices::Ellpack< int, TNL::Devices::Host, int >, +// TNL::Matrices::Ellpack< long, TNL::Devices::Host, int >, +// TNL::Matrices::Ellpack< float, TNL::Devices::Host, int >, +// TNL::Matrices::Ellpack< double, TNL::Devices::Host, int >, +// TNL::Matrices::Ellpack< int, TNL::Devices::Host, long >, +// TNL::Matrices::Ellpack< long, TNL::Devices::Host, long >, +// TNL::Matrices::Ellpack< float, TNL::Devices::Host, long >, +// TNL::Matrices::Ellpack< double, TNL::Devices::Host, long >, +// TNL::Matrices::SlicedEllpack< int, TNL::Devices::Host, short >, +// TNL::Matrices::SlicedEllpack< long, TNL::Devices::Host, short >, +// TNL::Matrices::SlicedEllpack< float, TNL::Devices::Host, short >, +// TNL::Matrices::SlicedEllpack< double, TNL::Devices::Host, short >, +// TNL::Matrices::SlicedEllpack< int, TNL::Devices::Host, int >, +// TNL::Matrices::SlicedEllpack< long, TNL::Devices::Host, int >, +// TNL::Matrices::SlicedEllpack< float, TNL::Devices::Host, int >, +// TNL::Matrices::SlicedEllpack< double, TNL::Devices::Host, int >, +// TNL::Matrices::SlicedEllpack< int, TNL::Devices::Host, long >, +// TNL::Matrices::SlicedEllpack< long, TNL::Devices::Host, long >, +// TNL::Matrices::SlicedEllpack< float, TNL::Devices::Host, long >, +// TNL::Matrices::SlicedEllpack< double, TNL::Devices::Host, long >, +//#ifdef HAVE_CUDA +// TNL::Matrices::Ellpack< int, TNL::Devices::Cuda, short >, +// TNL::Matrices::Ellpack< long, TNL::Devices::Cuda, short >, +// TNL::Matrices::Ellpack< float, TNL::Devices::Cuda, short >, +// TNL::Matrices::Ellpack< double, TNL::Devices::Cuda, short >, +// TNL::Matrices::Ellpack< int, TNL::Devices::Cuda, int >, +// TNL::Matrices::Ellpack< long, TNL::Devices::Cuda, int >, +// TNL::Matrices::Ellpack< float, TNL::Devices::Cuda, int >, +// TNL::Matrices::Ellpack< double, TNL::Devices::Cuda, int >, +// TNL::Matrices::Ellpack< int, TNL::Devices::Cuda, long >, +// TNL::Matrices::Ellpack< long, TNL::Devices::Cuda, long >, +// TNL::Matrices::Ellpack< float, TNL::Devices::Cuda, long >, +// TNL::Matrices::Ellpack< double, TNL::Devices::Cuda, long >, +// TNL::Matrices::SlicedEllpack< int, TNL::Devices::Cuda, short >, +// TNL::Matrices::SlicedEllpack< long, TNL::Devices::Cuda, short >, +// TNL::Matrices::SlicedEllpack< float, TNL::Devices::Cuda, short >, +// TNL::Matrices::SlicedEllpack< double, TNL::Devices::Cuda, short >, +// TNL::Matrices::SlicedEllpack< int, TNL::Devices::Cuda, int >, +// TNL::Matrices::SlicedEllpack< long, TNL::Devices::Cuda, int >, +// TNL::Matrices::SlicedEllpack< float, TNL::Devices::Cuda, int >, +// TNL::Matrices::SlicedEllpack< double, TNL::Devices::Cuda, int >, +// TNL::Matrices::SlicedEllpack< int, TNL::Devices::Cuda, long >, +// TNL::Matrices::SlicedEllpack< long, TNL::Devices::Cuda, long >, +// TNL::Matrices::SlicedEllpack< float, TNL::Devices::Cuda, long >, +// TNL::Matrices::SlicedEllpack< double, TNL::Devices::Cuda, long > +//#endif +//>; +// +//TYPED_TEST_CASE( SparseMatrixTest, ChEllpackMatrixTypes ); // TYPED_TEST_CASE doesn't have more parameters. +//TYPED_TEST_CASE( SparseMatrixTest, CSRMatrixTypes); // GTEST doesn't allow redeclaration +//TYPED_TEST_CASE( SparseMatrixTest, EllpackMatrixTypes); +// +//TYPED_TEST( SparseMatrixTest, setDimensionsTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_SetDimensions< ChEllpackMatrixType >(); +// test_SetDimensions< CSRMatrixType >(); +// test_SetDimensions< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, setCompressedRowLengthsTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_SetCompressedRowLengths< ChEllpackMatrixType >(); +// test_SetCompressedRowLengths< CSRMatrixType >(); +// test_SetCompressedRowLengths< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, setLikeTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_SetLike< ChEllpackMatrixType, ChEllpackMatrixType >(); +// test_SetLike< CSRMatrixType, CSRMatrixType >(); +// test_SetLike< EllpackMatrixType, EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, resetTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_Reset< ChEllpackMatrixType >(); +// test_Reset< CSRMatrixType >(); +// test_Reset< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, setElementTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_SetElement< ChEllpackMatrixType >(); +// test_SetElement< CSRMatrixType >(); +// test_SetElement< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, addElementTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_AddElement< ChEllpackMatrixType >(); +// test_AddElement< CSRMatrixType >(); +// test_AddElement< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, setRowTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_SetRow< ChEllpackMatrixType >(); +// test_SetRow< CSRMatrixType >(); +// test_SetRow< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, vectorProductTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_VectorProduct< ChEllpackMatrixType >(); +// test_VectorProduct< CSRMatrixType >(); +// test_VectorProduct< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, saveAndLoadTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_SaveAndLoad< ChEllpackMatrixType >(); +// test_SaveAndLoad< CSRMatrixType >(); +// test_SaveAndLoad< EllpackMatrixType >(); +//} +// +//TYPED_TEST( SparseMatrixTest, printTest ) +//{ +// using ChEllpackMatrixType = typename TestFixture::CSRMatrixType; +// using CSRMatrixType = typename TestFixture::CSRMatrixType; +// using EllpackMatrixType = typename TestFixture::EllpackMatrixType; +// +// test_Print< ChEllpackMatrixType >(); +// test_Print< CSRMatrixType >(); +// test_Print< EllpackMatrixType >(); +//} + TEST( SparseMatrixTest, CSR_perforSORIterationTest_Host ) { test_PerformSORIteration< CSR_host_float >(); -- GitLab