From 45016b11db1fbf30f392c7a5d341b61eb8d78140 Mon Sep 17 00:00:00 2001
From: Lukas Cejka <lukas.ostatek@gmail.com>
Date: Mon, 5 Nov 2018 18:02:40 +0100
Subject: [PATCH] Added test for addElement function without
 thisElementMultiplicator testing implemeneted.

---
 src/UnitTests/Matrices/SparseMatrixTest.h | 42 ++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/src/UnitTests/Matrices/SparseMatrixTest.h b/src/UnitTests/Matrices/SparseMatrixTest.h
index aaeda4cd78..47385249bb 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest.h
@@ -23,7 +23,7 @@
  * setElementFast()                 ::TEST? How to test __cuda_callable__?
  * setElement()                         ::DONE
  * addElementFast()                 ::TEST? How to test __cuda_callable__?
- * addElement()
+ * addElement()                     ::HOW?  How to use the thisElementMultiplicator? Does it need testing?
  * setRowFast()                     ::TEST? How to test __cuda_callable__?
  * setRow()
  * addRowFast()                     ::TEST? How to test __cuda_callable__?
@@ -198,6 +198,34 @@ void test_SetElement()
     EXPECT_EQ( m.getElement( 4, 4 ), 5 );
 }
 
+template< typename Matrix >
+void test_AddElement()
+{
+    const int rows = 6;
+    const int cols = 5;
+    
+    Matrix m;
+    m.reset();
+    m.setDimensions( rows, cols );
+    typename Matrix::CompressedRowLengthsVector rowLengths;
+    rowLengths.setSize( rows );
+    rowLengths.setValue( 3 );
+    m.setCompressedRowLengths( rowLengths );
+    
+    int value = 1;
+    for( int i = 0; i < rows; i++ )
+        m.addElement( i, 0, value++, 0.0 );
+    
+    m.addElement( 0, 4, 1, 0.0 );
+    
+    EXPECT_EQ( m.getElement( 0, 0 ), 1 );
+    EXPECT_EQ( m.getElement( 1, 0 ), 2 );
+    EXPECT_EQ( m.getElement( 2, 0 ), 3 );
+    EXPECT_EQ( m.getElement( 3, 0 ), 4 );
+    EXPECT_EQ( m.getElement( 4, 0 ), 5 );
+    EXPECT_EQ( m.getElement( 5, 0 ), 6 );
+}
+
 TEST( SparseMatrixTest, CSR_GetTypeTest_Host )
 {
    host_test_GetType< CSR_host_float, CSR_host_int >();
@@ -270,6 +298,18 @@ TEST( SparseMatrixTest, CSR_setElementTest_Cuda )
 }
 #endif
 
+TEST( SparseMatrixTest, CSR_addElementTest_Host )
+{
+    test_AddElement< CSR_host_int >();
+}
+
+#ifdef HAVE_CUDA
+TEST( SparseMatrixTest, CSR_addElementTest_Cuda )
+{
+    test_AddElement< CSR_cuda_int >();
+}
+#endif
+
 #endif
 
 #include "../GtestMissingError.h"
-- 
GitLab