]> granicus.if.org Git - icu/commitdiff
ICU-13243 enables and re-arranges a test case disabled during JUnit migration.
authorNorbert Runge <nrunge@google.com>
Wed, 19 Jul 2017 17:13:03 +0000 (17:13 +0000)
committerNorbert Runge <nrunge@google.com>
Wed, 19 Jul 2017 17:13:03 +0000 (17:13 +0000)
X-SVN-Rev: 40269

icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/IncrementalProgressTest.java [new file with mode: 0644]
icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorTest.java

diff --git a/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/IncrementalProgressTest.java b/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/IncrementalProgressTest.java
new file mode 100644 (file)
index 0000000..a58401a
--- /dev/null
@@ -0,0 +1,93 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+package com.ibm.icu.dev.test.translit;
+
+import java.util.Enumeration;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import com.ibm.icu.dev.test.TestFmwk;
+import com.ibm.icu.impl.UtilityExtensions;
+import com.ibm.icu.text.Replaceable;
+import com.ibm.icu.text.ReplaceableString;
+import com.ibm.icu.text.Transliterator;
+
+// Check to see that incremental gets at least part way through a reasonable string.
+@RunWith(Parameterized.class)
+public class IncrementalProgressTest extends TestFmwk {
+    private String lang;
+    private String text;
+
+    public IncrementalProgressTest(String lang, String text){
+        this.lang = lang;
+        this.text = text;
+    }
+
+    @Parameterized.Parameters
+    public static String[][] testData(){
+        String latinTest = "The Quick Brown Fox.";
+        String devaTest = Transliterator.getInstance("Latin-Devanagari").transliterate(latinTest);
+        String kataTest = Transliterator.getInstance("Latin-Katakana").transliterate(latinTest);
+        // Labels have to be valid transliterator source names.
+        String[][] tests = {
+                {"Any", latinTest},
+                {"Latin", latinTest},
+                {"Halfwidth", latinTest},
+                {"Devanagari", devaTest},
+                {"Katakana", kataTest},
+        };
+        return tests;
+    }
+
+    public void CheckIncrementalAux(Transliterator t, String input) {
+        Replaceable test = new ReplaceableString(input);
+        Transliterator.Position pos = new Transliterator.Position(0, test.length(), 0, test.length());
+        t.transliterate(test, pos);
+        boolean gotError = false;
+
+        // we have a few special cases. Any-Remove (pos.start = 0, but also = limit) and U+XXXXX?X?
+        if (pos.start == 0 && pos.limit != 0 && !t.getID().equals("Hex-Any/Unicode")) {
+            errln("No Progress, " + t.getID() + ": " + UtilityExtensions.formatInput(test, pos));
+            gotError = true;
+        } else {
+            logln("PASS Progress, " + t.getID() + ": " + UtilityExtensions.formatInput(test, pos));
+        }
+        t.finishTransliteration(test, pos);
+        if (pos.start != pos.limit) {
+            errln("Incomplete, " + t.getID() + ":  " + UtilityExtensions.formatInput(test, pos));
+            gotError = true;
+        }
+        if(!gotError){
+            //errln("FAIL: Did not get expected error");
+        }
+    }
+
+    @Test
+    public void TestIncrementalProgress() {
+        Enumeration targets = Transliterator.getAvailableTargets(this.lang);
+        while(targets.hasMoreElements()) {
+            String target = (String) targets.nextElement();
+            Enumeration variants = Transliterator.getAvailableVariants(this.lang, target);
+            while(variants.hasMoreElements()) {
+                String variant = (String) variants.nextElement();
+                String id = this.lang + "-" + target + "/" + variant;
+                logln("id: " + id);
+
+                Transliterator t = Transliterator.getInstance(id);
+                CheckIncrementalAux(t, text);
+
+                String rev = t.transliterate(text);
+
+                // Special treatment: This transliterator has no registered inverse, skip for now.
+                if (id.equals("Devanagari-Arabic/"))
+                    continue;
+
+                Transliterator inv = t.getInverse();
+                CheckIncrementalAux(inv, rev);
+            }
+        }
+    }
+
+}
\ No newline at end of file
index a53ea50e58b60eb4a7dc4b92741e49af22daac41..dd48b7ff6fab7023ff7779a435e2196f021e85cc 100644 (file)
@@ -17,7 +17,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map.Entry;
 
-import org.junit.Ignore;
 import org.junit.Test;
 
 import com.ibm.icu.dev.test.TestFmwk;
@@ -144,6 +143,10 @@ public class TransliteratorTest extends TestFmwk {
             String id = (String) e.nextElement();
             checkRegistry(id);
         }
+        // Need to remove these test-specific transliterators in order not to interfere with other tests.
+        Transliterator.unregister("foo3");
+        Transliterator.unregister("foo2");
+        Transliterator.unregister("foo1");
     }
 
     private void checkRegistry (String id, String rules) {
@@ -2794,81 +2797,6 @@ public class TransliteratorTest extends TestFmwk {
         }
     }
 
-    // Check to see that incremental gets at least part way through a reasonable string.
-    // TODO(junit): should be working - also should be converted to parameterized test
-    @Ignore
-    @Test
-    public void TestIncrementalProgress() {
-        String latinTest = "The Quick Brown Fox.";
-        String devaTest = Transliterator.getInstance("Latin-Devanagari").transliterate(latinTest);
-        String kataTest = Transliterator.getInstance("Latin-Katakana").transliterate(latinTest);
-        String[][] tests = {
-                {"Any", latinTest},
-                {"Latin", latinTest},
-                {"Halfwidth", latinTest},
-                {"Devanagari", devaTest},
-                {"Katakana", kataTest},
-        };
-
-        Enumeration sources = Transliterator.getAvailableSources();
-        while(sources.hasMoreElements()) {
-            String source = (String) sources.nextElement();
-            String test = findMatch(source, tests);
-            if (test == null) {
-                logln("Skipping " + source + "-X");
-                continue;
-            }
-            Enumeration targets = Transliterator.getAvailableTargets(source);
-            while(targets.hasMoreElements()) {
-                String target = (String) targets.nextElement();
-                Enumeration variants = Transliterator.getAvailableVariants(source, target);
-                while(variants.hasMoreElements()) {
-                    String variant = (String) variants.nextElement();
-                    String id = source + "-" + target + "/" + variant;
-                    logln("id: " + id);
-
-                    Transliterator t = Transliterator.getInstance(id);
-                    CheckIncrementalAux(t, test);
-
-                    String rev = t.transliterate(test);
-                    Transliterator inv = t.getInverse();
-                    CheckIncrementalAux(inv, rev);
-                }
-            }
-        }
-    }
-
-    public String findMatch (String source, String[][] pairs) {
-        for (int i = 0; i < pairs.length; ++i) {
-            if (source.equalsIgnoreCase(pairs[i][0])) return pairs[i][1];
-        }
-        return null;
-    }
-
-    public void CheckIncrementalAux(Transliterator t, String input) {
-
-        Replaceable test = new ReplaceableString(input);
-        Transliterator.Position pos = new Transliterator.Position(0, test.length(), 0, test.length());
-        t.transliterate(test, pos);
-        boolean gotError = false;
-
-        // we have a few special cases. Any-Remove (pos.start = 0, but also = limit) and U+XXXXX?X?
-
-        if (pos.start == 0 && pos.limit != 0 && !t.getID().equals("Hex-Any/Unicode")) {
-            errln("No Progress, " + t.getID() + ": " + UtilityExtensions.formatInput(test, pos));
-            gotError = true;
-        } else {
-            logln("PASS Progress, " + t.getID() + ": " + UtilityExtensions.formatInput(test, pos));
-        }
-        t.finishTransliteration(test, pos);
-        if (pos.start != pos.limit) {
-            errln("Incomplete, " + t.getID() + ":  " + UtilityExtensions.formatInput(test, pos));
-            gotError = true;
-        }
-        if(!gotError){
-            //errln("FAIL: Did not get expected error");
-        }
-    }
 
     @Test
     public void TestFunction() {