From 44038f9826c706336021ce356bcb75e3636b79e0 Mon Sep 17 00:00:00 2001
From: Lukas Cejka <lukas.ostatek@gmail.com>
Date: Sun, 6 Oct 2019 21:37:04 +0200
Subject: [PATCH] Changed setElement test to a more complex matrix.

---
 src/UnitTests/Matrices/SparseMatrixTest.hpp | 107 ++++++++++++--------
 1 file changed, 65 insertions(+), 42 deletions(-)

diff --git a/src/UnitTests/Matrices/SparseMatrixTest.hpp b/src/UnitTests/Matrices/SparseMatrixTest.hpp
index 31bc8a69a8..6a529b0f98 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest.hpp
+++ b/src/UnitTests/Matrices/SparseMatrixTest.hpp
@@ -200,16 +200,16 @@ void test_SetElement()
 /*
  * Sets up the following 10x10 sparse matrix:
  *
- *    /  1  0  0  0  0  0  0  0  0  0  \
- *    |  0  2  0  0  0  0  0  0  0  0  |
- *    |  0  0  3  0  0  0  0  0  0  0  |
- *    |  0  0  0  4  0  0  0  0  0  0  |
- *    |  0  0  0  0  5  0  0  0  0  0  |
- *    |  0  0  0  0  0  6  0  0  0  0  |
- *    |  0  0  0  0  0  0  7  0  0  0  |
- *    |  0  0  0  0  0  0  0  8  0  0  |
- *    |  0  0  0  0  0  0  0  0  9  0  |
- *    \  0  0  0  0  0  0  0  0  0 10  /
+ *    /  1  2  3  4  0  0  0  0  0  0  \
+ *    |  5  6  7  0  0  0  0  0  0  0  |
+ *    |  8  9 10 11 12 13 14 15  0  0  |
+ *    | 16 17  0  0  0  0  0  0  0  0  |
+ *    | 18  0  0  0  0  0  0  0  0  0  |
+ *    | 19  0  0  0  0  0  0  0  0  0  |
+ *    | 20  0  0  0  0  0  0  0  0  0  |
+ *    | 21  0  0  0  0  0  0  0  0  0  |
+ *    | 22  0  0  0  0  0  0  0  0  0  |
+ *    \ 23  0  0  0  0  0  0  0  0  0  /
  */
     
     const IndexType rows = 10;
@@ -217,22 +217,34 @@ void test_SetElement()
     
     Matrix m;
     m.reset();
+    
     m.setDimensions( rows, cols );
     
     typename Matrix::CompressedRowLengthsVector rowLengths;
     rowLengths.setSize( rows );
-    rowLengths.setValue( 1 );
+    rowLengths.setValue( 8 );
     m.setCompressedRowLengths( rowLengths );
     
     RealType value = 1;
-    for( IndexType i = 0; i < rows; i++ )
-        m.setElement( i, i, value++ );
+    for( IndexType i = 0; i < 4; i++ )
+        m.setElement( 0, i, value++ );
+    
+    for( IndexType i = 0; i < 3; i++ )
+        m.setElement( 1, i, value++ );
+    
+    for( IndexType i = 0; i < 8; i++ )
+        m.setElement( 2, i, value++ );
+    
+    for( IndexType i = 0; i < 2; i++ )
+        m.setElement( 3, i, value++ );
     
+    for( IndexType i = 4; i < rows; i++ )
+        m.setElement( i, 0, value++ );    
     
     EXPECT_EQ( m.getElement( 0, 0 ),  1 );
-    EXPECT_EQ( m.getElement( 0, 1 ),  0 );
-    EXPECT_EQ( m.getElement( 0, 2 ),  0 );
-    EXPECT_EQ( m.getElement( 0, 3 ),  0 );
+    EXPECT_EQ( m.getElement( 0, 1 ),  2 );
+    EXPECT_EQ( m.getElement( 0, 2 ),  3 );
+    EXPECT_EQ( m.getElement( 0, 3 ),  4 );
     EXPECT_EQ( m.getElement( 0, 4 ),  0 );
     EXPECT_EQ( m.getElement( 0, 5 ),  0 );
     EXPECT_EQ( m.getElement( 0, 6 ),  0 );
@@ -240,9 +252,9 @@ void test_SetElement()
     EXPECT_EQ( m.getElement( 0, 8 ),  0 );
     EXPECT_EQ( m.getElement( 0, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 1, 0 ),  0 );
-    EXPECT_EQ( m.getElement( 1, 1 ),  2 );
-    EXPECT_EQ( m.getElement( 1, 2 ),  0 );
+    EXPECT_EQ( m.getElement( 1, 0 ),  5 );
+    EXPECT_EQ( m.getElement( 1, 1 ),  6 );
+    EXPECT_EQ( m.getElement( 1, 2 ),  7 );
     EXPECT_EQ( m.getElement( 1, 3 ),  0 );
     EXPECT_EQ( m.getElement( 1, 4 ),  0 );
     EXPECT_EQ( m.getElement( 1, 5 ),  0 );
@@ -251,21 +263,21 @@ void test_SetElement()
     EXPECT_EQ( m.getElement( 1, 8 ),  0 );
     EXPECT_EQ( m.getElement( 1, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 2, 0 ),  0 );
-    EXPECT_EQ( m.getElement( 2, 1 ),  0 );
-    EXPECT_EQ( m.getElement( 2, 2 ),  3 );
-    EXPECT_EQ( m.getElement( 2, 3 ),  0 );
-    EXPECT_EQ( m.getElement( 2, 4 ),  0 );
-    EXPECT_EQ( m.getElement( 2, 5 ),  0 );
-    EXPECT_EQ( m.getElement( 2, 6 ),  0 );
-    EXPECT_EQ( m.getElement( 2, 7 ),  0 );
+    EXPECT_EQ( m.getElement( 2, 0 ),  8 );
+    EXPECT_EQ( m.getElement( 2, 1 ),  9 );
+    EXPECT_EQ( m.getElement( 2, 2 ), 10 );
+    EXPECT_EQ( m.getElement( 2, 3 ), 11 );
+    EXPECT_EQ( m.getElement( 2, 4 ), 12 );
+    EXPECT_EQ( m.getElement( 2, 5 ), 13 );
+    EXPECT_EQ( m.getElement( 2, 6 ), 14 );
+    EXPECT_EQ( m.getElement( 2, 7 ), 15 );
     EXPECT_EQ( m.getElement( 2, 8 ),  0 );
     EXPECT_EQ( m.getElement( 2, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 3, 0 ),  0 );
-    EXPECT_EQ( m.getElement( 3, 1 ),  0 );
+    EXPECT_EQ( m.getElement( 3, 0 ), 16 );
+    EXPECT_EQ( m.getElement( 3, 1 ), 17 );
     EXPECT_EQ( m.getElement( 3, 2 ),  0 );
-    EXPECT_EQ( m.getElement( 3, 3 ),  4 );
+    EXPECT_EQ( m.getElement( 3, 3 ),  0 );
     EXPECT_EQ( m.getElement( 3, 4 ),  0 );
     EXPECT_EQ( m.getElement( 3, 5 ),  0 );
     EXPECT_EQ( m.getElement( 3, 6 ),  0 );
@@ -273,51 +285,51 @@ void test_SetElement()
     EXPECT_EQ( m.getElement( 3, 8 ),  0 );
     EXPECT_EQ( m.getElement( 3, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 4, 0 ),  0 );
+    EXPECT_EQ( m.getElement( 4, 0 ), 18 );
     EXPECT_EQ( m.getElement( 4, 1 ),  0 );
     EXPECT_EQ( m.getElement( 4, 2 ),  0 );
     EXPECT_EQ( m.getElement( 4, 3 ),  0 );
-    EXPECT_EQ( m.getElement( 4, 4 ),  5 );
+    EXPECT_EQ( m.getElement( 4, 4 ),  0 );
     EXPECT_EQ( m.getElement( 4, 5 ),  0 );
     EXPECT_EQ( m.getElement( 4, 6 ),  0 );
     EXPECT_EQ( m.getElement( 4, 7 ),  0 );
     EXPECT_EQ( m.getElement( 4, 8 ),  0 );
     EXPECT_EQ( m.getElement( 4, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 5, 0 ),  0 );
+    EXPECT_EQ( m.getElement( 5, 0 ), 19 );
     EXPECT_EQ( m.getElement( 5, 1 ),  0 );
     EXPECT_EQ( m.getElement( 5, 2 ),  0 );
     EXPECT_EQ( m.getElement( 5, 3 ),  0 );
     EXPECT_EQ( m.getElement( 5, 4 ),  0 );
-    EXPECT_EQ( m.getElement( 5, 5 ),  6 );
+    EXPECT_EQ( m.getElement( 5, 5 ),  0 );
     EXPECT_EQ( m.getElement( 5, 6 ),  0 );
     EXPECT_EQ( m.getElement( 5, 7 ),  0 );
     EXPECT_EQ( m.getElement( 5, 8 ),  0 );
     EXPECT_EQ( m.getElement( 5, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 6, 0 ),  0 );
+    EXPECT_EQ( m.getElement( 6, 0 ), 20 );
     EXPECT_EQ( m.getElement( 6, 1 ),  0 );
     EXPECT_EQ( m.getElement( 6, 2 ),  0 );
     EXPECT_EQ( m.getElement( 6, 3 ),  0 );
     EXPECT_EQ( m.getElement( 6, 4 ),  0 );
     EXPECT_EQ( m.getElement( 6, 5 ),  0 );
-    EXPECT_EQ( m.getElement( 6, 6 ),  7 );
+    EXPECT_EQ( m.getElement( 6, 6 ),  0 );
     EXPECT_EQ( m.getElement( 6, 7 ),  0 );
     EXPECT_EQ( m.getElement( 6, 8 ),  0 );
     EXPECT_EQ( m.getElement( 6, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 7, 0 ),  0 );
+    EXPECT_EQ( m.getElement( 7, 0 ), 21 );
     EXPECT_EQ( m.getElement( 7, 1 ),  0 );
     EXPECT_EQ( m.getElement( 7, 2 ),  0 );
     EXPECT_EQ( m.getElement( 7, 3 ),  0 );
     EXPECT_EQ( m.getElement( 7, 4 ),  0 );
     EXPECT_EQ( m.getElement( 7, 5 ),  0 );
     EXPECT_EQ( m.getElement( 7, 6 ),  0 );
-    EXPECT_EQ( m.getElement( 7, 7 ),  8 );
+    EXPECT_EQ( m.getElement( 7, 7 ),  0 );
     EXPECT_EQ( m.getElement( 7, 8 ),  0 );
     EXPECT_EQ( m.getElement( 7, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 8, 0 ),  0 );
+    EXPECT_EQ( m.getElement( 8, 0 ), 22 );
     EXPECT_EQ( m.getElement( 8, 1 ),  0 );
     EXPECT_EQ( m.getElement( 8, 2 ),  0 );
     EXPECT_EQ( m.getElement( 8, 3 ),  0 );
@@ -325,10 +337,10 @@ void test_SetElement()
     EXPECT_EQ( m.getElement( 8, 5 ),  0 );
     EXPECT_EQ( m.getElement( 8, 6 ),  0 );
     EXPECT_EQ( m.getElement( 8, 7 ),  0 );
-    EXPECT_EQ( m.getElement( 8, 8 ),  9 );
+    EXPECT_EQ( m.getElement( 8, 8 ),  0 );
     EXPECT_EQ( m.getElement( 8, 9 ),  0 );
     
-    EXPECT_EQ( m.getElement( 9, 0 ),  0 );
+    EXPECT_EQ( m.getElement( 9, 0 ), 23 );
     EXPECT_EQ( m.getElement( 9, 1 ),  0 );
     EXPECT_EQ( m.getElement( 9, 2 ),  0 );
     EXPECT_EQ( m.getElement( 9, 3 ),  0 );
@@ -337,7 +349,7 @@ void test_SetElement()
     EXPECT_EQ( m.getElement( 9, 6 ),  0 );
     EXPECT_EQ( m.getElement( 9, 7 ),  0 );
     EXPECT_EQ( m.getElement( 9, 8 ),  0 );
-    EXPECT_EQ( m.getElement( 9, 9 ), 10 );
+    EXPECT_EQ( m.getElement( 9, 9 ),  0 );
 }
 
 template< typename Matrix >
@@ -425,6 +437,17 @@ void test_AddElement()
     
     // Add new elements to the old elements with a multiplying factor applied to the old elements.
 
+/*
+ * Sets up the following 6x5 sparse matrix:
+ *
+ *    /  1  2  3  0  0 \
+ *    |  0  4  5  6  0 |
+ *    |  0  0  7  8  9 |
+ *    | 10  0  0  0  0 |
+ *    |  0 11  0  0  0 |
+ *    \  0  0  0 12  0 /
+ */
+    
 /*
  * The following setup results in the following 6x5 sparse matrix:
  *
-- 
GitLab