]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/cintltst/cbididat.c
1 /********************************************************************
3 * Copyright (c) 1997-2016, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 ********************************************************************/
6 /* file name: cbididat.c
8 * tab size: 8 (not used)
11 * created on: 1999sep22
12 * created by: Markus W. Scherer
15 #include "unicode/utypes.h"
16 #include "unicode/uchar.h"
17 #include "unicode/ubidi.h"
22 dirPropNames
[U_CHAR_DIRECTION_COUNT
]={
23 "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON",
24 "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN",
25 "FSI", "LRI", "RLI", "PDI" /* new in Unicode 6.3/ICU 52 */
29 charFromDirProp
[U_CHAR_DIRECTION_COUNT
]={
30 /* L R EN ES ET AN CS B S WS ON */
31 0x61, 0x5d0, 0x30, 0x2f, 0x25, 0x660, 0x2c, 0xa, 0x9, 0x20, 0x26,
32 /* LRE LRO AL RLE RLO PDF NSM BN */
33 0x202a, 0x202d, 0x627, 0x202b, 0x202e, 0x202c, 0x308, 0x200c,
35 0x2068, 0x2066, 0x2067, 0x2069 /* new in Unicode 6.3/ICU 52 */
40 L
, L
, WS
, L
, WS
, EN
, L
, B
43 static const UBiDiLevel
45 0, 0, 0, 0, 0, 0, 0, 0
50 0, 1, 2, 3, 4, 5, 6, 7
55 R
, AL
, WS
, R
, AL
, WS
, R
58 static const UBiDiLevel
70 L
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
73 static const UBiDiLevel
75 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
80 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
85 L
, AL
, AL
, AL
, L
, AL
, AL
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
88 static const UBiDiLevel
90 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
95 0, 3, 2, 1, 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
100 AL
, R
, AL
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, R
, R
, WS
, L
, L
103 static const UBiDiLevel
105 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2
110 15, 14, 13, 12, 11, 10, 9, 6, 7, 8, 5, 4, 3, 2, 0, 1
118 static const UBiDiLevel
134 static const UBiDiLevel
146 RLE
, WS
, R
, R
, R
, WS
, PDF
, WS
, B
149 static const UBiDiLevel
151 1, 1, 1, 1, 1, 1, 1, 1, 1
156 8, 7, 6, 5, 4, 3, 2, 1, 0
161 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
162 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
163 AN
, RLO
, NSM
, LRE
, PDF
, RLE
, ES
, EN
, ON
/* 9 entries */
166 static const UBiDiLevel
168 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, /* 15 entries */
169 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, /* 15 entries */
170 126, 125, 125, 125, 125, 125, 125, 125, 125 /* 9 entries */
175 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 15 entries */
176 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, /* 15 entries */
177 38, 7, 6, 5, 4, 3, 2, 1, 0 /* 9 entries */
182 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
183 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
184 LRE
, BN
, CS
, RLO
, S
, PDF
, EN
, LRO
, AN
, ES
/* 10 entries */
187 static const UBiDiLevel
189 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, /* 15 entries */
190 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, /* 15 entries */
191 124, 124, 124, 64, 64, 124, 124, 126, 126, 124 /* 10 entries */
196 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, /* 15 entries */
197 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, /* 15 entries */
198 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 /* 10 entries */
203 S
, WS
, NSM
, RLE
, WS
, L
, L
, L
, WS
, LRO
, WS
, R
, R
, R
, WS
, RLO
, WS
, L
, L
, L
, /* 20 entries */
204 WS
, LRE
, WS
, R
, R
, R
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, WS
, AL
, AL
, AL
, WS
, PDF
, /* 20 entries */
205 WS
, L
, L
, L
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, ON
, PDF
, BN
, BN
, ON
, PDF
/* 18 entries */
208 static const UBiDiLevel
210 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, /* 20 entries */
211 3, 4, 4, 5, 5, 5, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, /* 20 entries */
212 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* 18 entries */
217 0, 1, 2, 44, 43, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 31, 30, 29, 28, 27, /* 20 entries */
218 26, 20, 21, 24, 23, 22, 25, 19, 18, 17, 16, 15, 14, 32, 33, 34, 35, 36, 37, 38, /* 20 entries */
219 39, 40, 41, 42, 3, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 /* 18 entries */
224 NSM
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, L
, L
, L
, L
, WS
,
225 R
, R
, R
, R
, R
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, WS
, AL
,
226 AL
, AL
, AL
, WS
, EN
, EN
, ES
, EN
, EN
, CS
, S
, EN
, EN
, CS
, WS
,
227 EN
, EN
, WS
, AL
, AL
, AL
, AL
, AL
, B
, L
, L
, L
, L
, L
, L
,
228 L
, L
, WS
, AN
, AN
, CS
, AN
, AN
, WS
231 static const UBiDiLevel
233 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
238 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
241 static const UBiDiLevel
243 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
248 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
251 static const UBiDiLevel
253 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
258 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
261 static const UBiDiLevel
263 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
268 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
271 static const UBiDiLevel
273 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
278 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
283 ON
, L
, RLO
, CS
, R
, WS
, AN
, AN
, PDF
, LRE
, R
, L
, LRO
, WS
, BN
, ON
, S
, LRE
, LRO
, B
286 static const UBiDiLevel
288 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 4, 4, 4, 0, 0, 0, 0
293 0, 1, 15, 14, 13, 12, 11, 10, 4, 3, 2, 5, 6, 7, 8, 9, 16, 17, 18, 19
296 static const UBiDiLevel
308 RLO
, RLO
, AL
, AL
, WS
, EN
, ES
, ON
, WS
, S
, S
, PDF
, LRO
, WS
, AL
, ET
, RLE
, ON
, EN
, B
311 static const UBiDiLevel
326 static const UBiDiLevel
333 L
, L
, L
, WS
, L
, L
, L
, WS
, L
, L
, L
336 static const UBiDiLevel
338 2, 2, 2, 2, 2, 2, 2, 1
343 1, 2, 3, 4, 5, 6, 7, 0
348 R
, R
, R
, WS
, R
, R
, R
, WS
, R
, R
, R
351 static const UBiDiLevel
353 1, 1, 1, 1, 1, 1, 1, 0
358 6, 5, 4, 3, 2, 1, 0, 7
366 static const UBiDiLevel
378 {testText1
, UPRV_LENGTHOF(testText1
), UBIDI_DEFAULT_LTR
, -1, -1,
380 testLevels1
, testVisualMap1
},
381 {testText2
, UPRV_LENGTHOF(testText2
), UBIDI_DEFAULT_LTR
, -1, -1,
383 testLevels2
, testVisualMap2
},
384 {testText3
, UPRV_LENGTHOF(testText3
), UBIDI_DEFAULT_LTR
, -1, -1,
386 testLevels3
, testVisualMap3
},
387 {testText4
, UPRV_LENGTHOF(testText4
), UBIDI_DEFAULT_LTR
, -1, -1,
389 testLevels4
, testVisualMap4
},
390 {testText5
, UPRV_LENGTHOF(testText5
), UBIDI_DEFAULT_LTR
, -1, -1,
392 testLevels5
, testVisualMap5
},
393 {testText6
, UPRV_LENGTHOF(testText6
), UBIDI_DEFAULT_LTR
, -1, -1,
395 testLevels6
, testVisualMap6
},
396 {NULL
, 0, UBIDI_DEFAULT_LTR
, -1, -1,
399 {testText8
, UPRV_LENGTHOF(testText8
), UBIDI_DEFAULT_LTR
, -1, -1,
401 testLevels8
, testVisualMap8
},
402 {testText9
, UPRV_LENGTHOF(testText9
), 64, -1, -1,
404 testLevels9
, testVisualMap9
},
405 {testText10
, UPRV_LENGTHOF(testText10
), 64, -1, -1,
407 testLevels10
, testVisualMap10
},
408 {testText11
, UPRV_LENGTHOF(testText11
), UBIDI_DEFAULT_LTR
, -1, -1,
410 testLevels11
, testVisualMap11
},
411 {testText12
, UPRV_LENGTHOF(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
413 testLevels12
, testVisualMap12
},
414 {testText12
, UPRV_LENGTHOF(testText12
), UBIDI_DEFAULT_RTL
, -1, -1,
416 testLevels13
, testVisualMap13
},
417 {testText12
, UPRV_LENGTHOF(testText12
), 2, -1, -1,
419 testLevels14
, testVisualMap14
},
420 {testText12
, UPRV_LENGTHOF(testText12
), 5, -1, -1,
422 testLevels15
, testVisualMap15
},
423 {testText12
, UPRV_LENGTHOF(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
425 testLevels16
, testVisualMap16
},
426 {testText13
, UPRV_LENGTHOF(testText13
), UBIDI_DEFAULT_LTR
, -1, -1,
428 testLevels17
, testVisualMap17
},
429 {testText13
, UPRV_LENGTHOF(testText13
), UBIDI_DEFAULT_LTR
, 0, 6,
431 testLevels18
, testVisualMap18
},
432 {testText14
, UPRV_LENGTHOF(testText14
), UBIDI_DEFAULT_LTR
, 13, 14,
434 testLevels19
, testVisualMap19
},
435 {testText15
, UPRV_LENGTHOF(testText15
), UBIDI_DEFAULT_LTR
, 2, 3,
437 testLevels20
, testVisualMap19
},
438 {testText16
, UPRV_LENGTHOF(testText16
), UBIDI_RTL
, 0, 8,
440 testLevels21
, testVisualMap20
},
441 {testText17
, UPRV_LENGTHOF(testText17
), UBIDI_LTR
, 0, 8,
443 testLevels22
, testVisualMap21
},
444 {testTextXX
, UPRV_LENGTHOF(testTextXX
), UBIDI_RTL
, -1, -1,
445 UBIDI_MIXED
, 1, testLevelsXX
, testVisualMapXX
}
449 bidiTestCount
=UPRV_LENGTHOF(tests
);