[dali_1.0.1] Merge branch 'tizen'
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Rect.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_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
37 // Positive test case for a method
38 int UtcDaliRectCons01(void)
39 {
40   TestApplication application;
41
42   Rect<float> rect;
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);
47   END_TEST;
48 }
49
50 int UtcDaliRectCons02(void)
51 {
52   TestApplication application;
53
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);
59   END_TEST;
60 }
61
62 int UtcDaliRectCons03(void)
63 {
64   TestApplication application;
65
66   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
67
68   Rect<float> r2 = rect;
69
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);
74   END_TEST;
75 }
76
77 int UtcDaliRectCons04(void)
78 {
79   TestApplication application;
80
81   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
82
83   Rect<float> r2(rect);
84
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);
89   END_TEST;
90 }
91
92 int UtcDaliRectSet(void)
93 {
94   TestApplication application;
95
96   Rect<float> rect(10.0f, 20.0f, 400.0f, 200.0f);
97
98   rect.Set(1.0f, 2.0f, 3.0f, 4.0f);
99
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);
104   END_TEST;
105 }
106
107 int UtcDaliRectIsEmpty(void)
108 {
109   TestApplication application;
110
111   Rect<int>   ri;
112   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
113   Rect<float> rf2;
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);
118
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());
126   END_TEST;
127 }
128
129 int UtcDaliRectRight(void)
130 {
131   TestApplication application;
132
133   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
134
135   DALI_TEST_EQUALS(rf.Right(), 410.0f, 0.001, TEST_LOCATION);
136   END_TEST;
137 }
138
139
140 int UtcDaliRectBottom(void)
141 {
142   TestApplication application;
143
144   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
145
146   DALI_TEST_EQUALS(rf.Bottom(), 220.0f, 0.001, TEST_LOCATION);
147   END_TEST;
148 }
149
150
151 int UtcDaliRectArea(void)
152 {
153   TestApplication application;
154
155   Rect<float> rf(10.0f, 20.0f, 400.0f, 200.0f);
156
157   DALI_TEST_EQUALS(rf.Area(), 80000.0f, 0.001, TEST_LOCATION);
158   END_TEST;
159 }
160
161
162 int UtcDaliRectIntersects(void)
163 {
164   TestApplication application;
165
166   Rect<float> rf1( 10.0f,  20.0f, 200.0f, 200.0f);
167   Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
168   Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
169   Rect<float> rf4(110.0f,  20.0f, 200.0f, 200.0f);
170   Rect<float> rf5(-90.0f,  20.0f, 200.0f, 200.0f);
171   Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
172
173   DALI_TEST_CHECK(rf1.Intersects(rf2));
174   DALI_TEST_CHECK(rf1.Intersects(rf3));
175   DALI_TEST_CHECK(rf1.Intersects(rf4));
176   DALI_TEST_CHECK(rf1.Intersects(rf5));
177   DALI_TEST_CHECK(!rf1.Intersects(rf6));
178   END_TEST;
179 }
180
181
182
183 int UtcDaliRectContains(void)
184 {
185   TestApplication application;
186
187   Rect<float> rf1( 10.0f,  20.0f, 200.0f, 200.0f);
188
189   Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
190   Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
191   Rect<float> rf4(110.0f,  20.0f, 200.0f, 200.0f);
192   Rect<float> rf5(-90.0f,  20.0f, 200.0f, 200.0f);
193   Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
194
195   Rect<float> rf7( 50.0f,  70.0f, 50.0f,   50.0f);
196
197   Rect<float> rf8(  10.0f,  20.0f, 100.0f, 100.0f);
198   Rect<float> rf9( 110.0f,  20.0f, 100.0f, 100.0f);
199   Rect<float> rf10( 110.0f, 120.0f, 100.0f, 100.0f);
200   Rect<float> rf11(  10.0f, 120.0f, 100.0f, 100.0f);
201
202   DALI_TEST_CHECK(rf1.Contains(rf1));
203   DALI_TEST_CHECK(!rf1.Contains(rf2));
204   DALI_TEST_CHECK(!rf1.Contains(rf3));
205   DALI_TEST_CHECK(!rf1.Contains(rf4));
206   DALI_TEST_CHECK(!rf1.Contains(rf5));
207   DALI_TEST_CHECK(!rf1.Contains(rf6));
208
209   DALI_TEST_CHECK(rf1.Contains(rf7));
210
211   DALI_TEST_CHECK(rf1.Contains(rf8));
212   DALI_TEST_CHECK(rf1.Contains(rf9));
213   DALI_TEST_CHECK(rf1.Contains(rf10));
214   DALI_TEST_CHECK(rf1.Contains(rf11));
215   END_TEST;
216 }
217
218
219 int UtcDaliRectOperatorNotEquals(void)
220 {
221   TestApplication application;
222
223   Rect<float> rf1( 10.0f,  20.0f, 200.0f, 200.0f);
224   Rect<float> rf2( 10.0f, 120.0f, 200.0f, 200.0f);
225   Rect<float> rf3( 10.0f, -80.0f, 200.0f, 200.0f);
226   Rect<float> rf4(110.0f,  20.0f, 200.0f, 200.0f);
227   Rect<float> rf5(-90.0f,  20.0f, 200.0f, 200.0f);
228   Rect<float> rf6(1000.0f, 1200.0f, 10.0f, 10.0f);
229   Rect<float> rf7( 50.0f,  70.0f, 50.0f,   50.0f);
230   Rect<float> rf8(  10.0f,  20.0f, 100.0f, 100.0f);
231   Rect<float> rf9( 110.0f,  20.0f, 100.0f, 100.0f);
232   Rect<float> rf10( 110.0f, 120.0f, 100.0f, 100.0f);
233   Rect<float> rf11(  10.0f, 120.0f, 100.0f, 100.0f);
234
235   DALI_TEST_CHECK(rf1 != rf2);
236   DALI_TEST_CHECK(rf1 != rf3);
237   DALI_TEST_CHECK(rf1 != rf4);
238   DALI_TEST_CHECK(rf1 != rf5);
239   DALI_TEST_CHECK(rf1 != rf6);
240   DALI_TEST_CHECK(rf1 != rf7);
241   DALI_TEST_CHECK(rf1 != rf8);
242   DALI_TEST_CHECK(rf1 != rf9);
243   DALI_TEST_CHECK(rf1 != rf10);
244   DALI_TEST_CHECK(rf1 != rf11);
245   END_TEST;
246 }
247
248
249 int UtcDaliRectOperatorEquals(void)
250 {
251   TestApplication application;
252
253   Rect<float> rf1( 10.0f,  20.0f, 200.0f, 200.0f);
254   Rect<float> rf1p( 10.0f,  20.0f, 200.0f, 200.0f);
255
256   Rect<float> rf2(110.0f,  20.0f, 200.0f, 200.0f);
257   Rect<float> rf3( 10.0f, 120.0f, 200.0f, 200.0f);
258   Rect<float> rf4( 10.0f,  20.0f, 300.0f, 200.0f);
259   Rect<float> rf5( 10.0f,  20.0f, 200.0f, 500.0f);
260
261   Rect<float> rf6( 0.0f,  0.0f, 9.0f, 10.0f);
262
263   DALI_TEST_CHECK(rf1 == rf1p);
264   DALI_TEST_CHECK(rf1 == rf1);
265   DALI_TEST_CHECK(!(rf1 == rf2));
266   DALI_TEST_CHECK(!(rf1 == rf3));
267   DALI_TEST_CHECK(!(rf1 == rf4));
268   DALI_TEST_CHECK(!(rf1 == rf5));
269   DALI_TEST_CHECK(!(rf1 == rf6));
270
271
272   // integers
273   Rect<int> ri1( 10,  20, 200, 200 );
274   Rect<int> ri1p( 10,  20, 200, 200 );
275
276   DALI_TEST_CHECK(ri1 == ri1p);
277   END_TEST;
278 }