You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2006/08/29 07:40:47 UTC
svn commit: r437974 [2/19] -
/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java?rev=437974&r1=437973&r2=437974&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java Mon Aug 28 22:40:44 2006
@@ -1,1096 +1,1096 @@
-/* Copyright 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.harmony.luni.tests.java.lang;
-
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-public class CharacterTest extends TestCase {
-
- public void test_valueOfC() {
- // test the cache range
- for (char c = '\u0000'; c < 512; c++) {
- Character e = new Character(c);
- Character a = Character.valueOf(c);
- assertEquals(e, a);
- }
- // test the rest of the chars
- for (int c = '\u0512'; c <= Character.MAX_VALUE; c++) {
- assertEquals(new Character((char) c), Character.valueOf((char) c));
- }
- }
-
- public void test_isValidCodePointI() {
- assertFalse(Character.isValidCodePoint(-1));
- assertTrue(Character.isValidCodePoint(0));
- assertTrue(Character.isValidCodePoint(1));
- assertFalse(Character.isValidCodePoint(Integer.MAX_VALUE));
-
- for (int c = '\u0000'; c <= 0x10FFFF; c++) {
- assertTrue(Character.isValidCodePoint(c));
- }
-
- assertFalse(Character.isValidCodePoint(0x10FFFF + 1));
- }
-
- public void test_isSupplementaryCodePointI() {
- assertFalse(Character.isSupplementaryCodePoint(-1));
-
- for (int c = '\u0000'; c <= '\uFFFF'; c++) {
- assertFalse(Character.isSupplementaryCodePoint(c));
- }
-
- for (int c = 0xFFFF + 1; c <= 0x10FFFF; c++) {
- assertTrue(Character.isSupplementaryCodePoint(c));
- }
-
- assertFalse(Character.isSupplementaryCodePoint(0x10FFFF + 1));
- }
-
- public void test_isHighSurrogateC() {
- // (\uD800-\uDBFF)
- assertFalse(Character.isHighSurrogate((char) ('\uD800' - 1)));
- for (int c = '\uD800'; c <= '\uDBFF'; c++) {
- assertTrue(Character.isHighSurrogate((char) c));
- }
- assertFalse(Character.isHighSurrogate((char) ('\uDBFF' + 1)));
- assertFalse(Character.isHighSurrogate('\uFFFF'));
- }
-
- public void test_isLowSurrogateC() {
- // (\uDC00-\uDFFF)
- assertFalse(Character.isLowSurrogate((char) ('\uDC00' - 1)));
- for (int c = '\uDC00'; c <= '\uDFFF'; c++) {
- assertTrue(Character.isLowSurrogate((char) c));
- }
- assertFalse(Character.isLowSurrogate((char) ('\uDFFF' + 1)));
- }
-
- public void test_isSurrogatePairCC() {
- assertFalse(Character.isSurrogatePair('\u0000', '\u0000'));
- assertFalse(Character.isSurrogatePair('\u0000', '\uDC00'));
-
- assertTrue(Character.isSurrogatePair('\uD800', '\uDC00'));
- assertTrue(Character.isSurrogatePair('\uD800', '\uDFFF'));
- assertTrue(Character.isSurrogatePair('\uDBFF', '\uDFFF'));
-
- assertFalse(Character.isSurrogatePair('\uDBFF', '\uF000'));
- }
-
- public void test_charCountI() {
-
- for (int c = '\u0000'; c <= '\uFFFF'; c++) {
- assertEquals(1, Character.charCount(c));
- }
-
- for (int c = 0xFFFF + 1; c <= 0x10FFFF; c++) {
- assertEquals(2, Character.charCount(c));
- }
-
- // invalid code points work in this method
- assertEquals(2, Character.charCount(Integer.MAX_VALUE));
- }
-
- public void test_toCodePointCC() {
- int result = Character.toCodePoint('\uD800', '\uDC00');
- assertEquals(0x00010000, result);
-
- result = Character.toCodePoint('\uD800', '\uDC01');
- assertEquals(0x00010001, result);
-
- result = Character.toCodePoint('\uD801', '\uDC01');
- assertEquals(0x00010401, result);
-
- result = Character.toCodePoint('\uDBFF', '\uDFFF');
- assertEquals(0x00010FFFF, result);
- }
-
- public void test_codePointAtLjava_lang_CharSequenceI() {
-
- assertEquals('a', Character.codePointAt((CharSequence) "abc", 0));
- assertEquals('b', Character.codePointAt((CharSequence) "abc", 1));
- assertEquals('c', Character.codePointAt((CharSequence) "abc", 2));
- assertEquals(0x10000, Character.codePointAt(
- (CharSequence) "\uD800\uDC00", 0));
- assertEquals('\uDC00', Character.codePointAt(
- (CharSequence) "\uD800\uDC00", 1));
-
- try {
- Character.codePointAt((CharSequence) null, 0);
- fail("No NPE.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointAt((CharSequence) "abc", -1);
- fail("No IOOBE, negative index.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointAt((CharSequence) "abc", 4);
- fail("No IOOBE, index too large.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_codePointAt$CI() {
-
- assertEquals('a', Character.codePointAt("abc".toCharArray(), 0));
- assertEquals('b', Character.codePointAt("abc".toCharArray(), 1));
- assertEquals('c', Character.codePointAt("abc".toCharArray(), 2));
- assertEquals(0x10000, Character.codePointAt("\uD800\uDC00"
- .toCharArray(), 0));
- assertEquals('\uDC00', Character.codePointAt("\uD800\uDC00"
- .toCharArray(), 1));
-
- try {
- Character.codePointAt((char[]) null, 0);
- fail("No NPE.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointAt("abc".toCharArray(), -1);
- fail("No IOOBE, negative index.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointAt("abc".toCharArray(), 4);
- fail("No IOOBE, index too large.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_codePointAt$CII() {
-
- assertEquals('a', Character.codePointAt("abc".toCharArray(), 0, 3));
- assertEquals('b', Character.codePointAt("abc".toCharArray(), 1, 3));
- assertEquals('c', Character.codePointAt("abc".toCharArray(), 2, 3));
- assertEquals(0x10000, Character.codePointAt("\uD800\uDC00"
- .toCharArray(), 0, 2));
- assertEquals('\uDC00', Character.codePointAt("\uD800\uDC00"
- .toCharArray(), 1, 2));
- assertEquals('\uD800', Character.codePointAt("\uD800\uDC00"
- .toCharArray(), 0, 1));
-
- try {
- Character.codePointAt((char[]) null, 0, 1);
- fail("No NPE.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointAt("abc".toCharArray(), -1, 3);
- fail("No IOOBE, negative index.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointAt("abc".toCharArray(), 4, 3);
- fail("No IOOBE, index too large.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointAt("abc".toCharArray(), 2, 1);
- fail("No IOOBE, index larger than limit.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointAt("abc".toCharArray(), 2, -1);
- fail("No IOOBE, limit is negative.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_codePointBeforeLjava_lang_CharSequenceI() {
-
- assertEquals('a', Character.codePointBefore((CharSequence) "abc", 1));
- assertEquals('b', Character.codePointBefore((CharSequence) "abc", 2));
- assertEquals('c', Character.codePointBefore((CharSequence) "abc", 3));
- assertEquals(0x10000, Character.codePointBefore(
- (CharSequence) "\uD800\uDC00", 2));
- assertEquals('\uD800', Character.codePointBefore(
- (CharSequence) "\uD800\uDC00", 1));
-
- try {
- Character.codePointBefore((CharSequence) null, 0);
- fail("No NPE.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointBefore((CharSequence) "abc", 0);
- fail("No IOOBE, index below one.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointBefore((CharSequence) "abc", 4);
- fail("No IOOBE, index too large.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_codePointBefore$CI() {
-
- assertEquals('a', Character.codePointBefore("abc".toCharArray(), 1));
- assertEquals('b', Character.codePointBefore("abc".toCharArray(), 2));
- assertEquals('c', Character.codePointBefore("abc".toCharArray(), 3));
- assertEquals(0x10000, Character.codePointBefore("\uD800\uDC00"
- .toCharArray(), 2));
- assertEquals('\uD800', Character.codePointBefore("\uD800\uDC00"
- .toCharArray(), 1));
-
- try {
- Character.codePointBefore((char[]) null, 0);
- fail("No NPE.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointBefore("abc".toCharArray(), -1);
- fail("No IOOBE, negative index.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointBefore("abc".toCharArray(), 4);
- fail("No IOOBE, index too large.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_codePointBefore$CII() {
-
- assertEquals('a', Character.codePointBefore("abc".toCharArray(), 1, 0));
- assertEquals('b', Character.codePointBefore("abc".toCharArray(), 2, 0));
- assertEquals('c', Character.codePointBefore("abc".toCharArray(), 3, 0));
- assertEquals(0x10000, Character.codePointBefore("\uD800\uDC00"
- .toCharArray(), 2, 0));
- assertEquals('\uDC00', Character.codePointBefore("\uD800\uDC00"
- .toCharArray(), 2, 1));
- assertEquals('\uD800', Character.codePointBefore("\uD800\uDC00"
- .toCharArray(), 1, 0));
-
- try {
- Character.codePointBefore((char[]) null, 1, 0);
- fail("No NPE.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointBefore("abc".toCharArray(), 0, 1);
- fail("No IOOBE, index less than start.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointBefore("abc".toCharArray(), 4, 0);
- fail("No IOOBE, index larger than length.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointBefore("abc".toCharArray(), 2, -1);
- fail("No IOOBE, start is negative.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointBefore("abc".toCharArray(), 2, 4);
- fail("No IOOBE, start larger than length.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_toCharsI$CI() {
- char[] dst = new char[2];
- int result = Character.toChars(0x10000, dst, 0);
- assertEquals(2, result);
- assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC00' }, dst));
-
- result = Character.toChars(0x10001, dst, 0);
- assertEquals(2, result);
- assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC01' }, dst));
-
- result = Character.toChars(0x10401, dst, 0);
- assertEquals(2, result);
- assertTrue(Arrays.equals(new char[] { '\uD801', '\uDC01' }, dst));
-
- result = Character.toChars(0x10FFFF, dst, 0);
- assertEquals(2, result);
- assertTrue(Arrays.equals(new char[] { '\uDBFF', '\uDFFF' }, dst));
-
- try {
- Character.toChars(Integer.MAX_VALUE, new char[2], 0);
- fail("No IAE, invalid code point.");
- } catch (IllegalArgumentException e) {
- }
-
- try {
- Character.toChars('a', null, 0);
- fail("No NPE, null char[].");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.toChars('a', new char[1], -1);
- fail("No IOOBE, negative index.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.toChars('a', new char[1], 1);
- fail("No IOOBE, index equal to length.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_toCharsI() {
- assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC00' }, Character
- .toChars(0x10000)));
- assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC01' }, Character
- .toChars(0x10001)));
- assertTrue(Arrays.equals(new char[] { '\uD801', '\uDC01' }, Character
- .toChars(0x10401)));
- assertTrue(Arrays.equals(new char[] { '\uDBFF', '\uDFFF' }, Character
- .toChars(0x10FFFF)));
-
- try {
- Character.toChars(Integer.MAX_VALUE);
- fail("No IAE, invalid code point.");
- } catch (IllegalArgumentException e) {
- }
- }
-
- public void test_codePointCountLjava_lang_CharSequenceII() {
- assertEquals(1, Character.codePointCount("\uD800\uDC00", 0, 2));
- assertEquals(1, Character.codePointCount("\uD800\uDC01", 0, 2));
- assertEquals(1, Character.codePointCount("\uD801\uDC01", 0, 2));
- assertEquals(1, Character.codePointCount("\uDBFF\uDFFF", 0, 2));
-
- assertEquals(3, Character.codePointCount("a\uD800\uDC00b", 0, 4));
- assertEquals(4, Character.codePointCount("a\uD800\uDC00b\uD800", 0, 5));
-
- try {
- Character.codePointCount((CharSequence) null, 0, 1);
- fail("No NPE, null char sequence.");
- } catch (NullPointerException e) {
- }
-
- try {
- Character.codePointCount("abc", -1, 1);
- fail("No IOOBE, negative start.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointCount("abc", 0, 4);
- fail("No IOOBE, end greater than length.");
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.codePointCount("abc", 2, 1);
- fail("No IOOBE, end greater than start.");
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_offsetByCodePointsLjava_lang_CharSequenceII() {
- int result = Character.offsetByCodePoints("a\uD800\uDC00b", 0, 2);
- assertEquals(3, result);
-
- result = Character.offsetByCodePoints("abcd", 3, -1);
- assertEquals(2, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b", 0, 3);
- assertEquals(4, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b", 3, -1);
- assertEquals(1, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b", 3, 0);
- assertEquals(3, result);
-
- result = Character.offsetByCodePoints("\uD800\uDC00bc", 3, 0);
- assertEquals(3, result);
-
- result = Character.offsetByCodePoints("a\uDC00bc", 3, -1);
- assertEquals(2, result);
-
- result = Character.offsetByCodePoints("a\uD800bc", 3, -1);
- assertEquals(2, result);
-
- try {
- Character.offsetByCodePoints((CharSequence) null, 0, 1);
- fail();
- } catch (NullPointerException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc", -1, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc", 4, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc", 1, 3);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc", 1, -2);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- public void test_offsetByCodePoints$CIIII() {
- int result = Character.offsetByCodePoints("a\uD800\uDC00b"
- .toCharArray(), 0, 4, 0, 2);
- assertEquals(3, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
- 0, 4, 0, 3);
- assertEquals(4, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b\uD800c"
- .toCharArray(), 0, 5, 0, 3);
- assertEquals(4, result);
-
- result = Character
- .offsetByCodePoints("abcd".toCharArray(), 0, 4, 3, -1);
- assertEquals(2, result);
-
- result = Character
- .offsetByCodePoints("abcd".toCharArray(), 1, 2, 3, -2);
- assertEquals(1, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
- 0, 4, 3, -1);
- assertEquals(1, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
- 0, 2, 2, -1);
- assertEquals(1, result);
-
- result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
- 0, 4, 3, 0);
- assertEquals(3, result);
-
- result = Character.offsetByCodePoints("\uD800\uDC00bc".toCharArray(),
- 0, 4, 3, 0);
- assertEquals(3, result);
-
- result = Character.offsetByCodePoints("a\uDC00bc".toCharArray(), 0, 4,
- 3, -1);
- assertEquals(2, result);
-
- result = Character.offsetByCodePoints("a\uD800bc".toCharArray(), 0, 4,
- 3, -1);
- assertEquals(2, result);
-
- try {
- Character.offsetByCodePoints(null, 0, 4, 1, 1);
- fail();
- } catch (NullPointerException e) {
- }
-
- try {
- Character.offsetByCodePoints("abcd".toCharArray(), -1, 4, 1, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abcd".toCharArray(), 0, -1, 1, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abcd".toCharArray(), 2, 4, 1, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abcd".toCharArray(), 1, 3, 0, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abcd".toCharArray(), 1, 1, 3, 1);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc".toCharArray(), 0, 3, 1, 3);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc".toCharArray(), 0, 2, 1, 2);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
-
- try {
- Character.offsetByCodePoints("abc".toCharArray(), 1, 3, 1, -2);
- fail();
- } catch (IndexOutOfBoundsException e) {
- }
- }
-
- /**
- * @tests java.lang.Character#compareTo(Character)
- */
- public void test_compareToLjava_lang_Byte() {
- final Character min = new Character(Character.MIN_VALUE);
- final Character mid = new Character((char)(Character.MAX_VALUE/2));
- final Character max = new Character(Character.MAX_VALUE);
-
- assertTrue(max.compareTo(max) == 0);
- assertTrue(min.compareTo(min) == 0);
- assertTrue(mid.compareTo(mid) == 0);
-
- assertTrue(max.compareTo(mid) > 0);
- assertTrue(max.compareTo(min) > 0);
-
- assertTrue(mid.compareTo(max) < 0);
- assertTrue(mid.compareTo(min) > 0);
-
- assertTrue(min.compareTo(mid) < 0);
- assertTrue(min.compareTo(max) < 0);
-
- try {
- min.compareTo(null);
- fail("No NPE");
- } catch (NullPointerException e) {
- }
- }
-
- public void test_codePointAt_Invalid() {
-
- try {
- Character.codePointAt(null, 6, 4);
- fail("Expected IndexOutOfBoundsException");
- } catch (IndexOutOfBoundsException e) {
- // expected
- } catch (Exception e) {
- fail("Expected IndexOutOfBoundsException");
- }
-
- try {
- Character.codePointAt(null, 4, 6);
- fail("Expected NullPointerException");
- } catch (NullPointerException e) {
- // expected
- } catch (Exception e) {
- fail("Expected NullPointerException");
- }
-
- try {
- Character.codePointAt(null, 0, 0);
- fail("Expected IndexOutOfBoundsException");
- } catch (IndexOutOfBoundsException e) {
- // expected
- } catch (Exception e) {
- fail("Expected IndexOutOfBoundsException");
- }
- }
-
- /**
- * @tests java.lang.Character#Character(char)
- */
- public void test_ConstructorC() {
- // Test for method java.lang.Character(char)
- assertEquals("Constructor failed", 'T', new Character('T').charValue());
- }
-
- /**
- * @tests java.lang.Character#charValue()
- */
- public void test_charValue() {
- // Test for method char java.lang.Character.charValue()
- assertEquals("Incorrect char value returned", 'T', new Character('T')
- .charValue());
- }
-
- /**
- * @tests java.lang.Character#compareTo(java.lang.Character)
- */
- public void test_compareToLjava_lang_Character() {
- // Test for method int
- // java.lang.Character.compareTo(java.lang.Character)
- Character c = new Character('c');
- Character x = new Character('c');
- Character y = new Character('b');
- Character z = new Character('d');
-
- assertEquals("Returned false for same Character", 0, c.compareTo(c));
- assertEquals("Returned false for identical Character",
- 0, c.compareTo(x));
- assertTrue("Returned other than less than for lesser char", c
- .compareTo(y) > 0);
- assertTrue("Returned other than greater than for greater char", c
- .compareTo(z) < 0);
- }
-
- /**
- * @tests java.lang.Character#digit(char, int)
- */
- public void test_digitCI() {
- // Test for method int java.lang.Character.digit(char, int)
- assertEquals("Returned incorrect digit", 1, Character.digit('1', 10));
- assertEquals("Returned incorrect digit", 15, Character.digit('F', 16));
- }
-
- /**
- * @tests java.lang.Character#equals(java.lang.Object)
- */
- public void test_equalsLjava_lang_Object() {
- // Test for method boolean java.lang.Character.equals(java.lang.Object)
- assertTrue("Equality test failed", new Character('A')
- .equals(new Character('A')));
- assertTrue("Equality test failed", !(new Character('A')
- .equals(new Character('a'))));
- }
-
- /**
- * @tests java.lang.Character#forDigit(int, int)
- */
- public void test_forDigitII() {
- // Test for method char java.lang.Character.forDigit(int, int)
-
- char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
- 'a', 'b', 'c', 'd', 'e', 'f' };
- for (int i = 0; i < hexChars.length; i++) {
- assertTrue("Returned incorrect char for " + Integer.toString(i),
- Character.forDigit(i, hexChars.length) == hexChars[i]);
- }
-
- char decimalChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
- '9' };
- for (int i = 0; i < decimalChars.length; i++) {
- assertTrue(
- "Returned incorrect char for " + Integer.toString(i),
- Character.forDigit(i, decimalChars.length) == decimalChars[i]);
- }
-
- }
-
- /**
- * @tests java.lang.Character#getNumericValue(char)
- */
- public void test_getNumericValueC() {
- // Test for method int java.lang.Character.getNumericValue(char)
- assertEquals("Returned incorrect numeric value 1", 1, Character
- .getNumericValue('1'));
- assertEquals("Returned incorrect numeric value 2", 15, Character
- .getNumericValue('F'));
- assertEquals("Returned incorrect numeric value 3", -1, Character
- .getNumericValue('\u221e'));
- assertEquals("Returned incorrect numeric value 4", -2, Character
- .getNumericValue('\u00be'));
- assertEquals("Returned incorrect numeric value 5", 10000, Character
- .getNumericValue('\u2182'));
- assertEquals("Returned incorrect numeric value 6", 2, Character
- .getNumericValue('\uff12'));
- }
-
- /**
- * @tests java.lang.Character#getType(char)
- */
- public void test_getTypeC() {
- // Test for method int java.lang.Character.getType(char)
- assertTrue("Returned incorrect type for: \n",
- Character.getType('\n') == Character.CONTROL);
- assertTrue("Returned incorrect type for: 1",
- Character.getType('1') == Character.DECIMAL_DIGIT_NUMBER);
- assertTrue("Returned incorrect type for: ' '",
- Character.getType(' ') == Character.SPACE_SEPARATOR);
- assertTrue("Returned incorrect type for: a",
- Character.getType('a') == Character.LOWERCASE_LETTER);
- assertTrue("Returned incorrect type for: A",
- Character.getType('A') == Character.UPPERCASE_LETTER);
- assertTrue("Returned incorrect type for: <",
- Character.getType('<') == Character.MATH_SYMBOL);
- assertTrue("Returned incorrect type for: ;",
- Character.getType(';') == Character.OTHER_PUNCTUATION);
- assertTrue("Returned incorrect type for: _",
- Character.getType('_') == Character.CONNECTOR_PUNCTUATION);
- assertTrue("Returned incorrect type for: $",
- Character.getType('$') == Character.CURRENCY_SYMBOL);
- assertTrue("Returned incorrect type for: \u2029", Character
- .getType('\u2029') == Character.PARAGRAPH_SEPARATOR);
-
- assertEquals("Wrong constant for FORMAT", 16, Character.FORMAT);
- assertEquals("Wrong constant for PRIVATE_USE",
- 18, Character.PRIVATE_USE);
- }
-
- /**
- * @tests java.lang.Character#hashCode()
- */
- public void test_hashCode() {
- // Test for method int java.lang.Character.hashCode()
- assertEquals("Incorrect hash returned",
- 89, new Character('Y').hashCode());
- }
-
- /**
- * @tests java.lang.Character#isDefined(char)
- */
- 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
- .isDefined('\u6039'));
- }
-
- /**
- * @tests java.lang.Character#isDigit(char)
- */
- public void test_isDigitC() {
- // Test for method boolean java.lang.Character.isDigit(char)
- assertTrue("Digit returned false", Character.isDigit('1'));
- assertTrue("Non-Digit returned false", !Character.isDigit('A'));
- }
-
- /**
- * @tests java.lang.Character#isIdentifierIgnorable(char)
- */
- public void test_isIdentifierIgnorableC() {
- // Test for method boolean
- // java.lang.Character.isIdentifierIgnorable(char)
- assertTrue("Ignorable whitespace returned false", Character
- .isIdentifierIgnorable('\u0007'));
- assertTrue("Ignorable non - whitespace control returned false",
- Character.isIdentifierIgnorable('\u000f'));
- assertTrue("Ignorable join control returned false", Character
- .isIdentifierIgnorable('\u200e'));
-
- // the spec is wrong, and our implementation is correct
- assertTrue("Ignorable bidi control returned false", Character
- .isIdentifierIgnorable('\u202b'));
-
- assertTrue("Ignorable format control returned false", Character
- .isIdentifierIgnorable('\u206c'));
- assertTrue("Ignorable zero-width no-break returned false", Character
- .isIdentifierIgnorable('\ufeff'));
-
- assertTrue("Non-Ignorable returned true", !Character
- .isIdentifierIgnorable('\u0065'));
- }
-
- /**
- * @tests java.lang.Character#isISOControl(char)
- */
- public void test_isISOControlC() {
- // Test for method boolean java.lang.Character.isISOControl(char)
- for (int i = 0; i < 32; i++)
- assertTrue("ISOConstrol char returned false", Character
- .isISOControl((char) i));
-
- for (int i = 127; i < 160; i++)
- assertTrue("ISOConstrol char returned false", Character
- .isISOControl((char) i));
- }
-
- /**
- * @tests java.lang.Character#isISOControl(int)
- */
- public void test_isISOControlI() {
- // Test for method boolean java.lang.Character.isISOControl(char)
- for (int i = 0; i < 32; i++)
- assertTrue("ISOConstrol char returned false", Character
- .isISOControl(i));
-
- for (int i = 127; i < 160; i++)
- assertTrue("ISOConstrol char returned false", Character
- .isISOControl(i));
-
- for (int i = 160; i < 260; i++)
- assertFalse("Not ISOConstrol char returned true", Character
- .isISOControl(i));
-
- }
-
-
- /**
- * @tests java.lang.Character#isJavaIdentifierPart(char)
- */
- public void test_isJavaIdentifierPartC() {
- // Test for method boolean
- // java.lang.Character.isJavaIdentifierPart(char)
- assertTrue("letter returned false", Character.isJavaIdentifierPart('l'));
- assertTrue("currency returned false", Character
- .isJavaIdentifierPart('$'));
- assertTrue("digit returned false", Character.isJavaIdentifierPart('9'));
- assertTrue("connecting char returned false", Character
- .isJavaIdentifierPart('_'));
- assertTrue("ignorable control returned true", !Character
- .isJavaIdentifierPart('\u200b'));
- assertTrue("semi returned true", !Character.isJavaIdentifierPart(';'));
- }
-
- /**
- * @tests java.lang.Character#isJavaIdentifierStart(char)
- */
- public void test_isJavaIdentifierStartC() {
- // Test for method boolean
- // java.lang.Character.isJavaIdentifierStart(char)
- assertTrue("letter returned false", Character
- .isJavaIdentifierStart('l'));
- assertTrue("currency returned false", Character
- .isJavaIdentifierStart('$'));
- assertTrue("connecting char returned false", Character
- .isJavaIdentifierStart('_'));
- assertTrue("digit returned true", !Character.isJavaIdentifierStart('9'));
- assertTrue("ignorable control returned true", !Character
- .isJavaIdentifierStart('\u200b'));
- assertTrue("semi returned true", !Character.isJavaIdentifierStart(';'));
- }
-
- /**
- * @tests java.lang.Character#isJavaLetter(char)
- */
- public void test_isJavaLetterC() {
- // Test for method boolean java.lang.Character.isJavaLetter(char)
- assertTrue("letter returned false", Character.isJavaLetter('l'));
- assertTrue("currency returned false", Character.isJavaLetter('$'));
- assertTrue("connecting char returned false", Character
- .isJavaLetter('_'));
-
- assertTrue("digit returned true", !Character.isJavaLetter('9'));
- assertTrue("ignirable control returned true", !Character
- .isJavaLetter('\u200b'));
- assertTrue("semi returned true", !Character.isJavaLetter(';'));
- }
-
- /**
- * @tests java.lang.Character#isJavaLetterOrDigit(char)
- */
- public void test_isJavaLetterOrDigitC() {
- // Test for method boolean java.lang.Character.isJavaLetterOrDigit(char)
- assertTrue("letter returned false", Character.isJavaLetterOrDigit('l'));
- assertTrue("currency returned false", Character
- .isJavaLetterOrDigit('$'));
- assertTrue("digit returned false", Character.isJavaLetterOrDigit('9'));
- assertTrue("connecting char returned false", Character
- .isJavaLetterOrDigit('_'));
- assertTrue("semi returned true", !Character.isJavaLetterOrDigit(';'));
- }
-
- /**
- * @tests java.lang.Character#isLetter(char)
- */
- public void test_isLetterC() {
- // Test for method boolean java.lang.Character.isLetter(char)
- assertTrue("Letter returned false", Character.isLetter('L'));
- assertTrue("Non-Letter returned true", !Character.isLetter('9'));
- }
-
- /**
- * @tests java.lang.Character#isLetterOrDigit(char)
- */
- public void test_isLetterOrDigitC() {
- // Test for method boolean java.lang.Character.isLetterOrDigit(char)
- assertTrue("Digit returned false", Character.isLetterOrDigit('9'));
- assertTrue("Letter returned false", Character.isLetterOrDigit('K'));
- assertTrue("Control returned true", !Character.isLetterOrDigit('\n'));
- assertTrue("Puncutation returned true", !Character.isLetterOrDigit('?'));
- }
-
- /**
- * @tests java.lang.Character#isLowerCase(char)
- */
- public void test_isLowerCaseC() {
- // Test for method boolean java.lang.Character.isLowerCase(char)
- assertTrue("lower returned false", Character.isLowerCase('a'));
- assertTrue("upper returned true", !Character.isLowerCase('T'));
- }
-
- /**
- * @tests java.lang.Character#isSpace(char)
- */
- public void test_isSpaceC() {
- // Test for method boolean java.lang.Character.isSpace(char)
- assertTrue("space returned false", Character.isSpace('\n'));
- assertTrue("non-space returned true", !Character.isSpace('T'));
- }
-
- /**
- * @tests java.lang.Character#isSpaceChar(char)
- */
- public void test_isSpaceCharC() {
- // Test for method boolean java.lang.Character.isSpaceChar(char)
- assertTrue("space returned false", Character.isSpaceChar('\u0020'));
- assertTrue("non-space returned true", !Character.isSpaceChar('\n'));
- }
-
- /**
- * @tests java.lang.Character#isTitleCase(char)
- */
- public void test_isTitleCaseC() {
- // Test for method boolean java.lang.Character.isTitleCase(char)
-
- char[] tChars = { (char) 0x01c5, (char) 0x01c8, (char) 0x01cb,
- (char) 0x01f2, (char) 0x1f88, (char) 0x1f89, (char) 0x1f8a,
- (char) 0x1f8b, (char) 0x1f8c, (char) 0x1f8d, (char) 0x1f8e,
- (char) 0x1f8f, (char) 0x1f98, (char) 0x1f99, (char) 0x1f9a,
- (char) 0x1f9b, (char) 0x1f9c, (char) 0x1f9d, (char) 0x1f9e,
- (char) 0x1f9f, (char) 0x1fa8, (char) 0x1fa9, (char) 0x1faa,
- (char) 0x1fab, (char) 0x1fac, (char) 0x1fad, (char) 0x1fae,
- (char) 0x1faf, (char) 0x1fbc, (char) 0x1fcc, (char) 0x1ffc };
- byte tnum = 0;
- for (char c = 0; c < 65535; c++) {
- if (Character.isTitleCase(c)) {
- tnum++;
- int i;
- for (i = 0; i < tChars.length; i++)
- if (tChars[i] == c)
- i = tChars.length + 1;
- if (i < tChars.length) {
- fail("Non Title Case char returned true");
- }
- }
- }
- assertTrue("Failed to find all Title Case chars", tnum == tChars.length);
- }
-
- /**
- * @tests java.lang.Character#isUnicodeIdentifierPart(char)
- */
- public void test_isUnicodeIdentifierPartC() {
- // Test for method boolean
- // java.lang.Character.isUnicodeIdentifierPart(char)
- assertTrue("'a' returned false", Character.isUnicodeIdentifierPart('a'));
- assertTrue("'2' returned false", Character.isUnicodeIdentifierPart('2'));
- assertTrue("'+' returned true", !Character.isUnicodeIdentifierPart('+'));
- }
-
- /**
- * @tests java.lang.Character#isUnicodeIdentifierStart(char)
- */
- public void test_isUnicodeIdentifierStartC() {
- // Test for method boolean
- // java.lang.Character.isUnicodeIdentifierStart(char)
- assertTrue("'a' returned false", Character
- .isUnicodeIdentifierStart('a'));
- assertTrue("'2' returned true", !Character
- .isUnicodeIdentifierStart('2'));
- assertTrue("'+' returned true", !Character
- .isUnicodeIdentifierStart('+'));
- }
-
- /**
- * @tests java.lang.Character#isUpperCase(char)
- */
- public void test_isUpperCaseC() {
- // Test for method boolean java.lang.Character.isUpperCase(char)
- assertTrue("Incorrect case value", !Character.isUpperCase('t'));
- assertTrue("Incorrect case value", Character.isUpperCase('T'));
- }
-
- /**
- * @tests java.lang.Character#isWhitespace(char)
- */
- public void test_isWhitespaceC() {
- // Test for method boolean java.lang.Character.isWhitespace(char)
- assertTrue("space returned false", Character.isWhitespace('\n'));
- assertTrue("non-space returned true", !Character.isWhitespace('T'));
- }
-
- /**
- * @tests java.lang.Character#reverseBytes(char)
- */
- public void test_reverseBytesC() {
- char original[] = new char[]{0x0000, 0x0010, 0x00AA, 0xB000, 0xCC00, 0xABCD, 0xFFAA};
- char reversed[] = new char[]{0x0000, 0x1000, 0xAA00, 0x00B0, 0x00CC, 0xCDAB, 0xAAFF};
- assertTrue("Test self check", original.length==reversed.length);
-
- for (int i=0; i<original.length; i++) {
- char origChar = original[i];
- char reversedChar = reversed[i];
- char origReversed= Character.reverseBytes(origChar);
-
- assertTrue("java.lang.Character.reverseBytes failed: orig char="
- +Integer.toHexString(origChar)+", reversed char="
- +Integer.toHexString(origReversed), reversedChar==origReversed);
- }
- }
-
- /**
- * @tests java.lang.Character#toLowerCase(char)
- */
- public void test_toLowerCaseC() {
- // Test for method char java.lang.Character.toLowerCase(char)
- assertEquals("Failed to change case", 't', Character.toLowerCase('T'));
- }
-
- /**
- * @tests java.lang.Character#toString()
- */
- public void test_toString() {
- // Test for method java.lang.String java.lang.Character.toString()
- assertEquals("Incorrect String returned", "T", new Character('T').toString()
- );
- }
-
- /**
- * @tests java.lang.Character#toTitleCase(char)
- */
- public void test_toTitleCaseC() {
- // Test for method char java.lang.Character.toTitleCase(char)
- assertEquals("Incorrect title case for a",
- 'A', Character.toTitleCase('a'));
- assertEquals("Incorrect title case for A",
- 'A', Character.toTitleCase('A'));
- assertEquals("Incorrect title case for 1",
- '1', Character.toTitleCase('1'));
- }
-
- /**
- * @tests java.lang.Character#toUpperCase(char)
- */
- public void test_toUpperCaseC() {
- // Test for method char java.lang.Character.toUpperCase(char)
- assertEquals("Incorrect upper case for a",
- 'A', Character.toUpperCase('a'));
- assertEquals("Incorrect upper case for A",
- 'A', Character.toUpperCase('A'));
- assertEquals("Incorrect upper case for 1",
- '1', Character.toUpperCase('1'));
- }
-}
+/* Copyright 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.luni.tests.java.lang;
+
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+public class CharacterTest extends TestCase {
+
+ public void test_valueOfC() {
+ // test the cache range
+ for (char c = '\u0000'; c < 512; c++) {
+ Character e = new Character(c);
+ Character a = Character.valueOf(c);
+ assertEquals(e, a);
+ }
+ // test the rest of the chars
+ for (int c = '\u0512'; c <= Character.MAX_VALUE; c++) {
+ assertEquals(new Character((char) c), Character.valueOf((char) c));
+ }
+ }
+
+ public void test_isValidCodePointI() {
+ assertFalse(Character.isValidCodePoint(-1));
+ assertTrue(Character.isValidCodePoint(0));
+ assertTrue(Character.isValidCodePoint(1));
+ assertFalse(Character.isValidCodePoint(Integer.MAX_VALUE));
+
+ for (int c = '\u0000'; c <= 0x10FFFF; c++) {
+ assertTrue(Character.isValidCodePoint(c));
+ }
+
+ assertFalse(Character.isValidCodePoint(0x10FFFF + 1));
+ }
+
+ public void test_isSupplementaryCodePointI() {
+ assertFalse(Character.isSupplementaryCodePoint(-1));
+
+ for (int c = '\u0000'; c <= '\uFFFF'; c++) {
+ assertFalse(Character.isSupplementaryCodePoint(c));
+ }
+
+ for (int c = 0xFFFF + 1; c <= 0x10FFFF; c++) {
+ assertTrue(Character.isSupplementaryCodePoint(c));
+ }
+
+ assertFalse(Character.isSupplementaryCodePoint(0x10FFFF + 1));
+ }
+
+ public void test_isHighSurrogateC() {
+ // (\uD800-\uDBFF)
+ assertFalse(Character.isHighSurrogate((char) ('\uD800' - 1)));
+ for (int c = '\uD800'; c <= '\uDBFF'; c++) {
+ assertTrue(Character.isHighSurrogate((char) c));
+ }
+ assertFalse(Character.isHighSurrogate((char) ('\uDBFF' + 1)));
+ assertFalse(Character.isHighSurrogate('\uFFFF'));
+ }
+
+ public void test_isLowSurrogateC() {
+ // (\uDC00-\uDFFF)
+ assertFalse(Character.isLowSurrogate((char) ('\uDC00' - 1)));
+ for (int c = '\uDC00'; c <= '\uDFFF'; c++) {
+ assertTrue(Character.isLowSurrogate((char) c));
+ }
+ assertFalse(Character.isLowSurrogate((char) ('\uDFFF' + 1)));
+ }
+
+ public void test_isSurrogatePairCC() {
+ assertFalse(Character.isSurrogatePair('\u0000', '\u0000'));
+ assertFalse(Character.isSurrogatePair('\u0000', '\uDC00'));
+
+ assertTrue(Character.isSurrogatePair('\uD800', '\uDC00'));
+ assertTrue(Character.isSurrogatePair('\uD800', '\uDFFF'));
+ assertTrue(Character.isSurrogatePair('\uDBFF', '\uDFFF'));
+
+ assertFalse(Character.isSurrogatePair('\uDBFF', '\uF000'));
+ }
+
+ public void test_charCountI() {
+
+ for (int c = '\u0000'; c <= '\uFFFF'; c++) {
+ assertEquals(1, Character.charCount(c));
+ }
+
+ for (int c = 0xFFFF + 1; c <= 0x10FFFF; c++) {
+ assertEquals(2, Character.charCount(c));
+ }
+
+ // invalid code points work in this method
+ assertEquals(2, Character.charCount(Integer.MAX_VALUE));
+ }
+
+ public void test_toCodePointCC() {
+ int result = Character.toCodePoint('\uD800', '\uDC00');
+ assertEquals(0x00010000, result);
+
+ result = Character.toCodePoint('\uD800', '\uDC01');
+ assertEquals(0x00010001, result);
+
+ result = Character.toCodePoint('\uD801', '\uDC01');
+ assertEquals(0x00010401, result);
+
+ result = Character.toCodePoint('\uDBFF', '\uDFFF');
+ assertEquals(0x00010FFFF, result);
+ }
+
+ public void test_codePointAtLjava_lang_CharSequenceI() {
+
+ assertEquals('a', Character.codePointAt((CharSequence) "abc", 0));
+ assertEquals('b', Character.codePointAt((CharSequence) "abc", 1));
+ assertEquals('c', Character.codePointAt((CharSequence) "abc", 2));
+ assertEquals(0x10000, Character.codePointAt(
+ (CharSequence) "\uD800\uDC00", 0));
+ assertEquals('\uDC00', Character.codePointAt(
+ (CharSequence) "\uD800\uDC00", 1));
+
+ try {
+ Character.codePointAt((CharSequence) null, 0);
+ fail("No NPE.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointAt((CharSequence) "abc", -1);
+ fail("No IOOBE, negative index.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointAt((CharSequence) "abc", 4);
+ fail("No IOOBE, index too large.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_codePointAt$CI() {
+
+ assertEquals('a', Character.codePointAt("abc".toCharArray(), 0));
+ assertEquals('b', Character.codePointAt("abc".toCharArray(), 1));
+ assertEquals('c', Character.codePointAt("abc".toCharArray(), 2));
+ assertEquals(0x10000, Character.codePointAt("\uD800\uDC00"
+ .toCharArray(), 0));
+ assertEquals('\uDC00', Character.codePointAt("\uD800\uDC00"
+ .toCharArray(), 1));
+
+ try {
+ Character.codePointAt((char[]) null, 0);
+ fail("No NPE.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointAt("abc".toCharArray(), -1);
+ fail("No IOOBE, negative index.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointAt("abc".toCharArray(), 4);
+ fail("No IOOBE, index too large.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_codePointAt$CII() {
+
+ assertEquals('a', Character.codePointAt("abc".toCharArray(), 0, 3));
+ assertEquals('b', Character.codePointAt("abc".toCharArray(), 1, 3));
+ assertEquals('c', Character.codePointAt("abc".toCharArray(), 2, 3));
+ assertEquals(0x10000, Character.codePointAt("\uD800\uDC00"
+ .toCharArray(), 0, 2));
+ assertEquals('\uDC00', Character.codePointAt("\uD800\uDC00"
+ .toCharArray(), 1, 2));
+ assertEquals('\uD800', Character.codePointAt("\uD800\uDC00"
+ .toCharArray(), 0, 1));
+
+ try {
+ Character.codePointAt((char[]) null, 0, 1);
+ fail("No NPE.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointAt("abc".toCharArray(), -1, 3);
+ fail("No IOOBE, negative index.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointAt("abc".toCharArray(), 4, 3);
+ fail("No IOOBE, index too large.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointAt("abc".toCharArray(), 2, 1);
+ fail("No IOOBE, index larger than limit.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointAt("abc".toCharArray(), 2, -1);
+ fail("No IOOBE, limit is negative.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_codePointBeforeLjava_lang_CharSequenceI() {
+
+ assertEquals('a', Character.codePointBefore((CharSequence) "abc", 1));
+ assertEquals('b', Character.codePointBefore((CharSequence) "abc", 2));
+ assertEquals('c', Character.codePointBefore((CharSequence) "abc", 3));
+ assertEquals(0x10000, Character.codePointBefore(
+ (CharSequence) "\uD800\uDC00", 2));
+ assertEquals('\uD800', Character.codePointBefore(
+ (CharSequence) "\uD800\uDC00", 1));
+
+ try {
+ Character.codePointBefore((CharSequence) null, 0);
+ fail("No NPE.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointBefore((CharSequence) "abc", 0);
+ fail("No IOOBE, index below one.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointBefore((CharSequence) "abc", 4);
+ fail("No IOOBE, index too large.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_codePointBefore$CI() {
+
+ assertEquals('a', Character.codePointBefore("abc".toCharArray(), 1));
+ assertEquals('b', Character.codePointBefore("abc".toCharArray(), 2));
+ assertEquals('c', Character.codePointBefore("abc".toCharArray(), 3));
+ assertEquals(0x10000, Character.codePointBefore("\uD800\uDC00"
+ .toCharArray(), 2));
+ assertEquals('\uD800', Character.codePointBefore("\uD800\uDC00"
+ .toCharArray(), 1));
+
+ try {
+ Character.codePointBefore((char[]) null, 0);
+ fail("No NPE.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointBefore("abc".toCharArray(), -1);
+ fail("No IOOBE, negative index.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointBefore("abc".toCharArray(), 4);
+ fail("No IOOBE, index too large.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_codePointBefore$CII() {
+
+ assertEquals('a', Character.codePointBefore("abc".toCharArray(), 1, 0));
+ assertEquals('b', Character.codePointBefore("abc".toCharArray(), 2, 0));
+ assertEquals('c', Character.codePointBefore("abc".toCharArray(), 3, 0));
+ assertEquals(0x10000, Character.codePointBefore("\uD800\uDC00"
+ .toCharArray(), 2, 0));
+ assertEquals('\uDC00', Character.codePointBefore("\uD800\uDC00"
+ .toCharArray(), 2, 1));
+ assertEquals('\uD800', Character.codePointBefore("\uD800\uDC00"
+ .toCharArray(), 1, 0));
+
+ try {
+ Character.codePointBefore((char[]) null, 1, 0);
+ fail("No NPE.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointBefore("abc".toCharArray(), 0, 1);
+ fail("No IOOBE, index less than start.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointBefore("abc".toCharArray(), 4, 0);
+ fail("No IOOBE, index larger than length.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointBefore("abc".toCharArray(), 2, -1);
+ fail("No IOOBE, start is negative.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointBefore("abc".toCharArray(), 2, 4);
+ fail("No IOOBE, start larger than length.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_toCharsI$CI() {
+ char[] dst = new char[2];
+ int result = Character.toChars(0x10000, dst, 0);
+ assertEquals(2, result);
+ assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC00' }, dst));
+
+ result = Character.toChars(0x10001, dst, 0);
+ assertEquals(2, result);
+ assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC01' }, dst));
+
+ result = Character.toChars(0x10401, dst, 0);
+ assertEquals(2, result);
+ assertTrue(Arrays.equals(new char[] { '\uD801', '\uDC01' }, dst));
+
+ result = Character.toChars(0x10FFFF, dst, 0);
+ assertEquals(2, result);
+ assertTrue(Arrays.equals(new char[] { '\uDBFF', '\uDFFF' }, dst));
+
+ try {
+ Character.toChars(Integer.MAX_VALUE, new char[2], 0);
+ fail("No IAE, invalid code point.");
+ } catch (IllegalArgumentException e) {
+ }
+
+ try {
+ Character.toChars('a', null, 0);
+ fail("No NPE, null char[].");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.toChars('a', new char[1], -1);
+ fail("No IOOBE, negative index.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.toChars('a', new char[1], 1);
+ fail("No IOOBE, index equal to length.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_toCharsI() {
+ assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC00' }, Character
+ .toChars(0x10000)));
+ assertTrue(Arrays.equals(new char[] { '\uD800', '\uDC01' }, Character
+ .toChars(0x10001)));
+ assertTrue(Arrays.equals(new char[] { '\uD801', '\uDC01' }, Character
+ .toChars(0x10401)));
+ assertTrue(Arrays.equals(new char[] { '\uDBFF', '\uDFFF' }, Character
+ .toChars(0x10FFFF)));
+
+ try {
+ Character.toChars(Integer.MAX_VALUE);
+ fail("No IAE, invalid code point.");
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ public void test_codePointCountLjava_lang_CharSequenceII() {
+ assertEquals(1, Character.codePointCount("\uD800\uDC00", 0, 2));
+ assertEquals(1, Character.codePointCount("\uD800\uDC01", 0, 2));
+ assertEquals(1, Character.codePointCount("\uD801\uDC01", 0, 2));
+ assertEquals(1, Character.codePointCount("\uDBFF\uDFFF", 0, 2));
+
+ assertEquals(3, Character.codePointCount("a\uD800\uDC00b", 0, 4));
+ assertEquals(4, Character.codePointCount("a\uD800\uDC00b\uD800", 0, 5));
+
+ try {
+ Character.codePointCount((CharSequence) null, 0, 1);
+ fail("No NPE, null char sequence.");
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.codePointCount("abc", -1, 1);
+ fail("No IOOBE, negative start.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointCount("abc", 0, 4);
+ fail("No IOOBE, end greater than length.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.codePointCount("abc", 2, 1);
+ fail("No IOOBE, end greater than start.");
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_offsetByCodePointsLjava_lang_CharSequenceII() {
+ int result = Character.offsetByCodePoints("a\uD800\uDC00b", 0, 2);
+ assertEquals(3, result);
+
+ result = Character.offsetByCodePoints("abcd", 3, -1);
+ assertEquals(2, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b", 0, 3);
+ assertEquals(4, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b", 3, -1);
+ assertEquals(1, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b", 3, 0);
+ assertEquals(3, result);
+
+ result = Character.offsetByCodePoints("\uD800\uDC00bc", 3, 0);
+ assertEquals(3, result);
+
+ result = Character.offsetByCodePoints("a\uDC00bc", 3, -1);
+ assertEquals(2, result);
+
+ result = Character.offsetByCodePoints("a\uD800bc", 3, -1);
+ assertEquals(2, result);
+
+ try {
+ Character.offsetByCodePoints((CharSequence) null, 0, 1);
+ fail();
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc", -1, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc", 4, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc", 1, 3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc", 1, -2);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ public void test_offsetByCodePoints$CIIII() {
+ int result = Character.offsetByCodePoints("a\uD800\uDC00b"
+ .toCharArray(), 0, 4, 0, 2);
+ assertEquals(3, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
+ 0, 4, 0, 3);
+ assertEquals(4, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b\uD800c"
+ .toCharArray(), 0, 5, 0, 3);
+ assertEquals(4, result);
+
+ result = Character
+ .offsetByCodePoints("abcd".toCharArray(), 0, 4, 3, -1);
+ assertEquals(2, result);
+
+ result = Character
+ .offsetByCodePoints("abcd".toCharArray(), 1, 2, 3, -2);
+ assertEquals(1, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
+ 0, 4, 3, -1);
+ assertEquals(1, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
+ 0, 2, 2, -1);
+ assertEquals(1, result);
+
+ result = Character.offsetByCodePoints("a\uD800\uDC00b".toCharArray(),
+ 0, 4, 3, 0);
+ assertEquals(3, result);
+
+ result = Character.offsetByCodePoints("\uD800\uDC00bc".toCharArray(),
+ 0, 4, 3, 0);
+ assertEquals(3, result);
+
+ result = Character.offsetByCodePoints("a\uDC00bc".toCharArray(), 0, 4,
+ 3, -1);
+ assertEquals(2, result);
+
+ result = Character.offsetByCodePoints("a\uD800bc".toCharArray(), 0, 4,
+ 3, -1);
+ assertEquals(2, result);
+
+ try {
+ Character.offsetByCodePoints(null, 0, 4, 1, 1);
+ fail();
+ } catch (NullPointerException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abcd".toCharArray(), -1, 4, 1, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abcd".toCharArray(), 0, -1, 1, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abcd".toCharArray(), 2, 4, 1, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abcd".toCharArray(), 1, 3, 0, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abcd".toCharArray(), 1, 1, 3, 1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc".toCharArray(), 0, 3, 1, 3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc".toCharArray(), 0, 2, 1, 2);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ try {
+ Character.offsetByCodePoints("abc".toCharArray(), 1, 3, 1, -2);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ }
+ }
+
+ /**
+ * @tests java.lang.Character#compareTo(Character)
+ */
+ public void test_compareToLjava_lang_Byte() {
+ final Character min = new Character(Character.MIN_VALUE);
+ final Character mid = new Character((char)(Character.MAX_VALUE/2));
+ final Character max = new Character(Character.MAX_VALUE);
+
+ assertTrue(max.compareTo(max) == 0);
+ assertTrue(min.compareTo(min) == 0);
+ assertTrue(mid.compareTo(mid) == 0);
+
+ assertTrue(max.compareTo(mid) > 0);
+ assertTrue(max.compareTo(min) > 0);
+
+ assertTrue(mid.compareTo(max) < 0);
+ assertTrue(mid.compareTo(min) > 0);
+
+ assertTrue(min.compareTo(mid) < 0);
+ assertTrue(min.compareTo(max) < 0);
+
+ try {
+ min.compareTo(null);
+ fail("No NPE");
+ } catch (NullPointerException e) {
+ }
+ }
+
+ public void test_codePointAt_Invalid() {
+
+ try {
+ Character.codePointAt(null, 6, 4);
+ fail("Expected IndexOutOfBoundsException");
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ } catch (Exception e) {
+ fail("Expected IndexOutOfBoundsException");
+ }
+
+ try {
+ Character.codePointAt(null, 4, 6);
+ fail("Expected NullPointerException");
+ } catch (NullPointerException e) {
+ // expected
+ } catch (Exception e) {
+ fail("Expected NullPointerException");
+ }
+
+ try {
+ Character.codePointAt(null, 0, 0);
+ fail("Expected IndexOutOfBoundsException");
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ } catch (Exception e) {
+ fail("Expected IndexOutOfBoundsException");
+ }
+ }
+
+ /**
+ * @tests java.lang.Character#Character(char)
+ */
+ public void test_ConstructorC() {
+ // Test for method java.lang.Character(char)
+ assertEquals("Constructor failed", 'T', new Character('T').charValue());
+ }
+
+ /**
+ * @tests java.lang.Character#charValue()
+ */
+ public void test_charValue() {
+ // Test for method char java.lang.Character.charValue()
+ assertEquals("Incorrect char value returned", 'T', new Character('T')
+ .charValue());
+ }
+
+ /**
+ * @tests java.lang.Character#compareTo(java.lang.Character)
+ */
+ public void test_compareToLjava_lang_Character() {
+ // Test for method int
+ // java.lang.Character.compareTo(java.lang.Character)
+ Character c = new Character('c');
+ Character x = new Character('c');
+ Character y = new Character('b');
+ Character z = new Character('d');
+
+ assertEquals("Returned false for same Character", 0, c.compareTo(c));
+ assertEquals("Returned false for identical Character",
+ 0, c.compareTo(x));
+ assertTrue("Returned other than less than for lesser char", c
+ .compareTo(y) > 0);
+ assertTrue("Returned other than greater than for greater char", c
+ .compareTo(z) < 0);
+ }
+
+ /**
+ * @tests java.lang.Character#digit(char, int)
+ */
+ public void test_digitCI() {
+ // Test for method int java.lang.Character.digit(char, int)
+ assertEquals("Returned incorrect digit", 1, Character.digit('1', 10));
+ assertEquals("Returned incorrect digit", 15, Character.digit('F', 16));
+ }
+
+ /**
+ * @tests java.lang.Character#equals(java.lang.Object)
+ */
+ public void test_equalsLjava_lang_Object() {
+ // Test for method boolean java.lang.Character.equals(java.lang.Object)
+ assertTrue("Equality test failed", new Character('A')
+ .equals(new Character('A')));
+ assertTrue("Equality test failed", !(new Character('A')
+ .equals(new Character('a'))));
+ }
+
+ /**
+ * @tests java.lang.Character#forDigit(int, int)
+ */
+ public void test_forDigitII() {
+ // Test for method char java.lang.Character.forDigit(int, int)
+
+ char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ 'a', 'b', 'c', 'd', 'e', 'f' };
+ for (int i = 0; i < hexChars.length; i++) {
+ assertTrue("Returned incorrect char for " + Integer.toString(i),
+ Character.forDigit(i, hexChars.length) == hexChars[i]);
+ }
+
+ char decimalChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
+ '9' };
+ for (int i = 0; i < decimalChars.length; i++) {
+ assertTrue(
+ "Returned incorrect char for " + Integer.toString(i),
+ Character.forDigit(i, decimalChars.length) == decimalChars[i]);
+ }
+
+ }
+
+ /**
+ * @tests java.lang.Character#getNumericValue(char)
+ */
+ public void test_getNumericValueC() {
+ // Test for method int java.lang.Character.getNumericValue(char)
+ assertEquals("Returned incorrect numeric value 1", 1, Character
+ .getNumericValue('1'));
+ assertEquals("Returned incorrect numeric value 2", 15, Character
+ .getNumericValue('F'));
+ assertEquals("Returned incorrect numeric value 3", -1, Character
+ .getNumericValue('\u221e'));
+ assertEquals("Returned incorrect numeric value 4", -2, Character
+ .getNumericValue('\u00be'));
+ assertEquals("Returned incorrect numeric value 5", 10000, Character
+ .getNumericValue('\u2182'));
+ assertEquals("Returned incorrect numeric value 6", 2, Character
+ .getNumericValue('\uff12'));
+ }
+
+ /**
+ * @tests java.lang.Character#getType(char)
+ */
+ public void test_getTypeC() {
+ // Test for method int java.lang.Character.getType(char)
+ assertTrue("Returned incorrect type for: \n",
+ Character.getType('\n') == Character.CONTROL);
+ assertTrue("Returned incorrect type for: 1",
+ Character.getType('1') == Character.DECIMAL_DIGIT_NUMBER);
+ assertTrue("Returned incorrect type for: ' '",
+ Character.getType(' ') == Character.SPACE_SEPARATOR);
+ assertTrue("Returned incorrect type for: a",
+ Character.getType('a') == Character.LOWERCASE_LETTER);
+ assertTrue("Returned incorrect type for: A",
+ Character.getType('A') == Character.UPPERCASE_LETTER);
+ assertTrue("Returned incorrect type for: <",
+ Character.getType('<') == Character.MATH_SYMBOL);
+ assertTrue("Returned incorrect type for: ;",
+ Character.getType(';') == Character.OTHER_PUNCTUATION);
+ assertTrue("Returned incorrect type for: _",
+ Character.getType('_') == Character.CONNECTOR_PUNCTUATION);
+ assertTrue("Returned incorrect type for: $",
+ Character.getType('$') == Character.CURRENCY_SYMBOL);
+ assertTrue("Returned incorrect type for: \u2029", Character
+ .getType('\u2029') == Character.PARAGRAPH_SEPARATOR);
+
+ assertEquals("Wrong constant for FORMAT", 16, Character.FORMAT);
+ assertEquals("Wrong constant for PRIVATE_USE",
+ 18, Character.PRIVATE_USE);
+ }
+
+ /**
+ * @tests java.lang.Character#hashCode()
+ */
+ public void test_hashCode() {
+ // Test for method int java.lang.Character.hashCode()
+ assertEquals("Incorrect hash returned",
+ 89, new Character('Y').hashCode());
+ }
+
+ /**
+ * @tests java.lang.Character#isDefined(char)
+ */
+ 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
+ .isDefined('\u6039'));
+ }
+
+ /**
+ * @tests java.lang.Character#isDigit(char)
+ */
+ public void test_isDigitC() {
+ // Test for method boolean java.lang.Character.isDigit(char)
+ assertTrue("Digit returned false", Character.isDigit('1'));
+ assertTrue("Non-Digit returned false", !Character.isDigit('A'));
+ }
+
+ /**
+ * @tests java.lang.Character#isIdentifierIgnorable(char)
+ */
+ public void test_isIdentifierIgnorableC() {
+ // Test for method boolean
+ // java.lang.Character.isIdentifierIgnorable(char)
+ assertTrue("Ignorable whitespace returned false", Character
+ .isIdentifierIgnorable('\u0007'));
+ assertTrue("Ignorable non - whitespace control returned false",
+ Character.isIdentifierIgnorable('\u000f'));
+ assertTrue("Ignorable join control returned false", Character
+ .isIdentifierIgnorable('\u200e'));
+
+ // the spec is wrong, and our implementation is correct
+ assertTrue("Ignorable bidi control returned false", Character
+ .isIdentifierIgnorable('\u202b'));
+
+ assertTrue("Ignorable format control returned false", Character
+ .isIdentifierIgnorable('\u206c'));
+ assertTrue("Ignorable zero-width no-break returned false", Character
+ .isIdentifierIgnorable('\ufeff'));
+
+ assertTrue("Non-Ignorable returned true", !Character
+ .isIdentifierIgnorable('\u0065'));
+ }
+
+ /**
+ * @tests java.lang.Character#isISOControl(char)
+ */
+ public void test_isISOControlC() {
+ // Test for method boolean java.lang.Character.isISOControl(char)
+ for (int i = 0; i < 32; i++)
+ assertTrue("ISOConstrol char returned false", Character
+ .isISOControl((char) i));
+
+ for (int i = 127; i < 160; i++)
+ assertTrue("ISOConstrol char returned false", Character
+ .isISOControl((char) i));
+ }
+
+ /**
+ * @tests java.lang.Character#isISOControl(int)
+ */
+ public void test_isISOControlI() {
+ // Test for method boolean java.lang.Character.isISOControl(char)
+ for (int i = 0; i < 32; i++)
+ assertTrue("ISOConstrol char returned false", Character
+ .isISOControl(i));
+
+ for (int i = 127; i < 160; i++)
+ assertTrue("ISOConstrol char returned false", Character
+ .isISOControl(i));
+
+ for (int i = 160; i < 260; i++)
+ assertFalse("Not ISOConstrol char returned true", Character
+ .isISOControl(i));
+
+ }
+
+
+ /**
+ * @tests java.lang.Character#isJavaIdentifierPart(char)
+ */
+ public void test_isJavaIdentifierPartC() {
+ // Test for method boolean
+ // java.lang.Character.isJavaIdentifierPart(char)
+ assertTrue("letter returned false", Character.isJavaIdentifierPart('l'));
+ assertTrue("currency returned false", Character
+ .isJavaIdentifierPart('$'));
+ assertTrue("digit returned false", Character.isJavaIdentifierPart('9'));
+ assertTrue("connecting char returned false", Character
+ .isJavaIdentifierPart('_'));
+ assertTrue("ignorable control returned true", !Character
+ .isJavaIdentifierPart('\u200b'));
+ assertTrue("semi returned true", !Character.isJavaIdentifierPart(';'));
+ }
+
+ /**
+ * @tests java.lang.Character#isJavaIdentifierStart(char)
+ */
+ public void test_isJavaIdentifierStartC() {
+ // Test for method boolean
+ // java.lang.Character.isJavaIdentifierStart(char)
+ assertTrue("letter returned false", Character
+ .isJavaIdentifierStart('l'));
+ assertTrue("currency returned false", Character
+ .isJavaIdentifierStart('$'));
+ assertTrue("connecting char returned false", Character
+ .isJavaIdentifierStart('_'));
+ assertTrue("digit returned true", !Character.isJavaIdentifierStart('9'));
+ assertTrue("ignorable control returned true", !Character
+ .isJavaIdentifierStart('\u200b'));
+ assertTrue("semi returned true", !Character.isJavaIdentifierStart(';'));
+ }
+
+ /**
+ * @tests java.lang.Character#isJavaLetter(char)
+ */
+ public void test_isJavaLetterC() {
+ // Test for method boolean java.lang.Character.isJavaLetter(char)
+ assertTrue("letter returned false", Character.isJavaLetter('l'));
+ assertTrue("currency returned false", Character.isJavaLetter('$'));
+ assertTrue("connecting char returned false", Character
+ .isJavaLetter('_'));
+
+ assertTrue("digit returned true", !Character.isJavaLetter('9'));
+ assertTrue("ignirable control returned true", !Character
+ .isJavaLetter('\u200b'));
+ assertTrue("semi returned true", !Character.isJavaLetter(';'));
+ }
+
+ /**
+ * @tests java.lang.Character#isJavaLetterOrDigit(char)
+ */
+ public void test_isJavaLetterOrDigitC() {
+ // Test for method boolean java.lang.Character.isJavaLetterOrDigit(char)
+ assertTrue("letter returned false", Character.isJavaLetterOrDigit('l'));
+ assertTrue("currency returned false", Character
+ .isJavaLetterOrDigit('$'));
+ assertTrue("digit returned false", Character.isJavaLetterOrDigit('9'));
+ assertTrue("connecting char returned false", Character
+ .isJavaLetterOrDigit('_'));
+ assertTrue("semi returned true", !Character.isJavaLetterOrDigit(';'));
+ }
+
+ /**
+ * @tests java.lang.Character#isLetter(char)
+ */
+ public void test_isLetterC() {
+ // Test for method boolean java.lang.Character.isLetter(char)
+ assertTrue("Letter returned false", Character.isLetter('L'));
+ assertTrue("Non-Letter returned true", !Character.isLetter('9'));
+ }
+
+ /**
+ * @tests java.lang.Character#isLetterOrDigit(char)
+ */
+ public void test_isLetterOrDigitC() {
+ // Test for method boolean java.lang.Character.isLetterOrDigit(char)
+ assertTrue("Digit returned false", Character.isLetterOrDigit('9'));
+ assertTrue("Letter returned false", Character.isLetterOrDigit('K'));
+ assertTrue("Control returned true", !Character.isLetterOrDigit('\n'));
+ assertTrue("Puncutation returned true", !Character.isLetterOrDigit('?'));
+ }
+
+ /**
+ * @tests java.lang.Character#isLowerCase(char)
+ */
+ public void test_isLowerCaseC() {
+ // Test for method boolean java.lang.Character.isLowerCase(char)
+ assertTrue("lower returned false", Character.isLowerCase('a'));
+ assertTrue("upper returned true", !Character.isLowerCase('T'));
+ }
+
+ /**
+ * @tests java.lang.Character#isSpace(char)
+ */
+ public void test_isSpaceC() {
+ // Test for method boolean java.lang.Character.isSpace(char)
+ assertTrue("space returned false", Character.isSpace('\n'));
+ assertTrue("non-space returned true", !Character.isSpace('T'));
+ }
+
+ /**
+ * @tests java.lang.Character#isSpaceChar(char)
+ */
+ public void test_isSpaceCharC() {
+ // Test for method boolean java.lang.Character.isSpaceChar(char)
+ assertTrue("space returned false", Character.isSpaceChar('\u0020'));
+ assertTrue("non-space returned true", !Character.isSpaceChar('\n'));
+ }
+
+ /**
+ * @tests java.lang.Character#isTitleCase(char)
+ */
+ public void test_isTitleCaseC() {
+ // Test for method boolean java.lang.Character.isTitleCase(char)
+
+ char[] tChars = { (char) 0x01c5, (char) 0x01c8, (char) 0x01cb,
+ (char) 0x01f2, (char) 0x1f88, (char) 0x1f89, (char) 0x1f8a,
+ (char) 0x1f8b, (char) 0x1f8c, (char) 0x1f8d, (char) 0x1f8e,
+ (char) 0x1f8f, (char) 0x1f98, (char) 0x1f99, (char) 0x1f9a,
+ (char) 0x1f9b, (char) 0x1f9c, (char) 0x1f9d, (char) 0x1f9e,
+ (char) 0x1f9f, (char) 0x1fa8, (char) 0x1fa9, (char) 0x1faa,
+ (char) 0x1fab, (char) 0x1fac, (char) 0x1fad, (char) 0x1fae,
+ (char) 0x1faf, (char) 0x1fbc, (char) 0x1fcc, (char) 0x1ffc };
+ byte tnum = 0;
+ for (char c = 0; c < 65535; c++) {
+ if (Character.isTitleCase(c)) {
+ tnum++;
+ int i;
+ for (i = 0; i < tChars.length; i++)
+ if (tChars[i] == c)
+ i = tChars.length + 1;
+ if (i < tChars.length) {
+ fail("Non Title Case char returned true");
+ }
+ }
+ }
+ assertTrue("Failed to find all Title Case chars", tnum == tChars.length);
+ }
+
+ /**
+ * @tests java.lang.Character#isUnicodeIdentifierPart(char)
+ */
+ public void test_isUnicodeIdentifierPartC() {
+ // Test for method boolean
+ // java.lang.Character.isUnicodeIdentifierPart(char)
+ assertTrue("'a' returned false", Character.isUnicodeIdentifierPart('a'));
+ assertTrue("'2' returned false", Character.isUnicodeIdentifierPart('2'));
+ assertTrue("'+' returned true", !Character.isUnicodeIdentifierPart('+'));
+ }
+
+ /**
+ * @tests java.lang.Character#isUnicodeIdentifierStart(char)
+ */
+ public void test_isUnicodeIdentifierStartC() {
+ // Test for method boolean
+ // java.lang.Character.isUnicodeIdentifierStart(char)
+ assertTrue("'a' returned false", Character
+ .isUnicodeIdentifierStart('a'));
+ assertTrue("'2' returned true", !Character
+ .isUnicodeIdentifierStart('2'));
+ assertTrue("'+' returned true", !Character
+ .isUnicodeIdentifierStart('+'));
+ }
+
+ /**
+ * @tests java.lang.Character#isUpperCase(char)
+ */
+ public void test_isUpperCaseC() {
+ // Test for method boolean java.lang.Character.isUpperCase(char)
+ assertTrue("Incorrect case value", !Character.isUpperCase('t'));
+ assertTrue("Incorrect case value", Character.isUpperCase('T'));
+ }
+
+ /**
+ * @tests java.lang.Character#isWhitespace(char)
+ */
+ public void test_isWhitespaceC() {
+ // Test for method boolean java.lang.Character.isWhitespace(char)
+ assertTrue("space returned false", Character.isWhitespace('\n'));
+ assertTrue("non-space returned true", !Character.isWhitespace('T'));
+ }
+
+ /**
+ * @tests java.lang.Character#reverseBytes(char)
+ */
+ public void test_reverseBytesC() {
+ char original[] = new char[]{0x0000, 0x0010, 0x00AA, 0xB000, 0xCC00, 0xABCD, 0xFFAA};
+ char reversed[] = new char[]{0x0000, 0x1000, 0xAA00, 0x00B0, 0x00CC, 0xCDAB, 0xAAFF};
+ assertTrue("Test self check", original.length==reversed.length);
+
+ for (int i=0; i<original.length; i++) {
+ char origChar = original[i];
+ char reversedChar = reversed[i];
+ char origReversed= Character.reverseBytes(origChar);
+
+ assertTrue("java.lang.Character.reverseBytes failed: orig char="
+ +Integer.toHexString(origChar)+", reversed char="
+ +Integer.toHexString(origReversed), reversedChar==origReversed);
+ }
+ }
+
+ /**
+ * @tests java.lang.Character#toLowerCase(char)
+ */
+ public void test_toLowerCaseC() {
+ // Test for method char java.lang.Character.toLowerCase(char)
+ assertEquals("Failed to change case", 't', Character.toLowerCase('T'));
+ }
+
+ /**
+ * @tests java.lang.Character#toString()
+ */
+ public void test_toString() {
+ // Test for method java.lang.String java.lang.Character.toString()
+ assertEquals("Incorrect String returned", "T", new Character('T').toString()
+ );
+ }
+
+ /**
+ * @tests java.lang.Character#toTitleCase(char)
+ */
+ public void test_toTitleCaseC() {
+ // Test for method char java.lang.Character.toTitleCase(char)
+ assertEquals("Incorrect title case for a",
+ 'A', Character.toTitleCase('a'));
+ assertEquals("Incorrect title case for A",
+ 'A', Character.toTitleCase('A'));
+ assertEquals("Incorrect title case for 1",
+ '1', Character.toTitleCase('1'));
+ }
+
+ /**
+ * @tests java.lang.Character#toUpperCase(char)
+ */
+ public void test_toUpperCaseC() {
+ // Test for method char java.lang.Character.toUpperCase(char)
+ assertEquals("Incorrect upper case for a",
+ 'A', Character.toUpperCase('a'));
+ assertEquals("Incorrect upper case for A",
+ 'A', Character.toUpperCase('A'));
+ assertEquals("Incorrect upper case for 1",
+ '1', Character.toUpperCase('1'));
+ }
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/CharacterTest.java
------------------------------------------------------------------------------
svn:eol-style = native