Revert "[Tizen] Appendix log for ttrace + Print keycode and timestamp"
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Rect.cpp
1 /*
2  * Copyright (c) 2020 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 <dali-test-suite-utils.h>
19 #include <dali/public-api/dali-core.h>
20 #include <stdlib.h>
21
22 #include <iostream>
23
24 using namespace Dali;
25
26 void utc_dali_rect_startup(void)
27 {
28   test_return_value = TET_UNDEF;
29 }
30
31 void utc_dali_rect_cleanup(void)
32 {
33   test_return_value = TET_PASS;
34 }
35
36 // Positive test case for a method
37 int UtcDaliRectCons01(void)
38 {
39   TestApplication application;
40
41   Rect<float> rect;
42   DALI_TEST_EQUALS(rect.x, 0.0f, 0.001, TEST_LOCATION);
43   DALI_TEST_EQUALS(rect.y, 0.0f, 0.001, TEST_LOCATION);
44   DALI_TEST_EQUALS(rect.width, 0.0f, 0.001, TEST_LOCATION);
45   DALI_TEST_EQUALS(rect.height, 0.0f, 0.001, TEST_LOCATION);
46   END_TEST;
47 }
48
49 int UtcDaliRectCons02(void)
50 {
51   TestApplication application;
52
53   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
54   DALI_TEST_EQUALS(rect.x, 10.0f, 0.001, TEST_LOCATION);
55   DALI_TEST_EQUALS(rect.y, 20.0f, 0.001, TEST_LOCATION);
56   DALI_TEST_EQUALS(rect.width, 400.0f, 0.001, TEST_LOCATION);
57   DALI_TEST_EQUALS(rect.height, 200.0f, 0.001, TEST_LOCATION);
58   END_TEST;
59 }
60
61 int UtcDaliRectCons03(void)
62 {
63   TestApplication application;
64
65   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
66
67   Rect<float> r2(rect);
68
69   DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
70   DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
71   DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
72   DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
73   END_TEST;
74 }
75
76 int UtcDaliRectCons04(void)
77 {
78   TestApplication application;
79
80   Vector4 vec4(10.0f, 20.0f, 400.0f, 200.0f);
81
82   Rect<float> rect(vec4);
83
84   DALI_TEST_EQUALS(rect.x, 10.0f, 0.001, TEST_LOCATION);
85   DALI_TEST_EQUALS(rect.y, 20.0f, 0.001, TEST_LOCATION);
86   DALI_TEST_EQUALS(rect.width, 400.0f, 0.001, TEST_LOCATION);
87   DALI_TEST_EQUALS(rect.height, 200.0f, 0.001, TEST_LOCATION);
88   END_TEST;
89 }
90
91 int UtcDaliRectMoveConstructor(void)
92 {
93   TestApplication application;
94
95   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
96
97   Rect<float> r2 = std::move(rect);
98
99   DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
100   DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
101   DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
102   DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
103   END_TEST;
104 }
105
106 int UtcDaliRectMoveAssignmentOperator(void)
107 {
108   TestApplication application;
109
110   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
111
112   Rect<float> r2;
113   r2 = std::move(rect);
114
115   DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
116   DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
117   DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
118   DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
119   END_TEST;
120 }
121
122 int UtcDaliRectAssignmentOperatorRect(void)
123 {
124   TestApplication application;
125
126   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
127
128   Rect<float> r2;
129   r2 = rect;
130
131   DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
132   DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
133   DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
134   DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
135   END_TEST;
136 }
137
138 int UtcDaliRectAssignmentOperatorVector4(void)
139 {
140   TestApplication application;
141
142   Vector4 vec4(10.0f, 20.0f, 400.0f, 200.0f);
143
144   Rect<float> rect;
145   rect = vec4;
146
147   DALI_TEST_EQUALS(rect.x, 10.0f, 0.001, TEST_LOCATION);
148   DALI_TEST_EQUALS(rect.y, 20.0f, 0.001, TEST_LOCATION);
149   DALI_TEST_EQUALS(rect.width, 400.0f, 0.001, TEST_LOCATION);
150   DALI_TEST_EQUALS(rect.height, 200.0f, 0.001, TEST_LOCATION);
151   END_TEST;
152 }
153
154 int UtcDaliRectSet(void)
155 {
156   TestApplication application;
157
158   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
159
160   rect.Set(1.0f, 2.0f, 3.0f, 4.0f);
161
162   DALI_TEST_EQUALS(rect.x, 1.0f, 0.001, TEST_LOCATION);
163   DALI_TEST_EQUALS(rect.y, 2.0f, 0.001, TEST_LOCATION);
164   DALI_TEST_EQUALS(rect.width, 3.0f, 0.001, TEST_LOCATION);
165   DALI_TEST_EQUALS(rect.height, 4.0f, 0.001, TEST_LOCATION);
166   END_TEST;
167 }
168
169 int UtcDaliRectIsEmpty(void)
170 {
171   TestApplication application;
172
173   Rect<int>          ri;
174   Rect<float>        rf(10.0f, 20.0f, 400.0f, 200.0f);
175   Rect<float>        rf2;
176   Rect<float>        rf3(10.0f, 20.0f, 0.0f, 200.0f);
177   Rect<float>        rf4(10.0f, 20.0f, 400.0f, 0.0f);
178   Rect<double>       rd(10.0, 20.0, 0.0, 200.0);
179   Rect<unsigned int> ru(0u, 0u, 4u, 0u);
180
181   DALI_TEST_CHECK(!rf.IsEmpty());
182   DALI_TEST_CHECK(rf2.IsEmpty());
183   DALI_TEST_CHECK(rf3.IsEmpty());
184   DALI_TEST_CHECK(rf4.IsEmpty());
185   DALI_TEST_CHECK(ri.IsEmpty());
186   DALI_TEST_CHECK(rd.IsEmpty());
187   DALI_TEST_CHECK(ru.IsEmpty());
188   END_TEST;
189 }
190
191 int UtcDaliRectLeft(void)
192 {
193   TestApplication application;
194
195   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
196
197   DALI_TEST_EQUALS(rf.Left(), 10.0f, 0.001, TEST_LOCATION);
198   END_TEST;
199 }
200
201 int UtcDaliRectRight(void)
202 {
203   TestApplication application;
204
205   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
206
207   DALI_TEST_EQUALS(rf.Right(), 410.0f, 0.001, TEST_LOCATION);
208   END_TEST;
209 }
210
211 int UtcDaliRectTop(void)
212 {
213   TestApplication application;
214
215   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
216
217   DALI_TEST_EQUALS(rf.Top(), 20.0f, 0.001, TEST_LOCATION);
218   END_TEST;
219 }
220
221 int UtcDaliRectBottom(void)
222 {
223   TestApplication application;
224
225   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
226
227   DALI_TEST_EQUALS(rf.Bottom(), 220.0f, 0.001, TEST_LOCATION);
228   END_TEST;
229 }
230
231 int UtcDaliRectArea(void)
232 {
233   TestApplication application;
234
235   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
236
237   DALI_TEST_EQUALS(rf.Area(), 80000.0f, 0.001, TEST_LOCATION);
238   END_TEST;
239 }
240
241 int UtcDaliRectIntersects(void)
242 {
243   TestApplication application;
244
245   Rect<float> rf1(10.0f, 20.0f, 200.0f, 200.0f);
246   Rect<float> rf2(10.0f, 120.0f, 200.0f, 200.0f);
247   Rect<float> rf3(10.0f, -80.0f, 200.0f, 200.0f);
248   Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
249   Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
250   Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
251
252   DALI_TEST_CHECK(rf1.Intersects(rf2));
253   DALI_TEST_CHECK(rf1.Intersects(rf3));
254   DALI_TEST_CHECK(rf1.Intersects(rf4));
255   DALI_TEST_CHECK(rf1.Intersects(rf5));
256   DALI_TEST_CHECK(!rf1.Intersects(rf6));
257   END_TEST;
258 }
259
260 int UtcDaliRectContains(void)
261 {
262   TestApplication application;
263
264   Rect<float> rf1(10.0f, 20.0f, 200.0f, 200.0f);
265
266   Rect<float> rf2(10.0f, 120.0f, 200.0f, 200.0f);
267   Rect<float> rf3(10.0f, -80.0f, 200.0f, 200.0f);
268   Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
269   Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
270   Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
271
272   Rect<float> rf7(50.0f, 70.0f, 50.0f, 50.0f);
273
274   Rect<float> rf8(10.0f, 20.0f, 100.0f, 100.0f);
275   Rect<float> rf9(110.0f, 20.0f, 100.0f, 100.0f);
276   Rect<float> rf10(110.0f, 120.0f, 100.0f, 100.0f);
277   Rect<float> rf11(10.0f, 120.0f, 100.0f, 100.0f);
278
279   DALI_TEST_CHECK(rf1.Contains(rf1));
280   DALI_TEST_CHECK(!rf1.Contains(rf2));
281   DALI_TEST_CHECK(!rf1.Contains(rf3));
282   DALI_TEST_CHECK(!rf1.Contains(rf4));
283   DALI_TEST_CHECK(!rf1.Contains(rf5));
284   DALI_TEST_CHECK(!rf1.Contains(rf6));
285
286   DALI_TEST_CHECK(rf1.Contains(rf7));
287
288   DALI_TEST_CHECK(rf1.Contains(rf8));
289   DALI_TEST_CHECK(rf1.Contains(rf9));
290   DALI_TEST_CHECK(rf1.Contains(rf10));
291   DALI_TEST_CHECK(rf1.Contains(rf11));
292   END_TEST;
293 }
294
295 int UtcDaliRectOperatorNotEquals(void)
296 {
297   TestApplication application;
298
299   Rect<float> rf1(10.0f, 20.0f, 200.0f, 200.0f);
300   Rect<float> rf2(10.0f, 120.0f, 200.0f, 200.0f);
301   Rect<float> rf3(10.0f, -80.0f, 200.0f, 200.0f);
302   Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
303   Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
304   Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
305   Rect<float> rf7(50.0f, 70.0f, 50.0f, 50.0f);
306   Rect<float> rf8(10.0f, 20.0f, 100.0f, 100.0f);
307   Rect<float> rf9(110.0f, 20.0f, 100.0f, 100.0f);
308   Rect<float> rf10(110.0f, 120.0f, 100.0f, 100.0f);
309   Rect<float> rf11(10.0f, 120.0f, 100.0f, 100.0f);
310
311   DALI_TEST_CHECK(rf1 != rf2);
312   DALI_TEST_CHECK(rf1 != rf3);
313   DALI_TEST_CHECK(rf1 != rf4);
314   DALI_TEST_CHECK(rf1 != rf5);
315   DALI_TEST_CHECK(rf1 != rf6);
316   DALI_TEST_CHECK(rf1 != rf7);
317   DALI_TEST_CHECK(rf1 != rf8);
318   DALI_TEST_CHECK(rf1 != rf9);
319   DALI_TEST_CHECK(rf1 != rf10);
320   DALI_TEST_CHECK(rf1 != rf11);
321   END_TEST;
322 }
323
324 int UtcDaliRectOperatorEquals(void)
325 {
326   TestApplication application;
327
328   Rect<float> rf1(10.0f, 20.0f, 200.0f, 200.0f);
329   Rect<float> rf1p(10.0f, 20.0f, 200.0f, 200.0f);
330
331   Rect<float> rf2(110.0f, 20.0f, 200.0f, 200.0f);
332   Rect<float> rf3(10.0f, 120.0f, 200.0f, 200.0f);
333   Rect<float> rf4(10.0f, 20.0f, 300.0f, 200.0f);
334   Rect<float> rf5(10.0f, 20.0f, 200.0f, 500.0f);
335
336   Rect<float> rf6(0.0f, 0.0f, 9.0f, 10.0f);
337
338   DALI_TEST_CHECK(rf1 == rf1p);
339   DALI_TEST_CHECK(rf1 == rf1);
340   DALI_TEST_CHECK(!(rf1 == rf2));
341   DALI_TEST_CHECK(!(rf1 == rf3));
342   DALI_TEST_CHECK(!(rf1 == rf4));
343   DALI_TEST_CHECK(!(rf1 == rf5));
344   DALI_TEST_CHECK(!(rf1 == rf6));
345
346   // integers
347   Rect<int> ri1(10, 20, 200, 200);
348   Rect<int> ri1p(10, 20, 200, 200);
349
350   DALI_TEST_CHECK(ri1 == ri1p);
351   END_TEST;
352 }
353
354 int UtcDaliRectOStreamOperatorP(void)
355 {
356   TestApplication    application;
357   std::ostringstream oss;
358
359   Rect<int> rect(1, 2, 10, 10);
360
361   oss << rect;
362
363   std::string expectedOutput = "[1, 2, 10, 10]";
364
365   DALI_TEST_EQUALS(oss.str(), expectedOutput, TEST_LOCATION);
366   END_TEST;
367 }