Package com.ibm.icu.text

Examples of com.ibm.icu.text.Bidi$Point


                               interleave);
    }

    public static long shuffle(Space space, double x, double y)
    {
        Point point = new Point(x, y);
        long[] zValues = new long[1];
        space.decompose(point, zValues);
        long z = zValues[0];
        assert z != Space.Z_NULL;
        return z;
View Full Code Here


    /**
     * Constructor.
     */
    public ICU4JImpl()
    {
        bidi = new Bidi();

        /* We do not use bidi.setInverse() because that uses
         * Bidi.REORDER_INVERSE_NUMBERS_AS_L, which caused problems
         * in some test files. For example, a file had a line of:
         * 0 1 / ARABIC
View Full Code Here

    /**
     * Constructor.
     */
    public ICU4JImpl()
    {
        bidi = new Bidi();

        /* We do not use bidi.setInverse() because that uses
         * Bidi.REORDER_INVERSE_NUMBERS_AS_L, which caused problems
         * in some test files. For example, a file had a line of:
         * 0 1 / ARABIC
View Full Code Here

    /**
     * Constructor.
     */
    public ICU4JImpl()
    {
        bidi = new Bidi();

        /* We do not use bidi.setInverse() because that uses
         * Bidi.REORDER_INVERSE_NUMBERS_AS_L, which caused problems
         * in some test files. For example, a file had a line of:
         * 0 1 / ARABIC
View Full Code Here

    private static final int MAXLEN = 256;
    private static final String levelString = "............................";

    public void testBidi() {
        Bidi bidi;
        Bidi bidiLine;

        logln("\nEntering TestBidi");
        bidi = new Bidi(MAXLEN, 0);
        bidiLine = new Bidi();

        doTests(bidi, bidiLine, false);
        doTests(bidi, bidiLine, true);
        doMisc();
        logln("\nExiting TestBidi");
View Full Code Here

        return new String(buffer);
    }

    private void doMisc() {
    /* Miscellaneous tests to exercize less popular code paths */
        Bidi bidi = new Bidi(120, 66), bidiLine;

        assertEquals("\nwriteReverse should return an empty string",
                     "", Bidi.writeReverse("", 0));

        bidi.setPara("", Bidi.LTR, null);
        assertEquals("\nwriteReordered should return an empty string",
                     "", bidi.writeReordered(0));

        bidi.setPara("abc", Bidi.LTR, null);
        assertEquals("\ngetRunStart should return 0",
                     0, bidi.getRunStart(0));
        assertEquals("\ngetRunLimit should return 3",
                     3, bidi.getRunLimit(0));

        bidi.setPara("abc          ", Bidi.RTL, null);
        bidiLine = bidi.setLine(0, 6);
        for (int i = 3; i < 6; i++) {
            assertEquals("\nTrailing space at " + i + " should get paragraph level",
                         Bidi.RTL, bidiLine.getLevelAt(i));
        }

        bidi.setPara("abc       def", Bidi.RTL, null);
        bidiLine = bidi.setLine(0, 6);
        for (int i = 3; i < 6; i++) {
            assertEquals("\nTrailing space at " + i + " should get paragraph level",
                         Bidi.RTL, bidiLine.getLevelAt(i));
        }

        bidi.setPara("abcdefghi    ", Bidi.RTL, null);
        bidiLine = bidi.setLine(0, 6);
        for (int i = 3; i < 6; i++) {
            assertEquals("\nTrailing char at " + i + " should get level 2",
                         2, bidiLine.getLevelAt(i));
        }

        bidi.setReorderingOptions(Bidi.OPTION_REMOVE_CONTROLS);
        bidi.setPara("\u200eabc       def", Bidi.RTL, null);
        bidiLine = bidi.setLine(0, 6);
        assertEquals("\nWrong result length", 5, bidiLine.getResultLength());

        bidi.setPara("abcdefghi", Bidi.LTR, null);
        bidiLine = bidi.setLine(0, 6);
        assertEquals("\nWrong direction #1", Bidi.LTR, bidiLine.getDirection());

        bidi.setPara("", Bidi.LTR, null);
        byte[] levels = bidi.getLevels();
        assertEquals("\nWrong number of level elements", 0, levels.length);
        assertEquals("\nWrong number of runs #1", 0, bidi.countRuns());

        bidi.setPara("          ", Bidi.RTL, null);
        bidiLine = bidi.setLine(0, 6);
        assertEquals("\nWrong number of runs #2", 1, bidiLine.countRuns());

        bidi.setPara("a\u05d0        bc", Bidi.RTL, null);
        bidiLine = bidi.setLine(0, 6);
        assertEquals("\nWrong direction #2", Bidi.MIXED, bidi.getDirection());
        assertEquals("\nWrong direction #3", Bidi.MIXED, bidiLine.getDirection());
        assertEquals("\nWrong number of runs #3", 2, bidiLine.countRuns());

        int[] map = Bidi.reorderLogical(null);
        assertTrue("\nWe should have got a null map #1", map == null);
        map = Bidi.reorderLogical(new byte[] {0,99,99});
        assertTrue("\nWe should have got a null map #2", map == null);
        map = Bidi.reorderVisual(null);
        assertTrue("\nWe should have got a null map #3", map == null);

        map = Bidi.invertMap(null);
        assertTrue("\nWe should have got a null map #4", map == null);
        map = Bidi.invertMap(new int[] {0,1,-1,5,4});
        assertTrue("\nUnexpected inverted Map",
                   Arrays.equals(map, new int[] {0,1,-1,-1,4,3}));

        bidi.setPara("", Bidi.LTR, null);
        map = bidi.getLogicalMap();
        assertTrue("\nMap should have length==0 #1", map.length == 0);
        map = bidi.getVisualMap();
        assertTrue("\nMap should have length==0 #2", map.length == 0);

        /* test BidiRun.toString and allocation of run memory > 1 */
        bidi.setPara("abc", Bidi.LTR, null);
        assertEquals("\nWrong run display", "BidiRun 0 - 3 @ 0",
                     bidi.getLogicalRun(0).toString());

        /* test REMOVE_BIDI_CONTROLS together with DO_MIRRORING */
        bidi.setPara("abc\u200e", Bidi.LTR, null);
        String out = bidi.writeReordered(Bidi.REMOVE_BIDI_CONTROLS | Bidi.DO_MIRRORING);
        assertEquals("\nWrong result #1", "abc", out);

        /* test inverse Bidi with marks and contextual orientation */
        bidi.setReorderingMode(Bidi.REORDER_INVERSE_LIKE_DIRECT);
        bidi.setReorderingOptions(Bidi.OPTION_INSERT_MARKS);
        bidi.setPara("", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #2", "", out);
        bidi.setPara("   ", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #3", "   ", out);
        bidi.setPara("abc", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #4", "abc", out);
        bidi.setPara("\u05d0\u05d1", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #5", "\u05d1\u05d0", out);
        bidi.setPara("abc \u05d0\u05d1", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #6", "\u05d1\u05d0 abc", out);
        bidi.setPara("\u05d0\u05d1 abc", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #7", "\u200fabc \u05d1\u05d0", out);
        bidi.setPara("\u05d0\u05d1 abc .-=", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #8", "\u200f=-. abc \u05d1\u05d0", out);
        bidi.orderParagraphsLTR(true);
        bidi.setPara("\n\r   \n\rabc\n\u05d0\u05d1\rabc \u05d2\u05d3\n\r" +
                     "\u05d4\u05d5 abc\n\u05d6\u05d7 abc .-=\r\n" +
                     "-* \u05d8\u05d9 abc .-=", Bidi.LEVEL_DEFAULT_RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #9",
                     "\n\r   \n\rabc\n\u05d1\u05d0\r\u05d3\u05d2 abc\n\r" +
                     "\u200fabc \u05d5\u05d4\n\u200f=-. abc \u05d7\u05d6\r\n" +
                     "\u200f=-. abc \u05d9\u05d8 *-", out);

        bidi.setPara("\u05d0 \t", Bidi.LTR, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #10", "\u05D0\u200e \t", out);
        bidi.setPara("\u05d0 123 \t\u05d1 123 \u05d2", Bidi.LTR, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #11", "\u05d0 \u200e123\u200e \t\u05d2 123 \u05d1", out);
        bidi.setPara("\u05d0 123 \u0660\u0661 ab", Bidi.LTR, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #12", "\u05d0 \u200e123 \u200e\u0660\u0661 ab", out);
        bidi.setPara("ab \t", Bidi.RTL, null);
        out = bidi.writeReordered(0);
        assertEquals("\nWrong result #13", "\u200f\t ab", out);

        /* check exceeding para level */
        bidi = new Bidi();
        bidi.setPara("A\u202a\u05d0\u202aC\u202c\u05d1\u202cE", (byte)(Bidi.MAX_EXPLICIT_LEVEL - 1), null);
        assertEquals("\nWrong level at index 2", 61, bidi.getLevelAt(2));

        /* check 1-char runs with RUNS_ONLY */
        bidi.setReorderingMode(Bidi.REORDER_RUNS_ONLY);
        bidi.setPara("a \u05d0 b \u05d1 c \u05d2 d ", Bidi.LTR, null);
        assertEquals("\nWrong number of runs #4", 14, bidi.countRuns());
    }
View Full Code Here

    static final int LEVELS_COUNT = paraLevels.length;

    public void testReorderingMode() {

        String src, dest;
        Bidi bidi = new Bidi();
        Bidi bidi2 = new Bidi();
        Bidi bidi3 = new Bidi();
        int tc, mode, option, level;
        int modeValue, modeBack;
        int optionValue, optionBack;
        int index;
        String expected;
View Full Code Here

        "helloGEMPD",
        "hello ZYXW"
    };

    public void testReorder() {
        Bidi bidi = new Bidi();
        int testNumber;
        int nTests = logicalOrder.length;
        String src, srcU16, dest = "";

        logln("\nEntering TestReorder\n");

        for (testNumber = 0; testNumber < nTests; testNumber++) {
            logln("Testing L2V #1 for case " + testNumber);
            src = logicalOrder[testNumber];
            srcU16 = pseudoToU16(src);
            try {
                bidi.setPara(srcU16, Bidi.LEVEL_DEFAULT_LTR, null);
            } catch (Exception e) {
                errln("Bidi.setPara(tests[" + testNumber + "], paraLevel " +
                      Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            try {
                dest = u16ToPseudo(bidi.writeReordered(Bidi.DO_MIRRORING));
            } catch (Exception e) {
                errln("Bidi.writeReordered(tests[" + testNumber + "], paraLevel " +
                      Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            if (!visualOrder[testNumber].equals(dest)) {
                assertEquals("Failure #1 in Bidi.writeReordered(), test number " +
                             testNumber, visualOrder[testNumber], dest, src, null,
                             "Bidi.DO_MIRRORING", "Bidi.LEVEL_DEFAULT_LTR");
            }
            checkWhatYouCan(bidi, src, dest);
        }

        for (testNumber = 0; testNumber < nTests; testNumber++) {
            logln("Testing L2V #2 for case " + testNumber);
            src = logicalOrder[testNumber];
            srcU16 = pseudoToU16(src);
            try {
                bidi.setPara(srcU16, Bidi.LEVEL_DEFAULT_LTR, null);
            } catch (Exception e) {
                errln("Bidi.setPara(tests[" + testNumber + "], paraLevel " +
                      Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            try {
                dest = u16ToPseudo(bidi.writeReordered(Bidi.DO_MIRRORING +
                                                       Bidi.OUTPUT_REVERSE));
            } catch (Exception e) {
                errln("Bidi.writeReordered(test[" + testNumber + "], paraLevel "
                        + Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            assertEquals("Failure #2 in Bidi.writeReordered() at index " +
                         testNumber, visualOrder1[testNumber], dest,
                         logicalOrder[testNumber], null,
                         "DO_MIRRORING + OUTPUT_REVERSE",
                         "Bidi.LEVEL_DEFAULT_LTR");
        }

        for (testNumber = 0; testNumber < nTests; testNumber++) {
            logln("Testing V2L #3 for case " + testNumber);
            src = logicalOrder[testNumber];
            srcU16 = pseudoToU16(src);
            bidi.setInverse(true);
            try {
                bidi.setPara(srcU16, Bidi.LEVEL_DEFAULT_LTR, null);
            } catch (Exception e) {
                errln("Bidi.setPara(tests[" + testNumber + "], paraLevel " +
                      Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            try {
                dest = u16ToPseudo(bidi.writeReordered(Bidi.OUTPUT_REVERSE |
                                                       Bidi.INSERT_LRM_FOR_NUMERIC));
            } catch (Exception e) {
                errln("Bidi.writeReordered(test[" + testNumber + "], paraLevel " +
                      Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            assertEquals("Failure #3 in Bidi.writeReordered(test[" + testNumber +
                         "])", visualOrder2[testNumber], dest,
                         logicalOrder[testNumber], null,
                         "INSERT_LRM_FOR_NUMERIC + OUTPUT_REVERSE",
                         "Bidi.LEVEL_DEFAULT_LTR");
        }

        /* Max Explicit level */
        for (testNumber = 0; testNumber < nTests; testNumber++) {
            logln("Testing V2L #4 for case " + testNumber);
            src = logicalOrder[testNumber];
            srcU16 = pseudoToU16(src);
            byte[] levels = new byte[Bidi.MAX_EXPLICIT_LEVEL];
            for (int i = 0; i < 10; i++) {
                levels[i] = (byte)(i + 1);
            }
            try {
                bidi.setPara(srcU16, Bidi.LEVEL_DEFAULT_LTR, levels);
            } catch (Exception e) {
                errln("Bidi.setPara(tests[" + testNumber +
                      "], paraLevel = MAX_EXPLICIT_LEVEL = " +
                      Bidi.MAX_EXPLICIT_LEVEL + " failed.");
            }
            try {
                dest = u16ToPseudo(bidi.writeReordered(Bidi.OUTPUT_REVERSE));
            } catch (Exception e) {
                errln("Bidi.writeReordered(test[" + testNumber + "], paraLevel " +
                      Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
            assertEquals("Failure #4 in Bidi.writeReordered(test[" + testNumber +
                         "])", visualOrder3[testNumber], dest,
                         logicalOrder[testNumber], null,
                         "OUTPUT_REVERSE", "Bidi.LEVEL_DEFAULT_LTR");
        }

        for (testNumber = 0; testNumber < nTests; testNumber++) {
            logln("Testing V2L #5 for case " + testNumber);
            src = logicalOrder[testNumber];
            srcU16 = pseudoToU16(src);
            byte[] levels = new byte[Bidi.MAX_EXPLICIT_LEVEL];
            for (int i = 0; i < 10; i++) {
                levels[i] = (byte)(i + 1);
            }
            try {
                bidi.setPara(srcU16, Bidi.LEVEL_DEFAULT_LTR, levels);
            } catch (Exception e) {
                errln("Bidi.setPara(tests[" + testNumber + "], paraLevel " +
                      Bidi.MAX_EXPLICIT_LEVEL + " failed.");
            }
            try {
                dest = u16ToPseudo(bidi.writeReordered(Bidi.DO_MIRRORING |
                                                       Bidi.REMOVE_BIDI_CONTROLS));
            } catch (Exception e) {
                errln("Bidi.writeReordered(test[" + testNumber + "], paraLevel "
                        + Bidi.LEVEL_DEFAULT_LTR + " failed.");
            }
View Full Code Here

                         "abc DEF ghi",
                         "abc DEF 123 xyz",
                         "abc GHIJ 12345 def KLM"
                        };
        int dataCnt = data.length;
        Bidi bidi;
        java.text.Bidi jbidi;
        for (int i = 0; i < dataCnt; i++) {
            String src = pseudoToU16(data[i]);
            bidi = new Bidi(src, Bidi.DIRECTION_LEFT_TO_RIGHT);
            jbidi = new java.text.Bidi(src, java.text.Bidi.DIRECTION_LEFT_TO_RIGHT);
            compareBidi(bidi, jbidi);
            bidi = new Bidi(src, Bidi.DIRECTION_RIGHT_TO_LEFT);
            jbidi = new java.text.Bidi(src, java.text.Bidi.DIRECTION_RIGHT_TO_LEFT);
            compareBidi(bidi, jbidi);
            char[] chars = src.toCharArray();
            bidi = new Bidi(chars, 0, null, 0, chars.length, Bidi.DIRECTION_LEFT_TO_RIGHT);
            jbidi = new java.text.Bidi(chars, 0, null, 0, chars.length, java.text.Bidi.DIRECTION_LEFT_TO_RIGHT);
            compareBidi(bidi, jbidi);
        }
        /* check bogus flags */
        bidi = new Bidi("abc", 999);
        assertEquals("\nDirection should be LTR", Bidi.LTR, bidi.getDirection());
        /* check constructor with overriding embeddings */
        bidi = new Bidi(new char[] { 's', 's', 's' }, 0,
                        new byte[] {(byte) -7, (byte) -2, (byte) -3 },
                        0, 3, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
        jbidi = new java.text.Bidi(new char[] { 's', 's', 's' }, 0,
                        new byte[] {(byte) -7, (byte) -2, (byte) -3 },
                        0, 3, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);

        AttributedString as = new AttributedString("HEBREW 123 english MOREHEB");
        as.addAttribute(TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL);
        as.addAttribute(TextAttribute.NUMERIC_SHAPING, NumericShaper.getShaper(NumericShaper.ARABIC));
        as.addAttribute(TextAttribute.BIDI_EMBEDDING, new Integer(1), 0, 26);
        as.addAttribute(TextAttribute.BIDI_EMBEDDING, new Integer(-1), 0, 6);
        as.addAttribute(TextAttribute.BIDI_EMBEDDING, new Integer(-1), 19, 26);
        AttributedCharacterIterator aci = as.getIterator();
        bidi = new Bidi(aci);
        jbidi = new java.text.Bidi(aci);
        compareBidi(bidi, jbidi);
        String out = bidi.writeReordered(0);
        logln("Output #1 of Bidi(AttributedCharacterIterator): " + out);

        as = new AttributedString("HEBREW 123 english MOREHEB");
        as.addAttribute(TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL);
        as.addAttribute(TextAttribute.BIDI_EMBEDDING, new Integer(0), 0, 26);
        aci = as.getIterator();
        bidi = new Bidi(aci);
        jbidi = new java.text.Bidi(aci);
        compareBidi(bidi, jbidi);
        out = bidi.writeReordered(0);
        logln("Output #2 of Bidi(AttributedCharacterIterator): " + out);

        as = new AttributedString("HEBREW 123 english MOREHEB");
        aci = as.getIterator();
        bidi = new Bidi(aci);
        jbidi = new java.text.Bidi(aci);
        compareBidi(bidi, jbidi);
        out = bidi.writeReordered(0);
        logln("Output #3 of Bidi(AttributedCharacterIterator): " + out);

        char[] text = "abc==(123)==>def".toCharArray();
        bidi = new Bidi(text, 3, null, 0, 10, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
        jbidi = new java.text.Bidi(text, 3, null, 0, 10, java.text.Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
        compareBidi(bidi, jbidi);
        out = bidi.writeReordered(0);
        logln("Output of Bidi(abc==(123)==>def,3,null,0,10, DEFAULT_LTR): " + out);
        bidi = new Bidi(text, 3, null, 0, 10, Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
        jbidi = new java.text.Bidi(text, 3, null, 0, 10, java.text.Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
        compareBidi(bidi, jbidi);
        out = bidi.writeReordered(0);
        logln("Output of Bidi(abc==(123)==>def,3,null,0,10, DEFAULT_RTL): " + out);
        byte[] levels = new byte[] {0,0,0,-1,-1,-1,0,0,0,0};
        bidi = new Bidi(text, 3, levels, 0, 10, Bidi.DIRECTION_LEFT_TO_RIGHT);
        jbidi = new java.text.Bidi(text, 3, levels, 0, 10, java.text.Bidi.DIRECTION_LEFT_TO_RIGHT);
        compareBidi(bidi, jbidi);
        out = bidi.writeReordered(0);
        logln("Output of Bidi(abc==(123)==>def,3,levels,0,10, LTR): " + out);
        bidi = new Bidi(text, 3, levels, 0, 10, Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
        jbidi = new java.text.Bidi(text, 3, levels, 0, 10, java.text.Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
        compareBidi(bidi, jbidi);
        out = bidi.writeReordered(0);
        logln("Output of Bidi(abc==(123)==>def,3,levels,0,10, DEFAULT_RTL): " + out);

        /* test reorderVisually */
        byte[] myLevels = new byte[] {1,2,0,1,2,1,2,0,1,2};
        Character[] objects = new Character[10];
View Full Code Here

    CustomClassifier classifier = null;

    public void testClassOverride()
    {
        Bidi bidi;

        logln("\nEntering TestClassOverride\n");

        bidi = new Bidi();
        verifyClassifier(bidi);

        classifier = new CustomClassifier(new Integer(TestData.R));
        bidi.setCustomClassifier(classifier);
        verifyClassifier(bidi);

        classifier.setContext(null);
        verifyClassifier(bidi);

        bidi.setPara(textIn, Bidi.LTR, null);

        String out = bidi.writeReordered(Bidi.DO_MIRRORING);
        assertEquals("Actual and expected output mismatch", textOut, out);

        logln("\nExiting TestClassOverride\n");
    }
View Full Code Here

TOP

Related Classes of com.ibm.icu.text.Bidi$Point

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.