From d8cdf0318bd33e8953294968d8ed704f008bbc12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz>
Date: Thu, 11 Apr 2019 15:46:01 +0200
Subject: [PATCH] Removed binding stuff from ArrayTest, other improvements

---
 src/UnitTests/Containers/ArrayTest.h     | 145 ++---------------------
 src/UnitTests/Containers/ArrayViewTest.h |  20 ++--
 2 files changed, 18 insertions(+), 147 deletions(-)

diff --git a/src/UnitTests/Containers/ArrayTest.h b/src/UnitTests/Containers/ArrayTest.h
index 3790b35dc9..573c79f364 100644
--- a/src/UnitTests/Containers/ArrayTest.h
+++ b/src/UnitTests/Containers/ArrayTest.h
@@ -152,25 +152,9 @@ TYPED_TEST( ArrayTest, constructors )
    ArrayType v( 10 );
    EXPECT_EQ( v.getSize(), 10 );
 
-   if( std::is_same< typename ArrayType::DeviceType, Devices::Host >::value ) {
-      typename ArrayType::ValueType data[ 10 ];
-      ArrayType w( data, 10 );
-      EXPECT_EQ( w.getData(), data );
-
-      ArrayType z1( w );
-      //EXPECT_EQ( z1.getData(), data );
-      EXPECT_EQ( z1.getSize(), 10 );
-
-      ArrayType z2( w, 1 );
-      EXPECT_EQ( z2.getData(), data + 1 );
-      EXPECT_EQ( z2.getSize(), 9 );
-
-      ArrayType z3( w, 2, 3 );
-      EXPECT_EQ( z3.getData(), data + 2 );
-      EXPECT_EQ( z3.getSize(), 3 );
-   }
-
+   // deep copy
    ArrayType w( v );
+   EXPECT_NE( w.getData(), v.getData() );
    EXPECT_EQ( w.getSize(), v.getSize() );
    for( int i = 0; i < 10; i++ )
       EXPECT_EQ( v.getElement( i ), w.getElement( i ) );
@@ -206,15 +190,6 @@ TYPED_TEST( ArrayTest, setSize )
       u.setSize( i );
       EXPECT_EQ( u.getSize(), i );
    }
-
-   ArrayType v( u );
-   EXPECT_EQ( v.getSize(), 10 );
-   //EXPECT_EQ( v.getData(), u.getData() );
-   v.setSize( 11 );
-   EXPECT_EQ( u.getSize(), 10 );
-   EXPECT_EQ( v.getSize(), 11 );
-   EXPECT_NE( v.getData(), u.getData() );
-
 }
 
 TYPED_TEST( ArrayTest, empty )
@@ -240,45 +215,6 @@ TYPED_TEST( ArrayTest, setLike )
    EXPECT_NE( v.getData(), u.getData() );
 }
 
-TYPED_TEST( ArrayTest, bind )
-{
-   using ArrayType = typename TestFixture::ArrayType;
-
-   ArrayType u( 10 ), v;
-   v.bind( u );
-   EXPECT_EQ( v.getSize(), u.getSize() );
-   EXPECT_EQ( v.getData(), u.getData() );
-
-   // bind array with offset and size
-   ArrayType w;
-   w.bind( u, 2, 3 );
-   EXPECT_EQ( w.getSize(), 3 );
-   EXPECT_EQ( w.getData(), u.getData() + 2 );
-
-   // setting values
-   u.setValue( 27 );
-   EXPECT_EQ( u.getElement( 0 ), 27 );
-   v.setValue( 50 );
-   EXPECT_EQ( u.getElement( 0 ), 50 );
-   u.reset();
-   EXPECT_EQ( u.getSize(), 0 );
-   EXPECT_EQ( v.getElement( 0 ), 50 );
-
-   if( std::is_same< typename ArrayType::DeviceType, Devices::Host >::value ) {
-      typename ArrayType::ValueType data[ 10 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 10 };
-      u.bind( data, 10 );
-      EXPECT_EQ( u.getData(), data );
-      EXPECT_EQ( u.getSize(), 10 );
-      EXPECT_EQ( u.getElement( 1 ), 2 );
-      v.bind( u );
-      EXPECT_EQ( v.getElement( 1 ), 2 );
-      u.reset();
-      v.setElement( 1, 3 );
-      v.reset();
-      EXPECT_EQ( data[ 1 ], 3 );
-   }
-}
-
 TYPED_TEST( ArrayTest, swap )
 {
    using ArrayType = typename TestFixture::ArrayType;
@@ -470,9 +406,9 @@ TYPED_TEST( ArrayTest, assignmentOperator )
       u_host.setElement( i, i );
    }
 
-   v = 72; //.setValue( 0 );
+   v = 42;
    for( int i = 0; i < 10; i++ )
-      EXPECT_EQ( v.getElement( i ), 72 );
+      EXPECT_EQ( v.getElement( i ), 42 );
    v = u;
    EXPECT_EQ( u, v );
 
@@ -557,7 +493,7 @@ TYPED_TEST( ArrayTest, boundLoad )
 {
    using ArrayType = typename TestFixture::ArrayType;
 
-   ArrayType u, v, w;
+   ArrayType v, w;
    v.setSize( 100 );
    for( int i = 0; i < 100; i ++ )
       v.setElement( i, 3.14147 );
@@ -567,82 +503,23 @@ TYPED_TEST( ArrayTest, boundLoad )
    file.close();
 
    w.setSize( 100 );
-   u.bind( w );
+   auto u = w.getView();
    file.open( "test-file.tnl", File::Mode::In );
-   u.boundLoad( file );
+   u.load( file );
    EXPECT_EQ( u, v );
    EXPECT_EQ( u.getData(), w.getData() );
 
-   u.setSize( 50 );
+   ArrayType z( 50 );
    file.open( "test-file.tnl", File::Mode::In );
-   bool catched( false );
-   try
-   {
-      u.boundLoad( file );
-   }
-   catch(...)
-   {
-      catched = true;
-   }
-   EXPECT_TRUE( catched  );
+   EXPECT_ANY_THROW( z.boundLoad( file ) );
 
-   u.reset();
+   v.reset();
    file.open( "test-file.tnl", File::Mode::In );
-   u.boundLoad( file );
+   EXPECT_NO_THROW( v.boundLoad( file ) );
 
    EXPECT_EQ( std::remove( "test-file.tnl" ), 0 );
 }
 
-TYPED_TEST( ArrayTest, referenceCountingConstructors )
-{
-   using ArrayType = typename TestFixture::ArrayType;
-
-   // copies of a dynamic array
-   ArrayType u( 10 );
-   ArrayType v( u );
-   ArrayType w( v );
-   //EXPECT_EQ( v.getData(), u.getData() );
-   //EXPECT_EQ( w.getData(), u.getData() );
-
-   // copies of a static array
-   if( std::is_same< typename ArrayType::DeviceType, Devices::Host >::value ) {
-      typename ArrayType::ValueType data[ 10 ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
-      ArrayType u( data, 10 );
-      ArrayType v( u );
-      ArrayType w( v );
-      EXPECT_EQ( u.getData(), data );
-      //EXPECT_EQ( v.getData(), data );
-      //EXPECT_EQ( w.getData(), data );
-   }
-}
-
-TYPED_TEST( ArrayTest, referenceCountingBind )
-{
-   using ArrayType = typename TestFixture::ArrayType;
-
-   // copies of a dynamic array
-   ArrayType u( 10 );
-   ArrayType v;
-   v.bind( u );
-   ArrayType w;
-   w.bind( v );
-   EXPECT_EQ( v.getData(), u.getData() );
-   EXPECT_EQ( w.getData(), u.getData() );
-
-   // copies of a static array
-   if( std::is_same< typename ArrayType::DeviceType, Devices::Host >::value ) {
-      typename ArrayType::ValueType data[ 10 ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
-      ArrayType u( data, 10 );
-      ArrayType v;
-      v.bind( u );
-      ArrayType w;
-      w.bind( v );
-      EXPECT_EQ( u.getData(), data );
-      EXPECT_EQ( v.getData(), data );
-      EXPECT_EQ( w.getData(), data );
-   }
-}
-
 // TODO: test all __cuda_callable__ methods from a CUDA kernel
 
 #endif // HAVE_GTEST
diff --git a/src/UnitTests/Containers/ArrayViewTest.h b/src/UnitTests/Containers/ArrayViewTest.h
index ac86cc3549..28d8b512b1 100644
--- a/src/UnitTests/Containers/ArrayViewTest.h
+++ b/src/UnitTests/Containers/ArrayViewTest.h
@@ -200,19 +200,13 @@ TYPED_TEST( ArrayViewTest, bind )
    EXPECT_EQ( a.getSize(), 0 );
    EXPECT_EQ( v.getSize(), 10 );
 
-   if( std::is_same< typename ArrayType::DeviceType, Devices::Host >::value ) {
-      typename ArrayType::ValueType data[ 10 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 10 };
-      a.bind( data, 10 );
-      EXPECT_EQ( a.getData(), data );
-      EXPECT_EQ( a.getSize(), 10 );
-      EXPECT_EQ( a.getElement( 1 ), 2 );
-      v.bind( a );
-      EXPECT_EQ( v.getElement( 1 ), 2 );
-      a.reset();
-      v.setElement( 1, 3 );
-      v.reset();
-      EXPECT_EQ( data[ 1 ], 3 );
-   }
+   ArrayType b = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+   EXPECT_EQ( b.getSize(), 10 );
+   EXPECT_EQ( b.getElement( 1 ), 2 );
+   v.bind( b );
+   EXPECT_EQ( v.getElement( 1 ), 2 );
+   v.setElement( 1, 3 );
+   EXPECT_EQ( b.getElement( 1 ), 3 );
 }
 
 TYPED_TEST( ArrayViewTest, swap )
-- 
GitLab