From 80c57392bf99cf8ad45328943a4ff76201428d10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkovsky@mmg.fjfi.cvut.cz>
Date: Sat, 29 Feb 2020 16:17:13 +0100
Subject: [PATCH] Preparation of tests for Vector-of-StaticVectors and
 StaticVector-of-StaticVectors

---
 src/UnitTests/Containers/CMakeLists.txt       | 20 ++++++++---
 .../StaticVectorOfStaticVectorsTest.cpp       |  6 ++++
 .../Containers/VectorBinaryOperationsTest.h   | 34 +++++++++++-------
 .../Containers/VectorOfStaticVectorsTest.cpp  |  6 ++--
 .../Containers/VectorUnaryOperationsTest.h    | 36 ++++++++++++-------
 .../Containers/VectorVerticalOperationsTest.h | 34 +++++++++++-------
 6 files changed, 92 insertions(+), 44 deletions(-)
 create mode 100644 src/UnitTests/Containers/StaticVectorOfStaticVectorsTest.cpp

diff --git a/src/UnitTests/Containers/CMakeLists.txt b/src/UnitTests/Containers/CMakeLists.txt
index 70014014ae..9f27aaa860 100644
--- a/src/UnitTests/Containers/CMakeLists.txt
+++ b/src/UnitTests/Containers/CMakeLists.txt
@@ -30,6 +30,11 @@ ADD_EXECUTABLE( VectorVerticalOperationsTest VectorVerticalOperationsTest.cpp )
 TARGET_COMPILE_OPTIONS( VectorVerticalOperationsTest PRIVATE ${CXX_TESTS_FLAGS} )
 TARGET_LINK_LIBRARIES( VectorVerticalOperationsTest ${GTEST_BOTH_LIBRARIES} )
 
+# FIXME
+#ADD_EXECUTABLE( VectorOfStaticVectorsTest VectorOfStaticVectorsTest.cpp )
+#TARGET_COMPILE_OPTIONS( VectorOfStaticVectorsTest PRIVATE ${CXX_TESTS_FLAGS} )
+#TARGET_LINK_LIBRARIES( VectorOfStaticVectorsTest ${GTEST_BOTH_LIBRARIES} )
+
 IF( BUILD_CUDA )
    CUDA_ADD_EXECUTABLE( ArrayTestCuda ArrayTest.cu
                         OPTIONS ${CXX_TESTS_FLAGS} )
@@ -54,6 +59,10 @@ IF( BUILD_CUDA )
 
    CUDA_ADD_EXECUTABLE( VectorVerticalOperationsTestCuda VectorVerticalOperationsTest.cu OPTIONS ${CXX_TESTS_FLAGS} )
    TARGET_LINK_LIBRARIES( VectorVerticalOperationsTestCuda ${GTEST_BOTH_LIBRARIES} )
+
+   # FIXME
+#   CUDA_ADD_EXECUTABLE( VectorOfStaticVectorsTestCuda VectorOfStaticVectorsTest.cu OPTIONS ${CXX_TESTS_FLAGS} )
+#   TARGET_LINK_LIBRARIES( VectorOfStaticVectorsTestCuda ${GTEST_BOTH_LIBRARIES} )
 ENDIF( BUILD_CUDA )
 
 ADD_EXECUTABLE( StaticArrayTest StaticArrayTest.cpp )
@@ -68,9 +77,10 @@ ADD_EXECUTABLE( StaticVectorOperationsTest StaticVectorOperationsTest.cpp )
 TARGET_COMPILE_OPTIONS( StaticVectorOperationsTest PRIVATE ${CXX_TESTS_FLAGS} )
 TARGET_LINK_LIBRARIES( StaticVectorOperationsTest ${GTEST_BOTH_LIBRARIES} )
 
-ADD_EXECUTABLE( VectorOfStaticVectorsTest VectorOfStaticVectorsTest.cpp )
-TARGET_COMPILE_OPTIONS( VectorOfStaticVectorsTest PRIVATE ${CXX_TESTS_FLAGS} )
-TARGET_LINK_LIBRARIES( VectorOfStaticVectorsTest ${GTEST_BOTH_LIBRARIES} )
+# FIXME
+#ADD_EXECUTABLE( StaticVectorOfStaticVectorsTest StaticVectorOfStaticVectorsTest.cpp )
+#TARGET_COMPILE_OPTIONS( StaticVectorOfStaticVectorsTest PRIVATE ${CXX_TESTS_FLAGS} )
+#TARGET_LINK_LIBRARIES( StaticVectorOfStaticVectorsTest ${GTEST_BOTH_LIBRARIES} )
 
 
 ADD_TEST( ArrayTest ${EXECUTABLE_OUTPUT_PATH}/ArrayTest${CMAKE_EXECUTABLE_SUFFIX} )
@@ -81,6 +91,7 @@ ADD_TEST( VectorEvaluateAndReduceTest ${EXECUTABLE_OUTPUT_PATH}/VectorEvaluateAn
 ADD_TEST( VectorBinaryOperationsTest ${EXECUTABLE_OUTPUT_PATH}/VectorBinaryOperationsTest${CMAKE_EXECUTABLE_SUFFIX} )
 ADD_TEST( VectorUnaryOperationsTest ${EXECUTABLE_OUTPUT_PATH}/VectorUnaryOperationsTest${CMAKE_EXECUTABLE_SUFFIX} )
 ADD_TEST( VectorVerticalOperationsTest ${EXECUTABLE_OUTPUT_PATH}/VectorVerticalOperationsTest${CMAKE_EXECUTABLE_SUFFIX} )
+#ADD_TEST( VectorOfStaticVectorsTest ${EXECUTABLE_OUTPUT_PATH}/VectorOfStaticVectorsTest${CMAKE_EXECUTABLE_SUFFIX} )
 IF( BUILD_CUDA )
    ADD_TEST( ArrayTestCuda ${EXECUTABLE_OUTPUT_PATH}/ArrayTestCuda${CMAKE_EXECUTABLE_SUFFIX} )
    ADD_TEST( ArrayViewTestCuda ${EXECUTABLE_OUTPUT_PATH}/ArrayViewTestCuda${CMAKE_EXECUTABLE_SUFFIX} )
@@ -90,11 +101,12 @@ IF( BUILD_CUDA )
    ADD_TEST( VectorBinaryOperationsTestCuda ${EXECUTABLE_OUTPUT_PATH}/VectorBinaryOperationsTestCuda${CMAKE_EXECUTABLE_SUFFIX} )
    ADD_TEST( VectorUnaryOperationsTestCuda ${EXECUTABLE_OUTPUT_PATH}/VectorUnaryOperationsTestCuda${CMAKE_EXECUTABLE_SUFFIX} )
    ADD_TEST( VectorVerticalOperationsTestCuda ${EXECUTABLE_OUTPUT_PATH}/VectorVerticalOperationsTestCuda${CMAKE_EXECUTABLE_SUFFIX} )
+#   ADD_TEST( VectorOfStaticVectorsTestCuda ${EXECUTABLE_OUTPUT_PATH}/VectorOfStaticVectorsTestCuda${CMAKE_EXECUTABLE_SUFFIX} )
 ENDIF()
 ADD_TEST( StaticArrayTest ${EXECUTABLE_OUTPUT_PATH}/StaticArrayTest${CMAKE_EXECUTABLE_SUFFIX} )
 ADD_TEST( StaticVectorTest ${EXECUTABLE_OUTPUT_PATH}/StaticVectorTest${CMAKE_EXECUTABLE_SUFFIX} )
 ADD_TEST( StaticVectorOperationsTest ${EXECUTABLE_OUTPUT_PATH}/StaticVectorOperationsTest${CMAKE_EXECUTABLE_SUFFIX} )
-ADD_TEST( VectorOfStaticVectorsTest ${EXECUTABLE_OUTPUT_PATH}/VectorOfStaticVectorsTest${CMAKE_EXECUTABLE_SUFFIX} )
+#ADD_TEST( StaticVectorOfStaticVectorsTest ${EXECUTABLE_OUTPUT_PATH}/StaticVectorOfStaticVectorsTest${CMAKE_EXECUTABLE_SUFFIX} )
 
 
 ADD_SUBDIRECTORY( Multimaps )
diff --git a/src/UnitTests/Containers/StaticVectorOfStaticVectorsTest.cpp b/src/UnitTests/Containers/StaticVectorOfStaticVectorsTest.cpp
new file mode 100644
index 0000000000..3b4ef0987d
--- /dev/null
+++ b/src/UnitTests/Containers/StaticVectorOfStaticVectorsTest.cpp
@@ -0,0 +1,6 @@
+#define STATIC_VECTOR
+#define VECTOR_OF_STATIC_VECTORS
+#include "VectorBinaryOperationsTest.h"
+#include "VectorUnaryOperationsTest.h"
+#include "VectorVerticalOperationsTest.h"
+#include "../main.h"
diff --git a/src/UnitTests/Containers/VectorBinaryOperationsTest.h b/src/UnitTests/Containers/VectorBinaryOperationsTest.h
index 3c899cc512..e8932d3e4a 100644
--- a/src/UnitTests/Containers/VectorBinaryOperationsTest.h
+++ b/src/UnitTests/Containers/VectorBinaryOperationsTest.h
@@ -179,18 +179,28 @@ protected:
    #endif
    >;
 #elif defined(STATIC_VECTOR)
-   using VectorPairs = ::testing::Types<
-      Pair< StaticVector< 1, int >,     StaticVector< 1, int >    >,
-      Pair< StaticVector< 1, double >,  StaticVector< 1, double > >,
-      Pair< StaticVector< 2, int >,     StaticVector< 2, int >    >,
-      Pair< StaticVector< 2, double >,  StaticVector< 2, double > >,
-      Pair< StaticVector< 3, int >,     StaticVector< 3, int >    >,
-      Pair< StaticVector< 3, double >,  StaticVector< 3, double > >,
-      Pair< StaticVector< 4, int >,     StaticVector< 4, int >    >,
-      Pair< StaticVector< 4, double >,  StaticVector< 4, double > >,
-      Pair< StaticVector< 5, int >,     StaticVector< 5, int >    >,
-      Pair< StaticVector< 5, double >,  StaticVector< 5, double > >
-   >;
+   #ifdef VECTOR_OF_STATIC_VECTORS
+      using VectorPairs = ::testing::Types<
+         Pair< StaticVector< 1, StaticVector< 3, double > >,  StaticVector< 1, StaticVector< 3, double > > >,
+         Pair< StaticVector< 2, StaticVector< 3, double > >,  StaticVector< 2, StaticVector< 3, double > > >,
+         Pair< StaticVector< 3, StaticVector< 3, double > >,  StaticVector< 3, StaticVector< 3, double > > >,
+         Pair< StaticVector< 4, StaticVector< 3, double > >,  StaticVector< 4, StaticVector< 3, double > > >,
+         Pair< StaticVector< 5, StaticVector< 3, double > >,  StaticVector< 5, StaticVector< 3, double > > >
+      >;
+   #else
+      using VectorPairs = ::testing::Types<
+         Pair< StaticVector< 1, int >,     StaticVector< 1, int >    >,
+         Pair< StaticVector< 1, double >,  StaticVector< 1, double > >,
+         Pair< StaticVector< 2, int >,     StaticVector< 2, int >    >,
+         Pair< StaticVector< 2, double >,  StaticVector< 2, double > >,
+         Pair< StaticVector< 3, int >,     StaticVector< 3, int >    >,
+         Pair< StaticVector< 3, double >,  StaticVector< 3, double > >,
+         Pair< StaticVector< 4, int >,     StaticVector< 4, int >    >,
+         Pair< StaticVector< 4, double >,  StaticVector< 4, double > >,
+         Pair< StaticVector< 5, int >,     StaticVector< 5, int >    >,
+         Pair< StaticVector< 5, double >,  StaticVector< 5, double > >
+      >;
+   #endif
 #else
    #ifdef VECTOR_OF_STATIC_VECTORS
       using VectorPairs = ::testing::Types<
diff --git a/src/UnitTests/Containers/VectorOfStaticVectorsTest.cpp b/src/UnitTests/Containers/VectorOfStaticVectorsTest.cpp
index 5c7cd923c7..859cf045c0 100644
--- a/src/UnitTests/Containers/VectorOfStaticVectorsTest.cpp
+++ b/src/UnitTests/Containers/VectorOfStaticVectorsTest.cpp
@@ -1,5 +1,5 @@
 #define VECTOR_OF_STATIC_VECTORS
-//#include "VectorBinaryOperationsTest.h"
-//#include "VectorUnaryOperationsTest.h"
-//#include "VectorVerticalOperationsTest.h"
+#include "VectorBinaryOperationsTest.h"
+#include "VectorUnaryOperationsTest.h"
+#include "VectorVerticalOperationsTest.h"
 #include "../main.h"
diff --git a/src/UnitTests/Containers/VectorUnaryOperationsTest.h b/src/UnitTests/Containers/VectorUnaryOperationsTest.h
index 4440521d1e..aa595d8e97 100644
--- a/src/UnitTests/Containers/VectorUnaryOperationsTest.h
+++ b/src/UnitTests/Containers/VectorUnaryOperationsTest.h
@@ -84,18 +84,28 @@ protected:
    #endif
    >;
 #elif defined(STATIC_VECTOR)
-   using VectorTypes = ::testing::Types<
-      StaticVector< 1, int >,
-      StaticVector< 1, double >,
-      StaticVector< 2, int >,
-      StaticVector< 2, double >,
-      StaticVector< 3, int >,
-      StaticVector< 3, double >,
-      StaticVector< 4, int >,
-      StaticVector< 4, double >,
-      StaticVector< 5, int >,
-      StaticVector< 5, double >
-   >;
+   #ifdef VECTOR_OF_STATIC_VECTORS
+      using VectorTypes = ::testing::Types<
+         StaticVector< 1, StaticVector< 3, double > >,
+         StaticVector< 2, StaticVector< 3, double > >,
+         StaticVector< 3, StaticVector< 3, double > >,
+         StaticVector< 4, StaticVector< 3, double > >,
+         StaticVector< 5, StaticVector< 3, double > >
+      >;
+   #else
+      using VectorTypes = ::testing::Types<
+         StaticVector< 1, int >,
+         StaticVector< 1, double >,
+         StaticVector< 2, int >,
+         StaticVector< 2, double >,
+         StaticVector< 3, int >,
+         StaticVector< 3, double >,
+         StaticVector< 4, int >,
+         StaticVector< 4, double >,
+         StaticVector< 5, int >,
+         StaticVector< 5, double >
+      >;
+   #endif
 #else
    #ifdef VECTOR_OF_STATIC_VECTORS
       using VectorTypes = ::testing::Types<
@@ -312,7 +322,7 @@ TYPED_TEST( VectorUnaryOperationsTest, abs )
    EXPECT_EQ( abs(V1), V1 );
    // unary expression
    EXPECT_EQ( abs(-V1), V1 );
-   // unary expression
+   // binary expression
    EXPECT_EQ( abs(-V1-V1), V2 );
 }
 
diff --git a/src/UnitTests/Containers/VectorVerticalOperationsTest.h b/src/UnitTests/Containers/VectorVerticalOperationsTest.h
index a21c235bdd..0650e3154a 100644
--- a/src/UnitTests/Containers/VectorVerticalOperationsTest.h
+++ b/src/UnitTests/Containers/VectorVerticalOperationsTest.h
@@ -123,18 +123,28 @@ protected:
    #endif
    >;
 #elif defined(STATIC_VECTOR)
-   using VectorTypes = ::testing::Types<
-      StaticVector< 1, int >,
-      StaticVector< 1, double >,
-      StaticVector< 2, int >,
-      StaticVector< 2, double >,
-      StaticVector< 3, int >,
-      StaticVector< 3, double >,
-      StaticVector< 4, int >,
-      StaticVector< 4, double >,
-      StaticVector< 5, int >,
-      StaticVector< 5, double >
-   >;
+   #ifdef VECTOR_OF_STATIC_VECTORS
+      using VectorTypes = ::testing::Types<
+         StaticVector< 1, StaticVector< 3, double > >,
+         StaticVector< 2, StaticVector< 3, double > >,
+         StaticVector< 3, StaticVector< 3, double > >,
+         StaticVector< 4, StaticVector< 3, double > >,
+         StaticVector< 5, StaticVector< 3, double > >
+      >;
+   #else
+      using VectorTypes = ::testing::Types<
+         StaticVector< 1, int >,
+         StaticVector< 1, double >,
+         StaticVector< 2, int >,
+         StaticVector< 2, double >,
+         StaticVector< 3, int >,
+         StaticVector< 3, double >,
+         StaticVector< 4, int >,
+         StaticVector< 4, double >,
+         StaticVector< 5, int >,
+         StaticVector< 5, double >
+      >;
+   #endif
 #else
    #ifdef VECTOR_OF_STATIC_VECTORS
       using VectorTypes = ::testing::Types<
-- 
GitLab