]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/cintltst/cbididat.c
1 /********************************************************************
3 * Copyright (c) 1997-2004, 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
[dirPropCount
]={
22 "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON",
23 "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN"
27 charFromDirProp
[dirPropCount
]={
28 /* L R EN ES ET AN CS B S WS ON */
29 0x61, 0x5d0, 0x30, 0x2f, 0x25, 0x660, 0x2c, 0xa, 0x9, 0x20, 0x26,
30 /* LRE LRO AL RLE RLO PDF NSM BN */
31 0x202a, 0x202d, 0x627, 0x202b, 0x202e, 0x202c, 0x308, 0x200c
36 L
, L
, WS
, L
, WS
, EN
, L
, B
39 static const UBiDiLevel
41 0, 0, 0, 0, 0, 0, 0, 0
46 0, 1, 2, 3, 4, 5, 6, 7
51 R
, AL
, WS
, R
, AL
, WS
, R
54 static const UBiDiLevel
66 L
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
69 static const UBiDiLevel
71 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
76 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
81 L
, AL
, AL
, AL
, L
, AL
, AL
, L
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, L
, L
84 static const UBiDiLevel
86 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
91 0, 3, 2, 1, 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
96 AL
, R
, AL
, WS
, EN
, CS
, WS
, EN
, CS
, EN
, WS
, R
, R
, WS
, L
, L
99 static const UBiDiLevel
101 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2
106 15, 14, 13, 12, 11, 10, 9, 6, 7, 8, 5, 4, 3, 2, 0, 1
114 static const UBiDiLevel
130 static const UBiDiLevel
142 RLE
, WS
, R
, R
, R
, WS
, PDF
, WS
, B
145 static const UBiDiLevel
147 1, 1, 1, 1, 1, 1, 1, 1, 1
152 8, 7, 6, 5, 4, 3, 2, 1, 0
157 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
,
158 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
,
159 AN
, RLO
, NSM
, LRE
, PDF
, RLE
, ES
, EN
, ON
162 static const UBiDiLevel
164 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 61, 61, 61, 61, 61, 61, 61, 61
169 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 7, 6, 5, 4, 3, 2, 1, 0
174 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
,
175 LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
, LRE
,
176 LRE
, BN
, CS
, RLO
, S
, PDF
, EN
, LRO
, AN
, ES
179 static const UBiDiLevel
181 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 62, 62, 62, 62, 60
186 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39
191 S
, WS
, NSM
, RLE
, WS
, L
, L
, L
, WS
, LRO
, WS
, R
, R
, R
, WS
, RLO
, WS
, L
, L
,
192 L
, WS
, LRE
, WS
, R
, R
, R
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, WS
,
193 AL
, AL
, AL
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
, WS
, L
, L
, L
, WS
, PDF
,
194 ON
, PDF
, BN
, BN
, ON
, PDF
197 static const UBiDiLevel
199 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
204 0, 1, 2, 44, 43, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 31, 30, 29, 28, 27, 26, 20, 21, 24, 23, 22, 25, 19, 18, 17, 16, 15, 14, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 3, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
209 NSM
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, L
, L
, L
, L
, WS
,
210 R
, R
, R
, R
, R
, WS
, L
, L
, L
, L
, L
, L
, L
, WS
, WS
, AL
,
211 AL
, AL
, AL
, WS
, EN
, EN
, ES
, EN
, EN
, CS
, S
, EN
, EN
, CS
, WS
,
212 EN
, EN
, WS
, AL
, AL
, AL
, AL
, AL
, B
, L
, L
, L
, L
, L
, L
,
213 L
, L
, WS
, AN
, AN
, CS
, AN
, AN
, WS
216 static const UBiDiLevel
218 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
223 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
226 static const UBiDiLevel
228 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
233 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
236 static const UBiDiLevel
238 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
243 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
246 static const UBiDiLevel
248 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
253 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
256 static const UBiDiLevel
258 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
263 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
268 ON
, L
, RLO
, CS
, R
, WS
, AN
, AN
, PDF
, LRE
, R
, L
, LRO
, WS
, BN
, ON
, S
, LRE
, LRO
, B
271 static const UBiDiLevel
273 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 4, 4, 4, 0, 0, 0, 0
278 0, 1, 15, 14, 13, 12, 11, 10, 4, 3, 2, 5, 6, 7, 8, 9, 16, 17, 18, 19
281 static const UBiDiLevel
293 RLO
, RLO
, AL
, AL
, WS
, EN
, ES
, ON
, WS
, S
, S
, PDF
, LRO
, WS
, AL
, ET
, RLE
, ON
, EN
, B
296 static const UBiDiLevel
311 static const UBiDiLevel
318 L
, L
, L
, WS
, L
, L
, L
, WS
, L
, L
, L
321 static const UBiDiLevel
323 2, 2, 2, 2, 2, 2, 2, 1
328 1, 2, 3, 4, 5, 6, 7, 0
333 R
, R
, R
, WS
, R
, R
, R
, WS
, R
, R
, R
336 static const UBiDiLevel
338 1, 1, 1, 1, 1, 1, 1, 0
343 6, 5, 4, 3, 2, 1, 0, 7
351 static const UBiDiLevel
363 {testText1
, ARRAY_LENGTH(testText1
), UBIDI_DEFAULT_LTR
, -1, -1,
365 testLevels1
, testVisualMap1
},
366 {testText2
, ARRAY_LENGTH(testText2
), UBIDI_DEFAULT_LTR
, -1, -1,
368 testLevels2
, testVisualMap2
},
369 {testText3
, ARRAY_LENGTH(testText3
), UBIDI_DEFAULT_LTR
, -1, -1,
371 testLevels3
, testVisualMap3
},
372 {testText4
, ARRAY_LENGTH(testText4
), UBIDI_DEFAULT_LTR
, -1, -1,
374 testLevels4
, testVisualMap4
},
375 {testText5
, ARRAY_LENGTH(testText5
), UBIDI_DEFAULT_LTR
, -1, -1,
377 testLevels5
, testVisualMap5
},
378 {testText6
, ARRAY_LENGTH(testText6
), UBIDI_DEFAULT_LTR
, -1, -1,
380 testLevels6
, testVisualMap6
},
381 {NULL
, 0, UBIDI_DEFAULT_LTR
, -1, -1,
384 {testText8
, ARRAY_LENGTH(testText8
), UBIDI_DEFAULT_LTR
, -1, -1,
386 testLevels8
, testVisualMap8
},
387 {testText9
, ARRAY_LENGTH(testText9
), UBIDI_DEFAULT_LTR
, -1, -1,
389 testLevels9
, testVisualMap9
},
390 {testText10
, ARRAY_LENGTH(testText10
), UBIDI_DEFAULT_LTR
, -1, -1,
392 testLevels10
, testVisualMap10
},
393 {testText11
, ARRAY_LENGTH(testText11
), UBIDI_DEFAULT_LTR
, -1, -1,
395 testLevels11
, testVisualMap11
},
396 {testText12
, ARRAY_LENGTH(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
398 testLevels12
, testVisualMap12
},
399 {testText12
, ARRAY_LENGTH(testText12
), UBIDI_DEFAULT_RTL
, -1, -1,
401 testLevels13
, testVisualMap13
},
402 {testText12
, ARRAY_LENGTH(testText12
), 2, -1, -1,
404 testLevels14
, testVisualMap14
},
405 {testText12
, ARRAY_LENGTH(testText12
), 5, -1, -1,
407 testLevels15
, testVisualMap15
},
408 {testText12
, ARRAY_LENGTH(testText12
), UBIDI_DEFAULT_LTR
, -1, -1,
410 testLevels16
, testVisualMap16
},
411 {testText13
, ARRAY_LENGTH(testText13
), UBIDI_DEFAULT_LTR
, -1, -1,
413 testLevels17
, testVisualMap17
},
414 {testText13
, ARRAY_LENGTH(testText13
), UBIDI_DEFAULT_LTR
, 0, 6,
416 testLevels18
, testVisualMap18
},
417 {testText14
, ARRAY_LENGTH(testText14
), UBIDI_DEFAULT_LTR
, 13, 14,
419 testLevels19
, testVisualMap19
},
420 {testText15
, ARRAY_LENGTH(testText15
), UBIDI_DEFAULT_LTR
, 2, 3,
422 testLevels20
, testVisualMap19
},
423 {testText16
, ARRAY_LENGTH(testText16
), UBIDI_RTL
, 0, 8,
425 testLevels21
, testVisualMap20
},
426 {testText17
, ARRAY_LENGTH(testText17
), UBIDI_LTR
, 0, 8,
428 testLevels22
, testVisualMap21
},
429 {testTextXX
, ARRAY_LENGTH(testTextXX
), UBIDI_RTL
, -1, -1,
430 UBIDI_MIXED
, 1, testLevelsXX
, testVisualMapXX
}
434 bidiTestCount
=ARRAY_LENGTH(tests
);