Migrating to new test framework
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Pixel.cpp
1 //
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 #include <iostream>
18 #include <algorithm>
19
20 #include <stdlib.h>
21 #include <dali/dali.h>
22 #include <dali-test-suite-utils.h>
23
24 using std::max;
25 using namespace Dali;
26
27
28 static const float ROTATION_EPSILON = 0.0001f;
29
30 void utc_dali_pixel_startup(void)
31 {
32   test_return_value = TET_UNDEF;
33 }
34
35 void utc_dali_pixel_cleanup(void)
36 {
37   test_return_value = TET_PASS;
38 }
39
40 static void TestPixelEnumSize(const int size)
41 {
42   DALI_TEST_CHECK( (static_cast<int>( Pixel::LAST_VALID_PIXEL_FORMAT ) - static_cast<int>( Pixel::FIRST_VALID_PIXEL_FORMAT ) + 1 ) == size &&
43       "The Pixel::Format enum may have had new formats added. Expand the test cases to include them.");
44 }
45
46 int UtcDaliPixelHasAlpha(void)
47 {
48   TestApplication application;
49
50   tet_infoline("UtcDaliPixelHasAlpha");
51
52   TestPixelEnumSize( 26 );
53
54   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::L8) == false);
55   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB565) == false);
56   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB888) == false);
57   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB8888) == false);
58   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR8888) == false);
59   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR565) == false);
60   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_R11_EAC) == false);
61   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_R11_EAC) == false);
62   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RG11_EAC) == false);
63   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_RG11_EAC) == false);
64   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC2) == false);
65   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ETC2) == false);
66   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC1) == false);
67   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == false);
68
69   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::A8) == true);
70   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::LA88) == true);
71   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA5551) == true);
72   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA4444) == true);
73   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA8888) == true);
74   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA8888) == true);
75   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA5551) == true);
76   DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA4444) == true);
77   DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
78   DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
79   DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGBA8_ETC2_EAC ) == true );
80   DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true );
81   END_TEST;
82 }
83
84 int UtcDaliPixelGetBytesPerPixel(void)
85 {
86   TestApplication application;
87
88   tet_infoline("UtcDaliPixelGetBytesPerPixel");
89
90   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
91   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::A8) == 1);
92
93   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::LA88) == 2);
94   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB565) == 2);
95   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA5551) == 2);
96   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA4444) == 2);
97   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR565) == 2);
98   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA5551) == 2);
99   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA4444) == 2);
100
101   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
102
103   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB8888) == 4);
104   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR8888) == 4);
105   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA8888) == 4);
106   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4);
107
108   DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
109   END_TEST;
110 }
111
112 int UtcDaliPixelGetAlphaOffsetAndMask(void)
113 {
114   TestApplication application;
115
116   tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
117
118   int byteOffset = 0;
119   int bitMask = 0;
120
121   // Be sure that the number of cases tested below is correct:
122   TestPixelEnumSize( 26 );
123
124   Pixel::GetAlphaOffsetAndMask(Pixel::L8, byteOffset, bitMask);
125   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
126   Pixel::GetAlphaOffsetAndMask(Pixel::A8, byteOffset, bitMask);
127   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0xff);
128   Pixel::GetAlphaOffsetAndMask(Pixel::RGB888, byteOffset, bitMask);
129   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
130   Pixel::GetAlphaOffsetAndMask(Pixel::RGB565, byteOffset, bitMask);
131   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
132   Pixel::GetAlphaOffsetAndMask(Pixel::RGB8888, byteOffset, bitMask);
133   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
134   Pixel::GetAlphaOffsetAndMask(Pixel::BGR8888, byteOffset, bitMask);
135   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
136   Pixel::GetAlphaOffsetAndMask(Pixel::LA88, byteOffset, bitMask);
137   DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0xff);
138   Pixel::GetAlphaOffsetAndMask(Pixel::RGBA4444, byteOffset, bitMask);
139   DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
140   Pixel::GetAlphaOffsetAndMask(Pixel::RGBA5551, byteOffset, bitMask);
141   DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
142   Pixel::GetAlphaOffsetAndMask(Pixel::RGBA8888, byteOffset, bitMask);
143   DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
144   Pixel::GetAlphaOffsetAndMask(Pixel::BGRA8888, byteOffset, bitMask);
145   DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
146   Pixel::GetAlphaOffsetAndMask(Pixel::BGR565, byteOffset, bitMask);
147   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
148   Pixel::GetAlphaOffsetAndMask(Pixel::BGRA4444, byteOffset, bitMask);
149   DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
150   Pixel::GetAlphaOffsetAndMask(Pixel::BGRA5551, byteOffset, bitMask);
151   DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
152
153   // Compressed formats with no meaningful result:
154   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_R11_EAC, byteOffset, bitMask);
155   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
156   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_R11_EAC, byteOffset, bitMask);
157   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
158   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RG11_EAC, byteOffset, bitMask);
159   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
160   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_RG11_EAC, byteOffset, bitMask);
161   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
162   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC2, byteOffset, bitMask);
163   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
164   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ETC2, byteOffset, bitMask);
165   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
166   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC1, byteOffset, bitMask);
167   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
168   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1, byteOffset, bitMask);
169   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
170   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
171   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
172   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
173   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
174   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA8_ETC2_EAC, byteOffset, bitMask);
175   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
176   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, byteOffset, bitMask);
177   DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
178   END_TEST;
179 }