Add Property::EXTENTS type
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Extents.cpp
1 /*
2  * Copyright (c) 2017 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 namespace
27 {
28 /// Compare a uint16_t value with an unsigned int
29 void DALI_TEST_EQUALS( uint16_t value1, unsigned int value2, const char* location )
30 {
31   ::DALI_TEST_EQUALS< uint16_t >( value1, static_cast< uint16_t >( value2 ), location );
32 }
33 } // unnamed namespace
34
35 void utc_dali_extents_startup(void)
36 {
37   test_return_value = TET_UNDEF;
38 }
39
40 void utc_dali_extents_cleanup(void)
41 {
42   test_return_value = TET_PASS;
43 }
44
45 int UtcDaliExtentsConstructor01(void)
46 {
47   TestApplication application;
48
49   Extents extent;
50   DALI_TEST_EQUALS( extent.start, 0u, TEST_LOCATION );
51   DALI_TEST_EQUALS( extent.end, 0u, TEST_LOCATION );
52   DALI_TEST_EQUALS( extent.top, 0u, TEST_LOCATION );
53   DALI_TEST_EQUALS( extent.bottom, 0u, TEST_LOCATION );
54   END_TEST;
55 }
56
57 int UtcDaliExtentsConstructor02(void)
58 {
59   TestApplication application;
60
61   Extents extent( 10u, 20u, 400u, 200u );
62   DALI_TEST_EQUALS( extent.start, 10u, TEST_LOCATION );
63   DALI_TEST_EQUALS( extent.end, 20u, TEST_LOCATION );
64   DALI_TEST_EQUALS( extent.top, 400u, TEST_LOCATION );
65   DALI_TEST_EQUALS( extent.bottom, 200u, TEST_LOCATION );
66   END_TEST;
67 }
68
69 int UtcDaliExtentsConstructor03(void)
70 {
71   TestApplication application;
72
73   Extents extent( 10u, 20u, 400u, 200u );
74
75   Extents e2 = extent;
76
77   DALI_TEST_EQUALS( e2.start, 10u, TEST_LOCATION );
78   DALI_TEST_EQUALS( e2.end, 20u, TEST_LOCATION );
79   DALI_TEST_EQUALS( e2.top, 400u, TEST_LOCATION );
80   DALI_TEST_EQUALS( e2.bottom, 200u, TEST_LOCATION );
81   END_TEST;
82 }
83
84 int UtcDaliExtentsCopyConstructor(void)
85 {
86   TestApplication application;
87
88   Extents extent( 10u, 20u, 400u, 200u );
89
90   Extents extent2( extent );
91
92   DALI_TEST_EQUALS( extent2.start, 10u, TEST_LOCATION );
93   DALI_TEST_EQUALS( extent2.end, 20u, TEST_LOCATION );
94   DALI_TEST_EQUALS( extent2.top, 400u, TEST_LOCATION );
95   DALI_TEST_EQUALS( extent2.bottom, 200u, TEST_LOCATION );
96   END_TEST;
97 }
98
99 int UtcDaliExtentsCopyAssignment(void)
100 {
101   TestApplication application;
102
103   Extents extent;
104
105   Extents extent2( 10u, 20u, 400u, 200u );
106   extent = extent2;
107
108   DALI_TEST_EQUALS( extent.start, 10u, TEST_LOCATION );
109   DALI_TEST_EQUALS( extent.end, 20u, TEST_LOCATION );
110   DALI_TEST_EQUALS( extent.top, 400u, TEST_LOCATION );
111   DALI_TEST_EQUALS( extent.bottom, 200u, TEST_LOCATION );
112   END_TEST;
113 }
114
115 int UtcDaliExtentsAssignP(void)
116 {
117   Extents extent;
118   const uint16_t array[] = { 1u, 2u, 3u, 4u };
119   extent = (const uint16_t*)array;
120
121   DALI_TEST_EQUALS( extent.start, 1u, TEST_LOCATION);
122   DALI_TEST_EQUALS( extent.end, 2u, TEST_LOCATION);
123   DALI_TEST_EQUALS( extent.top, 3u, TEST_LOCATION);
124   DALI_TEST_EQUALS( extent.bottom, 4u, TEST_LOCATION);
125   END_TEST;
126 }
127
128 int UtcDaliExtentsOperatorNotEquals(void)
129 {
130   TestApplication application;
131
132   Extents extent1( 10u, 20u, 200u, 200u );
133   Extents extent2( 10u, 120u, 200u, 200u );
134   Extents extent3( 10u, 80u, 200u, 200u );
135
136   DALI_TEST_CHECK( extent1 != extent2 );
137   DALI_TEST_CHECK( extent1 != extent3 );
138   END_TEST;
139 }
140
141 int UtcDaliExtentsOperatorEquals(void)
142 {
143   TestApplication application;
144
145   Extents extent1( 10u, 20u, 200u, 200u );
146   Extents extent1p( 10u, 20u, 200u, 200u );
147
148   Extents extent2( 10u, 120u, 200u, 200u );
149   Extents extent3( 10u, 80u, 200u, 200u );
150
151   DALI_TEST_CHECK( extent1 == extent1p );
152   DALI_TEST_CHECK( extent1 == extent1 );
153   DALI_TEST_CHECK( !( extent1 == extent2 ) );
154   DALI_TEST_CHECK( !( extent1 == extent3 ) );
155
156   END_TEST;
157 }
158
159 int UtcDaliExtentsOStreamOperatorP(void)
160 {
161   TestApplication application;
162   std::ostringstream oss;
163
164   Extents extent( 1u, 2u, 10u, 10u );
165
166   oss << extent;
167
168   std::string expectedOutput = "[1, 2, 10, 10]";
169
170   DALI_TEST_EQUALS( oss.str(), expectedOutput, TEST_LOCATION);
171   END_TEST;
172 }