[dali_1.1.24] Merge branch 'devel/master'
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-PropertyArray.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include <iostream>
19
20 #include <stdlib.h>
21 #include <dali/public-api/dali-core.h>
22 #include <dali-test-suite-utils.h>
23
24 using namespace Dali;
25
26 void utc_dali_property_array_startup(void)
27 {
28   test_return_value = TET_UNDEF;
29 }
30
31 void utc_dali_property_array_cleanup(void)
32 {
33   test_return_value = TET_PASS;
34 }
35
36 int UtcDaliPropertyArrayPushBackP(void)
37 {
38   Property::Array array;
39
40   DALI_TEST_CHECK( 0 == array.Size() );
41
42   array.PushBack( 1 );
43
44   DALI_TEST_CHECK( 1 == array.Size() );
45
46   DALI_TEST_CHECK( array[0].Get<int>() == 1 );
47
48   END_TEST;
49 }
50
51 int UtcDaliPropertyArrayCapacityP(void)
52 {
53   Property::Array array;
54   DALI_TEST_CHECK( array.Empty() );
55
56   array.Reserve(3);
57
58   DALI_TEST_CHECK( 3 == array.Capacity() );
59   END_TEST;
60 }
61
62 int UtcDaliPropertyArrayReserveP(void)
63 {
64   Property::Array array;
65   DALI_TEST_CHECK( array.Empty() );
66
67   array.Reserve(3);
68
69   DALI_TEST_CHECK( 3 == array.Capacity() );
70   DALI_TEST_CHECK( 0 == array.Size() );
71
72   array.PushBack( 1 );
73   array.PushBack( "world" );
74   array.PushBack( 3 );
75   END_TEST;
76 }
77
78 int UtcDaliPropertyArraySizeP(void)
79 {
80   Property::Array array;
81   DALI_TEST_CHECK( 0 == array.Capacity() );
82   DALI_TEST_CHECK( 0 == array.Size() );
83
84   array.Reserve(3);
85
86   DALI_TEST_CHECK( 3 == array.Capacity() );
87   DALI_TEST_CHECK( 0 == array.Size() );
88
89   array.PushBack( 1 );
90   array.PushBack( "world" );
91   array.PushBack( 3 );
92
93   DALI_TEST_CHECK( 3 == array.Size() );
94
95   END_TEST;
96 }
97
98 int UtcDaliPropertyArrayCountP(void)
99 {
100   Property::Array array;
101   DALI_TEST_CHECK( 0 == array.Capacity() );
102   DALI_TEST_CHECK( 0 == array.Count() );
103
104   array.Reserve(3);
105
106   DALI_TEST_CHECK( 3 == array.Capacity() );
107   DALI_TEST_CHECK( 0 == array.Count() );
108
109   array.PushBack( 1 );
110   array.PushBack( "world" );
111   array.PushBack( 3 );
112
113   DALI_TEST_CHECK( 3 == array.Count() );
114
115   END_TEST;
116 }
117
118 int UtcDaliPropertyArrayEmptyP(void)
119 {
120   Property::Array array;
121   DALI_TEST_CHECK( array.Empty() );
122
123   array.Reserve(3);
124
125   DALI_TEST_CHECK( array.Empty() );
126
127   array.PushBack( 1 );
128   array.PushBack( "world" );
129   array.PushBack( 3 );
130
131   DALI_TEST_CHECK( !array.Empty() );
132
133   END_TEST;
134 }
135
136 int UtcDaliPropertyArrayClearP(void)
137 {
138   Property::Array array;
139   DALI_TEST_CHECK( array.Empty() );
140
141   array.Reserve(3);
142
143   DALI_TEST_CHECK( array.Empty() );
144
145   array.PushBack( 1 );
146   array.PushBack( "world" );
147   array.PushBack( 3 );
148
149   DALI_TEST_CHECK( !array.Empty() );
150
151   array.Clear();
152
153   DALI_TEST_CHECK( array.Empty() );
154
155   END_TEST;
156 }
157
158 int UtcDaliPropertyArrayIndexOperatorP(void)
159 {
160   Property::Array array;
161
162   array.Reserve(3);
163   array.PushBack( 1 );
164   array.PushBack( "world" );
165   array.PushBack( 3 );
166
167   DALI_TEST_CHECK( array[0].Get<int>() == 1 );
168   DALI_TEST_CHECK( array[1].Get<std::string>() == "world" );
169   DALI_TEST_CHECK( array[2].Get<int>() == 3 );
170
171   END_TEST;
172 }
173
174 int UtcDaliPropertyArrayConstIndexOperatorP(void)
175 {
176   Property::Array anArray;
177
178   anArray.Reserve(3);
179   anArray.PushBack( 1 );
180   anArray.PushBack( "world" );
181   anArray.PushBack( 3 );
182
183   const Property::Array array(anArray);
184
185   DALI_TEST_CHECK( array[0].Get<int>() == 1 );
186   DALI_TEST_CHECK( array[1].Get<std::string>() == "world" );
187   DALI_TEST_CHECK( array[2].Get<int>() == 3 );
188
189   END_TEST;
190 }
191
192 int UtcDaliPropertyArrayAssignmentOperatorP(void)
193 {
194   Property::Array anArray;
195
196   anArray.Reserve(3);
197   anArray.PushBack( 1 );
198   anArray.PushBack( "world" );
199   anArray.PushBack( 3 );
200
201   Property::Array array = anArray;
202
203   DALI_TEST_CHECK( array[0].Get<int>() == 1 );
204   DALI_TEST_CHECK( array[1].Get<std::string>() == "world" );
205   DALI_TEST_CHECK( array[2].Get<int>() == 3 );
206
207   END_TEST;
208 }
209
210 int UtcDaliPropertyArrayResize(void)
211 {
212   Property::Array array;
213
214   array.Resize(3);
215   DALI_TEST_CHECK( array.Count() == 3 );
216
217   array.Resize(5);
218   DALI_TEST_CHECK( array.Count() == 5 );
219
220   END_TEST;
221 }