Index: icu46/source/test/cintltst/cbididat.c |
=================================================================== |
--- icu46/source/test/cintltst/cbididat.c (revision 0) |
+++ icu46/source/test/cintltst/cbididat.c (revision 0) |
@@ -0,0 +1,434 @@ |
+/******************************************************************** |
+ * COPYRIGHT: |
+ * Copyright (c) 1997-2007, 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 * const |
+dirPropNames[U_CHAR_DIRECTION_COUNT]={ |
+ "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S", "WS", "ON", |
+ "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN" |
+}; |
+ |
+UChar |
+charFromDirProp[U_CHAR_DIRECTION_COUNT]={ |
+ /* 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 |
+}; |
+ |
+const 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} |
+}; |
+ |
+const int |
+bidiTestCount=ARRAY_LENGTH(tests); |
Property changes on: icu46/source/test/cintltst/cbididat.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |