Refactor script.cpp
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-TextScript.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/dali.h>
20 #include <dali/devel-api/text-abstraction/script.h>
21
22 using namespace Dali;
23 using namespace Dali::TextAbstraction;
24
25 void utc_dali_text_script_startup(void)
26 {
27   test_return_value = TET_UNDEF;
28 }
29
30 void utc_dali_text_script_cleanup(void)
31 {
32   test_return_value = TET_PASS;
33 }
34
35 namespace
36 {
37 void GetCharacterScriptCheckRange(Character start, Character end, Script expectedScript, const char * location)
38 {
39   for( auto character = start; character <= end; ++character )
40   {
41     if(!IsCommonScript(character)) // Some characters are part of the common script and can be in the range
42     {
43       DALI_TEST_EQUALS(expectedScript, GetCharacterScript(character), location);
44     }
45   }
46 }
47 } // namespace
48
49 int UtcDaliGetCharacterScript(void)
50 {
51   GetCharacterScriptCheckRange(0x0000, 0x001F, LATIN, TEST_LOCATION);
52   GetCharacterScriptCheckRange(0x0020, 0x002F, ASCII_PS, TEST_LOCATION);
53   GetCharacterScriptCheckRange(0x0030, 0x0039, ASCII_DIGITS, TEST_LOCATION);
54   GetCharacterScriptCheckRange(0x003A, 0x0040, ASCII_PS, TEST_LOCATION);
55   GetCharacterScriptCheckRange(0x0041, 0x005A, LATIN, TEST_LOCATION);
56   GetCharacterScriptCheckRange(0x005B, 0x0060, ASCII_PS, TEST_LOCATION);
57   GetCharacterScriptCheckRange(0x0061, 0x007A, LATIN, TEST_LOCATION);
58   GetCharacterScriptCheckRange(0x007B, 0x007E, ASCII_PS, TEST_LOCATION);
59   GetCharacterScriptCheckRange(0x007F, 0x009F, C1_CONTROLS, TEST_LOCATION);
60
61   GetCharacterScriptCheckRange(0x00A0, 0x00A8, C1_PS, TEST_LOCATION);
62   DALI_TEST_EQUALS(GetCharacterScript(0x00A9), EMOJI, TEST_LOCATION);
63   GetCharacterScriptCheckRange(0x00AA, 0x00AD, C1_PS, TEST_LOCATION);
64   DALI_TEST_EQUALS(GetCharacterScript(0x00AE), EMOJI, TEST_LOCATION);
65   GetCharacterScriptCheckRange(0x00AF, 0x00BF, C1_PS, TEST_LOCATION);
66
67   GetCharacterScriptCheckRange(0x00C0, 0x00D6, LATIN, TEST_LOCATION);
68   DALI_TEST_EQUALS(GetCharacterScript(0x00D7), C1_MATH, TEST_LOCATION);
69   GetCharacterScriptCheckRange(0x00D8, 0x00F6, LATIN, TEST_LOCATION);
70   DALI_TEST_EQUALS(GetCharacterScript(0x00F7), C1_MATH, TEST_LOCATION);
71   GetCharacterScriptCheckRange(0x00F8, 0x02B8, LATIN, TEST_LOCATION);
72   GetCharacterScriptCheckRange(0x02B9, 0x02BF, SML_P, TEST_LOCATION);
73   GetCharacterScriptCheckRange(0x02C0, 0x02FF, LATIN, TEST_LOCATION);
74
75   GetCharacterScriptCheckRange(0x0370, 0x03ff, GREEK, TEST_LOCATION);
76   GetCharacterScriptCheckRange(0x0400, 0x04ff, CYRILLIC, TEST_LOCATION);
77   GetCharacterScriptCheckRange(0x0500, 0x052f, CYRILLIC, TEST_LOCATION);
78   GetCharacterScriptCheckRange(0x0530, 0x058f, ARMENIAN, TEST_LOCATION);
79   GetCharacterScriptCheckRange(0x0591, 0x05f4, HEBREW, TEST_LOCATION);
80   GetCharacterScriptCheckRange(0x0600, 0x06ff, ARABIC, TEST_LOCATION);
81   GetCharacterScriptCheckRange(0x0750, 0x077f, ARABIC, TEST_LOCATION);
82   GetCharacterScriptCheckRange(0x08A0, 0x08ff, ARABIC, TEST_LOCATION);
83   GetCharacterScriptCheckRange(0x0900, 0x097f, DEVANAGARI, TEST_LOCATION);
84   GetCharacterScriptCheckRange(0x0980, 0x09ff, BENGALI, TEST_LOCATION);
85
86   GetCharacterScriptCheckRange(0x0a00, 0x0a7f, GURMUKHI, TEST_LOCATION);
87   GetCharacterScriptCheckRange(0x0a80, 0x0aff, GUJARATI, TEST_LOCATION);
88   GetCharacterScriptCheckRange(0x0b00, 0x0b7f, ORIYA, TEST_LOCATION);
89
90   GetCharacterScriptCheckRange(0x0b80, 0x0bff, TAMIL, TEST_LOCATION);
91   GetCharacterScriptCheckRange(0x0c00, 0x0c7f, TELUGU, TEST_LOCATION);
92   GetCharacterScriptCheckRange(0x0c80, 0x0cff, KANNADA, TEST_LOCATION);
93
94   GetCharacterScriptCheckRange(0x0d00, 0x0d7f, MALAYALAM, TEST_LOCATION);
95   GetCharacterScriptCheckRange(0x0d80, 0x0dff, SINHALA, TEST_LOCATION);
96   GetCharacterScriptCheckRange(0x0e00, 0x0e7f, THAI, TEST_LOCATION);
97   GetCharacterScriptCheckRange(0x0e80, 0x0eff, LAO, TEST_LOCATION);
98   GetCharacterScriptCheckRange(0x1000, 0x109f, BURMESE, TEST_LOCATION);
99   GetCharacterScriptCheckRange(0x10a0, 0x10ff, GEORGIAN, TEST_LOCATION);
100   GetCharacterScriptCheckRange(0x1100, 0x11ff, HANGUL, TEST_LOCATION);
101   GetCharacterScriptCheckRange(0x1200, 0x137f, GEEZ, TEST_LOCATION);
102   GetCharacterScriptCheckRange(0x1380, 0x139f, GEEZ, TEST_LOCATION);
103   GetCharacterScriptCheckRange(0x1700, 0x171f, BAYBAYIN, TEST_LOCATION);
104   GetCharacterScriptCheckRange(0x1780, 0x17ff, KHMER, TEST_LOCATION);
105   GetCharacterScriptCheckRange(0x19e0, 0x19ff, KHMER, TEST_LOCATION);
106   GetCharacterScriptCheckRange(0x1b80, 0x1bbf, SUNDANESE, TEST_LOCATION);
107   GetCharacterScriptCheckRange(0x1c50, 0x1c7f, OL_CHIKI, TEST_LOCATION);
108   GetCharacterScriptCheckRange(0x1cc0, 0x1ccf, SUNDANESE, TEST_LOCATION);
109
110   GetCharacterScriptCheckRange(0x1d00, 0x1D25, LATIN, TEST_LOCATION);
111   GetCharacterScriptCheckRange(0x1D26, 0x1D2B, PHONETIC_U, TEST_LOCATION);
112   GetCharacterScriptCheckRange(0x1D2C, 0x1D5C, LATIN, TEST_LOCATION);
113   GetCharacterScriptCheckRange(0x1D5D, 0x1D61, PHONETIC_SS, TEST_LOCATION);
114   GetCharacterScriptCheckRange(0x1D62, 0x1D65, LATIN, TEST_LOCATION);
115   GetCharacterScriptCheckRange(0x1D66, 0x1D6A, PHONETIC_SS, TEST_LOCATION);
116   GetCharacterScriptCheckRange(0x1D6B, 0x1D77, LATIN, TEST_LOCATION);
117   DALI_TEST_EQUALS(GetCharacterScript(0x1D78), PHONETIC_SS, TEST_LOCATION);
118   GetCharacterScriptCheckRange(0x1D79, 0x1DBE, LATIN, TEST_LOCATION);
119   DALI_TEST_EQUALS(GetCharacterScript(0x1DBF), PHONETIC_SS, TEST_LOCATION);
120   GetCharacterScriptCheckRange(0x1DC0, 0x1EFF, LATIN, TEST_LOCATION);
121
122   GetCharacterScriptCheckRange(0x1f00, 0x1fff, GREEK, TEST_LOCATION);
123   DALI_TEST_EQUALS(GetCharacterScript(0x203c), EMOJI, TEST_LOCATION);
124   DALI_TEST_EQUALS(GetCharacterScript(0x2049), EMOJI, TEST_LOCATION);
125
126   DALI_TEST_EQUALS(GetCharacterScript(0x2070), NUMERIC_SS, TEST_LOCATION);
127   GetCharacterScriptCheckRange(0x2071, 0x2073, LATIN, TEST_LOCATION);
128   GetCharacterScriptCheckRange(0x2074, 0x207E, NUMERIC_SS, TEST_LOCATION);
129   GetCharacterScriptCheckRange(0x207F, 0x209f, LATIN, TEST_LOCATION);
130
131   DALI_TEST_EQUALS(GetCharacterScript(0x20e3), EMOJI, TEST_LOCATION);
132
133   GetCharacterScriptCheckRange(0x2100, 0x2120, LETTER_LIKE, TEST_LOCATION);
134   DALI_TEST_EQUALS(GetCharacterScript(0x2122), EMOJI, TEST_LOCATION);
135   GetCharacterScriptCheckRange(0x212A, 0x212B, LATIN, TEST_LOCATION);
136   GetCharacterScriptCheckRange(0x212C, 0x2131, LETTER_LIKE, TEST_LOCATION);
137   DALI_TEST_EQUALS(GetCharacterScript(0x2132), LATIN, TEST_LOCATION);
138   GetCharacterScriptCheckRange(0x2133, 0x2138, LETTER_LIKE, TEST_LOCATION);
139   DALI_TEST_EQUALS(GetCharacterScript(0x2139), EMOJI, TEST_LOCATION);
140   GetCharacterScriptCheckRange(0x2140, 0x214D, LETTER_LIKE, TEST_LOCATION);
141   DALI_TEST_EQUALS(GetCharacterScript(0x214E), LATIN, TEST_LOCATION);
142   DALI_TEST_EQUALS(GetCharacterScript(0x214F), LETTER_LIKE, TEST_LOCATION);
143   GetCharacterScriptCheckRange(0x2150, 0x215F, FRACTIONS_NF, TEST_LOCATION);
144   GetCharacterScriptCheckRange(0x2160, 0x2188, LATIN, TEST_LOCATION);
145   DALI_TEST_EQUALS(GetCharacterScript(0x2189), FRACTIONS_NF, TEST_LOCATION);
146
147   GetCharacterScriptCheckRange(0x2194, 0x259f, EMOJI, TEST_LOCATION);
148   DALI_TEST_EQUALS(SYMBOLS2, GetCharacterScript(0x25a0), TEST_LOCATION);
149   DALI_TEST_EQUALS(SYMBOLS1, GetCharacterScript(0x25a1), TEST_LOCATION);
150   GetCharacterScriptCheckRange(0x25a2, 0x25a9, EMOJI, TEST_LOCATION);
151   DALI_TEST_EQUALS(SYMBOLS4, GetCharacterScript(0x25aa), TEST_LOCATION);
152   GetCharacterScriptCheckRange(0x25ab, 0x25ca, EMOJI, TEST_LOCATION);
153   DALI_TEST_EQUALS(SYMBOLS1, GetCharacterScript(0x25cb), TEST_LOCATION);
154   GetCharacterScriptCheckRange(0x25cc, 0x25ce, EMOJI, TEST_LOCATION);
155   DALI_TEST_EQUALS(SYMBOLS1, GetCharacterScript(0x25cf), TEST_LOCATION);
156   GetCharacterScriptCheckRange(0x25d0, 0x2605, EMOJI, TEST_LOCATION);
157   DALI_TEST_EQUALS(SYMBOLS4, GetCharacterScript(0x2606), TEST_LOCATION);
158   GetCharacterScriptCheckRange(0x2607, 0x2629, EMOJI, TEST_LOCATION);
159   DALI_TEST_EQUALS(SYMBOLS5, GetCharacterScript(0x262a), TEST_LOCATION);
160   GetCharacterScriptCheckRange(0x262b, 0x2660, EMOJI, TEST_LOCATION);
161   DALI_TEST_EQUALS(SYMBOLS3, GetCharacterScript(0x2661), TEST_LOCATION);
162   DALI_TEST_EQUALS(SYMBOLS3, GetCharacterScript(0x2662), TEST_LOCATION);
163   DALI_TEST_EQUALS(EMOJI, GetCharacterScript(0x2663), TEST_LOCATION);
164   DALI_TEST_EQUALS(SYMBOLS3, GetCharacterScript(0x2664), TEST_LOCATION);
165   GetCharacterScriptCheckRange(0x2665, 0x2666, EMOJI, TEST_LOCATION);
166   DALI_TEST_EQUALS(SYMBOLS3, GetCharacterScript(0x2667), TEST_LOCATION);
167   GetCharacterScriptCheckRange(0x2668, 0x2B55, EMOJI, TEST_LOCATION);
168
169   GetCharacterScriptCheckRange(0x2c60, 0x2c7f, LATIN, TEST_LOCATION);
170
171   GetCharacterScriptCheckRange(0x2c60, 0x2c7f, LATIN, TEST_LOCATION);
172
173   GetCharacterScriptCheckRange(0x2d00, 0x2d2f, GEORGIAN, TEST_LOCATION);
174   GetCharacterScriptCheckRange(0x2d80, 0x2ddf, GEEZ, TEST_LOCATION);
175   GetCharacterScriptCheckRange(0x2de0, 0x2dff, CYRILLIC, TEST_LOCATION);
176   GetCharacterScriptCheckRange(0x2e80, 0x2eff, CJK, TEST_LOCATION);
177   GetCharacterScriptCheckRange(0x2f00, 0x2fdf, CJK, TEST_LOCATION);
178   GetCharacterScriptCheckRange(0x3000, 0x303f, CJK, TEST_LOCATION);
179   GetCharacterScriptCheckRange(0x3040, 0x309f, HIRAGANA, TEST_LOCATION);
180   GetCharacterScriptCheckRange(0x30a0, 0x30ff, KATAKANA, TEST_LOCATION);
181   GetCharacterScriptCheckRange(0x3100, 0x312f, BOPOMOFO, TEST_LOCATION);
182   GetCharacterScriptCheckRange(0x3130, 0x318f, HANGUL, TEST_LOCATION);
183   GetCharacterScriptCheckRange(0x31a0, 0x31bf, BOPOMOFO, TEST_LOCATION);
184   GetCharacterScriptCheckRange(0x3200, 0x32ff, CJK, TEST_LOCATION);
185   GetCharacterScriptCheckRange(0x3400, 0x4dbf, CJK, TEST_LOCATION);
186   GetCharacterScriptCheckRange(0x4e00, 0x62ff, CJK, TEST_LOCATION);
187   GetCharacterScriptCheckRange(0x6300, 0x77ff, CJK, TEST_LOCATION);
188   GetCharacterScriptCheckRange(0x7800, 0x8cff, CJK, TEST_LOCATION);
189   GetCharacterScriptCheckRange(0x8d00, 0x9fff, CJK, TEST_LOCATION);
190   GetCharacterScriptCheckRange(0xa640, 0xa69f, CYRILLIC, TEST_LOCATION);
191
192   GetCharacterScriptCheckRange(0xa720, 0xA721, PHONETIC_U, TEST_LOCATION);
193   GetCharacterScriptCheckRange(0xa722, 0xA787, LATIN, TEST_LOCATION);
194   GetCharacterScriptCheckRange(0xA788, 0xA78A, NON_LATIN_LED, TEST_LOCATION);
195   GetCharacterScriptCheckRange(0xA78B, 0xa7ff, LATIN, TEST_LOCATION);
196
197
198   GetCharacterScriptCheckRange(0xa960, 0xa97f, HANGUL, TEST_LOCATION);
199   GetCharacterScriptCheckRange(0xa980, 0xa9fd, JAVANESE, TEST_LOCATION);
200   GetCharacterScriptCheckRange(0xab00, 0xab2f, GEEZ, TEST_LOCATION);
201   GetCharacterScriptCheckRange(0xab30, 0xab6f, LATIN, TEST_LOCATION);
202   GetCharacterScriptCheckRange(0xaae0, 0xaaff, MEITEI, TEST_LOCATION);
203   GetCharacterScriptCheckRange(0xabc0, 0xabff, MEITEI, TEST_LOCATION);
204   GetCharacterScriptCheckRange(0xac00, 0xd7af, HANGUL, TEST_LOCATION);
205   GetCharacterScriptCheckRange(0xd7b0, 0xd7ff, HANGUL, TEST_LOCATION);
206   GetCharacterScriptCheckRange(0xfb00, 0xfb06, LATIN, TEST_LOCATION);
207   GetCharacterScriptCheckRange(0xfb13, 0xfb17, ARMENIAN, TEST_LOCATION);
208   GetCharacterScriptCheckRange(0xfb1d, 0xfb4f, HEBREW, TEST_LOCATION);
209   GetCharacterScriptCheckRange(0xfb50, 0xfdff, ARABIC, TEST_LOCATION);
210
211   GetCharacterScriptCheckRange(0xfe70, 0xfeff, ARABIC, TEST_LOCATION);
212   GetCharacterScriptCheckRange(0xFF00, 0xFF20, HWFW_S, TEST_LOCATION);
213   GetCharacterScriptCheckRange(0xFF21, 0xFF3A, LATIN, TEST_LOCATION);
214   GetCharacterScriptCheckRange(0xFF3B, 0xFF40, HWFW_S, TEST_LOCATION);
215   GetCharacterScriptCheckRange(0xFF41, 0xFF5A, LATIN, TEST_LOCATION);
216   GetCharacterScriptCheckRange(0xFF5B, 0xFFEF, HWFW_S, TEST_LOCATION);
217
218   GetCharacterScriptCheckRange(0x1ee00, 0x1eeff, ARABIC, TEST_LOCATION);
219   GetCharacterScriptCheckRange(0x1f170, 0x1f6ff, EMOJI, TEST_LOCATION);
220   GetCharacterScriptCheckRange(0x1f900, 0x1f9ff, EMOJI, TEST_LOCATION);
221   GetCharacterScriptCheckRange(0x20000, 0x215ff, CJK, TEST_LOCATION);
222   GetCharacterScriptCheckRange(0x21600, 0x230ff, CJK, TEST_LOCATION);
223   GetCharacterScriptCheckRange(0x23100, 0x245ff, CJK, TEST_LOCATION);
224   GetCharacterScriptCheckRange(0x24600, 0x260ff, CJK, TEST_LOCATION);
225   GetCharacterScriptCheckRange(0x26100, 0x275ff, CJK, TEST_LOCATION);
226   GetCharacterScriptCheckRange(0x27600, 0x290ff, CJK, TEST_LOCATION);
227   GetCharacterScriptCheckRange(0x29100, 0x2a6df, CJK, TEST_LOCATION);
228   GetCharacterScriptCheckRange(0x2a700, 0x2b73f, CJK, TEST_LOCATION);
229   GetCharacterScriptCheckRange(0x2b740, 0x2b81f, CJK, TEST_LOCATION);
230
231   END_TEST;
232 }
233