]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/cintltst/cbididat.c
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /********************************************************************
5 * Copyright (c) 1997-2016, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 ********************************************************************/
8 /* file name: cbididat.c
10 * tab size: 8 (not used)
13 * created on: 1999sep22
14 * created by: Markus W. Scherer
17 #include "unicode/utypes.h"
18 #include "unicode/uchar.h"
19 #include "unicode/ubidi.h"
24 dirPropNames
[U_CHAR_DIRECTION_COUNT
]={
25 "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON",
26 "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN",
27 "FSI", "LRI", "RLI", "PDI" /* new in Unicode 6.3/ICU 52 */
31 charFromDirProp
[U_CHAR_DIRECTION_COUNT
]={
32 /* L R EN ES ET AN CS B S WS ON */
33 0x61, 0x5d0, 0x30, 0x2f, 0x25, 0x660, 0x2c, 0xa, 0x9, 0x20, 0x26,
34 /* LRE LRO AL RLE RLO PDF NSM BN */
35 0x202a, 0x202d, 0x627, 0x202b, 0x202e, 0x202c, 0x308, 0x200c,
37 0x2068, 0x2066, 0x2067, 0x2069 /* new in Unicode 6.3/ICU 52 */
42 L
, L
, WS
, L
, WS
, EN
, L
, B
45 static const UBiDiLevel
47 0, 0, 0, 0, 0, 0, 0, 0
52 0, 1, 2, 3, 4, 5, 6, 7
57 R
, AL
, WS
, R
, AL
, WS
, R
60 static const UBiDiLevel
72 L
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
75 static const UBiDiLevel
77 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
82 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
87 L
, AL
, AL
, AL
, L
, AL
, AL
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
90 static const UBiDiLevel
92 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
97 0, 3, 2, 1, 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
102 AL
, R
, AL
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, R
, R
, WS
, L
, L
105 static const UBiDiLevel
107 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2
112 15, 14, 13, 12, 11, 10, 9, 6, 7, 8, 5, 4, 3, 2, 0, 1
120 static const UBiDiLevel
136 static const UBiDiLevel
148 RLE
, WS
, R
, R
, R
, WS
, PDF
, WS
, B
151 static const UBiDiLevel
153 1, 1, 1, 1, 1, 1, 1, 1, 1
158 8, 7, 6, 5, 4, 3, 2, 1, 0
163 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
164 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
165 AN
, RLO
, NSM
, LRE
, PDF
, RLE
, ES
, EN
, ON
/* 9 entries */
168 static const UBiDiLevel
170 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, /* 15 entries */
171 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, /* 15 entries */
172 126, 125, 125, 125, 125, 125, 125, 125, 125 /* 9 entries */
177 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 15 entries */
178 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, /* 15 entries */
179 38, 7, 6, 5, 4, 3, 2, 1, 0 /* 9 entries */
184 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
185 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
186 LRE
, BN
, CS
, RLO
, S
, PDF
, EN
, LRO
, AN
, ES
/* 10 entries */
189 static const UBiDiLevel
191 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, /* 15 entries */
192 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, /* 15 entries */
193 124, 124, 124, 64, 64, 124, 124, 126, 126, 124 /* 10 entries */
198 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, /* 15 entries */
199 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, /* 15 entries */
200 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 /* 10 entries */
205 S
, WS
, NSM
, RLE
, WS
, L
, L
, L
, WS
, LRO
, WS
, R
, R
, R
, WS
, RLO
, WS
, L
, L
, L
, /* 20 entries */
206 WS
, LRE
, WS
, R
, R
, R
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, WS
, AL
, AL
, AL
, WS
, PDF
, /* 20 entries */
207 WS
, L
, L
, L
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, ON
, PDF
, BN
, BN
, ON
, PDF
/* 18 entries */
210 static const UBiDiLevel
212 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, /* 20 entries */
213 3, 4, 4, 5, 5, 5, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, /* 20 entries */
214 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* 18 entries */
219 0, 1, 2, 44, 43, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 31, 30, 29, 28, 27, /* 20 entries */
220 26, 20, 21, 24, 23, 22, 25, 19, 18, 17, 16, 15, 14, 32, 33, 34, 35, 36, 37, 38, /* 20 entries */
221 39, 40, 41, 42, 3, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 /* 18 entries */
226 NSM
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, L
, L
, L
, L
, WS
,
227 R
, R
, R
, R
, R
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, WS
, AL
,
228 AL
, AL
, AL
, WS
, EN
, EN
, ES
, EN
, EN
, CS
, S
, EN
, EN
, CS
, WS
,
229 EN
, EN
, WS
, AL
, AL
, AL
, AL
, AL
, B
, L
, L
, L
, L
, L
, L
,
230 L
, L
, WS
, AN
, AN
, CS
, AN
, AN
, WS
233 static const UBiDiLevel
235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0
240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 18, 17, 16, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 40, 39, 38, 37, 36, 34, 35, 33, 31, 32, 30, 41, 52, 53, 51, 50, 48, 49, 47, 46, 45, 44, 43, 42, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
243 static const UBiDiLevel
245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0
250 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 18, 17, 16, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 40, 39, 38, 37, 36, 34, 35, 33, 31, 32, 30, 41, 52, 53, 51, 50, 48, 49, 47, 46, 45, 44, 43, 42, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
253 static const UBiDiLevel
255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 3, 4, 4, 3, 2, 4, 4, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2
260 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 18, 17, 16, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 40, 39, 38, 37, 36, 34, 35, 33, 31, 32, 30, 41, 52, 53, 51, 50, 48, 49, 47, 46, 45, 44, 43, 42, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
263 static const UBiDiLevel
265 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 6, 6, 5, 6, 6, 5, 5, 6, 6, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 5
270 69, 68, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 55, 54, 53, 52, 51, 50, 49, 42, 43, 44, 45, 46, 47, 48, 41, 40, 39, 38, 37, 36, 35, 33, 34, 32, 30, 31, 29, 28, 26, 27, 25, 24, 22, 23, 21, 20, 19, 18, 17, 16, 15, 7, 8, 9, 10, 11, 12, 13, 14, 6, 1, 2, 3, 4, 5, 0
273 static const UBiDiLevel
275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0
280 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 18, 17, 16, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 40, 39, 38, 37, 36, 34, 35, 33, 31, 32, 30, 41, 52, 53, 51, 50, 48, 49, 47, 46, 45, 44, 43, 42, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
285 ON
, L
, RLO
, CS
, R
, WS
, AN
, AN
, PDF
, LRE
, R
, L
, LRO
, WS
, BN
, ON
, S
, LRE
, LRO
, B
288 static const UBiDiLevel
290 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 4, 4, 4, 0, 0, 0, 0
295 0, 1, 15, 14, 13, 12, 11, 10, 4, 3, 2, 5, 6, 7, 8, 9, 16, 17, 18, 19
298 static const UBiDiLevel
310 RLO
, RLO
, AL
, AL
, WS
, EN
, ES
, ON
, WS
, S
, S
, PDF
, LRO
, WS
, AL
, ET
, RLE
, ON
, EN
, B
313 static const UBiDiLevel
328 static const UBiDiLevel
335 L
, L
, L
, WS
, L
, L
, L
, WS
, L
, L
, L
338 static const UBiDiLevel
340 2, 2, 2, 2, 2, 2, 2, 1
345 1, 2, 3, 4, 5, 6, 7, 0
350 R
, R
, R
, WS
, R
, R
, R
, WS
, R
, R
, R
353 static const UBiDiLevel
355 1, 1, 1, 1, 1, 1, 1, 0
360 6, 5, 4, 3, 2, 1, 0, 7
368 static const UBiDiLevel
380 {testText1
, UPRV_LENGTHOF(testText1
), UBIDI_DEFAULT_LTR
, -1, -1,
382 testLevels1
, testVisualMap1
},
383 {testText2
, UPRV_LENGTHOF(testText2
), UBIDI_DEFAULT_LTR
, -1, -1,
385 testLevels2
, testVisualMap2
},
386 {testText3
, UPRV_LENGTHOF(testText3
), UBIDI_DEFAULT_LTR
, -1, -1,
388 testLevels3
, testVisualMap3
},
389 {testText4
, UPRV_LENGTHOF(testText4
), UBIDI_DEFAULT_LTR
, -1, -1,
391 testLevels4
, testVisualMap4
},
392 {testText5
, UPRV_LENGTHOF(testText5
), UBIDI_DEFAULT_LTR
, -1, -1,
394 testLevels5
, testVisualMap5
},
395 {testText6
, UPRV_LENGTHOF(testText6
), UBIDI_DEFAULT_LTR
, -1, -1,
397 testLevels6
, testVisualMap6
},
398 {NULL
, 0, UBIDI_DEFAULT_LTR
, -1, -1,
401 {testText8
, UPRV_LENGTHOF(testText8
), UBIDI_DEFAULT_LTR
, -1, -1,
403 testLevels8
, testVisualMap8
},
404 {testText9
, UPRV_LENGTHOF(testText9
), 64, -1, -1,
406 testLevels9
, testVisualMap9
},
407 {testText10
, UPRV_LENGTHOF(testText10
), 64, -1, -1,
409 testLevels10
, testVisualMap10
},
410 {testText11
, UPRV_LENGTHOF(testText11
), UBIDI_DEFAULT_LTR
, -1, -1,
412 testLevels11
, testVisualMap11
},
413 {testText12
, UPRV_LENGTHOF(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
415 testLevels12
, testVisualMap12
},
416 {testText12
, UPRV_LENGTHOF(testText12
), UBIDI_DEFAULT_RTL
, -1, -1,
418 testLevels13
, testVisualMap13
},
419 {testText12
, UPRV_LENGTHOF(testText12
), 2, -1, -1,
421 testLevels14
, testVisualMap14
},
422 {testText12
, UPRV_LENGTHOF(testText12
), 5, -1, -1,
424 testLevels15
, testVisualMap15
},
425 {testText12
, UPRV_LENGTHOF(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
427 testLevels16
, testVisualMap16
},
428 {testText13
, UPRV_LENGTHOF(testText13
), UBIDI_DEFAULT_LTR
, -1, -1,
430 testLevels17
, testVisualMap17
},
431 {testText13
, UPRV_LENGTHOF(testText13
), UBIDI_DEFAULT_LTR
, 0, 6,
433 testLevels18
, testVisualMap18
},
434 {testText14
, UPRV_LENGTHOF(testText14
), UBIDI_DEFAULT_LTR
, 13, 14,
436 testLevels19
, testVisualMap19
},
437 {testText15
, UPRV_LENGTHOF(testText15
), UBIDI_DEFAULT_LTR
, 2, 3,
439 testLevels20
, testVisualMap19
},
440 {testText16
, UPRV_LENGTHOF(testText16
), UBIDI_RTL
, 0, 8,
442 testLevels21
, testVisualMap20
},
443 {testText17
, UPRV_LENGTHOF(testText17
), UBIDI_LTR
, 0, 8,
445 testLevels22
, testVisualMap21
},
446 {testTextXX
, UPRV_LENGTHOF(testTextXX
), UBIDI_RTL
, -1, -1,
447 UBIDI_MIXED
, 1, testLevelsXX
, testVisualMapXX
}
451 bidiTestCount
=UPRV_LENGTHOF(tests
);