Ensure BaseHandle class move noexcept (core public-api)
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Extents.cpp
1 /*
2  * Copyright (c) 2020 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 <dali-test-suite-utils.h>
19 #include <dali/public-api/dali-core.h>
20 #include <stdlib.h>
21
22 #include <iostream>
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 UtcDaliExtentsMoveConstructor(void)
116 {
117   TestApplication application;
118
119   Extents extent(10u, 20u, 400u, 200u);
120
121   Extents extent2(std::move(extent));
122
123   DALI_TEST_EQUALS(extent2.start, 10u, TEST_LOCATION);
124   DALI_TEST_EQUALS(extent2.end, 20u, TEST_LOCATION);
125   DALI_TEST_EQUALS(extent2.top, 400u, TEST_LOCATION);
126   DALI_TEST_EQUALS(extent2.bottom, 200u, TEST_LOCATION);
127   END_TEST;
128 }
129
130 int UtcDaliExtentsMoveAssignment(void)
131 {
132   TestApplication application;
133
134   Extents extent;
135
136   Extents extent2(10u, 20u, 400u, 200u);
137   extent = std::move(extent2);
138
139   DALI_TEST_EQUALS(extent.start, 10u, TEST_LOCATION);
140   DALI_TEST_EQUALS(extent.end, 20u, TEST_LOCATION);
141   DALI_TEST_EQUALS(extent.top, 400u, TEST_LOCATION);
142   DALI_TEST_EQUALS(extent.bottom, 200u, TEST_LOCATION);
143   END_TEST;
144 }
145
146 int UtcDaliExtentsAssignP(void)
147 {
148   Extents        extent;
149   const uint16_t array[] = {1u, 2u, 3u, 4u};
150   extent                 = (const uint16_t*)array;
151
152   DALI_TEST_EQUALS(extent.start, 1u, TEST_LOCATION);
153   DALI_TEST_EQUALS(extent.end, 2u, TEST_LOCATION);
154   DALI_TEST_EQUALS(extent.top, 3u, TEST_LOCATION);
155   DALI_TEST_EQUALS(extent.bottom, 4u, TEST_LOCATION);
156   END_TEST;
157 }
158
159 int UtcDaliExtentsOperatorNotEquals(void)
160 {
161   TestApplication application;
162
163   Extents extent1(10u, 20u, 200u, 200u);
164   Extents extent2(10u, 120u, 200u, 200u);
165   Extents extent3(10u, 80u, 200u, 200u);
166
167   DALI_TEST_CHECK(extent1 != extent2);
168   DALI_TEST_CHECK(extent1 != extent3);
169   END_TEST;
170 }
171
172 int UtcDaliExtentsOperatorEquals(void)
173 {
174   TestApplication application;
175
176   Extents extent1(10u, 20u, 200u, 200u);
177   Extents extent1p(10u, 20u, 200u, 200u);
178
179   Extents extent2(10u, 120u, 200u, 200u);
180   Extents extent3(10u, 80u, 200u, 200u);
181
182   DALI_TEST_CHECK(extent1 == extent1p);
183   DALI_TEST_CHECK(extent1 == extent1);
184   DALI_TEST_CHECK(!(extent1 == extent2));
185   DALI_TEST_CHECK(!(extent1 == extent3));
186
187   END_TEST;
188 }
189
190 int UtcDaliExtentsOStreamOperatorP(void)
191 {
192   TestApplication    application;
193   std::ostringstream oss;
194
195   Extents extent(1u, 2u, 10u, 10u);
196
197   oss << extent;
198
199   std::string expectedOutput = "[1, 2, 10, 10]";
200
201   DALI_TEST_EQUALS(oss.str(), expectedOutput, TEST_LOCATION);
202   END_TEST;
203 }