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