Exemple #1
0
        private void expect(Transliterator t, String source, String expectedResult)
        {
            String result = t.Transliterate(source);

            expectAux(t.ID + ":String", source, result, expectedResult);

            ReplaceableString rsource = new ReplaceableString(source);

            t.Transliterate(rsource);
            result = rsource.ToString();
            expectAux(t.ID + ":Replaceable", source, result, expectedResult);

            // Test keyboard (incremental) transliteration -- this result
            // must be the same after we finalize (see below).
            rsource.Replace(0, rsource.Length, "");
            TransliterationPosition index = new TransliterationPosition();
            StringBuffer            log   = new StringBuffer();

            for (int i = 0; i < source.Length; ++i)
            {
                if (i != 0)
                {
                    log.Append(" + ");
                }
                log.Append(source[i]).Append(" -> ");
                t.Transliterate(rsource, index,
                                source[i] + "");
                // Append the string buffer with a vertical bar '|' where
                // the committed index is.
                String s = rsource.ToString();
                log.Append(s.Substring(0, index.Start)). // ICU4N: Checked 2nd parameter
                Append('|').
                Append(s.Substring(index.Start));
            }

            // As a final step in keyboard transliteration, we must call
            // transliterate to finish off any pending partial matches that
            // were waiting for more input.
            t.FinishTransliteration(rsource, index);
            result = rsource.ToString();
            log.Append(" => ").Append(rsource.ToString());
            expectAux(t.ID + ":Keyboard", log.ToString(),
                      result.Equals(expectedResult),
                      expectedResult);
        }
Exemple #2
0
 public String GetStyles()
 {
     return(Styles.ToString());
 }
Exemple #3
0
        public void TestTransliterate()
        {
            Logln("Testing the handleTransliterate() API of CompoundTransliterator");
            Transliterator ct1 = null;

            try
            {
                ct1 = Transliterator.GetInstance("Any-Hex;Hex-Any");
            }
            catch (ArgumentException iae)
            {
                Errln("FAIL: construction using CompoundTransliterator(String ID) failed for " + "Any-Hex;Hex-Any");
                throw iae;
            }

            String s = "abcabc";

            expect(ct1, s, s);
            TransliterationPosition index    = new TransliterationPosition();
            ReplaceableString       rsource2 = new ReplaceableString(s);
            String expectedResult            = s;

            ct1.Transliterate(rsource2, index);
            ct1.FinishTransliteration(rsource2, index);
            String result = rsource2.ToString();

            expectAux(ct1.ID + ":ReplaceableString, index(0,0,0,0)", s + "->" + rsource2, result.Equals(expectedResult), expectedResult);

            TransliterationPosition index2   = new TransliterationPosition(1, 3, 2, 3);
            ReplaceableString       rsource3 = new ReplaceableString(s);

            ct1.Transliterate(rsource3, index2);
            ct1.FinishTransliteration(rsource3, index2);
            result = rsource3.ToString();
            expectAux(ct1.ID + ":String, index2(1,2,2,3)", s + "->" + rsource3, result.Equals(expectedResult), expectedResult);


            String[] Data =
            {
                //ID, input string, transliterated string
                "Any-Hex;Hex-Any;Any-Hex",              "hello",                                      "\\u0068\\u0065\\u006C\\u006C\\u006F",
                "Any-Hex;Hex-Any",                      "hello! How are you?",                        "hello! How are you?",
                "Devanagari-Latin;Latin-Devanagari",    "\u092D\u0948'\u0930'\u0935",                 "\u092D\u0948\u0930\u0935", // quotes lost
                "Latin-Cyrillic;Cyrillic-Latin",        "a'b'k'd'e'f'g'h'i'j'Shch'shch'zh'h",         "a'b'k'd'e'f'g'h'i'j'Shch'shch'zh'h",
                "Latin-Greek;Greek-Latin",              "ABGabgAKLMN",                                "ABGabgAKLMN",
                //"Latin-Arabic;Arabic-Latin",               "Ad'r'a'b'i'k'dh'dd'gh", "Adrabikdhddgh",
                "Hiragana-Katakana",                    "\u3041\u308f\u3099\u306e\u304b\u3092\u3099",
                "\u30A1\u30f7\u30ce\u30ab\u30fa",
                "Hiragana-Katakana;Katakana-Hiragana",  "\u3041\u308f\u3099\u306e\u304b\u3051",
                "\u3041\u308f\u3099\u306e\u304b\u3051",
                "Katakana-Hiragana;Hiragana-Katakana",  "\u30A1\u30f7\u30ce\u30f5\u30f6",
                "\u30A1\u30f7\u30ce\u30ab\u30b1",
                "Latin-Katakana;Katakana-Latin",        "vavivuvevohuzizuzoninunasesuzezu",
                "vavivuvevohuzizuzoninunasesuzezu",
            };
            Transliterator ct2 = null;

            for (int i = 0; i < Data.Length; i += 3)
            {
                try
                {
                    ct2 = Transliterator.GetInstance(Data[i + 0]);
                }
                catch (ArgumentException iae2)
                {
                    Errln("FAIL: CompoundTransliterator construction failed for " + Data[i + 0]);
                    throw iae2;
                }
                expect(ct2, Data[i + 1], Data[i + 2]);
            }
        }