Index: .classpath =================================================================== --- .classpath (revision 442054) +++ .classpath (working copy) @@ -6,5 +6,6 @@ + Index: src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java =================================================================== --- src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java (revision 442109) +++ src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java (working copy) @@ -774,11 +774,24 @@ public void test_isDefinedC() { // Test for method boolean java.lang.Character.isDefined(char) assertTrue("Defined character returned false", Character.isDefined('v')); - assertTrue("Undefined character returned true", Character + assertTrue("Defined character returned false", Character .isDefined('\u6039')); } /** + * @tests java.lang.Character#isDefined(int) + */ + public void test_isDefined_I(){ + assertTrue(Character.isDefined((int)'v')); + assertTrue(Character.isDefined((int)'\u6039')); + assertTrue(Character.isDefined(0x10300)); + + assertFalse(Character.isDefined(0x30000)); + assertFalse(Character.isDefined(0x3FFFF)); + assertFalse(Character.isDefined(0x110000)); + } + + /** * @tests java.lang.Character#isDigit(char) */ public void test_isDigitC() { @@ -786,6 +799,41 @@ assertTrue("Digit returned false", Character.isDigit('1')); assertTrue("Non-Digit returned false", !Character.isDigit('A')); } + + /** + * @tests java.lang.Character#isDigit(int) + */ + public void test_isDigit_I() { + assertTrue(Character.isDigit((int) '1')); + assertFalse(Character.isDigit((int) 'A')); + + assertTrue(Character.isDigit(0x0030)); + assertTrue(Character.isDigit(0x0035)); + assertTrue(Character.isDigit(0x0039)); + + assertTrue(Character.isDigit(0x0660)); + assertTrue(Character.isDigit(0x0665)); + assertTrue(Character.isDigit(0x0669)); + + assertTrue(Character.isDigit(0x06F0)); + assertTrue(Character.isDigit(0x06F5)); + assertTrue(Character.isDigit(0x06F9)); + + assertTrue(Character.isDigit(0x0966)); + assertTrue(Character.isDigit(0x096A)); + assertTrue(Character.isDigit(0x096F)); + + assertTrue(Character.isDigit(0xFF10)); + assertTrue(Character.isDigit(0xFF15)); + assertTrue(Character.isDigit(0xFF19)); + + assertTrue(Character.isDigit(0x1D7CE)); + assertTrue(Character.isDigit(0x1D7D8)); + + assertFalse(Character.isDigit(0x2F800)); + assertFalse(Character.isDigit(0x10FFFD)); + assertFalse(Character.isDigit(0x110000)); + } /** * @tests java.lang.Character#isIdentifierIgnorable(char) @@ -920,6 +968,22 @@ assertTrue("Letter returned false", Character.isLetter('L')); assertTrue("Non-Letter returned true", !Character.isLetter('9')); } + + /** + * @tests java.lang.Character#isLetter(int) + */ + public void test_isLetter_I() { + assertTrue(Character.isLetter((int)'L')); + assertFalse(Character.isLetter((int)'9')); + + assertTrue(Character.isLetter(0x1FA9)); + assertTrue(Character.isLetter(0x1D400)); + assertTrue(Character.isLetter(0x1D622)); + assertTrue(Character.isLetter(0x10000)); + + assertFalse(Character.isLetter(0x1012C)); + assertFalse(Character.isLetter(0x110000)); + } /** * @tests java.lang.Character#isLetterOrDigit(char) @@ -931,7 +995,29 @@ assertTrue("Control returned true", !Character.isLetterOrDigit('\n')); assertTrue("Puncutation returned true", !Character.isLetterOrDigit('?')); } + + /** + * @tests java.lang.Character#isLetterOrDigit(int) + */ + public void test_isLetterOrDigit_I() { + assertTrue(Character.isLetterOrDigit((int)'9')); + assertTrue(Character.isLetterOrDigit((int)'K')); + assertFalse(Character.isLetterOrDigit((int)'\n')); + assertFalse(Character.isLetterOrDigit((int)'?')); + + assertTrue(Character.isLetterOrDigit(0x1FA9)); + assertTrue(Character.isLetterOrDigit(0x1D400)); + assertTrue(Character.isLetterOrDigit(0x1D622)); + assertTrue(Character.isLetterOrDigit(0x10000)); + assertTrue(Character.isLetterOrDigit(0x1D7CE)); + assertTrue(Character.isLetterOrDigit(0x1D7D8)); + + assertFalse(Character.isLetterOrDigit(0x10FFFD)); + assertFalse(Character.isLetterOrDigit(0x1012C)); + assertFalse(Character.isLetterOrDigit(0x110000)); + } + /** * @tests java.lang.Character#isLowerCase(char) */ @@ -940,6 +1026,21 @@ assertTrue("lower returned false", Character.isLowerCase('a')); assertTrue("upper returned true", !Character.isLowerCase('T')); } + + /** + * @tests java.lang.Character#isLowerCase(int) + */ + public void test_isLowerCase_I() { + assertTrue(Character.isLowerCase((int)'a')); + assertFalse(Character.isLowerCase((int)'T')); + + assertTrue(Character.isLowerCase(0x10428)); + assertTrue(Character.isLowerCase(0x1D4EA)); + + assertFalse(Character.isLowerCase(0x1D504)); + assertFalse(Character.isLowerCase(0x30000)); + assertFalse(Character.isLowerCase(0x110000)); + } /** * @tests java.lang.Character#isSpace(char) @@ -1022,6 +1123,21 @@ assertTrue("Incorrect case value", !Character.isUpperCase('t')); assertTrue("Incorrect case value", Character.isUpperCase('T')); } + + /** + * @tests java.lang.Character#isUpperCase(int) + */ + public void test_isUpperCase_I() { + assertFalse(Character.isUpperCase((int)'t')); + assertTrue(Character.isUpperCase((int)'T')); + + assertTrue(Character.isUpperCase(0x1D504)); + assertTrue(Character.isUpperCase(0x1D608)); + + assertFalse(Character.isUpperCase(0x1D656)); + assertFalse(Character.isUpperCase(0x10FFFD)); + assertFalse(Character.isUpperCase(0x110000)); + } /** * @tests java.lang.Character#isWhitespace(char) Index: src/main/java/java/lang/Character.java =================================================================== --- src/main/java/java/lang/Character.java (revision 442054) +++ src/main/java/java/lang/Character.java (working copy) @@ -1,4 +1,4 @@ -/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable +/* Copyright 1998, 2006 The Apache Software Foundation or its licensors, as applicable * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,8 @@ import org.apache.harmony.luni.util.BinarySearch; +import com.ibm.icu.lang.UCharacter; + /** *

* Character is the wrapper for the primitive type char. This @@ -2591,6 +2593,19 @@ public static boolean isDefined(char c) { return getType(c) != UNASSIGNED; } + + /** + * Answers whether the specified character is defined in the Unicode + * specification. + * + * @param codePoint + * the character, including supplementary characters + * @return true if the general Unicode category of the character is not + * UNASSIGNED, false otherwise + */ + public static boolean isDefined(int codePoint) { + return UCharacter.isDefined(codePoint); + } /** * Answers whether the character is a digit. @@ -2609,6 +2624,17 @@ } return getType(c) == DECIMAL_DIGIT_NUMBER; } + + /** + * Answers whether the character is a digit. + * + * @param codePoint + * the character, including supplementary characters + * @return true when the character is a digit, false otherwise + */ + public static boolean isDigit(int codePoint) { + return UCharacter.isDigit(codePoint); + } /** * Answers whether the specified character is ignorable in a Java or Unicode @@ -2639,7 +2665,7 @@ * Answers whether the character is an ISO control character. * * @param c - * the character,, including supplementary characters + * the character, including supplementary characters * @return true if c is an ISO control * character, otherwise false */ @@ -2728,6 +2754,17 @@ int type = getType(c); return type >= UPPERCASE_LETTER && type <= OTHER_LETTER; } + + /** + * Answers whether the character is a letter. + * + * @param codePoint + * the character, including supplementary characters + * @return true when the character is a letter, false otherwise + */ + public static boolean isLetter(int codePoint) { + return UCharacter.isLetter(codePoint); + } /** * Answers whether the character is a letter or a digit. @@ -2741,6 +2778,17 @@ return (type >= UPPERCASE_LETTER && type <= OTHER_LETTER) || type == DECIMAL_DIGIT_NUMBER; } + + /** + * Answers whether the character is a letter or a digit. + * + * @param codePoint + * the character, including supplementary characters + * @return true when the character is a letter or a digit, false otherwise + */ + public static boolean isLetterOrDigit(int codePoint) { + return UCharacter.isLetterOrDigit(codePoint); + } /** * Answers whether the character is a lower case letter. @@ -2760,6 +2808,17 @@ return getType(c) == LOWERCASE_LETTER; } + + /** + * Answers whether the character is a lower case letter. + * + * @param codePoint + * the character, including supplementary characters + * @return true when the character is a lower case letter, false otherwise + */ + public static boolean isLowerCase(int codePoint) { + return UCharacter.isLowerCase(codePoint); + } /** * Answers whether the character is a Java space. @@ -2866,6 +2925,17 @@ return getType(c) == UPPERCASE_LETTER; } + + /** + * Answers whether the character is an upper case letter. + * + * @param codePoint + * the character, including supplementary characters + * @return true when the character is a upper case letter, false otherwise + */ + public static boolean isUpperCase(int codePoint) { + return UCharacter.isUpperCase(codePoint); + } /** * Answers whether the character is a whitespace character in Java.