X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali%2Futc-Dali-PropertyArray.cpp;h=2858170d97d157f18051a5249983dfdbbee4ccc8;hb=128cea946c9d6d4a76ab7bda08bfdd532be549b7;hp=4f3cd748725bc320b22969e42126caf2f23cf894;hpb=f6ec3250398a090ebe9d53a62ea57296dea7c20d;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/automated-tests/src/dali/utc-Dali-PropertyArray.cpp b/automated-tests/src/dali/utc-Dali-PropertyArray.cpp index 4f3cd74..2858170 100644 --- a/automated-tests/src/dali/utc-Dali-PropertyArray.cpp +++ b/automated-tests/src/dali/utc-Dali-PropertyArray.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,12 +15,12 @@ * */ -#include - +#include +#include #include + +#include #include -#include -#include using namespace Dali; @@ -38,13 +38,13 @@ int UtcDaliPropertyArrayPushBackP(void) { Property::Array array; - DALI_TEST_CHECK( 0 == array.Size() ); + DALI_TEST_CHECK(0 == array.Size()); - array.PushBack( 1 ); + array.PushBack(1); - DALI_TEST_CHECK( 1 == array.Size() ); + DALI_TEST_CHECK(1 == array.Size()); - DALI_TEST_CHECK( array[0].Get() == 1 ); + DALI_TEST_CHECK(array[0].Get() == 1); END_TEST; } @@ -53,21 +53,21 @@ int UtcDaliPropertyArrayAddP(void) { Property::Array array; - DALI_TEST_CHECK( 0 == array.Size() ); + DALI_TEST_CHECK(0 == array.Size()); - array.Add( 1 ); + array.Add(1); - DALI_TEST_CHECK( 1 == array.Size() ); - DALI_TEST_CHECK( array[0].Get() == 1 ); + DALI_TEST_CHECK(1 == array.Size()); + DALI_TEST_CHECK(array[0].Get() == 1); - array.Add( 2 ) - .Add( 3 ) - .Add( 4.f ); + array.Add(2) + .Add(3) + .Add(4.f); - DALI_TEST_EQUALS( 4u, array.Size(), TEST_LOCATION ); - DALI_TEST_EQUALS( array[1].Get(), 2, TEST_LOCATION ); - DALI_TEST_EQUALS( array[2].Get(), 3, TEST_LOCATION ); - DALI_TEST_EQUALS( array[3].Get(), 4.f, Math::MACHINE_EPSILON_1, TEST_LOCATION ); + DALI_TEST_EQUALS(4u, array.Size(), TEST_LOCATION); + DALI_TEST_EQUALS(array[1].Get(), 2, TEST_LOCATION); + DALI_TEST_EQUALS(array[2].Get(), 3, TEST_LOCATION); + DALI_TEST_EQUALS(array[3].Get(), 4.f, Math::MACHINE_EPSILON_1, TEST_LOCATION); END_TEST; } @@ -75,46 +75,46 @@ int UtcDaliPropertyArrayAddP(void) int UtcDaliPropertyArrayCapacityP(void) { Property::Array array; - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); array.Reserve(3); - DALI_TEST_CHECK( 3 == array.Capacity() ); + DALI_TEST_CHECK(3 == array.Capacity()); END_TEST; } int UtcDaliPropertyArrayReserveP(void) { Property::Array array; - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); array.Reserve(3); - DALI_TEST_CHECK( 3 == array.Capacity() ); - DALI_TEST_CHECK( 0 == array.Size() ); + DALI_TEST_CHECK(3 == array.Capacity()); + DALI_TEST_CHECK(0 == array.Size()); - array.PushBack( 1 ); - array.PushBack( "world" ); - array.PushBack( 3 ); + array.PushBack(1); + array.PushBack("world"); + array.PushBack(3); END_TEST; } int UtcDaliPropertyArraySizeP(void) { Property::Array array; - DALI_TEST_CHECK( 0 == array.Capacity() ); - DALI_TEST_CHECK( 0 == array.Size() ); + DALI_TEST_CHECK(0 == array.Capacity()); + DALI_TEST_CHECK(0 == array.Size()); array.Reserve(3); - DALI_TEST_CHECK( 3 == array.Capacity() ); - DALI_TEST_CHECK( 0 == array.Size() ); + DALI_TEST_CHECK(3 == array.Capacity()); + DALI_TEST_CHECK(0 == array.Size()); - array.PushBack( 1 ); - array.PushBack( "world" ); - array.PushBack( 3 ); + array.PushBack(1); + array.PushBack("world"); + array.PushBack(3); - DALI_TEST_CHECK( 3 == array.Size() ); + DALI_TEST_CHECK(3 == array.Size()); END_TEST; } @@ -122,19 +122,19 @@ int UtcDaliPropertyArraySizeP(void) int UtcDaliPropertyArrayCountP(void) { Property::Array array; - DALI_TEST_CHECK( 0 == array.Capacity() ); - DALI_TEST_CHECK( 0 == array.Count() ); + DALI_TEST_CHECK(0 == array.Capacity()); + DALI_TEST_CHECK(0 == array.Count()); array.Reserve(3); - DALI_TEST_CHECK( 3 == array.Capacity() ); - DALI_TEST_CHECK( 0 == array.Count() ); + DALI_TEST_CHECK(3 == array.Capacity()); + DALI_TEST_CHECK(0 == array.Count()); - array.PushBack( 1 ); - array.PushBack( "world" ); - array.PushBack( 3 ); + array.PushBack(1); + array.PushBack("world"); + array.PushBack(3); - DALI_TEST_CHECK( 3 == array.Count() ); + DALI_TEST_CHECK(3 == array.Count()); END_TEST; } @@ -142,17 +142,17 @@ int UtcDaliPropertyArrayCountP(void) int UtcDaliPropertyArrayEmptyP(void) { Property::Array array; - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); array.Reserve(3); - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); - array.PushBack( 1 ); - array.PushBack( "world" ); - array.PushBack( 3 ); + array.PushBack(1); + array.PushBack("world"); + array.PushBack(3); - DALI_TEST_CHECK( !array.Empty() ); + DALI_TEST_CHECK(!array.Empty()); END_TEST; } @@ -160,21 +160,21 @@ int UtcDaliPropertyArrayEmptyP(void) int UtcDaliPropertyArrayClearP(void) { Property::Array array; - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); array.Reserve(3); - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); - array.PushBack( 1 ); - array.PushBack( "world" ); - array.PushBack( 3 ); + array.PushBack(1); + array.PushBack("world"); + array.PushBack(3); - DALI_TEST_CHECK( !array.Empty() ); + DALI_TEST_CHECK(!array.Empty()); array.Clear(); - DALI_TEST_CHECK( array.Empty() ); + DALI_TEST_CHECK(array.Empty()); END_TEST; } @@ -184,13 +184,13 @@ int UtcDaliPropertyArrayIndexOperatorP(void) Property::Array array; array.Reserve(3); - array.PushBack( 1 ); - array.PushBack( "world" ); - array.PushBack( 3 ); + array.PushBack(1); + array.PushBack("world"); + array.PushBack(3); - DALI_TEST_CHECK( array[0].Get() == 1 ); - DALI_TEST_CHECK( array[1].Get() == "world" ); - DALI_TEST_CHECK( array[2].Get() == 3 ); + DALI_TEST_CHECK(array[0].Get() == 1); + DALI_TEST_CHECK(array[1].Get() == "world"); + DALI_TEST_CHECK(array[2].Get() == 3); END_TEST; } @@ -200,15 +200,15 @@ int UtcDaliPropertyArrayConstIndexOperatorP(void) Property::Array anArray; anArray.Reserve(3); - anArray.PushBack( 1 ); - anArray.PushBack( "world" ); - anArray.PushBack( 3 ); + anArray.PushBack(1); + anArray.PushBack("world"); + anArray.PushBack(3); const Property::Array array(anArray); - DALI_TEST_CHECK( array[0].Get() == 1 ); - DALI_TEST_CHECK( array[1].Get() == "world" ); - DALI_TEST_CHECK( array[2].Get() == 3 ); + DALI_TEST_CHECK(array[0].Get() == 1); + DALI_TEST_CHECK(array[1].Get() == "world"); + DALI_TEST_CHECK(array[2].Get() == 3); END_TEST; } @@ -218,15 +218,15 @@ int UtcDaliPropertyArrayAssignmentOperatorP(void) Property::Array anArray; anArray.Reserve(3); - anArray.PushBack( 1 ); - anArray.PushBack( "world" ); - anArray.PushBack( 3 ); + anArray.PushBack(1); + anArray.PushBack("world"); + anArray.PushBack(3); Property::Array array = anArray; - DALI_TEST_CHECK( array[0].Get() == 1 ); - DALI_TEST_CHECK( array[1].Get() == "world" ); - DALI_TEST_CHECK( array[2].Get() == 3 ); + DALI_TEST_CHECK(array[0].Get() == 1); + DALI_TEST_CHECK(array[1].Get() == "world"); + DALI_TEST_CHECK(array[2].Get() == 3); END_TEST; } @@ -236,10 +236,10 @@ int UtcDaliPropertyArrayResize(void) Property::Array array; array.Resize(3); - DALI_TEST_CHECK( array.Count() == 3 ); + DALI_TEST_CHECK(array.Count() == 3); array.Resize(5); - DALI_TEST_CHECK( array.Count() == 5 ); + DALI_TEST_CHECK(array.Count() == 5); END_TEST; } @@ -249,12 +249,12 @@ int UtcDaliPropertyArrayOstream01(void) std::ostringstream oss; Property::Array array; - array.PushBack( 0 ); - array.PushBack( 1 ); - array.PushBack( 2 ); + array.PushBack(0); + array.PushBack(1); + array.PushBack(2); oss << array; - DALI_TEST_EQUALS( oss.str().compare("Array(3) = [0, 1, 2]"), 0, TEST_LOCATION ); + DALI_TEST_EQUALS(oss.str().compare("Array(3) = [0, 1, 2]"), 0, TEST_LOCATION); END_TEST; } @@ -264,17 +264,124 @@ int UtcDaliPropertyArrayOstream02(void) std::ostringstream oss; Property::Array array1; - array1.PushBack( 0 ); - array1.PushBack( 1 ); - array1.PushBack( 2 ); + array1.PushBack(0); + array1.PushBack(1); + array1.PushBack(2); Property::Array array2; array2.PushBack(array1); - array2.PushBack( 1 ); - array2.PushBack( 2 ); + array2.PushBack(1); + array2.PushBack(2); oss << array2; - DALI_TEST_EQUALS( oss.str().compare("Array(3) = [Array(3) = [0, 1, 2], 1, 2]"), 0, TEST_LOCATION ); + DALI_TEST_EQUALS(oss.str().compare("Array(3) = [Array(3) = [0, 1, 2], 1, 2]"), 0, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliPropertyArrayCopyConstructor(void) +{ + Property::Array array1; + array1.PushBack(0); + array1.PushBack(1); + array1.PushBack(2); + DALI_TEST_EQUALS(3u, array1.Size(), TEST_LOCATION); + + Property::Array array2(array1); + DALI_TEST_EQUALS(3u, array1.Size(), TEST_LOCATION); + DALI_TEST_EQUALS(3u, array2.Size(), TEST_LOCATION); + + END_TEST; +} + +int UtcDaliPropertyArrayAssignmentOperator(void) +{ + Property::Array array1; + array1.PushBack(0); + array1.PushBack(1); + array1.PushBack(2); + DALI_TEST_EQUALS(3u, array1.Size(), TEST_LOCATION); + + Property::Array array2; + array2.PushBack(4); + DALI_TEST_EQUALS(1u, array2.Size(), TEST_LOCATION); + + array2 = array1; + DALI_TEST_EQUALS(3u, array1.Size(), TEST_LOCATION); + DALI_TEST_EQUALS(3u, array2.Size(), TEST_LOCATION); + + END_TEST; +} + +int UtcDaliPropertyArrayMoveConstructor(void) +{ + Property::Array array1; + array1.PushBack(0); + array1.PushBack(1); + array1.PushBack(2); + DALI_TEST_EQUALS(3u, array1.Size(), TEST_LOCATION); + + Property::Array array2(std::move(array1)); + DALI_TEST_EQUALS(3u, array2.Size(), TEST_LOCATION); + + // Calling any methods on array1 will debug assert + const char* exceptionMessage = "Cannot use an object previously used as an r-value"; + DALI_TEST_ASSERTION(array1.Count(), exceptionMessage); + DALI_TEST_ASSERTION(array1.PushBack(Property::Value()), exceptionMessage); + DALI_TEST_ASSERTION(array1.Count(), exceptionMessage); + DALI_TEST_ASSERTION(array1.Clear(), exceptionMessage); + DALI_TEST_ASSERTION(array1.Reserve(1), exceptionMessage); + DALI_TEST_ASSERTION(array1.Resize(1), exceptionMessage); + DALI_TEST_ASSERTION(array1.Capacity(), exceptionMessage); + DALI_TEST_ASSERTION(array1[0], exceptionMessage); + DALI_TEST_ASSERTION(const_cast(array1)[0], exceptionMessage); + DALI_TEST_ASSERTION(Property::Array temp; array1 = temp, exceptionMessage); + + END_TEST; +} + +int UtcDaliPropertyArrayMoveAssignmentOperator(void) +{ + Property::Array array1; + array1.PushBack(0); + array1.PushBack(1); + array1.PushBack(2); + DALI_TEST_EQUALS(3u, array1.Size(), TEST_LOCATION); + + Property::Array array2; + array2.PushBack(4); + DALI_TEST_EQUALS(1u, array2.Size(), TEST_LOCATION); + + array2 = std::move(array1); + DALI_TEST_EQUALS(3u, array2.Size(), TEST_LOCATION); + + // Calling any methods on array1 will debug assert + const char* exceptionMessage = "Cannot use an object previously used as an r-value"; + DALI_TEST_ASSERTION(array1.Count(), exceptionMessage); + DALI_TEST_ASSERTION(array1.PushBack(Property::Value()), exceptionMessage); + DALI_TEST_ASSERTION(array1.Count(), exceptionMessage); + DALI_TEST_ASSERTION(array1.Clear(), exceptionMessage); + DALI_TEST_ASSERTION(array1.Reserve(1), exceptionMessage); + DALI_TEST_ASSERTION(array1.Resize(1), exceptionMessage); + DALI_TEST_ASSERTION(array1.Capacity(), exceptionMessage); + DALI_TEST_ASSERTION(array1[0], exceptionMessage); + DALI_TEST_ASSERTION(const_cast(array1)[0], exceptionMessage); + DALI_TEST_ASSERTION(Property::Array temp; array1 = temp, exceptionMessage); + + // Self assignemnt + array2 = std::move(array2); + DALI_TEST_EQUALS(3u, array2.Size(), TEST_LOCATION); // still works, no debug assert + + END_TEST; +} + +int UtcDaliPropertyArrayInitializerListConstructor(void) +{ + Property::Array array{1, 2, "hello"}; + DALI_TEST_EQUALS(3u, array.Size(), TEST_LOCATION); + DALI_TEST_EQUALS(Property::INTEGER, array.GetElementAt(0).GetType(), TEST_LOCATION); + DALI_TEST_EQUALS(Property::INTEGER, array.GetElementAt(1).GetType(), TEST_LOCATION); + DALI_TEST_EQUALS(Property::STRING, array.GetElementAt(2).GetType(), TEST_LOCATION); END_TEST; }