| /** |
| ******************************************************************************* |
| * Copyright (C) 1996-2001, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * |
| * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/test/text/Attic/UCharacterTest.java,v $ |
| * $Date: 2001/03/23 19:52:03 $ |
| * $Revision: 1.9 $ |
| * |
| ******************************************************************************* |
| */ |
| |
| package com.ibm.icu.test.text; |
| |
| import java.io.BufferedReader; |
| import java.io.FileReader; |
| import java.io.FileNotFoundException; |
| import java.util.Locale; |
| import com.ibm.test.TestFmwk; |
| import com.ibm.text.UCharacter; |
| import com.ibm.text.UCharacterCategory; |
| import com.ibm.text.UCharacterDirection; |
| import com.ibm.text.UTF16; |
| |
| /** |
| * Testing class for UCharacter |
| * Mostly following the test cases for ICU |
| * @author Syn Wee Quek |
| * @since nov 04 2000 |
| */ |
| public final class UCharacterTest extends TestFmwk |
| { |
| // private variables ============================================= |
| |
| /** |
| * ICU4J data version number |
| */ |
| private final String VERSION_ = "3.0.0.0"; |
| |
| // constructor =================================================== |
| |
| /** |
| * Constructor |
| */ |
| public UCharacterTest() |
| { |
| } |
| |
| // public methods ================================================ |
| |
| /** |
| * Testing the uppercase and lowercase function of UCharacter |
| */ |
| public void TestUpperLower() |
| { |
| // variables to test the uppercase and lowercase characters |
| int upper[] = {0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0xb1, 0xb2, |
| 0xb3, 0x48, 0x49, 0x4a, 0x2e, 0x3f, 0x3a, 0x4b, 0x4c, |
| 0x4d, 0x4e, 0x4f, 0x01c4, 0x01c8, 0x000c, 0x0000}; |
| int lower[] = {0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0xb1, 0x00b2, |
| 0xb3, 0x68, 0x69, 0x6a, 0x2e, 0x3f, 0x3a, 0x6b, 0x6c, |
| 0x6d, 0x6e, 0x6f, 0x01c6, 0x01c9, 0x000c, 0x0000}; |
| |
| int size = upper.length; |
| |
| for (int i = 0; i < size; i ++) |
| { |
| if (UCharacter.isLetter(lower[i]) && !UCharacter.isLowerCase(lower[i])) |
| { |
| errln("FAIL isLowerCase test for 0x" + |
| Integer.toHexString(lower[i])); |
| break; |
| } |
| if (UCharacter.isLetter(upper[i]) && !(UCharacter.isUpperCase(upper[i]) |
| || UCharacter.isTitleCase(upper[i]))) |
| { |
| errln("FAIL isUpperCase test for 0x" + |
| Integer.toHexString(upper[i])); |
| break; |
| } |
| if (lower[i] != UCharacter.toLowerCase(upper[i]) || |
| (upper[i] != UCharacter.toUpperCase(lower[i]) && |
| upper[i] != UCharacter.toTitleCase(lower[i]))) |
| { |
| errln("FAIL case conversion test for 0x" + |
| Integer.toHexString(upper[i]) + " to 0x" + |
| Integer.toHexString(lower[i])); |
| break; |
| } |
| if (lower[i] != UCharacter.toLowerCase(lower[i])) |
| { |
| errln("FAIL lower case conversion test for 0x" + |
| Integer.toHexString(lower[i])); |
| break; |
| } |
| if (upper[i] != UCharacter.toUpperCase(upper[i]) && |
| upper[i] != UCharacter.toTitleCase(upper[i])) |
| { |
| errln("FAIL upper case conversion test for 0x" + |
| Integer.toHexString(upper[i])); |
| break; |
| } |
| logln("Ok 0x" + Integer.toHexString(upper[i]) + " and 0x" + |
| Integer.toHexString(lower[i])); |
| } |
| } |
| |
| /** |
| * Testing the letter and number determination in UCharacter |
| */ |
| public void TestLetterNumber() |
| { |
| for (int i = 0x0041; i < 0x005B; i ++) |
| if (!UCharacter.isLetter(i)) |
| errln("FAIL 0x" + Integer.toHexString(i) + " expected to be a letter"); |
| |
| for (int i = 0x0660; i < 0x066A; i ++) |
| if (UCharacter.isLetter(i)) |
| errln("FAIL 0x" + Integer.toHexString(i) + |
| " expected not to be a letter"); |
| |
| for (int i = 0x0660; i < 0x066A; i ++) |
| if (!UCharacter.isDigit(i)) |
| errln("FAIL 0x" + Integer.toHexString(i) + " expected to be a digit"); |
| |
| for (int i = 0x0041; i < 0x005B; i ++) |
| if (!UCharacter.isLetterOrDigit(i)) |
| errln("FAIL 0x" + Integer.toHexString(i) + |
| " expected not to be a digit"); |
| |
| for (int i = 0x0660; i < 0x066A; i ++) |
| if (!UCharacter.isLetterOrDigit(i)) |
| errln("FAIL 0x" + Integer.toHexString(i) + |
| "expected to be either a letter or a digit"); |
| } |
| |
| /** |
| * Tests for space determination in UCharacter |
| */ |
| public void TestSpaces() |
| { |
| int spaces[] = {0x0020, 0x00a0, 0x2000, 0x2001, 0x2005}; |
| int nonspaces[] = {0x61, 0x62, 0x63, 0x64, 0x74}; |
| int whitespaces[] = {0x2008, 0x2009, 0x200a, 0x001c, 0x000c}; |
| int nonwhitespaces[] = {0x61, 0x62, 0x3c, 0x28, 0x3f}; |
| |
| int size = spaces.length; |
| for (int i = 0; i < size; i ++) |
| { |
| if (!UCharacter.isSpaceChar(spaces[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(spaces[i]) + |
| " expected to be a space character"); |
| break; |
| } |
| |
| if (UCharacter.isSpaceChar(nonspaces[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonspaces[i]) + |
| " expected not to be space character"); |
| break; |
| } |
| |
| if (!UCharacter.isWhitespace(whitespaces[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(whitespaces[i]) + |
| " expected to be a white space character"); |
| break; |
| } |
| if (UCharacter.isWhitespace(nonwhitespaces[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonwhitespaces[i]) + |
| " expected not to be a space character"); |
| break; |
| } |
| logln("Ok 0x" + Integer.toHexString(spaces[i]) + " and 0x" + |
| Integer.toHexString(nonspaces[i]) + " and 0x" + |
| Integer.toHexString(whitespaces[i]) + " and 0x" + |
| Integer.toHexString(nonwhitespaces[i])); |
| } |
| } |
| |
| /** |
| * Tests for defined and undefined characters |
| */ |
| public void TestDefined() |
| { |
| int undefined[] = {0xfff1, 0xfff7, 0xfa30}; |
| int defined[] = {0x523E, 0x4f88, 0xfffd}; |
| |
| int size = undefined.length; |
| for (int i = 0; i < size; i ++) |
| { |
| if (UCharacter.isDefined(undefined[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(undefined[i]) + |
| " expected not to be defined"); |
| break; |
| } |
| if (!UCharacter.isDefined(defined[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(defined[i]) + |
| " expected defined"); |
| break; |
| } |
| } |
| } |
| |
| /** |
| * Tests for base characters and their cellwidth |
| */ |
| public void TestBase() |
| { |
| int base[] = {0x0061, 0x0031, 0x03d2}; |
| int nonbase[] = {0x002B, 0x0020, 0x203B}; |
| int size = base.length; |
| for (int i = 0; i < size; i ++) |
| { |
| if (UCharacter.isBaseForm(nonbase[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonbase[i]) + |
| " expected not to be a base character"); |
| break; |
| } |
| if (!UCharacter.isBaseForm(base[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(base[i]) + |
| " expected to be a base character"); |
| break; |
| } |
| } |
| } |
| |
| /** |
| * Tests for digit characters |
| */ |
| public void TestDigits() |
| { |
| int digits[] = {0x0030, 0x0662, 0x0F23, 0x0ED5, 0x2160}; |
| |
| //special characters not in the properties table |
| int digits2[] = {0x3007, 0x4e00, 0x4e8c, 0x4e09, 0x56d8, 0x4e94, 0x516d, |
| 0x4e03, 0x516b, 0x4e5d}; |
| int nondigits[] = {0x0010, 0x0041, 0x0122, 0x68FE}; |
| |
| int digitvalues[] = {0, 2, 3, 5, 1}; |
| int digitvalues2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; |
| |
| int size = digits.length; |
| for (int i = 0; i < size; i ++) |
| if (UCharacter.isDigit(digits[i]) && |
| UCharacter.digit(digits[i]) != digitvalues[i]) |
| { |
| errln("FAIL 0x" + Integer.toHexString(digits[i]) + |
| " expected digit with value " + digitvalues[i]); |
| break; |
| } |
| |
| size = nondigits.length; |
| for (int i = 0; i < size; i ++) |
| if (UCharacter.isDigit(nondigits[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nondigits[i]) + |
| " expected nondigit"); |
| break; |
| } |
| |
| size = digits2.length; |
| for (int i = 0; i < 10; i ++) |
| if (UCharacter.isDigit(digits2[i]) && |
| UCharacter.digit(digits2[i]) != digitvalues2[i]) |
| { |
| errln("FAIL 0x" + Integer.toHexString(digits2[i]) + |
| " expected digit with value " + digitvalues2[i]); |
| break; |
| } |
| } |
| |
| /** |
| * Tests for version |
| */ |
| public void TestVersion() |
| { |
| String version = UCharacter.getUnicodeVersion(); |
| if (!version.equals(VERSION_)) |
| errln("FAIL expected " + VERSION_); |
| } |
| |
| /** |
| * Tests for control characters |
| */ |
| /* |
| public void TestControl() |
| { |
| int control[] = {0x001b, 0x0097, 0x0082}; |
| int noncontrol[] = {0x61, 0x0031, 0x00e2}; |
| |
| int size = control.length; |
| for (int i = 0; i < size; i ++) |
| { |
| if (!UCharacter.isControl(control[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(control[i]) + |
| " expected to be a control character"); |
| break; |
| } |
| if (UCharacter.isControl(noncontrol[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(noncontrol[i]) + |
| " expected to be not a control character"); |
| break; |
| } |
| |
| logln("Ok 0x" + Integer.toHexString(control[i]) + " and 0x" + |
| Integer.toHexString(noncontrol[i])); |
| } |
| } |
| */ |
| |
| /** |
| * Tests for printable characters |
| */ |
| public void TestPrint() |
| { |
| int printable[] = {0x0042, 0x005f, 0x2014}; |
| int nonprintable[] = {0x200c, 0x009f, 0x001b}; |
| |
| int size = printable.length; |
| for (int i = 0; i < size; i ++) |
| { |
| if (!UCharacter.isPrintable(printable[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(printable[i]) + |
| " expected to be a printable character"); |
| break; |
| } |
| if (UCharacter.isPrintable(nonprintable[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonprintable[i]) + |
| " expected not to be a printable character"); |
| break; |
| } |
| logln("Ok 0x" + Integer.toHexString(printable[i]) + " and 0x" + |
| Integer.toHexString(nonprintable[i])); |
| } |
| |
| // test all ISO 8 controls |
| for (int ch = 0; ch <= 0x9f; ++ ch) { |
| if (ch == 0x20) { |
| // skip ASCII graphic characters and continue with DEL |
| ch = 0x7f; |
| } |
| if (UCharacter.isPrintable(ch)) { |
| errln("Fail 0x" + Integer.toHexString(ch) + |
| " is a ISO 8 control character hence not printable\n"); |
| } |
| } |
| |
| /* test all Latin-1 graphic characters */ |
| for (int ch = 0x20; ch <= 0xff; ++ ch) { |
| if (ch == 0x7f) { |
| ch = 0xa0; |
| } |
| if (!UCharacter.isPrintable(ch)) { |
| errln("Fail 0x" + Integer.toHexString(ch) + |
| " is a Latin-1 graphic character\n"); |
| } |
| } |
| } |
| |
| /** |
| * Testing for identifier characters |
| */ |
| public void TestIdentifier() |
| { |
| int unicodeidstart[] = {0x0250, 0x00e2, 0x0061}; |
| int nonunicodeidstart[] = {0x2000, 0x000a, 0x2019}; |
| int unicodeidpart[] = {0x005f, 0x0032, 0x0045}; |
| int nonunicodeidpart[] = {0x2030, 0x00a3, 0x0020}; |
| int idignore[] = {0x070F, 0x180B, 0x180C}; |
| int nonidignore[] = {0x0075, 0x00a3, 0x0061}; |
| |
| int size = unicodeidstart.length; |
| for (int i = 0; i < size; i ++) |
| { |
| if (!UCharacter.isUnicodeIdentifierStart(unicodeidstart[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(unicodeidstart[i]) + |
| " expected to be a unicode identifier start character"); |
| break; |
| } |
| if (UCharacter.isUnicodeIdentifierStart(nonunicodeidstart[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonunicodeidstart[i]) + |
| " expected not to be a unicode identifier start character"); |
| break; |
| } |
| if (!UCharacter.isUnicodeIdentifierPart(unicodeidpart[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(unicodeidpart[i]) + |
| " expected to be a unicode identifier part character"); |
| break; |
| } |
| if (UCharacter.isUnicodeIdentifierPart(nonunicodeidpart[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonunicodeidpart[i]) + |
| " expected not to be a unicode identifier part character"); |
| break; |
| } |
| if (!UCharacter.isIdentifierIgnorable(idignore[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(idignore[i]) + |
| " expected to be a ignorable unicode character"); |
| break; |
| } |
| if (UCharacter.isIdentifierIgnorable(nonidignore[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(nonidignore[i]) + |
| " expected not to be a ignorable unicode character"); |
| break; |
| } |
| logln("Ok 0x" + Integer.toHexString(unicodeidstart[i]) + " and 0x" + |
| Integer.toHexString(nonunicodeidstart[i]) + " and 0x" + |
| Integer.toHexString(unicodeidpart[i]) + " and 0x" + |
| Integer.toHexString(nonunicodeidpart[i]) + " and 0x" + |
| Integer.toHexString(idignore[i]) + " and 0x" + |
| Integer.toHexString(nonidignore[i])); |
| } |
| } |
| |
| /** |
| * Tests for the character types, direction.<br> |
| * This method reads in UnicodeData.txt file for testing purposes. A default |
| * path is provided relative to the class path, however if the user could |
| * set a system property to change the path.<br> |
| * e.g. java -DUnicodeData="anyfile.dat" com.ibm.test.text.UCharacterTest |
| */ |
| public void TestUnicodeData() |
| { |
| // this is the 2 char category types used in the UnicodeData file |
| final String TYPE = |
| "LuLlLtLmLoMnMeMcNdNlNoZsZlZpCcCfCoCsPdPsPePcPoSmScSkSoPiPf"; |
| |
| // directory types used in the UnicodeData file |
| // padded by spaces to make each type size 4 |
| final String DIR = |
| "L R EN ES ET AN CS B S WS ON LRE LRO AL RLE RLO PDF NSM BN "; |
| |
| // default unicode data file name |
| final String UNICODE_DATA_FILE = "src//data//unicode//UnicodeData.txt"; |
| |
| // unicode data file path system name |
| final String UNICODE_DATA_SYSTEM_NAME = "UnicodeData"; |
| String s = System.getProperty(UNICODE_DATA_SYSTEM_NAME); |
| if (s == null) |
| // assuming runtime directory is on the same level as the source |
| s = System.getProperty("user.dir") + "//..//" + UNICODE_DATA_FILE; |
| |
| final int LASTUNICODECHAR = 0xFFFD; |
| int ch = 0, |
| index = 0, |
| type = 0, |
| dir = 0; |
| |
| try |
| { |
| // reading in the UnicodeData file |
| FileReader fr = new FileReader(s); |
| BufferedReader input = new BufferedReader(fr); |
| |
| while (ch != LASTUNICODECHAR) |
| { |
| s= input.readLine(); |
| |
| // geting the unicode character, its type and its direction |
| ch = Integer.parseInt(s.substring(0, 4), 16); |
| index = s.indexOf(';', 5); |
| String t = s.substring(index + 1, index + 3); |
| index += 4; |
| byte cc = (byte)(Integer.parseInt(s.substring(index, |
| s.indexOf(';', index)))); |
| index = s.indexOf(';', index); |
| String d = s.substring(index + 1, s.indexOf(';', index + 1)); |
| |
| // testing the category |
| // we override the general category of some control characters |
| if (ch == 9 || ch == 0xb || ch == 0x1f) |
| type = UCharacterCategory.SPACE_SEPARATOR; |
| else |
| if (ch == 0xc) |
| type = UCharacterCategory.LINE_SEPARATOR; |
| else |
| if (ch == 0xa || ch == 0xd || ch == 0x1c || ch == 0x1d || |
| ch == 0x1e || ch == 0x85) |
| type = UCharacterCategory.PARAGRAPH_SEPARATOR; |
| else |
| { |
| type = TYPE.indexOf(t); |
| if (type < 0) |
| type = 0; |
| else |
| type = (type >> 1) + 1; |
| } |
| |
| if (UCharacter.getType(ch) != type) |
| { |
| errln("FAIL 0x" + Integer.toHexString(ch) + " expected type " + |
| type); |
| break; |
| } |
| |
| // testing combining class |
| if (UCharacter.getCombiningClass(ch) != cc) |
| { |
| errln("FAIL 0x" + Integer.toHexString(ch) + " expected combining " + |
| "class " + cc); |
| break; |
| } |
| |
| // testing the direction |
| if (d.length() == 1) |
| d = d + " "; |
| |
| dir = DIR.indexOf(d) >> 2; |
| if (UCharacter.getDirection(ch) != dir) |
| { |
| errln("FAIL 0x" + Integer.toHexString(ch) + |
| " expected wrong direction " + dir); |
| break; |
| } |
| } |
| input.close(); |
| } |
| catch (FileNotFoundException e) |
| { |
| errln("FAIL UnicodeData.txt not found\n" + |
| "Configure the system setting UnicodeData to the right path\n" + |
| "e.g. java -DUnicodeData=\"anyfile.dat\" " + |
| "com.ibm.icu.test.text.UCharacterTest"); |
| } |
| catch (Exception e) |
| { |
| e.printStackTrace(); |
| } |
| |
| if (UCharacter.getDirection(0x10001) != |
| UCharacterDirection.LEFT_TO_RIGHT) |
| errln("FAIL 0x10001 expected direction " + |
| UCharacterDirection.toString(UCharacterDirection.LEFT_TO_RIGHT)); |
| } |
| |
| /** |
| * Test for the character names |
| */ |
| public void TestNames() |
| { |
| int c[] = {0x0061, 0x0284, 0x3401, 0x7fed, 0xac00, 0xd7a3, 0xff08, 0xffe5}; |
| String name[] = {"LATIN SMALL LETTER A", |
| "LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK", |
| "CJK UNIFIED IDEOGRAPH-3401", |
| "CJK UNIFIED IDEOGRAPH-7FED", "HANGUL SYLLABLE GA", |
| "HANGUL SYLLABLE HIH", "FULLWIDTH LEFT PARENTHESIS", |
| "FULLWIDTH YEN SIGN"}; |
| String oldname[] = {"", "LATIN SMALL LETTER DOTLESS J BAR HOOK", "", "", |
| "", "", "FULLWIDTH OPENING PARENTHESIS", ""}; |
| int size = c.length; |
| String str; |
| int uc; |
| |
| for (int i = 0; i < size; i ++) |
| { |
| // modern Unicode character name |
| str = UCharacter.getName(c[i]); |
| if (!str.equalsIgnoreCase(name[i])) |
| { |
| errln("FAIL 0x" + Integer.toHexString(c[i]) + " expected name " + |
| name[i]); |
| break; |
| } |
| |
| // 1.0 Unicode character name |
| str = UCharacter.getName1_0(c[i]); |
| if ((str == null && oldname[i].length() > 0) || |
| (str != null && !str.equalsIgnoreCase(oldname[i]))) |
| { |
| errln("FAIL 0x" + Integer.toHexString(c[i]) + " expected 1.0 name " + |
| oldname[i]); |
| break; |
| } |
| |
| // retrieving unicode character from modern name |
| uc = UCharacter.getCharFromName(name[i]); |
| if (uc != c[i]) |
| { |
| errln("FAIL " + name[i] + " expected character 0x" + |
| Integer.toHexString(c[i])); |
| break; |
| } |
| |
| //retrieving unicode character from 1.0 name |
| uc = UCharacter.getCharFromName1_0(oldname[i]); |
| if (uc != c[i] && i != 0 && (i == 1 || i == 6)) |
| { |
| errln("FAIL " + name[i] + " expected 1.0 character " + |
| Integer.toHexString(c[i])); |
| break; |
| } |
| } |
| |
| // extra testing different from icu |
| for (int i = UCharacter.MIN_VALUE; i < UCharacter.MAX_VALUE; i ++) |
| { |
| str = UCharacter.getName(i); |
| if (str != null && UCharacter.getCharFromName(str) != i) |
| { |
| errln("FAIL 0x" + Integer.toHexString(i) + " " + str + |
| " retrieval of name and vice versa" ); |
| break; |
| } |
| } |
| } |
| |
| /** |
| * Testing the strings case mapping methods |
| */ |
| public void TestCaseMapping() |
| { |
| String beforeLower = "\u0061\u0042\u0049\u03a3\u00df\u03a3\u002f\ud93f\udfff", |
| lowerRoot = "\u0061\u0062\u0069\u03c3\u00df\u03c2\u002f\ud93f\udfff", |
| lowerTurkish = "\u0061\u0062\u0131\u03c3\u00df\u03c2\u002f\ud93f\udfff", |
| beforeUpper = "\u0061\u0042\u0069\u03c2\u00df\u03c3\u002f\ufb03\ud93f\udfff", |
| upperRoot = "\u0041\u0042\u0049\u03a3\u0053\u0053\u03a3\u002f\u0046\u0046\u0049\ud93f\udfff", |
| upperTurkish = "\u0041\u0042\u0130\u03a3\u0053\u0053\u03a3\u002f\u0046\u0046\u0049\ud93f\udfff"; |
| |
| String result = UCharacter.toLowerCase(beforeLower); |
| if (!lowerRoot.equals(result)) |
| errln("Fail " + beforeLower + " after lowercase should be " + lowerRoot); |
| |
| // lowercase with turkish locale |
| result = UCharacter.toLowerCase(new Locale("tr", "TR"), beforeLower); |
| if (!lowerTurkish.equals(result)) |
| errln("Fail " + beforeLower + " after turkish-sensitive lowercase " + |
| "should be " + lowerRoot); |
| |
| // uppercase with root locale and in the same buffer |
| result = UCharacter.toUpperCase(beforeUpper); |
| if (!upperRoot.equals(result)) |
| errln("Fail " + beforeUpper + " after uppercase should be " + upperRoot); |
| |
| // uppercase with turkish locale and separate buffers |
| result = UCharacter.toUpperCase(new Locale("tr", "TR"), beforeUpper); |
| if (!upperTurkish.equals(result)) |
| errln("Fail " + beforeUpper + " after turkish-sensitive uppercase " + |
| "should be " + upperTurkish); |
| |
| // test preflighting |
| result = UCharacter.toLowerCase(beforeLower); |
| if (!lowerRoot.equals(result)) |
| errln("Fail " + beforeLower + " after lower case should be " + |
| lowerRoot); |
| } |
| |
| |
| public static void main(String[] arg) |
| { |
| try |
| { |
| UCharacterTest test = new UCharacterTest(); |
| test.run(arg); |
| } |
| catch (Exception e) |
| { |
| e.printStackTrace(); |
| } |
| } |
| } |
| |