]> granicus.if.org Git - icu/commitdiff
ICU-9024 Unit test for Arabic Mathematical Alphabetic Symbols
authorRamy Said <ramys@svn.icu-project.org>
Thu, 4 Oct 2012 16:40:27 +0000 (16:40 +0000)
committerRamy Said <ramys@svn.icu-project.org>
Thu, 4 Oct 2012 16:40:27 +0000 (16:40 +0000)
X-SVN-Rev: 32503

.gitattributes
icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestReorderArabicMathSymbols.java [new file with mode: 0644]

index 127dee56a8b1d6d0c1f79557d158dcc6d53d4491..9e966402cf76e9bc7e87eb5ccc569d4177789783 100644 (file)
@@ -308,6 +308,7 @@ icu4j/main/tests/core/manifest.stub -text
 icu4j/main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict -text
 icu4j/main/tests/core/src/com/ibm/icu/dev/data/resources/testmessages.properties -text
 icu4j/main/tests/core/src/com/ibm/icu/dev/data/thai6.ucs -text
+icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestReorderArabicMathSymbols.java -text
 icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat -text
 icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.TimeZoneAdapter.dat -text
 icu4j/main/tests/core/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat -text
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestReorderArabicMathSymbols.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestReorderArabicMathSymbols.java
new file mode 100644 (file)
index 0000000..51174e5
--- /dev/null
@@ -0,0 +1,148 @@
+/*\r
+ *******************************************************************************\r
+ * Copyright (C) 2012, International Business Machines Corporation and         *\r
+ * others. All Rights Reserved.                                                *\r
+ *******************************************************************************\r
+ */\r
+package com.ibm.icu.dev.test.bidi;\r
+\r
+import com.ibm.icu.text.Bidi;\r
+\r
+\r
+/**\r
+ * Regression test for the Arabic Mathematical Alphabetic Symbols.\r
+ *\r
+ * Ported from C by Ramy Said\r
+ */\r
+\r
+public class TestReorderArabicMathSymbols extends BidiTest {\r
+\r
+    private static final String[] logicalOrder = {\r
+        /* Arabic mathematical Symbols "\u1EE00 - "\u1EE1B */\r
+        "\uD83B\uDE00\uD83B\uDE01\uD83B\uDE02\uD83B\uDE03\u0020" + \r
+        "\uD83B\uDE24\uD83B\uDE05\uD83B\uDE06\u0020" + \r
+        "\uD83B\uDE07\uD83B\uDE08\uD83B\uDE09\u0020" + \r
+        "\uD83B\uDE0A\uD83B\uDE0B\uD83B\uDE0C\uD83B\uDE0D\u0020" + \r
+        "\uD83B\uDE0E\uD83B\uDE0F\uD83B\uDE10\uD83B\uDE11\u0020" + \r
+        "\uD83B\uDE12\uD83B\uDE13\uD83B\uDE14\uD83B\uDE15\u0020" + \r
+        "\uD83B\uDE16\uD83B\uDE17\uD83B\uDE18\u0020" + \r
+        "\uD83B\uDE19\uD83B\uDE1A\uD83B\uDE1B",\r
+        /* Arabic mathematical Symbols - Looped Symbols\u1EE80 - "\u1EE9B */\r
+        "\uD83B\uDE80\uD83B\uDE81\uD83B\uDE82\uD83B\uDE83\u0020" + \r
+        "\uD83B\uDE84\uD83B\uDE85\uD83B\uDE86\u0020" + \r
+        "\uD83B\uDE87\uD83B\uDE88\uD83B\uDE89\u0020" + \r
+        "\uD83B\uDE8B\uD83B\uDE8C\uD83B\uDE8D\u0020" + \r
+        "\uD83B\uDE8E\uD83B\uDE8F\uD83B\uDE90\uD83B\uDE91\u0020" + \r
+        "\uD83B\uDE92\uD83B\uDE93\uD83B\uDE94\uD83B\uDE95\u0020" + \r
+        "\uD83B\uDE96\uD83B\uDE97\uD83B\uDE98\u0020" + \r
+        "\uD83B\uDE99\uD83B\uDE9A\uD83B\uDE9B",\r
+        /* Arabic mathematical Symbols - Double-struck Symbols\u1EEA1 - "\u1EEBB */\r
+        "\uD83B\uDEA1\uD83B\uDEA2\uD83B\uDEA3\u0020" + \r
+        "\uD83B\uDEA5\uD83B\uDEA6\u0020" + \r
+        "\uD83B\uDEA7\uD83B\uDEA8\uD83B\uDEA9\u0020" + \r
+        "\uD83B\uDEAB\uD83B\uDEAC\uD83B\uDEAD\u0020" + \r
+        "\uD83B\uDEAE\uD83B\uDEAF\uD83B\uDEB0\uD83B\uDEB1\u0020" + \r
+        "\uD83B\uDEB2\uD83B\uDEB3\uD83B\uDEB4\uD83B\uDEB5\u0020" + \r
+        "\uD83B\uDEB6\uD83B\uDEB7\uD83B\uDEB8\u0020" + \r
+        "\uD83B\uDEB9\uD83B\uDEBA\uD83B\uDEBB",\r
+        /* Arabic mathematical Symbols - Initial Symbols\u1EE21 - "\u1EE3B */\r
+        "\uD83B\uDE21\uD83B\uDE22\u0020" + \r
+        "\uD83B\uDE27\uD83B\uDE29\u0020" + \r
+        "\uD83B\uDE2A\uD83B\uDE2B\uD83B\uDE2C\uD83B\uDE2D\u0020" + \r
+        "\uD83B\uDE2E\uD83B\uDE2F\uD83B\uDE30\uD83B\uDE31\u0020" + \r
+        "\uD83B\uDE32\uD83B\uDE34\uD83B\uDE35\u0020" + \r
+        "\uD83B\uDE36\uD83B\uDE37\u0020" + \r
+        "\uD83B\uDE39\uD83B\uDE3B",\r
+        /* Arabic mathematical Symbols - Tailed Symbols */\r
+        "\uD83B\uDE42\uD83B\uDE47\uD83B\uDE49\uD83B\uDE4B\u0020" + \r
+        "\uD83B\uDE4D\uD83B\uDE4E\uD83B\uDE4F\u0020" + \r
+        "\uD83B\uDE51\uD83B\uDE52\uD83B\uDE54\uD83B\uDE57\u0020" + \r
+        "\uD83B\uDE59\uD83B\uDE5B\uD83B\uDE5D\uD83B\uDE5F"\r
+    };\r
+\r
+    private static final String[] visualOrder = {\r
+        /* Arabic mathematical Symbols "\u1EE00 - "\u1EE1B */\r
+        "\uD83B\uDE1B\uD83B\uDE1A\uD83B\uDE19\u0020" +    \r
+        "\uD83B\uDE18\uD83B\uDE17\uD83B\uDE16\u0020" +    \r
+        "\uD83B\uDE15\uD83B\uDE14\uD83B\uDE13\uD83B\uDE12\u0020" +\r
+        "\uD83B\uDE11\uD83B\uDE10\uD83B\uDE0F\uD83B\uDE0E\u0020" +\r
+        "\uD83B\uDE0D\uD83B\uDE0C\uD83B\uDE0B\uD83B\uDE0A\u0020" +\r
+        "\uD83B\uDE09\uD83B\uDE08\uD83B\uDE07\u0020" +    \r
+        "\uD83B\uDE06\uD83B\uDE05\uD83B\uDE24\u0020" +    \r
+        "\uD83B\uDE03\uD83B\uDE02\uD83B\uDE01\uD83B\uDE00",\r
+        /* Arabic mathematical Symbols - Looped Symbols\u1EE80 - "\u1EE9B */\r
+        "\uD83B\uDE9B\uD83B\uDE9A\uD83B\uDE99\u0020" +    \r
+        "\uD83B\uDE98\uD83B\uDE97\uD83B\uDE96\u0020" +    \r
+        "\uD83B\uDE95\uD83B\uDE94\uD83B\uDE93\uD83B\uDE92\u0020" +\r
+        "\uD83B\uDE91\uD83B\uDE90\uD83B\uDE8F\uD83B\uDE8E\u0020" +\r
+        "\uD83B\uDE8D\uD83B\uDE8C\uD83B\uDE8B\u0020" +    \r
+        "\uD83B\uDE89\uD83B\uDE88\uD83B\uDE87\u0020" +    \r
+        "\uD83B\uDE86\uD83B\uDE85\uD83B\uDE84\u0020" +    \r
+        "\uD83B\uDE83\uD83B\uDE82\uD83B\uDE81\uD83B\uDE80",\r
+        /* Arabic mathematical Symbols - Double-struck Symbols\u1EEA1 - "\u1EEBB */\r
+        "\uD83B\uDEBB\uD83B\uDEBA\uD83B\uDEB9\u0020" +    \r
+        "\uD83B\uDEB8\uD83B\uDEB7\uD83B\uDEB6\u0020" +    \r
+        "\uD83B\uDEB5\uD83B\uDEB4\uD83B\uDEB3\uD83B\uDEB2\u0020" +\r
+        "\uD83B\uDEB1\uD83B\uDEB0\uD83B\uDEAF\uD83B\uDEAE\u0020" +\r
+        "\uD83B\uDEAD\uD83B\uDEAC\uD83B\uDEAB\u0020" +    \r
+        "\uD83B\uDEA9\uD83B\uDEA8\uD83B\uDEA7\u0020" +    \r
+        "\uD83B\uDEA6\uD83B\uDEA5\u0020" +            \r
+        "\uD83B\uDEA3\uD83B\uDEA2\uD83B\uDEA1",\r
+        /* Arabic mathematical Symbols - Initial Symbols\u1EE21 - "\u1EE3B */\r
+        "\uD83B\uDE3B\uD83B\uDE39\u0020" +            \r
+        "\uD83B\uDE37\uD83B\uDE36\u0020" +            \r
+        "\uD83B\uDE35\uD83B\uDE34\uD83B\uDE32\u0020" +    \r
+        "\uD83B\uDE31\uD83B\uDE30\uD83B\uDE2F\uD83B\uDE2E\u0020" +\r
+        "\uD83B\uDE2D\uD83B\uDE2C\uD83B\uDE2B\uD83B\uDE2A\u0020" +\r
+        "\uD83B\uDE29\uD83B\uDE27\u0020" +            \r
+        "\uD83B\uDE22\uD83B\uDE21",\r
+        /* Arabic mathematical Symbols - Tailed Symbols */\r
+        "\uD83B\uDE5F\uD83B\uDE5D\uD83B\uDE5B\uD83B\uDE59\u0020" +\r
+        "\uD83B\uDE57\uD83B\uDE54\uD83B\uDE52\uD83B\uDE51\u0020" +\r
+        "\uD83B\uDE4F\uD83B\uDE4E\uD83B\uDE4D\u0020" +    \r
+        "\uD83B\uDE4B\uD83B\uDE49\uD83B\uDE47\uD83B\uDE42"\r
+    };\r
+\r
+    public void testReorderArabicMathSymbols() {\r
+        Bidi bidi = new Bidi();\r
+        int testNumber;\r
+        int nTests = logicalOrder.length;\r
+        String srcU16, dest = "";\r
+\r
+        logln("\nEntering TestReorderArabicMathSymbols\n");\r
+\r
+        for (testNumber = 0; testNumber < nTests; testNumber++) {\r
+            logln("Testing L2V #1 for case " + testNumber);\r
+            srcU16 = logicalOrder[testNumber];\r
+            try {\r
+                bidi.setPara(srcU16, Bidi.LEVEL_DEFAULT_LTR, null);\r
+            } catch (Exception e) {\r
+                errln("Bidi.setPara(tests[" + testNumber + "], paraLevel " +\r
+                      Bidi.LEVEL_DEFAULT_LTR + " failed.");\r
+            }\r
+            try {\r
+                dest = bidi.writeReordered(Bidi.DO_MIRRORING);\r
+            } catch (Exception e) {\r
+                errln("Bidi.writeReordered(tests[" + testNumber + "], paraLevel " +\r
+                      Bidi.LEVEL_DEFAULT_LTR + " failed.");\r
+            }\r
+            if (!visualOrder[testNumber].equals(dest)) {\r
+                assertEquals("Failure #1 in Bidi.writeReordered(), test number " +\r
+                             testNumber, visualOrder[testNumber], dest, srcU16, null,\r
+                             "Bidi.DO_MIRRORING", "Bidi.LEVEL_DEFAULT_LTR");\r
+            }\r
+        }\r
+        \r
+        logln("\nExiting TestReorderArabicMathSymbols\n");\r
+    }\r
+    \r
+    public static void main(String[] args) {\r
+        try {\r
+            new TestReorderArabicMathSymbols().run(args);\r
+        }\r
+        catch (Exception e) {\r
+            System.out.println(e);\r
+        }\r
+    }\r
+\r
+}\r