2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <dali/public-api/dali-core.h>
22 #include <dali-test-suite-utils.h>
26 void utc_dali_rect_startup(void)
28 test_return_value = TET_UNDEF;
31 void utc_dali_rect_cleanup(void)
33 test_return_value = TET_PASS;
37 // Positive test case for a method
38 int UtcDaliRectCons01(void)
40 TestApplication application;
43 DALI_TEST_EQUALS(rect.x, 0.0f, 0.001, TEST_LOCATION);
44 DALI_TEST_EQUALS(rect.y, 0.0f, 0.001, TEST_LOCATION);
45 DALI_TEST_EQUALS(rect.width, 0.0f, 0.001, TEST_LOCATION);
46 DALI_TEST_EQUALS(rect.height, 0.0f, 0.001, TEST_LOCATION);
50 int UtcDaliRectCons02(void)
52 TestApplication application;
54 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
55 DALI_TEST_EQUALS(rect.x, 10.0f, 0.001, TEST_LOCATION);
56 DALI_TEST_EQUALS(rect.y, 20.0f, 0.001, TEST_LOCATION);
57 DALI_TEST_EQUALS(rect.width, 400.0f, 0.001, TEST_LOCATION);
58 DALI_TEST_EQUALS(rect.height, 200.0f, 0.001, TEST_LOCATION);
62 int UtcDaliRectCons03(void)
64 TestApplication application;
66 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
70 DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
71 DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
72 DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
73 DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
77 int UtcDaliRectCons04(void)
79 TestApplication application;
81 Vector4 vec4(10.0f, 20.0f, 400.0f, 200.0f);
83 Rect<float> rect(vec4);
85 DALI_TEST_EQUALS(rect.x, 10.0f, 0.001, TEST_LOCATION);
86 DALI_TEST_EQUALS(rect.y, 20.0f, 0.001, TEST_LOCATION);
87 DALI_TEST_EQUALS(rect.width, 400.0f, 0.001, TEST_LOCATION);
88 DALI_TEST_EQUALS(rect.height, 200.0f, 0.001, TEST_LOCATION);
92 int UtcDaliRectMoveConstructor(void)
94 TestApplication application;
96 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
98 Rect<float> r2 = std::move( rect );
100 DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
101 DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
102 DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
103 DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
107 int UtcDaliRectMoveAssignmentOperator(void)
109 TestApplication application;
111 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
114 r2 = std::move( rect );
116 DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
117 DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
118 DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
119 DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
123 int UtcDaliRectAssignmentOperatorRect(void)
125 TestApplication application;
127 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
132 DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
133 DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
134 DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
135 DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
139 int UtcDaliRectAssignmentOperatorVector4(void)
141 TestApplication application;
143 Vector4 vec4(10.0f, 20.0f, 400.0f, 200.0f);
148 DALI_TEST_EQUALS(rect.x, 10.0f, 0.001, TEST_LOCATION);
149 DALI_TEST_EQUALS(rect.y, 20.0f, 0.001, TEST_LOCATION);
150 DALI_TEST_EQUALS(rect.width, 400.0f, 0.001, TEST_LOCATION);
151 DALI_TEST_EQUALS(rect.height, 200.0f, 0.001, TEST_LOCATION);
155 int UtcDaliRectSet(void)
157 TestApplication application;
159 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
161 rect.Set(1.0f, 2.0f, 3.0f, 4.0f);
163 DALI_TEST_EQUALS(rect.x, 1.0f, 0.001, TEST_LOCATION);
164 DALI_TEST_EQUALS(rect.y, 2.0f, 0.001, TEST_LOCATION);
165 DALI_TEST_EQUALS(rect.width, 3.0f, 0.001, TEST_LOCATION);
166 DALI_TEST_EQUALS(rect.height, 4.0f, 0.001, TEST_LOCATION);
170 int UtcDaliRectIsEmpty(void)
172 TestApplication application;
175 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
177 Rect<float> rf3(10.0f, 20.0f, 0.0f, 200.0f);
178 Rect<float> rf4(10.0f, 20.0f, 400.0f, 0.0f);
179 Rect<double> rd(10.0, 20.0, 0.0, 200.0);
180 Rect<unsigned int> ru(0u, 0u, 4u, 0u);
182 DALI_TEST_CHECK(!rf.IsEmpty());
183 DALI_TEST_CHECK(rf2.IsEmpty());
184 DALI_TEST_CHECK(rf3.IsEmpty());
185 DALI_TEST_CHECK(rf4.IsEmpty());
186 DALI_TEST_CHECK(ri.IsEmpty());
187 DALI_TEST_CHECK(rd.IsEmpty());
188 DALI_TEST_CHECK(ru.IsEmpty());
192 int UtcDaliRectLeft(void)
194 TestApplication application;
196 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
198 DALI_TEST_EQUALS(rf.Left(), 10.0f, 0.001, TEST_LOCATION);
202 int UtcDaliRectRight(void)
204 TestApplication application;
206 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
208 DALI_TEST_EQUALS(rf.Right(), 410.0f, 0.001, TEST_LOCATION);
212 int UtcDaliRectTop(void)
214 TestApplication application;
216 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
218 DALI_TEST_EQUALS(rf.Top(), 20.0f, 0.001, TEST_LOCATION);
222 int UtcDaliRectBottom(void)
224 TestApplication application;
226 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
228 DALI_TEST_EQUALS(rf.Bottom(), 220.0f, 0.001, TEST_LOCATION);
233 int UtcDaliRectArea(void)
235 TestApplication application;
237 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
239 DALI_TEST_EQUALS(rf.Area(), 80000.0f, 0.001, TEST_LOCATION);
244 int UtcDaliRectIntersects(void)
246 TestApplication application;
248 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
249 Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
250 Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
251 Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
252 Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
253 Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
255 DALI_TEST_CHECK(rf1.Intersects(rf2));
256 DALI_TEST_CHECK(rf1.Intersects(rf3));
257 DALI_TEST_CHECK(rf1.Intersects(rf4));
258 DALI_TEST_CHECK(rf1.Intersects(rf5));
259 DALI_TEST_CHECK(!rf1.Intersects(rf6));
265 int UtcDaliRectContains(void)
267 TestApplication application;
269 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
271 Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
272 Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
273 Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
274 Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
275 Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
277 Rect<float> rf7( 50.0f, 70.0f, 50.0f, 50.0f);
279 Rect<float> rf8( 10.0f, 20.0f, 100.0f, 100.0f);
280 Rect<float> rf9( 110.0f, 20.0f, 100.0f, 100.0f);
281 Rect<float> rf10( 110.0f, 120.0f, 100.0f, 100.0f);
282 Rect<float> rf11( 10.0f, 120.0f, 100.0f, 100.0f);
284 DALI_TEST_CHECK(rf1.Contains(rf1));
285 DALI_TEST_CHECK(!rf1.Contains(rf2));
286 DALI_TEST_CHECK(!rf1.Contains(rf3));
287 DALI_TEST_CHECK(!rf1.Contains(rf4));
288 DALI_TEST_CHECK(!rf1.Contains(rf5));
289 DALI_TEST_CHECK(!rf1.Contains(rf6));
291 DALI_TEST_CHECK(rf1.Contains(rf7));
293 DALI_TEST_CHECK(rf1.Contains(rf8));
294 DALI_TEST_CHECK(rf1.Contains(rf9));
295 DALI_TEST_CHECK(rf1.Contains(rf10));
296 DALI_TEST_CHECK(rf1.Contains(rf11));
301 int UtcDaliRectOperatorNotEquals(void)
303 TestApplication application;
305 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
306 Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
307 Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
308 Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
309 Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
310 Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
311 Rect<float> rf7( 50.0f, 70.0f, 50.0f, 50.0f);
312 Rect<float> rf8( 10.0f, 20.0f, 100.0f, 100.0f);
313 Rect<float> rf9( 110.0f, 20.0f, 100.0f, 100.0f);
314 Rect<float> rf10( 110.0f, 120.0f, 100.0f, 100.0f);
315 Rect<float> rf11( 10.0f, 120.0f, 100.0f, 100.0f);
317 DALI_TEST_CHECK(rf1 != rf2);
318 DALI_TEST_CHECK(rf1 != rf3);
319 DALI_TEST_CHECK(rf1 != rf4);
320 DALI_TEST_CHECK(rf1 != rf5);
321 DALI_TEST_CHECK(rf1 != rf6);
322 DALI_TEST_CHECK(rf1 != rf7);
323 DALI_TEST_CHECK(rf1 != rf8);
324 DALI_TEST_CHECK(rf1 != rf9);
325 DALI_TEST_CHECK(rf1 != rf10);
326 DALI_TEST_CHECK(rf1 != rf11);
331 int UtcDaliRectOperatorEquals(void)
333 TestApplication application;
335 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
336 Rect<float> rf1p( 10.0f, 20.0f, 200.0f, 200.0f);
338 Rect<float> rf2(110.0f, 20.0f, 200.0f, 200.0f);
339 Rect<float> rf3( 10.0f, 120.0f, 200.0f, 200.0f);
340 Rect<float> rf4( 10.0f, 20.0f, 300.0f, 200.0f);
341 Rect<float> rf5( 10.0f, 20.0f, 200.0f, 500.0f);
343 Rect<float> rf6( 0.0f, 0.0f, 9.0f, 10.0f);
345 DALI_TEST_CHECK(rf1 == rf1p);
346 DALI_TEST_CHECK(rf1 == rf1);
347 DALI_TEST_CHECK(!(rf1 == rf2));
348 DALI_TEST_CHECK(!(rf1 == rf3));
349 DALI_TEST_CHECK(!(rf1 == rf4));
350 DALI_TEST_CHECK(!(rf1 == rf5));
351 DALI_TEST_CHECK(!(rf1 == rf6));
355 Rect<int> ri1( 10, 20, 200, 200 );
356 Rect<int> ri1p( 10, 20, 200, 200 );
358 DALI_TEST_CHECK(ri1 == ri1p);
362 int UtcDaliRectOStreamOperatorP(void)
364 TestApplication application;
365 std::ostringstream oss;
367 Rect<int> rect( 1, 2, 10, 10 );
371 std::string expectedOutput = "[1, 2, 10, 10]";
373 DALI_TEST_EQUALS( oss.str(), expectedOutput, TEST_LOCATION);