mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-15 09:45:26 +00:00
ICU-70 remove Jamo-Hangul and Hangul-Jamo; replace with NFC and NFD
X-SVN-Rev: 5959
This commit is contained in:
parent
1fe03194b6
commit
0b2ee337f8
4 changed files with 168 additions and 70 deletions
|
@ -71,8 +71,8 @@ public class JamoTest extends TransliteratorTest {
|
|||
|
||||
Transliterator latinJamo = Transliterator.getInstance("Latin-Jamo");
|
||||
Transliterator jamoLatin = latinJamo.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("Jamo-Hangul");
|
||||
Transliterator hangulJamo = jamoHangul.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("NFC");
|
||||
Transliterator hangulJamo = Transliterator.getInstance("NFD");
|
||||
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (int i=0; i<HANGUL.length; ++i) {
|
||||
|
@ -95,11 +95,50 @@ public class JamoTest extends TransliteratorTest {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test various step-at-a-time transformation of hangul to jamo to
|
||||
* latin and back.
|
||||
*/
|
||||
public void TestPiecemeal() {
|
||||
String hangul = "\uBC0F";
|
||||
String jamo = nameToJamo("(Mi)(I)(Cf)");
|
||||
String latin = "mic";
|
||||
|
||||
Transliterator t = null;
|
||||
|
||||
t = Transliterator.getInstance("NFD"); // was Hangul-Jamo
|
||||
expect(t, hangul, jamo);
|
||||
|
||||
t = Transliterator.getInstance("NFC"); // was Jamo-Hangul
|
||||
expect(t, jamo, hangul);
|
||||
|
||||
t = Transliterator.getInstance("Latin-Jamo");
|
||||
expect(t, latin, jamo);
|
||||
|
||||
t = Transliterator.getInstance("Jamo-Latin");
|
||||
expect(t, jamo, latin);
|
||||
|
||||
t = Transliterator.getInstance("Hangul-Latin");
|
||||
expect(t, hangul, latin);
|
||||
|
||||
t = Transliterator.getInstance("Latin-Hangul");
|
||||
expect(t, latin, hangul);
|
||||
|
||||
t = Transliterator.getInstance("Hangul-Latin; Latin-Jamo");
|
||||
expect(t, hangul, jamo);
|
||||
|
||||
t = Transliterator.getInstance("Jamo-Latin; Latin-Hangul");
|
||||
expect(t, jamo, hangul);
|
||||
|
||||
t = Transliterator.getInstance("Hangul-Latin; Latin-Hangul");
|
||||
expect(t, hangul, hangul);
|
||||
}
|
||||
|
||||
public void TestRealText() {
|
||||
Transliterator latinJamo = Transliterator.getInstance("Latin-Jamo");
|
||||
Transliterator jamoLatin = latinJamo.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("Jamo-Hangul");
|
||||
Transliterator hangulJamo = jamoHangul.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("NFC");
|
||||
Transliterator hangulJamo = Transliterator.getInstance("NFD");
|
||||
Transliterator rt = new CompoundTransliterator(new Transliterator[] {
|
||||
hangulJamo, jamoLatin, latinJamo, jamoHangul });
|
||||
|
||||
|
@ -122,21 +161,44 @@ public class JamoTest extends TransliteratorTest {
|
|||
String latin = jamoLatin.transliterate(jamo);
|
||||
String jamo2 = latinJamo.transliterate(latin);
|
||||
String hangul2 = jamoHangul.transliterate(jamo2);
|
||||
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL: ");
|
||||
if (!hangul2.equals(hangulX)) {
|
||||
buf.append("(Weird: " + hangulX + " != " + hangul2 + ")");
|
||||
if (hangul.equals(hangul2)) {
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL (Compound transliterator problem): ");
|
||||
buf.append(hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
+ " => " + hangul2 +
|
||||
"; but " + hangul + " =cpd=> " + jamoToName(hangulX)
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
} else if (jamo.equals(jamo2)) {
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL (Jamo<>Hangul problem): ");
|
||||
if (!hangul2.equals(hangulX)) {
|
||||
buf.append("(Weird: " + hangulX + " != " + hangul2 + ")");
|
||||
}
|
||||
buf.append(hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
+ " => " + hangul2
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
} else {
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL: ");
|
||||
if (!hangul2.equals(hangulX)) {
|
||||
buf.append("(Weird: " + hangulX + " != " + hangul2 + ")");
|
||||
}
|
||||
// The Hangul-Jamo conversion is not usually the
|
||||
// bug here, so we hide it from display.
|
||||
// Uncomment lines to see the Hangul.
|
||||
buf.append(//hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
//+ " => " + hangul2
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
}
|
||||
// The Hangul-Jamo conversion is not usually the
|
||||
// bug here, so we hide it from display.
|
||||
// Uncomment lines to see the Hangul.
|
||||
buf.append(//hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
//+ " => " + hangul2
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
}
|
||||
}
|
||||
pos = space+1;
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/test/translit/TransliteratorTest.java,v $
|
||||
* $Date: 2001/09/24 19:56:41 $
|
||||
* $Revision: 1.46 $
|
||||
* $Date: 2001/09/28 05:47:30 $
|
||||
* $Revision: 1.47 $
|
||||
*
|
||||
*****************************************************************************************
|
||||
*/
|
||||
|
@ -704,10 +704,10 @@ public class TransliteratorTest extends TestFmwk {
|
|||
* Test IDs of inverses of compound transliterators. (J20)
|
||||
*/
|
||||
public void TestCompoundInverseID() {
|
||||
String ID = "Latin-Jamo;Jamo-Hangul";
|
||||
String ID = "Latin-Jamo;NFC(NFD)";
|
||||
Transliterator t = Transliterator.getInstance(ID);
|
||||
Transliterator u = t.getInverse();
|
||||
String exp = "Hangul-Jamo;Jamo-Latin";
|
||||
String exp = "NFD(NFC);Jamo-Latin";
|
||||
String got = u.getID();
|
||||
if (!got.equals(exp)) {
|
||||
errln("FAIL: Inverse of " + ID + " is " + got +
|
||||
|
@ -1045,21 +1045,8 @@ public class TransliteratorTest extends TestFmwk {
|
|||
expect(NFKC, in, expkc);
|
||||
}
|
||||
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
if (false) {
|
||||
Transliterator t = Transliterator.getInstance("NFD; [x]Remove");
|
||||
expect(t, "\u010dx", "c\u030C");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -71,8 +71,8 @@ public class JamoTest extends TransliteratorTest {
|
|||
|
||||
Transliterator latinJamo = Transliterator.getInstance("Latin-Jamo");
|
||||
Transliterator jamoLatin = latinJamo.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("Jamo-Hangul");
|
||||
Transliterator hangulJamo = jamoHangul.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("NFC");
|
||||
Transliterator hangulJamo = Transliterator.getInstance("NFD");
|
||||
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (int i=0; i<HANGUL.length; ++i) {
|
||||
|
@ -95,11 +95,50 @@ public class JamoTest extends TransliteratorTest {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test various step-at-a-time transformation of hangul to jamo to
|
||||
* latin and back.
|
||||
*/
|
||||
public void TestPiecemeal() {
|
||||
String hangul = "\uBC0F";
|
||||
String jamo = nameToJamo("(Mi)(I)(Cf)");
|
||||
String latin = "mic";
|
||||
|
||||
Transliterator t = null;
|
||||
|
||||
t = Transliterator.getInstance("NFD"); // was Hangul-Jamo
|
||||
expect(t, hangul, jamo);
|
||||
|
||||
t = Transliterator.getInstance("NFC"); // was Jamo-Hangul
|
||||
expect(t, jamo, hangul);
|
||||
|
||||
t = Transliterator.getInstance("Latin-Jamo");
|
||||
expect(t, latin, jamo);
|
||||
|
||||
t = Transliterator.getInstance("Jamo-Latin");
|
||||
expect(t, jamo, latin);
|
||||
|
||||
t = Transliterator.getInstance("Hangul-Latin");
|
||||
expect(t, hangul, latin);
|
||||
|
||||
t = Transliterator.getInstance("Latin-Hangul");
|
||||
expect(t, latin, hangul);
|
||||
|
||||
t = Transliterator.getInstance("Hangul-Latin; Latin-Jamo");
|
||||
expect(t, hangul, jamo);
|
||||
|
||||
t = Transliterator.getInstance("Jamo-Latin; Latin-Hangul");
|
||||
expect(t, jamo, hangul);
|
||||
|
||||
t = Transliterator.getInstance("Hangul-Latin; Latin-Hangul");
|
||||
expect(t, hangul, hangul);
|
||||
}
|
||||
|
||||
public void TestRealText() {
|
||||
Transliterator latinJamo = Transliterator.getInstance("Latin-Jamo");
|
||||
Transliterator jamoLatin = latinJamo.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("Jamo-Hangul");
|
||||
Transliterator hangulJamo = jamoHangul.getInverse();
|
||||
Transliterator jamoHangul = Transliterator.getInstance("NFC");
|
||||
Transliterator hangulJamo = Transliterator.getInstance("NFD");
|
||||
Transliterator rt = new CompoundTransliterator(new Transliterator[] {
|
||||
hangulJamo, jamoLatin, latinJamo, jamoHangul });
|
||||
|
||||
|
@ -122,21 +161,44 @@ public class JamoTest extends TransliteratorTest {
|
|||
String latin = jamoLatin.transliterate(jamo);
|
||||
String jamo2 = latinJamo.transliterate(latin);
|
||||
String hangul2 = jamoHangul.transliterate(jamo2);
|
||||
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL: ");
|
||||
if (!hangul2.equals(hangulX)) {
|
||||
buf.append("(Weird: " + hangulX + " != " + hangul2 + ")");
|
||||
if (hangul.equals(hangul2)) {
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL (Compound transliterator problem): ");
|
||||
buf.append(hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
+ " => " + hangul2 +
|
||||
"; but " + hangul + " =cpd=> " + jamoToName(hangulX)
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
} else if (jamo.equals(jamo2)) {
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL (Jamo<>Hangul problem): ");
|
||||
if (!hangul2.equals(hangulX)) {
|
||||
buf.append("(Weird: " + hangulX + " != " + hangul2 + ")");
|
||||
}
|
||||
buf.append(hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
+ " => " + hangul2
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
} else {
|
||||
buf.setLength(0);
|
||||
buf.append("FAIL: ");
|
||||
if (!hangul2.equals(hangulX)) {
|
||||
buf.append("(Weird: " + hangulX + " != " + hangul2 + ")");
|
||||
}
|
||||
// The Hangul-Jamo conversion is not usually the
|
||||
// bug here, so we hide it from display.
|
||||
// Uncomment lines to see the Hangul.
|
||||
buf.append(//hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
//+ " => " + hangul2
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
}
|
||||
// The Hangul-Jamo conversion is not usually the
|
||||
// bug here, so we hide it from display.
|
||||
// Uncomment lines to see the Hangul.
|
||||
buf.append(//hangul + " => " +
|
||||
jamoToName(jamo) + " => " +
|
||||
latin + " => " + jamoToName(jamo2)
|
||||
//+ " => " + hangul2
|
||||
);
|
||||
errln(Utility.escape(buf.toString()));
|
||||
}
|
||||
}
|
||||
pos = space+1;
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/test/translit/Attic/TransliteratorTest.java,v $
|
||||
* $Date: 2001/09/24 19:56:41 $
|
||||
* $Revision: 1.46 $
|
||||
* $Date: 2001/09/28 05:47:30 $
|
||||
* $Revision: 1.47 $
|
||||
*
|
||||
*****************************************************************************************
|
||||
*/
|
||||
|
@ -704,10 +704,10 @@ public class TransliteratorTest extends TestFmwk {
|
|||
* Test IDs of inverses of compound transliterators. (J20)
|
||||
*/
|
||||
public void TestCompoundInverseID() {
|
||||
String ID = "Latin-Jamo;Jamo-Hangul";
|
||||
String ID = "Latin-Jamo;NFC(NFD)";
|
||||
Transliterator t = Transliterator.getInstance(ID);
|
||||
Transliterator u = t.getInverse();
|
||||
String exp = "Hangul-Jamo;Jamo-Latin";
|
||||
String exp = "NFD(NFC);Jamo-Latin";
|
||||
String got = u.getID();
|
||||
if (!got.equals(exp)) {
|
||||
errln("FAIL: Inverse of " + ID + " is " + got +
|
||||
|
@ -1045,21 +1045,8 @@ public class TransliteratorTest extends TestFmwk {
|
|||
expect(NFKC, in, expkc);
|
||||
}
|
||||
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
// TODO Re-enable this test!!!!
|
||||
if (false) {
|
||||
Transliterator t = Transliterator.getInstance("NFD; [x]Remove");
|
||||
expect(t, "\u010dx", "c\u030C");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue