]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/cintltst/cbididat.c
1 /********************************************************************
3 * Copyright (c) 1997-2013, 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"
21 dirPropNames
[U_CHAR_DIRECTION_COUNT
]={
22 "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON",
23 "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN",
24 "FSI", "LRI", "RLI", "PDI" /* new in Unicode 6.3/ICU 52 */
28 charFromDirProp
[U_CHAR_DIRECTION_COUNT
]={
29 /* L R EN ES ET AN CS B S WS ON */
30 0x61, 0x5d0, 0x30, 0x2f, 0x25, 0x660, 0x2c, 0xa, 0x9, 0x20, 0x26,
31 /* LRE LRO AL RLE RLO PDF NSM BN */
32 0x202a, 0x202d, 0x627, 0x202b, 0x202e, 0x202c, 0x308, 0x200c,
34 0x2068, 0x2066, 0x2067, 0x2069 /* new in Unicode 6.3/ICU 52 */
39 L
, L
, WS
, L
, WS
, EN
, L
, B
42 static const UBiDiLevel
44 0, 0, 0, 0, 0, 0, 0, 0
49 0, 1, 2, 3, 4, 5, 6, 7
54 R
, AL
, WS
, R
, AL
, WS
, R
57 static const UBiDiLevel
69 L
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
72 static const UBiDiLevel
74 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
79 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
84 L
, AL
, AL
, AL
, L
, AL
, AL
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
87 static const UBiDiLevel
89 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
94 0, 3, 2, 1, 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
99 AL
, R
, AL
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, R
, R
, WS
, L
, L
102 static const UBiDiLevel
104 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2
109 15, 14, 13, 12, 11, 10, 9, 6, 7, 8, 5, 4, 3, 2, 0, 1
117 static const UBiDiLevel
133 static const UBiDiLevel
145 RLE
, WS
, R
, R
, R
, WS
, PDF
, WS
, B
148 static const UBiDiLevel
150 1, 1, 1, 1, 1, 1, 1, 1, 1
155 8, 7, 6, 5, 4, 3, 2, 1, 0
160 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
161 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
162 AN
, RLO
, NSM
, LRE
, PDF
, RLE
, ES
, EN
, ON
/* 9 entries */
165 static const UBiDiLevel
167 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, /* 15 entries */
168 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, /* 15 entries */
169 126, 125, 125, 125, 125, 125, 125, 125, 125 /* 9 entries */
174 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, /* 15 entries */
175 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, /* 15 entries */
176 38, 7, 6, 5, 4, 3, 2, 1, 0 /* 9 entries */
181 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
182 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, /* 15 entries */
183 LRE
, BN
, CS
, RLO
, S
, PDF
, EN
, LRO
, AN
, ES
/* 10 entries */
186 static const UBiDiLevel
188 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, /* 15 entries */
189 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, /* 15 entries */
190 124, 124, 124, 64, 64, 124, 124, 126, 126, 124 /* 10 entries */
195 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, /* 15 entries */
196 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, /* 15 entries */
197 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 /* 10 entries */
202 S
, WS
, NSM
, RLE
, WS
, L
, L
, L
, WS
, LRO
, WS
, R
, R
, R
, WS
, RLO
, WS
, L
, L
, L
, /* 20 entries */
203 WS
, LRE
, WS
, R
, R
, R
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, WS
, AL
, AL
, AL
, WS
, PDF
, /* 20 entries */
204 WS
, L
, L
, L
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, ON
, PDF
, BN
, BN
, ON
, PDF
/* 18 entries */
207 static const UBiDiLevel
209 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, /* 20 entries */
210 3, 4, 4, 5, 5, 5, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, /* 20 entries */
211 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* 18 entries */
216 0, 1, 2, 44, 43, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 31, 30, 29, 28, 27, /* 20 entries */
217 26, 20, 21, 24, 23, 22, 25, 19, 18, 17, 16, 15, 14, 32, 33, 34, 35, 36, 37, 38, /* 20 entries */
218 39, 40, 41, 42, 3, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 /* 18 entries */
223 NSM
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, L
, L
, L
, L
, WS
,
224 R
, R
, R
, R
, R
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, WS
, AL
,
225 AL
, AL
, AL
, WS
, EN
, EN
, ES
, EN
, EN
, CS
, S
, EN
, EN
, CS
, WS
,
226 EN
, EN
, WS
, AL
, AL
, AL
, AL
, AL
, B
, L
, L
, L
, L
, L
, L
,
227 L
, L
, WS
, AN
, AN
, CS
, AN
, AN
, WS
230 static const UBiDiLevel
232 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
237 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
240 static const UBiDiLevel
242 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
247 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
250 static const UBiDiLevel
252 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
257 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
260 static const UBiDiLevel
262 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
267 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
270 static const UBiDiLevel
272 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
277 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
282 ON
, L
, RLO
, CS
, R
, WS
, AN
, AN
, PDF
, LRE
, R
, L
, LRO
, WS
, BN
, ON
, S
, LRE
, LRO
, B
285 static const UBiDiLevel
287 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 4, 4, 4, 0, 0, 0, 0
292 0, 1, 15, 14, 13, 12, 11, 10, 4, 3, 2, 5, 6, 7, 8, 9, 16, 17, 18, 19
295 static const UBiDiLevel
307 RLO
, RLO
, AL
, AL
, WS
, EN
, ES
, ON
, WS
, S
, S
, PDF
, LRO
, WS
, AL
, ET
, RLE
, ON
, EN
, B
310 static const UBiDiLevel
325 static const UBiDiLevel
332 L
, L
, L
, WS
, L
, L
, L
, WS
, L
, L
, L
335 static const UBiDiLevel
337 2, 2, 2, 2, 2, 2, 2, 1
342 1, 2, 3, 4, 5, 6, 7, 0
347 R
, R
, R
, WS
, R
, R
, R
, WS
, R
, R
, R
350 static const UBiDiLevel
352 1, 1, 1, 1, 1, 1, 1, 0
357 6, 5, 4, 3, 2, 1, 0, 7
365 static const UBiDiLevel
377 {testText1
, ARRAY_LENGTH(testText1
), UBIDI_DEFAULT_LTR
, -1, -1,
379 testLevels1
, testVisualMap1
},
380 {testText2
, ARRAY_LENGTH(testText2
), UBIDI_DEFAULT_LTR
, -1, -1,
382 testLevels2
, testVisualMap2
},
383 {testText3
, ARRAY_LENGTH(testText3
), UBIDI_DEFAULT_LTR
, -1, -1,
385 testLevels3
, testVisualMap3
},
386 {testText4
, ARRAY_LENGTH(testText4
), UBIDI_DEFAULT_LTR
, -1, -1,
388 testLevels4
, testVisualMap4
},
389 {testText5
, ARRAY_LENGTH(testText5
), UBIDI_DEFAULT_LTR
, -1, -1,
391 testLevels5
, testVisualMap5
},
392 {testText6
, ARRAY_LENGTH(testText6
), UBIDI_DEFAULT_LTR
, -1, -1,
394 testLevels6
, testVisualMap6
},
395 {NULL
, 0, UBIDI_DEFAULT_LTR
, -1, -1,
398 {testText8
, ARRAY_LENGTH(testText8
), UBIDI_DEFAULT_LTR
, -1, -1,
400 testLevels8
, testVisualMap8
},
401 {testText9
, ARRAY_LENGTH(testText9
), 64, -1, -1,
403 testLevels9
, testVisualMap9
},
404 {testText10
, ARRAY_LENGTH(testText10
), 64, -1, -1,
406 testLevels10
, testVisualMap10
},
407 {testText11
, ARRAY_LENGTH(testText11
), UBIDI_DEFAULT_LTR
, -1, -1,
409 testLevels11
, testVisualMap11
},
410 {testText12
, ARRAY_LENGTH(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
412 testLevels12
, testVisualMap12
},
413 {testText12
, ARRAY_LENGTH(testText12
), UBIDI_DEFAULT_RTL
, -1, -1,
415 testLevels13
, testVisualMap13
},
416 {testText12
, ARRAY_LENGTH(testText12
), 2, -1, -1,
418 testLevels14
, testVisualMap14
},
419 {testText12
, ARRAY_LENGTH(testText12
), 5, -1, -1,
421 testLevels15
, testVisualMap15
},
422 {testText12
, ARRAY_LENGTH(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
424 testLevels16
, testVisualMap16
},
425 {testText13
, ARRAY_LENGTH(testText13
), UBIDI_DEFAULT_LTR
, -1, -1,
427 testLevels17
, testVisualMap17
},
428 {testText13
, ARRAY_LENGTH(testText13
), UBIDI_DEFAULT_LTR
, 0, 6,
430 testLevels18
, testVisualMap18
},
431 {testText14
, ARRAY_LENGTH(testText14
), UBIDI_DEFAULT_LTR
, 13, 14,
433 testLevels19
, testVisualMap19
},
434 {testText15
, ARRAY_LENGTH(testText15
), UBIDI_DEFAULT_LTR
, 2, 3,
436 testLevels20
, testVisualMap19
},
437 {testText16
, ARRAY_LENGTH(testText16
), UBIDI_RTL
, 0, 8,
439 testLevels21
, testVisualMap20
},
440 {testText17
, ARRAY_LENGTH(testText17
), UBIDI_LTR
, 0, 8,
442 testLevels22
, testVisualMap21
},
443 {testTextXX
, ARRAY_LENGTH(testTextXX
), UBIDI_RTL
, -1, -1,
444 UBIDI_MIXED
, 1, testLevelsXX
, testVisualMapXX
}
448 bidiTestCount
=ARRAY_LENGTH(tests
);