Dali 3D User Interface Engine
utc-Dali-Pixel.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016 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 <algorithm>
20 
21 #include <stdlib.h>
23 #include <dali-test-suite-utils.h>
24 
25 using std::max;
26 using namespace Dali;
27 
28 
29 static const float ROTATION_EPSILON = 0.0001f;
30 
32 {
34 }
35 
37 {
39 }
40 
41 static void TestPixelEnumSize(const int size)
42 {
43  DALI_TEST_CHECK( (static_cast<int>( Pixel::LAST_VALID_PIXEL_FORMAT ) - static_cast<int>( Pixel::FIRST_VALID_PIXEL_FORMAT ) + 1 ) == size &&
44  "The Pixel::Format enum may have had new formats added. Expand the test cases to include them.");
45 }
46 
48 {
49  TestApplication application;
50 
51  tet_infoline("UtcDaliPixelHasAlpha");
52 
53  TestPixelEnumSize( 54 );
54 
55  DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::INVALID ) == false ); // For completeness
56 
71 
84 
113 
114  END_TEST;
115 }
116 
118 {
119  DALI_TEST_EQUALS( Pixel::HasAlpha( Pixel::Format( 123123123123 ) ), false, TEST_LOCATION );
120  END_TEST;
121 }
122 
124 {
125  TestApplication application;
126 
127  tet_infoline("UtcDaliPixelGetBytesPerPixel");
128 
129  DALI_TEST_CHECK( Pixel::GetBytesPerPixel( Pixel::INVALID ) == 0 ); // For completeness
130 
133 
141 
143 
148 
150 
151  // Compressed formats are marked as 0 bytes per pixel.
192 
193  END_TEST;
194 }
195 
197 {
199  END_TEST;
200 }
201 
203 {
204  TestApplication application;
205 
206  tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
207 
208  int byteOffset = 0;
209  int bitMask = 0;
210 
211  // Be sure that the number of cases tested below is correct:
212  TestPixelEnumSize( 54 );
213 
214  Pixel::GetAlphaOffsetAndMask( Pixel::INVALID, byteOffset, bitMask ); // For completeness
215  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
216 
217  Pixel::GetAlphaOffsetAndMask( Pixel::L8, byteOffset, bitMask );
218  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
219  Pixel::GetAlphaOffsetAndMask( Pixel::A8, byteOffset, bitMask );
220  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0xff );
221  Pixel::GetAlphaOffsetAndMask( Pixel::RGB888, byteOffset, bitMask );
222  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
223  Pixel::GetAlphaOffsetAndMask( Pixel::RGB565, byteOffset, bitMask );
224  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
225  Pixel::GetAlphaOffsetAndMask( Pixel::RGB8888, byteOffset, bitMask );
226  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
227  Pixel::GetAlphaOffsetAndMask( Pixel::BGR8888, byteOffset, bitMask );
228  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
229  Pixel::GetAlphaOffsetAndMask( Pixel::LA88, byteOffset, bitMask );
230  DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0xff );
231  Pixel::GetAlphaOffsetAndMask( Pixel::RGBA4444, byteOffset, bitMask );
232  DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f );
233  Pixel::GetAlphaOffsetAndMask( Pixel::RGBA5551, byteOffset, bitMask );
234  DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01 );
235  Pixel::GetAlphaOffsetAndMask( Pixel::RGBA8888, byteOffset, bitMask );
236  DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff );
237  Pixel::GetAlphaOffsetAndMask( Pixel::BGRA8888, byteOffset, bitMask );
238  DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff );
239  Pixel::GetAlphaOffsetAndMask( Pixel::BGR565, byteOffset, bitMask );
240  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
241  Pixel::GetAlphaOffsetAndMask( Pixel::BGRA4444, byteOffset, bitMask );
242  DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f );
243  Pixel::GetAlphaOffsetAndMask( Pixel::BGRA5551, byteOffset, bitMask );
244  DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01 );
245 
246  // Compressed formats with no meaningful result:
248  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
250  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
252  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
254  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
256  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
258  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
260  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
262  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
264  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
266  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
268  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
270  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
272  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
274  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
276  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
278  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
280  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
282  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
284  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
286  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
288  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
290  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
292  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
294  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
296  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
298  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
300  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
302  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
304  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
306  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
308  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
310  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
312  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
314  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
316  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
318  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
320  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
322  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
324  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
326  DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0 );
327 
328  END_TEST;
329 }
330 
332 {
333  int byteOffset = 200;
334  int bitMask = 200;
335  Pixel::GetAlphaOffsetAndMask( Pixel::Format( 123123123123 ), byteOffset, bitMask );
336  DALI_TEST_CHECK( byteOffset == 200 );
337  DALI_TEST_CHECK( bitMask == 200 );
338  END_TEST;
339 }
Dali Docs Home
Read more about Dali