UTC tests; PropertyValue, Vector2/3/4, Matrix
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Vector2.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 #include <sstream>
20 #include <cmath> // isfinite
21
22 #include <stdlib.h>
23 #include <dali/public-api/dali-core.h>
24 #include <dali-test-suite-utils.h>
25
26 using namespace Dali;
27
28 void utc_dali_vector2_startup(void)
29 {
30   test_return_value = TET_UNDEF;
31 }
32
33 void utc_dali_vector2_cleanup(void)
34 {
35   test_return_value = TET_PASS;
36 }
37
38 int UtcDaliVector2Constructor01P(void)
39 {
40   TestApplication application;
41   Vector2 vec2;
42   DALI_TEST_EQUALS(vec2.x, 0.0f, 0.001, TEST_LOCATION);
43   DALI_TEST_EQUALS(vec2.y, 0.0f, 0.001, TEST_LOCATION);
44   END_TEST;
45 }
46
47 int UtcDaliVector2Constructor02P(void)
48 {
49   TestApplication application;
50   Vector2 vec2(1.f,1.f);
51   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
52   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
53   END_TEST;
54 }
55
56 int UtcDaliVector2Constructor03P(void)
57 {
58   TestApplication application;
59   float array[] = {1.f,1.f};
60   Vector2 vec2(array);
61   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
62   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
63   END_TEST;
64 }
65
66 int UtcDaliVector2Constructor04P(void)
67 {
68   TestApplication application;
69   Vector3 vec3(1.f,1.f,1.f);
70   Vector3 vec2(vec3);
71   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
72   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
73   END_TEST;
74 }
75
76 int UtcDaliVector2Constructor05P(void)
77 {
78   TestApplication application;
79   Vector4 vec4(1.f,1.f,1.f,1.f);
80   Vector3 vec2(vec4);
81   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
82   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
83   END_TEST;
84 }
85
86 int UtcDaliVector2CopyConstructor01P(void)
87 {
88   TestApplication application;
89   float array[] = {1.f,1.f};
90   Vector2 vec2;
91   vec2 = array;
92   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
93   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
94   END_TEST;
95 }
96
97 int UtcDaliVector2CopyConstructor02P(void)
98 {
99   TestApplication application;
100   Vector3 vec3(1.f,1.f,1.f);
101   Vector3 vec2;
102   vec2 = vec3;
103   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
104   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
105   END_TEST;
106 }
107
108 int UtcDaliVector2CopyConstructor03P(void)
109 {
110   TestApplication application;
111   Vector4 vec4(1.f,1.f,1.f,1.f);
112   Vector3 vec2;
113   vec2 = vec4;
114   DALI_TEST_EQUALS(vec2.x, 1.0f, 0.001, TEST_LOCATION);
115   DALI_TEST_EQUALS(vec2.y, 1.0f, 0.001, TEST_LOCATION);
116   END_TEST;
117 }
118
119 int UtcDaliVector2AddP(void)
120 {
121   TestApplication application;
122   Vector2 v0(1.0f, 2.0f);
123   Vector2 v1(10.0f, 20.0f);
124   Vector2 r0(11.0f, 22.0f);
125
126   Vector2 v2 = v0+v1;
127   DALI_TEST_EQUALS(v2, r0, TEST_LOCATION);
128   END_TEST;
129 }
130
131 int UtcDaliVector2AddAssignP(void)
132 {
133   TestApplication application;
134   Vector2 v0(1.0f, 2.0f);
135   Vector2 v1(10.0f, 20.0f);
136   Vector2 r0(11.0f, 22.0f);
137
138   v0 += v1;
139   DALI_TEST_EQUALS(v0, r0, TEST_LOCATION);
140   END_TEST;
141 }
142
143 int UtcDaliVector2SubtractP(void)
144 {
145   TestApplication application;
146   Vector2 v0(11.0f, 22.0f);
147   Vector2 v1(10.0f, 20.0f);
148   Vector2 r0(1.0f, 2.0f);
149
150   Vector2 v2 = v0-v1;
151   DALI_TEST_EQUALS(v2, r0, TEST_LOCATION);
152
153   END_TEST;
154 }
155
156 int UtcDaliVector2SubtractAssignP(void)
157 {
158   TestApplication application;
159   Vector2 v0(11.0f, 22.0f);
160   Vector2 v1(10.0f, 20.0f);
161   Vector2 r0(1.0f, 2.0f);
162
163   v0 -= v1;
164   DALI_TEST_EQUALS(v0, r0, TEST_LOCATION);
165   END_TEST;
166 }
167
168 int UtcDaliVector2NegateP(void)
169 {
170   TestApplication application;
171   Vector2 v1(10.0f, 20.0f);
172   Vector2 r0(-10.0f, -20.0f);
173
174   Vector2 v2 = -v1;
175   DALI_TEST_EQUALS(v2, r0, TEST_LOCATION);
176   END_TEST;
177 }
178
179 int UtcDaliVector2Multiply01P(void)
180 {
181   TestApplication application;
182   Vector2 v0(2.0f, 3.0f);
183   Vector2 v1(10.0f, 20.0f);
184   Vector2 r0(20.0f, 60.0f);
185
186   Vector2 v2 = v0 * v1;
187   DALI_TEST_EQUALS(v2, r0, TEST_LOCATION);
188
189   END_TEST;
190 }
191
192 int UtcDaliVector2Multiply02P(void)
193 {
194   TestApplication application;
195   Vector2 v0(2.0f, 3.0f);
196   Vector2 r0(20.0f, 30.0f);
197
198   Vector2 v2 = v0 * 10.f;
199   DALI_TEST_EQUALS(v2, r0, TEST_LOCATION);
200
201   END_TEST;
202 }
203
204 int UtcDaliVector2MultiplyAssign01P(void)
205 {
206   TestApplication application;
207   Vector2 v0(2.0f, 3.0f);
208   Vector2 v1(10.0f, 20.0f);
209   Vector2 r0(20.0f, 60.0f);
210
211   v0 *= v1;
212   DALI_TEST_EQUALS(v0, r0, TEST_LOCATION);
213   END_TEST;
214 }
215
216 int UtcDaliVector2MultiplyAssign02P(void)
217 {
218   TestApplication application;
219   Vector2 v0(2.0f, 3.0f);
220   Vector2 r0(20.0f, 30.0f);
221
222   v0 *= 10.f;
223   DALI_TEST_EQUALS(v0, r0, TEST_LOCATION);
224   END_TEST;
225 }
226
227 int UtcDaliVector2Divide01P(void)
228 {
229   TestApplication application;
230   Vector2 v0(1.0f, 1.0f);
231   Vector2 v1(2.0f, 3.0f);
232   Vector2 v2(4.0f, 9.0f);
233
234   DALI_TEST_EQUALS( v0/v0, v0, TEST_LOCATION);
235   DALI_TEST_EQUALS( v1/v0, v1, TEST_LOCATION);
236   DALI_TEST_EQUALS( v1/v1, v0, TEST_LOCATION);
237   DALI_TEST_EQUALS( v2/v1, v1, TEST_LOCATION);
238
239   END_TEST;
240 }
241
242 int UtcDaliVector2Divide02P(void)
243 {
244   TestApplication application;
245   Vector2 v0(1.0f, 1.0f);
246   Vector2 v1(3.0f, 3.0f);
247   Vector2 v2(9.0f, 9.0f);
248
249   DALI_TEST_EQUALS( v0/1.f, v0, TEST_LOCATION);
250   DALI_TEST_EQUALS( v1/1.f, v1, TEST_LOCATION);
251   DALI_TEST_EQUALS( v1/3.f, v0, TEST_LOCATION);
252
253   END_TEST;
254 }
255
256 int UtcDaliVector2DivideAssign01P(void)
257 {
258   TestApplication application;
259   Vector2 v0(1.0f, 1.0f);
260   Vector2 v1(2.0f, 3.0f);
261   Vector2 v2(4.0f, 9.0f);
262
263   Vector2 v4(v0);
264   v4 /= v0;
265   DALI_TEST_EQUALS(v4, v0, TEST_LOCATION);
266
267   Vector2 v5(v1);
268   v5 /= v0;
269   DALI_TEST_EQUALS(v5, v1, TEST_LOCATION);
270
271   Vector2 v6(v1);
272   v6 /= v6;
273   DALI_TEST_EQUALS(v6, v0, TEST_LOCATION);
274
275   v2 /= v1;
276   DALI_TEST_EQUALS(v2, v1, TEST_LOCATION);
277
278   END_TEST;
279 }
280
281 int UtcDaliVector2DivideAssign02P(void)
282 {
283   TestApplication application;
284   Vector2 v0(1.0f, 1.0f);
285   Vector2 v1(3.0f, 3.0f);
286
287   Vector2 v4(v0);
288   v4 /= 1.f;
289   DALI_TEST_EQUALS(v4, v0, TEST_LOCATION);
290
291   Vector2 v5(v1);
292   v5 /= 1.f;
293   DALI_TEST_EQUALS(v5, v1, TEST_LOCATION);
294
295   Vector2 v6(v1);
296   v6 /= 3.f;
297   DALI_TEST_EQUALS(v6, v0, TEST_LOCATION);
298
299   END_TEST;
300 }
301
302 int UtcDaliVector2EqualsP(void)
303 {
304   TestApplication application;
305   Vector2 v0(1.0f, 2.0f);
306   Vector2 v1(1.0f, 2.0f);
307
308   DALI_TEST_CHECK(v0 == v1);
309
310   END_TEST;
311 }
312
313 int UtcDaliVector2NotEqualsP(void)
314 {
315   TestApplication application;
316   Vector2 v0(1.0f, 2.0f);
317   Vector2 v1(1.0f, 2.0f);
318
319   Vector2 v2 = Vector2(0.0f, 2.0f);
320   DALI_TEST_CHECK(v0 != v2);
321
322   v2 = Vector2(1.0f, 0.0f);
323   DALI_TEST_CHECK(v0 != v2);
324
325   v2 = Vector2(1.0f, 77.0f);
326   DALI_TEST_CHECK(v0 != v2);
327
328   v2 = Vector2(33.0f, 44.0f);
329   DALI_TEST_CHECK(v0 != v2);
330   END_TEST;
331 }
332
333 int UtcDaliVector2OperatorSubscriptP(void)
334 {
335   TestApplication application;
336   Vector2 testVector(1.0f, 2.0f);
337
338   // read array subscripts
339   DALI_TEST_EQUALS( testVector[0], 1.0f, TEST_LOCATION );
340   DALI_TEST_EQUALS( testVector[1], 2.0f, TEST_LOCATION );
341
342   // write array subscripts/read struct memebers
343   testVector[0] = 3.0f;
344   testVector[1] = 4.0f;
345
346   DALI_TEST_EQUALS( testVector.x, 3.0f, TEST_LOCATION );
347   DALI_TEST_EQUALS( testVector.y, 4.0f, TEST_LOCATION );
348
349   END_TEST;
350 }
351
352 int UtcDaliVector2OperatorSubscriptN(void)
353 {
354   TestApplication application;
355   Vector2 testVector(1.0f, 2.0f);
356
357   try
358   {
359     float& w = testVector[4];
360     if(w==0.0f);
361     tet_result(TET_FAIL);
362   }
363   catch (Dali::DaliException& e)
364   {
365     DALI_TEST_PRINT_ASSERT( e );
366     DALI_TEST_ASSERT( e, "index < 2", TEST_LOCATION);
367   }
368
369   END_TEST;
370 }
371
372 int UtcDaliVector2OperatorConstSubscriptP(void)
373 {
374   TestApplication application;
375   const Vector2 testVector2(3.0f, 4.0f);
376   const float& x = testVector2[0];
377   const float& y = testVector2[1];
378   DALI_TEST_EQUALS( x, 3.0f, TEST_LOCATION );
379   DALI_TEST_EQUALS( y, 4.0f, TEST_LOCATION );
380   END_TEST;
381 }
382
383 int UtcDaliVector2OperatorConstSubscriptN(void)
384 {
385   TestApplication application;
386   const Vector2 testVector2(3.0f, 4.0f);
387
388   try
389   {
390     const float& w = testVector2[4];
391     if(w==0.0f);
392     tet_result(TET_FAIL);
393   }
394   catch (Dali::DaliException& e)
395   {
396     DALI_TEST_PRINT_ASSERT( e );
397     DALI_TEST_ASSERT( e, "index < 2" , TEST_LOCATION);
398   }
399
400
401   END_TEST;
402 }
403
404
405 int UtcDaliVector2LengthP(void)
406 {
407   TestApplication application;
408   Vector2 v(1.0f, 2.0f);
409   DALI_TEST_EQUALS(v.Length(), sqrtf(v.x*v.x + v.y*v.y), 0.001f, TEST_LOCATION);
410
411   Vector2 v1(0.0f, 0.0f);
412   DALI_TEST_EQUALS(v1.Length(), 0.0f, TEST_LOCATION);
413   END_TEST;
414 }
415
416 int UtcDaliVector2LengthSquaredP(void)
417 {
418   TestApplication application;
419   Vector2 v(1.0f, 2.0f);
420   DALI_TEST_EQUALS(v.LengthSquared(), v.x*v.x + v.y*v.y, 0.001f, TEST_LOCATION);
421
422   Vector2 v1(0.0f, 0.0f);
423   DALI_TEST_EQUALS(v1.LengthSquared(), 0.0f, TEST_LOCATION);
424   END_TEST;
425 }
426
427 int UtcDaliVector2NormalizeP(void)
428 {
429   TestApplication application;
430   for (float f=0.0f; f<6.0f; f+=1.0f)
431   {
432     Vector2 v(cosf(f)*10.0f, cosf(f+1.0f)*10.0f);
433     v.Normalize();
434     DALI_TEST_EQUALS(v.LengthSquared(), 1.0f, 0.001f, TEST_LOCATION);
435   }
436   END_TEST;
437 }
438
439 int UtcDaliVector2NormalizeN(void)
440 {
441   TestApplication application;
442   Vector2 v(0.0f, 0.0f);
443   v.Normalize();
444   DALI_TEST_EQUALS(v.LengthSquared(), 0.0f, 0.00001f, TEST_LOCATION);
445   END_TEST;
446 }
447
448 int UtcDaliVector2ClampVector2P(void)
449 {
450   TestApplication application;
451   tet_infoline("Testing Dali::Vector2::Clamp( const Vector2& v, const Vector2& min, const Vector2& max )");
452
453   Vector2 v0(2.0f, 0.8f);
454   Vector2 v1(-1.0f, 2.0f);
455   Vector2 v2(10.0f, 5.0f);
456   Vector2 v3(8.0f, 10.0f);
457   Vector2 v4(4.9f, 5.1f);
458   Vector2 min(1.0f, 4.0f);
459   Vector2 max(9.0f, 6.0f);
460
461   v0.Clamp( min, max );
462   v1.Clamp( min, max );
463   v2.Clamp( min, max );
464   v3.Clamp( min, max );
465   v4.Clamp( min, max );
466
467   DALI_TEST_EQUALS( v0, Vector2(2.0f, 4.0f), 0.01f, TEST_LOCATION );
468   DALI_TEST_EQUALS( v1, Vector2(1.0f, 4.0f), 0.01f, TEST_LOCATION );
469   DALI_TEST_EQUALS( v2, Vector2(9.0f, 5.0f), 0.01f, TEST_LOCATION );
470   DALI_TEST_EQUALS( v3, Vector2(8.0f, 6.0f), 0.01f, TEST_LOCATION );
471   DALI_TEST_EQUALS( v4, Vector2(4.9f, 5.1f), 0.01f, TEST_LOCATION );
472   END_TEST;
473 }
474
475 int UtcDaliVector2AsFloatP(void)
476 {
477   TestApplication application;
478   Vector2 vec2(1.f,1.f);
479   float* p = vec2.AsFloat();
480
481   DALI_TEST_EQUALS( p[0], 1.f, 0.01f, TEST_LOCATION );
482   DALI_TEST_EQUALS( p[1], 1.f, 0.01f, TEST_LOCATION );
483
484   p[0] = 2.f;
485   p[1] = 2.f;
486
487   DALI_TEST_EQUALS( p[0], 2.f, 0.01f, TEST_LOCATION );
488   DALI_TEST_EQUALS( p[1], 2.f, 0.01f, TEST_LOCATION );
489
490   END_TEST;
491 }
492
493 int UtcDaliVector2ConstAsFloatP(void)
494 {
495   TestApplication application;
496   Vector2 vec2(1.f,1.f);
497   const float* p = vec2.AsFloat();
498
499   DALI_TEST_EQUALS( p[0], 1.f, 0.01f, TEST_LOCATION );
500   DALI_TEST_EQUALS( p[1], 1.f, 0.01f, TEST_LOCATION );
501
502   END_TEST;
503 }
504
505 int UtcDaliVector2XWidthP(void)
506 {
507   TestApplication application;
508   Vector2 vec2(1.f,1.f);
509
510   DALI_TEST_EQUALS( vec2.x, 1.f, 0.01f, TEST_LOCATION );
511   DALI_TEST_EQUALS( vec2.width, 1.f, 0.01f, TEST_LOCATION );
512
513   END_TEST;
514 }
515
516 int UtcDaliVector2YHeightP(void)
517 {
518   TestApplication application;
519   Vector2 vec2(1.f,1.f);
520
521   DALI_TEST_EQUALS( vec2.y, 1.f, 0.01f, TEST_LOCATION );
522   DALI_TEST_EQUALS( vec2.height, 1.f, 0.01f, TEST_LOCATION );
523
524   END_TEST;
525 }
526
527 int UtcDaliVector2OStreamOperatorP(void)
528 {
529   TestApplication application;
530   std::ostringstream oss;
531
532   Vector2 vector(1, 2);
533
534   oss << vector;
535
536   std::string expectedOutput = "[1, 2]";
537
538   DALI_TEST_EQUALS( oss.str(), expectedOutput, TEST_LOCATION);
539   END_TEST;
540 }
541
542
543 int UtcDaliVector2MaxP(void)
544 {
545   TestApplication application;
546   Vector2 v0(2.0f, 1.0f);
547   Vector2 v1(1.0f, 2.0f);
548
549   DALI_TEST_EQUALS(Max(v0, v1), Vector2(2.0f, 2.0f), 0.01f, TEST_LOCATION);
550   END_TEST;
551 }
552
553 int UtcDaliVector2MinP(void)
554 {
555   TestApplication application;
556   Vector2 v0(2.0f, 1.0f);
557   Vector2 v1(1.0f, 2.0f);
558
559   DALI_TEST_EQUALS(Min(v0, v1), Vector2(1.0f, 1.0f), 0.01f, TEST_LOCATION);
560   END_TEST;
561 }
562
563 int UtcDaliVector2ClampP(void)
564 {
565   TestApplication application;
566   tet_infoline("Testing Dali::Vector2::Clamp( const Vector2& v, const float& min, const float& max )");
567
568   Vector2 v0(2.0f, 0.8f);
569   Vector2 v1(-1.0f, 2.0f);
570
571   DALI_TEST_EQUALS( Clamp( v0, 0.9f, 1.1f ), Vector2(1.1f, 0.9f), 0.01f, TEST_LOCATION );
572   DALI_TEST_EQUALS( Clamp( v1, 1.0f, 1.0f ), Vector2(1.0f, 1.0f), 0.01f, TEST_LOCATION );
573   DALI_TEST_EQUALS( Clamp( v1, 0.0f, 3.0f ), Vector2(0.0f, 2.0f), 0.01f, TEST_LOCATION );
574   END_TEST;
575 }
576
577 int UtcDaliVector2FitInsideP(void)
578 {
579   TestApplication application;
580   DALI_TEST_EQUALS( Vector2(  1.0f,  2.0f ), FitInside( Vector2(   1.0f,  2.0f ), Vector2( 10.0f, 20.0f ) ), TEST_LOCATION );
581   DALI_TEST_EQUALS( Vector2(  1.0f,  0.5f ), FitInside( Vector2(   1.0f,  2.0f ), Vector2( 20.0f, 10.0f ) ), TEST_LOCATION );
582   DALI_TEST_EQUALS( Vector2( 10.0f, 20.0f ), FitInside( Vector2(  10.0f, 20.0f ), Vector2(  1.0f,  2.0f ) ), TEST_LOCATION );
583   DALI_TEST_EQUALS( Vector2( 10.0f, 10.0f ), FitInside( Vector2( 100.0f, 10.0f ), Vector2( 10.0f, 10.0f ) ), TEST_LOCATION );
584   DALI_TEST_EQUALS( Vector2( 20.0f, 10.0f ), FitInside( Vector2(  20.0f, 20.0f ), Vector2( 10.0f,  5.0f ) ), TEST_LOCATION );
585   DALI_TEST_EQUALS( Vector2( 10.0f, 20.0f ), FitInside( Vector2(  20.0f, 20.0f ), Vector2(  5.0f, 10.0f ) ), TEST_LOCATION );
586   END_TEST;
587 }
588
589 int UtcDaliVector2FitInside01N(void)
590 {
591   TestApplication application;
592   Size size = FitInside( Vector2(   1.0f,  2.0f ), Vector2( 0.0f, 0.0f ) );
593   DALI_TEST_EQUALS( false, std::isfinite(size.y), TEST_LOCATION );
594   END_TEST;
595 }
596
597 int UtcDaliVector2FitScaleToFillP(void)
598 {
599   TestApplication application;
600   DALI_TEST_EQUALS( Vector2(  1.0f,  2.0f ), FitScaleToFill( Vector2(   1.0f,  2.0f ), Vector2( 10.0f, 20.0f ) ), TEST_LOCATION );
601   DALI_TEST_EQUALS( Vector2(  1.0f,  2.0f ), FitScaleToFill( Vector2(  10.0f, 20.0f ), Vector2(  1.0f,  2.0f ) ), TEST_LOCATION );
602   DALI_TEST_EQUALS( Vector2( 10.0f,  1.0f ), FitScaleToFill( Vector2( 100.0f, 10.0f ), Vector2( 10.0f, 10.0f ) ), TEST_LOCATION );
603   DALI_TEST_EQUALS( Vector2(  5.0f,  5.0f ), FitScaleToFill( Vector2(  20.0f, 20.0f ), Vector2( 10.0f,  5.0f ) ), TEST_LOCATION );
604   DALI_TEST_EQUALS( Vector2(  5.0f,  5.0f ), FitScaleToFill( Vector2(  20.0f, 20.0f ), Vector2(  5.0f, 10.0f ) ), TEST_LOCATION );
605   DALI_TEST_EQUALS( Vector2( 20.0f, 40.0f ), FitScaleToFill( Vector2(  20.0f,  0.0f ), Vector2(  5.0f, 10.0f ) ), TEST_LOCATION );
606   DALI_TEST_EQUALS( Vector2( 10.0f, 20.0f ), FitScaleToFill( Vector2(   0.0f, 20.0f ), Vector2(  5.0f, 10.0f ) ), TEST_LOCATION );
607   END_TEST;
608 }
609
610
611 int UtcDaliVector2FitScaleToFillN(void)
612 {
613   TestApplication application;
614   Vector2 target(0.f, 0.f);
615   Size size = FitScaleToFill( target, Vector2( 0.0f, 0.0f ) );
616   DALI_TEST_EQUALS( size, target, TEST_LOCATION );
617   END_TEST;
618 }
619
620 int UtcDaliVector2ShrinkInsideP(void)
621 {
622   TestApplication application;
623   DALI_TEST_EQUALS( Vector2(  1.0f,  2.0f ), ShrinkInside( Vector2(   1.0f,  2.0f ), Vector2( 10.0f, 20.0f ) ), TEST_LOCATION );
624   DALI_TEST_EQUALS( Vector2(  1.0f,  2.0f ), ShrinkInside( Vector2(  10.0f, 20.0f ), Vector2(  1.0f,  2.0f ) ), TEST_LOCATION );
625   DALI_TEST_EQUALS( Vector2( 10.0f, 10.0f ), ShrinkInside( Vector2( 100.0f, 10.0f ), Vector2( 10.0f, 10.0f ) ), TEST_LOCATION );
626   DALI_TEST_EQUALS( Vector2( 10.0f,  5.0f ), ShrinkInside( Vector2(  20.0f, 20.0f ), Vector2( 10.0f,  5.0f ) ), TEST_LOCATION );
627   DALI_TEST_EQUALS( Vector2(  5.0f, 10.0f ), ShrinkInside( Vector2(  20.0f, 20.0f ), Vector2(  5.0f, 10.0f ) ), TEST_LOCATION );
628   DALI_TEST_EQUALS( Vector2(  5.0f, 10.0f ), ShrinkInside( Vector2(  10.0f, 10.0f ), Vector2( 10.0f, 20.0f ) ), TEST_LOCATION );
629   DALI_TEST_EQUALS( Vector2( 10.0f,  5.0f ), ShrinkInside( Vector2(  10.0f, 10.0f ), Vector2( 20.0f, 10.0f ) ), TEST_LOCATION );
630   END_TEST;
631 }
632
633 int UtcDaliVector2ShrinkInside01N(void)
634 {
635   TestApplication application;
636   Vector2 target(0.f, 0.f);
637   Size size = ShrinkInside( Vector2( -1.0f,  1.0f ), Vector2( 0.0f, 1.0f ) );
638   DALI_TEST_EQUALS( false, std::isfinite(size.x), TEST_LOCATION );
639   END_TEST;
640 }
641
642 int UtcDaliVector2ShrinkInside02N(void)
643 {
644   TestApplication application;
645   Vector2 target(0.f, 0.f);
646   Size size = ShrinkInside( Vector2( -1.0f,  -1.0f ), Vector2( 1.0f, 0.0f ) );
647   DALI_TEST_EQUALS( false, std::isfinite(size.y), TEST_LOCATION );
648   END_TEST;
649 }
650