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); }
public String GetStyles() { return(Styles.ToString()); }
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]); } }