BidiConformance.java revision 5621
2362N/A * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. 1280N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1280N/A * This code is free software; you can redistribute it and/or modify it 1280N/A * under the terms of the GNU General Public License version 2 only, as 1280N/A * published by the Free Software Foundation. 1280N/A * This code is distributed in the hope that it will be useful, but WITHOUT 1280N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1280N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1280N/A * version 2 for more details (a copy is included in the LICENSE file that 1280N/A * You should have received a copy of the GNU General Public License version 1280N/A * 2 along with this work; if not, write to the Free Software Foundation, 1280N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 1280N/A * @summary confirm the behavior of new Bidi implementation. (Backward compatibility) 1280N/A ": Bidi(AttributedCharacterIterator\"" +
1280N/A ": RUN_DIRECTION_LTR, BIDI_EMBEDDING(1)");
1280N/A ": RUN_DIERCTION_LTR, BIDI_EMBEDDING(2)");
1280N/A ": RUN_DIRECTIOIN_LTR, BIDI_EMBEDDING(-3)");
1280N/A ": RUN_DIRECTION_LTR, BIDI_EMBEDDING(-4)");
1280N/A ": RUN_DIRECTION_RTL, BIDI_EMBEDDING(1)");
1280N/A ": RUN_DIRECTION_RTL, BIDI_EMBEDDING(2)");
1280N/A ": RUN_DIRECTION_RTL, BIDI_EMBEDDING(-3)");
1280N/A ": RUN_DIRECTION_RTL, BIDI_EMBEDDING(-4)");
1280N/A ": TextAttribute not specified");
1280N/A ": RUN_DIRECTION_LTR, NUMERIC_SHAPING(ARABIC)");
1280N/A ": RUN_DIRECTION_RTL, NUMERIC_SHAPING(ARABIC)");
1280N/A "should not throw an NPE but an IAE.");
1280N/A " but 60 when BIDI_EMBEDDING is -61.");
1280N/A "should be 1 when BIDI_EMBEDDING is -62.");
1280N/A "should be 61 when BIDI_EMBEDDING is 60.");
1280N/A " but 61 when BIDI_EMBEDDING is 61.");
1280N/A " but 1 when BIDI_EMBEDDING is 62.");
1280N/A "should not throw an NPE but an IAE.");
1280N/A "but an IAE when text=null.");
1280N/A "when textStart is incorrect(-1: too small).");
1280N/A "but an IAE when textStart is incorrect(-1: too small).");
1280N/A "when textStart is incorrect(4: too large).");
1280N/A "but an IAE when textStart is incorrect(4: too large).");
1280N/A "} when embeddings are {" +
1280N/A "when embeddings is valid(-61).");
1280N/A "} when embeddings are {" +
1280N/A "when embeddings is valid(61).");
1280N/A "when embeddings[1] is -62.");
1280N/A "even when embeddings includes -62.");
1280N/A "when embeddings[1] is 62.");
1280N/A "even when embeddings includes 62.");
1280N/A "when paragraphLength=-1(too small).");
1280N/A "but an IAE when paragraphLength=-1(too small).");
1280N/A "when paragraphLength=6(too large).");
1280N/A "but an IAE when paragraphLength=6(too large).");
1280N/A "even when flag=-3(too small).");
1280N/A "even when flag=2(too large).");
1280N/A /* Test baseIsLeftToRight() */ 1280N/A /* Test getRunLevel(), getRunLimit() and getRunStart() */ 1280N/A " should not throw an exception.");
1280N/A * Confirm that getLevelAt() doesn't throw an exception for invalid offset 1280N/A " returned a wrong level." +
1280N/A " when getRunCount() is 1.");
1280N/A "when getRunCount() is 1.");
1280N/A "when run is -1(too small).");
1280N/A "but an AIOoBE when run is -1(too small).");
1280N/A "when run is from 0 to 2(runCount-1).");
1280N/A "when run is 3(same as runCount).");
1280N/A "but an AIOoBE when run is 3(same as runCount).");
1280N/A " when getRunCount() is 1.");
1280N/A " when getRunCount() is 1.");
1280N/A " when run is -1(too small).");
1280N/A "but an AIOoBE when run is -1(too small).");
1280N/A "when run is from 0 to 2(runCount-1).");
1280N/A " when run is 3(same as runCount).");
1280N/A "when run is 3(same as runCount).");
1280N/A "when run is runCount+1(too large).");
1280N/A "but an AIOoBE when run is runCount+1(too large).");
1280N/A "but an IAE when levelStart is -1.");
1280N/A "when levelStart is 6(levels.length).");
1280N/A "but an IAE when levelStart is 6(levels.length).");
1280N/A " when objectStart is -1.");
1280N/A "but an IAE when objectStart is -1.");
1280N/A "when objectStart is 6(objects.length).");
1280N/A "but an IAE when count is -1.");
1280N/A "when count is 7(objects.length+1).");
1280N/A "but an IAE when count is 7(objects.length+1).");
1280N/A " when start is -1(too small).");
1280N/A "but an IAE when start is -1(too small).");
1280N/A "when start is textLength.");
1280N/A " when start is textLength+1(too large).");
1280N/A " when limit is -1(too small).");
1280N/A " when limit is textLength+1(too large).");
1280N/A "but an IAE when limit is textLength+1(too large).");
1280N/A /* Bidi pubilc constants */ 1280N/A /* Bidi pubilc constants names */ 1280N/A "DIRECTION_DEFAULT_LEFT_TO_RIGHT",
// -2 1280N/A "DIRECTION_DEFAULT_RIGHT_TO_LEFT",
// -1 1280N/A "DIRECTION_LEFT_TO_RIGHT",
// 0 1280N/A "DIRECTION_RIGHT_TO_LEFT",
// 1 1280N/A /* Bidirectional Character Types */ 1280N/A private static final char L =
'\u200E';
1280N/A private static final char R =
'\u202F';
1280N/A * 0x05D0-0x05EA: [R] Hewbrew letters (Strong) 1280N/A * 0x0627-0x063A: [AL] Arabic letters (Strong) 1280N/A * 0x0660-0x0669: [AN] Arabic-Indic digits (Weak) 1280N/A * 0x07CA-0x07E7: [R] NKo letters (Strong) 1280N/A * 0x07C0-0x07C9: [R] NKo digits (Strong) 1280N/A * 0xFE50-0xFEFF: [AL] Arabic presentaion form (Strong) 1280N/A * 0x10480-0x1049D: [L] Osmanya letters (Strong) 1280N/A * 0x104A0-0x104A9: [L] Osmanya digits (Strong) 1280N/A * 0x10A10-0x10A33: [R] Kharoshthi letters (Strong) 1280N/A * 0x10A40-0x10A43: [R] Kharoshthi digits (Strong) 1280N/A * 0x200E: [L] Left-to-right mark (Implicit, Strong) 1280N/A * 0x200F: [R] Right-to-left mark (Implicit, Strong) 1280N/A * 0x202A: [LRE] Left-to-right embedding (Explicit, Strong) 1280N/A * 0x202B: [RLE] Right-to-left embedding (Explicit, Strong) 1280N/A * 0x202C: [PDF] Pop directional formatting (Explicit, Weak) 1280N/A * 0x202D: [LRO] Left-to-right override (Explicit, Strong) 1280N/A * 0x202E: [RLO] Right-to-left override (Explicit, Strong) 1280N/A /* --------------------------------------------------------------------- */ 1280N/A * Test data for Bidi(char[], ...) constructor and methods 1280N/A /* Text for Bidi processing and its levels */ 1280N/A "000000000000000000",
"000002222222000000",
"000000000000000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A "222222222222222221",
"222222222222222221",
"222222222222222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A "000000000000000000",
"000000000000000000",
"222222222222222221"},
1280N/A "000001111111000000",
"000001111111000000",
"000003333333000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A "222111111111112221",
"222111111111112221",
"222223333333222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A "000001111111000000",
"000001111111000000",
"222111111111112221"},
1280N/A "111000000000001110",
"111112222222111110",
"111002222222001110",
1280N/A "111113333333111110",
"111004444444001110",
1280N/A "111112222222111111",
"111112222222111111",
"111112222222111111",
1280N/A "111111111111111111",
"111114444444111111",
1280N/A "111112222222111111",
"111000000000001110",
"111112222222111111"},
1280N/A "111111111222111110",
"111111111222111110",
"111003333444001110",
1280N/A "111113333333111110",
"111004444444001110",
1280N/A "111111111222111111",
"111111111222111111",
"111113333444111111",
1280N/A "111111111111111111",
"111114444444111111",
1280N/A "111111111222111111",
"111111111222111110",
"111111111222111111"},
1280N/A "000001111222000000",
"000001111222000000",
"000003333444000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A "222111111222112221",
"222111111222112221",
"222223333444222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A "000001111222000000",
"000001111222000000",
"222111111222112221"},
1280N/A "000000000111000000",
"000002221111000000",
"000002222333000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A "222222221111112221",
"222222221111112221",
"222222222333222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A "000000000111000000",
"000000000111000000",
"222222221111112221"},
1280N/A "111111111222112220",
"111111111222112220",
"111003333444002220",
1280N/A "111113333333112220",
"111004444444002220",
1280N/A "111111111222112221",
"111111111222112221",
"111113333444112221",
1280N/A "111113333333112221",
"111114444444112221",
1280N/A "111111111222112221",
"111111111222112220",
"111111111222112221"},
1280N/A "111000000111112220",
"111112221111112220",
"111002222333002220",
1280N/A "111113333333112220",
"111004444444002220",
1280N/A "111112221111112221",
"111112221111112221",
"111112222333112221",
1280N/A "111113333333112221",
"111114444444112221",
1280N/A "111112221111112221",
"111000000111112220",
"111112221111112221"},
1280N/A "000000001111111111111000000000",
"000000001111111111111000000000",
1280N/A "000000003333333333333000000000",
"000000003333333333333000000000",
1280N/A "000000000000000000000000000000",
1280N/A "222222111111111111111112222221",
"222222111111111111111112222221",
1280N/A "222222223333333333333222222221",
"222222113333333333333112222221",
1280N/A "222222224444444444444222222221",
1280N/A "000000001111111111111000000000",
"000000001111111111111000000000",
1280N/A "222222111111111111111112222221"},
1280N/A "111111000000000000000001111110",
"111111112222222222222111111110",
1280N/A "111111002222222222222001111110",
"111111113333333333333111111110",
1280N/A "111111004444444444444001111110",
1280N/A "111111112222222222222111111111",
"111111112222222222222111111111",
1280N/A "111111112222222222222111111111",
"111111111111111111111111111111",
1280N/A "111111114444444444444111111111",
1280N/A "111111112222222222222111111111",
"111111000000000000000001111110",
1280N/A "111111112222222222222111111111"},
1280N/A /* Golden data for baseIsLeftToRight() results */ 1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A {
true,
true,
true,
true,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A /* Golden data for isLeftToRight() & isRightToLeft() results */ 1280N/A /* isLeftToRight() results */ 1280N/A {{
true,
false,
true,
false,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
true,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
true,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
true,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
false,
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
false,
1280N/A false,
false,
false,
true,
false,
1280N/A /* --------------------------------------------------------------------- */ 1280N/A * Test data for Bidi(String, int) constructor and methods 1280N/A /* Text for Bidi processing and its levels */ 1280N/A "000000000",
"000000000",
"000000000",
"122222221"},
1280N/A "00000111111112220",
"00000111111112220",
"00000111111112220",
1280N/A "00000111122212220",
"00000111122212220",
"00000111122212220",
1280N/A "11111222222211111",
"11111222222211111",
"01110000000001110",
1280N/A "11111222222212221",
"11111222222212221",
"01110000000002220",
1280N/A "111111111",
"111111111",
"011111110",
"111111111"},
1280N/A "111112221",
"111112221",
"011112220",
"111112221"},
1280N/A "111111111111111",
"111111111111111",
"011111111111110",
1280N/A "011111110",
"011111110",
"011111110",
"211111111"},
1280N/A "000000000000",
"000000000000",
"000000000000",
"122222222221"},
1280N/A "000011111111222",
"000011111111222",
"000011111111222",
1280N/A "22221111111110",
"22221111111110",
"22221111111110",
1280N/A "000000000222211111111000",
"000000000222211111111000",
1280N/A "000000000222211111111000",
"222222211444433333333111"},
1280N/A "22222222224444333333332220",
"22222222224444333333332220",
1280N/A "22222222224444333333332220",
"22222222224444333333332221"},
1280N/A "2222222222444433333333222",
"2222222222444433333333222",
1280N/A "2222222222444433333333222",
"2222222222444433333333222"},
1280N/A "0000000000000222222222244443333333322000",
1280N/A "0000000000000222222222244443333333322000",
1280N/A "0000000000000222222222244443333333322000",
1280N/A "2222222222222222222222244443333333322111"},
1280N/A "111111111111112222222222444433333333221110",
1280N/A "111111111111112222222222444433333333221110",
1280N/A "111111111111112222222222444433333333221110",
1280N/A "333333333333334444444444666655555555443331"},
1280N/A "11111111111111222222222244443333333322111",
1280N/A "11111111111111222222222244443333333322111",
1280N/A "11111111111111222222222244443333333322111",
1280N/A "33333333333333444444444466665555555544333"},
1280N/A "0000001111222112220",
"0000001111222112220",
1280N/A "0000001111222112220",
"1222111111222112221"},
1280N/A "1111112222222111111",
"1111112222222111111",
1280N/A "0111000000000001110",
"1111112222222111111"},
1280N/A "00000000002222111111110000",
"00000000002222111111110000",
1280N/A "00000000002222111111110000",
"12222222114444333333331111"},
1280N/A "000000000000002222222222444433333333220000",
1280N/A "000000000000002222222222444433333333220000",
1280N/A "000000000000002222222222444433333333220000",
1280N/A "122222222222222222222222444433333333221111"},
1280N/A "22222221111111111111110",
"22222221111111111111110",
1280N/A "22222221111111111111110",
"44444443333333333333331"},
1280N/A /* Golden data for baseIsLeftToRight() results */ 1280N/A {
false,
false,
true,
false},
1280N/A {
false,
false,
true,
false},
1280N/A {
false,
false,
true,
false},
1280N/A {
false,
false,
true,
false},
1280N/A {
false,
false,
true,
false},
1280N/A {
false,
false,
true,
false},
1280N/A /* Golden data for isLeftToRight() & isRightToLeft() results */ 1280N/A /* isLeftToRight() results & isRightToLeft() results */ 1280N/A {{
true,
true,
true,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
true,
true,
false,
true }},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
true,
true,
false,
true }},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
true,
true,
true,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A {{
false,
false,
false,
false}, {
false,
false,
false,
false}},
1280N/A /* Golden data for requiresBidi() results */ 1280N/A false,
true,
true,
true,
true,
1280N/A true,
true,
true,
true,
false,
1280N/A true,
true,
true,
true,
true,
1280N/A true,
true,
true,
true,
true,
1280N/A /* --------------------------------------------------------------------- */ 1280N/A * Test data for Bidi(char[], ...) constructor and methods 1280N/A /* Embeddings for paragraphs which don't include surrogate pairs. */ 1280N/A {{
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0},
1280N/A {
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
2,
2,
0,
0,
0,
0,
0,
0},
1280N/A {
0,
0,
0,
0,
0, -
3, -
3, -
3, -
3, -
3, -
3, -
3,
0,
0,
0,
0,
0,
0},
1280N/A {
0,
0,
0,
0,
0, -
4, -
4, -
4, -
4, -
4, -
4, -
4,
0,
0,
0,
0,
0,
0}},
1280N/A /* Embeddings for paragraphs which include surrogate pairs. */ 1280N/A 1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1280N/A 0,
0,
0,
0,
0,
0,
0,
0,
0},
1280N/A 2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1280N/A 0,
0,
0,
0,
0,
0,
0,
0,
0},
1280N/A -
3, -
3, -
3, -
3, -
3, -
3, -
3, -
3, -
3, -
3, -
3, -
3, -
3,
1280N/A 0,
0,
0,
0,
0,
0,
0,
0,
0},
1280N/A -
4, -
4, -
4, -
4, -
4, -
4, -
4, -
4, -
4, -
4, -
4, -
4, -
4,
1280N/A 0,
0,
0,
0,
0,
0,
0,
0,
0}},
1280N/A /* Text for Bidi processing and its levels */ 1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "000002222222000000",
"000000000000000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "222222222222222221",
"222222222222222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "000002222222000000",
"000000000000000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "222222222222222221",
"222222222222222221",
1280N/A "222113333333112221",
"222224444444222221"},
1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "000001111111000000",
"000003333333000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "222111111111112221",
"222223333333222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "000001111111000000",
"000003333333000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "222111111111112221",
"222223333333222221",
1280N/A "222113333333112221",
"222224444444222221"},
1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "111112222222111111",
"111112222222111111",
1280N/A "111111111111111111",
"111114444444111111",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "111112222222111111",
"111112222222111111",
1280N/A "111111111111111111",
"111114444444111111",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "111112222222111110",
"111002222222001110",
1280N/A "111113333333111110",
"111004444444001110",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "111112222222111111",
"111112222222111111",
1280N/A "111111111111111111",
"111114444444111111"},
1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "111111111222111111",
"111113333444111111",
1280N/A "111111111111111111",
"111114444444111111",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "111111111222111111",
"111113333444111111",
1280N/A "111111111111111111",
"111114444444111111",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "111111111222111110",
"111003333444001110",
1280N/A "111113333333111110",
"111004444444001110",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "111111111222111111",
"111113333444111111",
1280N/A "111111111111111111",
"111114444444111111"},
1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "000002221222000000",
"000000000000000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "222222222222222221",
"222222222222222221",
1280N/A "222113333333112221",
"222224444444222221",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "000002221222000000",
"000000000000000000",
1280N/A "000003333333000000",
"000000000000000000",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "222222222222222221",
"222222222222222221",
1280N/A "222113333333112221",
"222224444444222221"},
1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "000000001111111111111000000000",
"000000003333333333333000000000",
1280N/A "000000003333333333333000000000",
"000000000000000000000000000000",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "222222111111111111111112222221",
"222222223333333333333222222221",
1280N/A "222222113333333333333112222221",
"222222224444444444444222222221",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "000000001111111111111000000000",
"000000003333333333333000000000",
1280N/A "000000003333333333333000000000",
"000000000000000000000000000000",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "222222111111111111111112222221",
"222222223333333333333222222221",
1280N/A "222222113333333333333112222221",
"222222224444444444444222222221"},
1280N/A /* DIRECTION_DEFAULT_LEFT_TO_RIGHT */ 1280N/A "111111112222222222222111111111",
"111111112222222222222111111111",
1280N/A "111111111111111111111111111111",
"111111114444444444444111111111",
1280N/A /* DIRECTION_DEFAULT_RIGHT_TO_LEFT */ 1280N/A "111111112222222222222111111111",
"111111112222222222222111111111",
1280N/A "111111111111111111111111111111",
"111111114444444444444111111111",
1280N/A /* DIRECTION_LEFT_TO_RIGHT */ 1280N/A "111111112222222222222111111110",
"111111002222222222222001111110",
1280N/A "111111113333333333333111111110",
"111111004444444444444001111110",
1280N/A /* DIRECTION_RIGHT_TO_LEFT */ 1280N/A "111111112222222222222111111111",
"111111112222222222222111111111",
1280N/A "111111111111111111111111111111",
"111111114444444444444111111111"},
1280N/A /* Golden data for baseIsLeftToRight() results */ 1280N/A {
true,
true,
true,
true,
// DIRECTION_DEFAULT_LEFT_TO_RIGHT 1280N/A true,
true,
true,
true,
// DIRECTION_DEFAULT_RIGHT_TO_LEFT 1280N/A true,
true,
true,
true,
// DIRECTION_LEFT_TO_RIGHT 1280N/A false,
false,
false,
false},
// DIRECTION_RIGHT_TO_LEFT 1280N/A false,
false,
false,
false},
1280N/A {
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A {
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A false,
false,
false,
false},
1280N/A false,
false,
false,
false},
1280N/A {
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A /* Golden data for isLeftToRight() & isRightToLeft() results */ 1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
true,
false,
true,
// DIRECTION_DEFAULT_LEFT_TO_RIGHT 1280N/A false,
false,
false,
false,
// DIRECTION_DEFAULT_RIGHT_TO_LEFT 1280N/A false,
true,
false,
true,
// DIRECTION_LEFT_TO_RIGHT 1280N/A false,
false,
false,
false},
// DIRECTION_RIGHT_TO_LEFT 1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
// DIRECTION_DEFAULT_LEFT_TO_RIGHT 1280N/A false,
false,
false,
false,
// DIRECTION_DEFAULT_RIGHT_TO_LEFT 1280N/A false,
false,
false,
false,
// DIRECTION_LEFT_TO_RIGHT 1280N/A false,
false,
false,
false}},
// DIRECTION_RIGHT_TO_LEFTT 1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
true,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false}},
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
true,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
true,
false}},
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
true,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
true,
false}},
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
true,
false,
true,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false },
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false}},
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
true,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false}},
1280N/A /* isLeftToRight() results */ 1280N/A {{
false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
false,
false},
1280N/A /* isRightToLeft() results */ 1280N/A {
false,
false,
true,
false,
1280N/A false,
false,
false,
false,
1280N/A false,
false,
true,
false}},
1280N/A /* --------------------------------------------------------------------- */ 1280N/A * Test data for reorderVisually() methods 1280N/A {
"000000001110"},
// levels 1280N/A {
"0000000000002222221111111111111100"},