Newer
Older
/***************************************************************************
ListTest.cpp - description
-------------------
begin : Feb 15, 2014
copyright : (C) 2014 by Tomas Oberhuber et al.
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#include <TNL/Containers/List.h>
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// test fixture for typed tests
template< typename List >
class ListTest : public ::testing::Test
{
protected:
using ListType = List;
};
// types for which ListTest is instantiated
using ListTypes = ::testing::Types<
List< short >,
List< int >,
List< long >,
List< float >,
List< double >,
List< String >
>;
TYPED_TEST_CASE( ListTest, ListTypes );
TYPED_TEST( ListTest, constructor )
{
using ListType = typename TestFixture::ListType;
ListType list;
EXPECT_TRUE( list.isEmpty() );
EXPECT_EQ( list.getSize(), 0 );
list.Append( 0 );
EXPECT_EQ( list.getSize(), 1 );
ListType copy( list );
list.Append( 0 );
EXPECT_EQ( list.getSize(), 2 );
EXPECT_EQ( copy.getSize(), 1 );
EXPECT_EQ( copy[ 0 ], list[ 0 ] );
}
TYPED_TEST( ListTest, operations )
{
using ListType = typename TestFixture::ListType;
using ValueType = typename ListType::ValueType;
a.Append( (ValueType) 0 );
a.Append( (ValueType) 1 );
a.Prepend( (ValueType) 2 );
a.Insert( (ValueType) 3, 1 );
EXPECT_EQ( a[ 0 ], (ValueType) 2 );
EXPECT_EQ( a[ 1 ], (ValueType) 3 );
EXPECT_EQ( a[ 2 ], (ValueType) 0 );
EXPECT_EQ( a[ 3 ], (ValueType) 1 );
b = a;
EXPECT_EQ( b.getSize(), 4 );
EXPECT_EQ( a, b );
b.Insert( ( ValueType ) 4, 4 );
EXPECT_EQ( b[ 4 ], (ValueType) 4 );
EXPECT_EQ( a[ 0 ], (ValueType) 2 );
EXPECT_EQ( a[ 1 ], (ValueType) 3 );
EXPECT_EQ( a[ 2 ], (ValueType) 0 );
EXPECT_EQ( a[ 3 ], (ValueType) 1 );
EXPECT_EQ( a[ 4 ], (ValueType) 2 );
EXPECT_EQ( a[ 5 ], (ValueType) 3 );
EXPECT_EQ( a[ 6 ], (ValueType) 0 );
EXPECT_EQ( a[ 7 ], (ValueType) 1 );
EXPECT_EQ( a[ 8 ], (ValueType) 4 );
a.PrependList( b );
EXPECT_EQ( a.getSize(), 14 );
EXPECT_EQ( a[ 0 ], (ValueType) 2 );
EXPECT_EQ( a[ 1 ], (ValueType) 3 );
EXPECT_EQ( a[ 2 ], (ValueType) 0 );
EXPECT_EQ( a[ 3 ], (ValueType) 1 );
EXPECT_EQ( a[ 4 ], (ValueType) 4 );
EXPECT_EQ( a[ 5 ], (ValueType) 2 );
EXPECT_EQ( a[ 6 ], (ValueType) 3 );
EXPECT_EQ( a[ 7 ], (ValueType) 0 );
EXPECT_EQ( a[ 8 ], (ValueType) 1 );
EXPECT_EQ( a[ 9 ], (ValueType) 2 );
EXPECT_EQ( a[ 10 ], (ValueType) 3 );
EXPECT_EQ( a[ 11 ], (ValueType) 0 );
EXPECT_EQ( a[ 12 ], (ValueType) 1 );
EXPECT_EQ( a[ 13 ], (ValueType) 4 );
int main( int argc, char* argv[] )
{
#ifdef HAVE_GTEST
::testing::InitGoogleTest( &argc, argv );
return RUN_ALL_TESTS();
throw GtestMissingError();