diff options
Diffstat (limited to 'Build/source/libs/icu-xetex/test/cintltst/cbididat.c')
-rw-r--r-- | Build/source/libs/icu-xetex/test/cintltst/cbididat.c | 434 |
1 files changed, 434 insertions, 0 deletions
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cbididat.c b/Build/source/libs/icu-xetex/test/cintltst/cbididat.c new file mode 100644 index 00000000000..4b804ff9684 --- /dev/null +++ b/Build/source/libs/icu-xetex/test/cintltst/cbididat.c @@ -0,0 +1,434 @@ +/******************************************************************** + * COPYRIGHT: + * Copyright (c) 1997-2004, International Business Machines Corporation and + * others. All Rights Reserved. + ********************************************************************/ +/* file name: cbididat.c +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* created on: 1999sep22 +* created by: Markus W. Scherer +*/ + +#include "unicode/utypes.h" +#include "unicode/uchar.h" +#include "unicode/ubidi.h" +#include "cbiditst.h" + +const char * +dirPropNames[dirPropCount]={ + "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON", + "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN" +}; + +UChar +charFromDirProp[dirPropCount]={ + /* L R EN ES ET AN CS B S WS ON */ + 0x61, 0x5d0, 0x30, 0x2f, 0x25, 0x660, 0x2c, 0xa, 0x9, 0x20, 0x26, + /* LRE LRO AL RLE RLO PDF NSM BN */ + 0x202a, 0x202d, 0x627, 0x202b, 0x202e, 0x202c, 0x308, 0x200c +}; + +static const uint8_t +testText1[]={ + L, L, WS, L, WS, EN, L, B +}; + +static const UBiDiLevel +testLevels1[]={ + 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const uint8_t +testVisualMap1[]={ + 0, 1, 2, 3, 4, 5, 6, 7 +}; + +static const uint8_t +testText2[]={ + R, AL, WS, R, AL, WS, R +}; + +static const UBiDiLevel +testLevels2[]={ + 1, 1, 1, 1, 1, 1, 1 +}; + +static const uint8_t +testVisualMap2[]={ + 6, 5, 4, 3, 2, 1, 0 +}; + +static const uint8_t +testText3[]={ + L, L, WS, EN, CS, WS, EN, CS, EN, WS, L, L +}; + +static const UBiDiLevel +testLevels3[]={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const uint8_t +testVisualMap3[]={ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 +}; + +static const uint8_t +testText4[]={ + L, AL, AL, AL, L, AL, AL, L, WS, EN, CS, WS, EN, CS, EN, WS, L, L +}; + +static const UBiDiLevel +testLevels4[]={ + 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const uint8_t +testVisualMap4[]={ + 0, 3, 2, 1, 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 +}; + +static const uint8_t +testText5[]={ + AL, R, AL, WS, EN, CS, WS, EN, CS, EN, WS, R, R, WS, L, L +}; + +static const UBiDiLevel +testLevels5[]={ + 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2 +}; + +static const uint8_t +testVisualMap5[]={ + 15, 14, 13, 12, 11, 10, 9, 6, 7, 8, 5, 4, 3, 2, 0, 1 +}; + +static const uint8_t +testText6[]={ + R, EN, NSM, ET +}; + +static const UBiDiLevel +testLevels6[]={ + 1, 2, 2, 2 +}; + +static const uint8_t +testVisualMap6[]={ + 3, 0, 1, 2 +}; + +#if 0 +static const uint8_t +testText7[]={ + /* empty */ +}; + +static const UBiDiLevel +testLevels7[]={ +}; + +static const uint8_t +testVisualMap7[]={ +}; + +#endif + +static const uint8_t +testText8[]={ + RLE, WS, R, R, R, WS, PDF, WS, B +}; + +static const UBiDiLevel +testLevels8[]={ + 1, 1, 1, 1, 1, 1, 1, 1, 1 +}; + +static const uint8_t +testVisualMap8[]={ + 8, 7, 6, 5, 4, 3, 2, 1, 0 +}; + +static const uint8_t +testText9[]={ + LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, + LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, + AN, RLO, NSM, LRE, PDF, RLE, ES, EN, ON +}; + +static const UBiDiLevel +testLevels9[]={ + 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 +}; + +static const uint8_t +testVisualMap9[]={ + 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 +}; + +static const uint8_t +testText10[]={ + LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, + LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, LRE, + LRE, BN, CS, RLO, S, PDF, EN, LRO, AN, ES +}; + +static const UBiDiLevel +testLevels10[]={ + 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 +}; + +static const uint8_t +testVisualMap10[]={ + 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 +}; + +static const uint8_t +testText11[]={ + S, WS, NSM, RLE, WS, L, L, L, WS, LRO, WS, R, R, R, WS, RLO, WS, L, L, + L, WS, LRE, WS, R, R, R, WS, PDF, WS, L, L, L, WS, PDF, WS, + AL, AL, AL, WS, PDF, WS, L, L, L, WS, PDF, WS, L, L, L, WS, PDF, + ON, PDF, BN, BN, ON, PDF +}; + +static const UBiDiLevel +testLevels11[]={ + 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 +}; + +static const uint8_t +testVisualMap11[]={ + 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 +}; + +static const uint8_t +testText12[]={ + NSM, WS, L, L, L, L, L, L, L, WS, L, L, L, L, WS, + R, R, R, R, R, WS, L, L, L, L, L, L, L, WS, WS, AL, + AL, AL, AL, WS, EN, EN, ES, EN, EN, CS, S, EN, EN, CS, WS, + EN, EN, WS, AL, AL, AL, AL, AL, B, L, L, L, L, L, L, + L, L, WS, AN, AN, CS, AN, AN, WS +}; + +static const UBiDiLevel +testLevels12[]={ + 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 +}; + +static const uint8_t +testVisualMap12[]={ + 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 +}; + +static const UBiDiLevel +testLevels13[]={ + 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 +}; + +static const uint8_t +testVisualMap13[]={ + 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 +}; + +static const UBiDiLevel +testLevels14[]={ + 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 +}; + +static const uint8_t +testVisualMap14[]={ + 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 +}; + +static const UBiDiLevel +testLevels15[]={ + 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 +}; + +static const uint8_t +testVisualMap15[]={ + 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 +}; + +static const UBiDiLevel +testLevels16[]={ + 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 +}; + +static const uint8_t +testVisualMap16[]={ + 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 +}; + +static const uint8_t +testText13[]={ + ON, L, RLO, CS, R, WS, AN, AN, PDF, LRE, R, L, LRO, WS, BN, ON, S, LRE, LRO, B +}; + +static const UBiDiLevel +testLevels17[]={ + 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 4, 4, 4, 0, 0, 0, 0 +}; + +static const uint8_t +testVisualMap17[]={ + 0, 1, 15, 14, 13, 12, 11, 10, 4, 3, 2, 5, 6, 7, 8, 9, 16, 17, 18, 19 +}; + +static const UBiDiLevel +testLevels18[]={ + 0, 0, 1, 1, 1, 0 +}; + +static const uint8_t +testVisualMap18[]={ + 0, 1, 4, 3, 2, 5 +}; + +static const uint8_t +testText14[]={ + RLO, RLO, AL, AL, WS, EN, ES, ON, WS, S, S, PDF, LRO, WS, AL, ET, RLE, ON, EN, B +}; + +static const UBiDiLevel +testLevels19[]={ + 1 +}; + +static const uint8_t +testVisualMap19[]={ + 0 +}; + +static const uint8_t +testText15[]={ + R, L, CS, L +}; + +static const UBiDiLevel +testLevels20[]={ + 2 +}; + +static const uint8_t +testText16[]={ + L, L, L, WS, L, L, L, WS, L, L, L +}; + +static const UBiDiLevel +testLevels21[]={ + 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const uint8_t +testVisualMap20[]={ + 1, 2, 3, 4, 5, 6, 7, 0 +}; + +static const uint8_t +testText17[]={ + R, R, R, WS, R, R, R, WS, R, R, R +}; + +static const UBiDiLevel +testLevels22[]={ + 1, 1, 1, 1, 1, 1, 1, 0 +}; + +static const uint8_t +testVisualMap21[]={ + 6, 5, 4, 3, 2, 1, 0, 7 +}; + +static const uint8_t +testTextXX[]={ + L +}; + +static const UBiDiLevel +testLevelsXX[]={ + 2 +}; + +static const uint8_t +testVisualMapXX[]={ + 0 +}; + +BiDiTestData +tests[]={ + {testText1, ARRAY_LENGTH(testText1), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_LTR, 0, + testLevels1, testVisualMap1}, + {testText2, ARRAY_LENGTH(testText2), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_RTL, 1, + testLevels2, testVisualMap2}, + {testText3, ARRAY_LENGTH(testText3), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_LTR, 0, + testLevels3, testVisualMap3}, + {testText4, ARRAY_LENGTH(testText4), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels4, testVisualMap4}, + {testText5, ARRAY_LENGTH(testText5), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 1, + testLevels5, testVisualMap5}, + {testText6, ARRAY_LENGTH(testText6), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 1, + testLevels6, testVisualMap6}, + {NULL, 0, UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_LTR, 0, + NULL, NULL}, + {testText8, ARRAY_LENGTH(testText8), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_RTL, 1, + testLevels8, testVisualMap8}, + {testText9, ARRAY_LENGTH(testText9), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels9, testVisualMap9}, + {testText10, ARRAY_LENGTH(testText10), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels10, testVisualMap10}, + {testText11, ARRAY_LENGTH(testText11), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels11, testVisualMap11}, + {testText12, ARRAY_LENGTH(testText12), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels12, testVisualMap12}, + {testText12, ARRAY_LENGTH(testText12), UBIDI_DEFAULT_RTL, -1, -1, + UBIDI_MIXED, 0, + testLevels13, testVisualMap13}, + {testText12, ARRAY_LENGTH(testText12), 2, -1, -1, + UBIDI_MIXED, 2, + testLevels14, testVisualMap14}, + {testText12, ARRAY_LENGTH(testText12), 5, -1, -1, + UBIDI_MIXED, 5, + testLevels15, testVisualMap15}, + {testText12, ARRAY_LENGTH(testText12), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels16, testVisualMap16}, + {testText13, ARRAY_LENGTH(testText13), UBIDI_DEFAULT_LTR, -1, -1, + UBIDI_MIXED, 0, + testLevels17, testVisualMap17}, + {testText13, ARRAY_LENGTH(testText13), UBIDI_DEFAULT_LTR, 0, 6, + UBIDI_MIXED, 0, + testLevels18, testVisualMap18}, + {testText14, ARRAY_LENGTH(testText14), UBIDI_DEFAULT_LTR, 13, 14, + UBIDI_RTL, 1, + testLevels19, testVisualMap19}, + {testText15, ARRAY_LENGTH(testText15), UBIDI_DEFAULT_LTR, 2, 3, + UBIDI_LTR, 2, + testLevels20, testVisualMap19}, + {testText16, ARRAY_LENGTH(testText16), UBIDI_RTL, 0, 8, + UBIDI_MIXED, 1, + testLevels21, testVisualMap20}, + {testText17, ARRAY_LENGTH(testText17), UBIDI_LTR, 0, 8, + UBIDI_MIXED, 0, + testLevels22, testVisualMap21}, + {testTextXX, ARRAY_LENGTH(testTextXX), UBIDI_RTL, -1, -1, + UBIDI_MIXED, 1, testLevelsXX, testVisualMapXX} +}; + +int +bidiTestCount=ARRAY_LENGTH(tests); |