package org.geogebra.common.util;
public class KoreanTest {
public static void main(String[] args) {
String[] test = { "\uB098", "\uB108", "\uC6B0\uB9AC", "\uBBF8\uBD84",
"\uBCA1\uD130", "\uC0C1\uC218", "\uB2ED\uBA39\uC5B4",
"\uC6EC\uC77C", "\uC801\uBD84", "\uC288\uD37C\uB9E8",
"\u3137\u3137", "\uC778\uD14C\uADF8\uB784", "\u3137", "\u3131",
"\u3134", "asdf", "\uC8FC\uC778\uC7A5",
"\uC774\uC81C\uC880\uC790\uC790",
"\uC544 \uBAA8\uB974\uACA0\uB2E4" };
String flat;
String unflat;
System.out.println("TEST 1");
for (int i = 0; i < test.length; i++) {
flat = Korean.flattenKorean(test[i]);
unflat = Korean.unflattenKorean(flat).toString();
if (unflat.equals(test[i])) {
// System.out.println("OK");
} else {
System.err.println("not OK");
System.err.println(
test[i] + " " + StringUtil.toHexString(test[i]));
System.err.println(flat + " " + StringUtil.toHexString(flat));
System.err
.println(unflat + " " + StringUtil.toHexString(unflat));
}
}
System.out.println("TEST 2 Lead + Tail");
for (char i = 0x1100; i <= 0x1112; i++) {
for (char j = 0x1161; j <= 0x1175; j++) {
String s = i + "" + j;
System.out.println(i + " " + j + " -> "
+ Korean.unflattenKorean(s).toString());
}
}
System.out.println("TEST 3");
for (char i = 0xac00; i <= 0xD788; i += 1) {
// String s = i + "";
// System.out.println(i + " " + StringUtil.toHexString(s) + " "
// + Korean.isKoreanLeadPlusVowelChar(i)
// + (((i + 12) % 28) == 0));
if ((((i + 12) % 28) == 0) != Korean.isKoreanLeadPlusVowelChar(i)) {
System.out.println("error " + i);
}
}
}
}