2 * Copyright (c) 2014 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);
68 Rect<float> r2 = rect;
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 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
85 DALI_TEST_EQUALS(r2.x, 10.0f, 0.001, TEST_LOCATION);
86 DALI_TEST_EQUALS(r2.y, 20.0f, 0.001, TEST_LOCATION);
87 DALI_TEST_EQUALS(r2.width, 400.0f, 0.001, TEST_LOCATION);
88 DALI_TEST_EQUALS(r2.height, 200.0f, 0.001, TEST_LOCATION);
92 int UtcDaliRectSet(void)
94 TestApplication application;
96 Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
98 rect.Set(1.0f, 2.0f, 3.0f, 4.0f);
100 DALI_TEST_EQUALS(rect.x, 1.0f, 0.001, TEST_LOCATION);
101 DALI_TEST_EQUALS(rect.y, 2.0f, 0.001, TEST_LOCATION);
102 DALI_TEST_EQUALS(rect.width, 3.0f, 0.001, TEST_LOCATION);
103 DALI_TEST_EQUALS(rect.height, 4.0f, 0.001, TEST_LOCATION);
107 int UtcDaliRectIsEmpty(void)
109 TestApplication application;
112 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
114 Rect<float> rf3(10.0f, 20.0f, 0.0f, 200.0f);
115 Rect<float> rf4(10.0f, 20.0f, 400.0f, 0.0f);
116 Rect<double> rd(10.0, 20.0, 0.0, 200.0);
117 Rect<unsigned int> ru(0u, 0u, 4u, 0u);
119 DALI_TEST_CHECK(!rf.IsEmpty());
120 DALI_TEST_CHECK(rf2.IsEmpty());
121 DALI_TEST_CHECK(rf3.IsEmpty());
122 DALI_TEST_CHECK(rf4.IsEmpty());
123 DALI_TEST_CHECK(ri.IsEmpty());
124 DALI_TEST_CHECK(rd.IsEmpty());
125 DALI_TEST_CHECK(ru.IsEmpty());
129 int UtcDaliRectLeft(void)
131 TestApplication application;
133 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
135 DALI_TEST_EQUALS(rf.Left(), 10.0f, 0.001, TEST_LOCATION);
139 int UtcDaliRectRight(void)
141 TestApplication application;
143 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
145 DALI_TEST_EQUALS(rf.Right(), 410.0f, 0.001, TEST_LOCATION);
149 int UtcDaliRectTop(void)
151 TestApplication application;
153 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
155 DALI_TEST_EQUALS(rf.Top(), 20.0f, 0.001, TEST_LOCATION);
159 int UtcDaliRectBottom(void)
161 TestApplication application;
163 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
165 DALI_TEST_EQUALS(rf.Bottom(), 220.0f, 0.001, TEST_LOCATION);
170 int UtcDaliRectArea(void)
172 TestApplication application;
174 Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
176 DALI_TEST_EQUALS(rf.Area(), 80000.0f, 0.001, TEST_LOCATION);
181 int UtcDaliRectIntersects(void)
183 TestApplication application;
185 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
186 Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
187 Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
188 Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
189 Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
190 Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
192 DALI_TEST_CHECK(rf1.Intersects(rf2));
193 DALI_TEST_CHECK(rf1.Intersects(rf3));
194 DALI_TEST_CHECK(rf1.Intersects(rf4));
195 DALI_TEST_CHECK(rf1.Intersects(rf5));
196 DALI_TEST_CHECK(!rf1.Intersects(rf6));
202 int UtcDaliRectContains(void)
204 TestApplication application;
206 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
208 Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
209 Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
210 Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
211 Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
212 Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
214 Rect<float> rf7( 50.0f, 70.0f, 50.0f, 50.0f);
216 Rect<float> rf8( 10.0f, 20.0f, 100.0f, 100.0f);
217 Rect<float> rf9( 110.0f, 20.0f, 100.0f, 100.0f);
218 Rect<float> rf10( 110.0f, 120.0f, 100.0f, 100.0f);
219 Rect<float> rf11( 10.0f, 120.0f, 100.0f, 100.0f);
221 DALI_TEST_CHECK(rf1.Contains(rf1));
222 DALI_TEST_CHECK(!rf1.Contains(rf2));
223 DALI_TEST_CHECK(!rf1.Contains(rf3));
224 DALI_TEST_CHECK(!rf1.Contains(rf4));
225 DALI_TEST_CHECK(!rf1.Contains(rf5));
226 DALI_TEST_CHECK(!rf1.Contains(rf6));
228 DALI_TEST_CHECK(rf1.Contains(rf7));
230 DALI_TEST_CHECK(rf1.Contains(rf8));
231 DALI_TEST_CHECK(rf1.Contains(rf9));
232 DALI_TEST_CHECK(rf1.Contains(rf10));
233 DALI_TEST_CHECK(rf1.Contains(rf11));
238 int UtcDaliRectOperatorNotEquals(void)
240 TestApplication application;
242 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
243 Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
244 Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
245 Rect<float> rf4(110.0f, 20.0f, 200.0f, 200.0f);
246 Rect<float> rf5(-90.0f, 20.0f, 200.0f, 200.0f);
247 Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
248 Rect<float> rf7( 50.0f, 70.0f, 50.0f, 50.0f);
249 Rect<float> rf8( 10.0f, 20.0f, 100.0f, 100.0f);
250 Rect<float> rf9( 110.0f, 20.0f, 100.0f, 100.0f);
251 Rect<float> rf10( 110.0f, 120.0f, 100.0f, 100.0f);
252 Rect<float> rf11( 10.0f, 120.0f, 100.0f, 100.0f);
254 DALI_TEST_CHECK(rf1 != rf2);
255 DALI_TEST_CHECK(rf1 != rf3);
256 DALI_TEST_CHECK(rf1 != rf4);
257 DALI_TEST_CHECK(rf1 != rf5);
258 DALI_TEST_CHECK(rf1 != rf6);
259 DALI_TEST_CHECK(rf1 != rf7);
260 DALI_TEST_CHECK(rf1 != rf8);
261 DALI_TEST_CHECK(rf1 != rf9);
262 DALI_TEST_CHECK(rf1 != rf10);
263 DALI_TEST_CHECK(rf1 != rf11);
268 int UtcDaliRectOperatorEquals(void)
270 TestApplication application;
272 Rect<float> rf1( 10.0f, 20.0f, 200.0f, 200.0f);
273 Rect<float> rf1p( 10.0f, 20.0f, 200.0f, 200.0f);
275 Rect<float> rf2(110.0f, 20.0f, 200.0f, 200.0f);
276 Rect<float> rf3( 10.0f, 120.0f, 200.0f, 200.0f);
277 Rect<float> rf4( 10.0f, 20.0f, 300.0f, 200.0f);
278 Rect<float> rf5( 10.0f, 20.0f, 200.0f, 500.0f);
280 Rect<float> rf6( 0.0f, 0.0f, 9.0f, 10.0f);
282 DALI_TEST_CHECK(rf1 == rf1p);
283 DALI_TEST_CHECK(rf1 == rf1);
284 DALI_TEST_CHECK(!(rf1 == rf2));
285 DALI_TEST_CHECK(!(rf1 == rf3));
286 DALI_TEST_CHECK(!(rf1 == rf4));
287 DALI_TEST_CHECK(!(rf1 == rf5));
288 DALI_TEST_CHECK(!(rf1 == rf6));
292 Rect<int> ri1( 10, 20, 200, 200 );
293 Rect<int> ri1p( 10, 20, 200, 200 );
295 DALI_TEST_CHECK(ri1 == ri1p);
299 int UtcDaliRectOStreamOperatorP(void)
301 TestApplication application;
302 std::ostringstream oss;
304 Rect<int> rect( 1, 2, 10, 10 );
308 std::string expectedOutput = "[1, 2, 10, 10]";
310 DALI_TEST_EQUALS( oss.str(), expectedOutput, TEST_LOCATION);