/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargetClass;
import junit.framework.TestCase;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Arrays;
@TestTargetClass(Character.class)
public class CharacterTest extends TestCase {
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "valueOf",
args = {char.class}
)
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 = 512; c <= Character.MAX_VALUE; c++) {
assertEquals(new Character((char) c), Character.valueOf((char) c));
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isValidCodePoint",
args = {int.class}
)
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));
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isSupplementaryCodePoint",
args = {int.class}
)
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));
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isHighSurrogate",
args = {char.class}
)
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'));
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLowSurrogate",
args = {char.class}
)
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)));
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isSurrogatePair",
args = {char.class, char.class}
)
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'));
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "charCount",
args = {int.class}
)
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));
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toCodePoint",
args = {char.class, char.class}
)
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);
}
@SuppressWarnings("cast")
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointAt",
args = {java.lang.CharSequence.class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointAt",
args = {char[].class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointAt",
args = {char[].class, int.class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointBefore",
args = {java.lang.CharSequence.class, int.class}
)
@SuppressWarnings("cast")
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointBefore",
args = {char[].class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointBefore",
args = {char[].class, int.class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toChars",
args = {int.class, char[].class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toChars",
args = {int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointCount",
args = {java.lang.CharSequence.class, int.class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "codePointCount",
args = {char[].class, int.class, int.class}
)
public void test_codePointCountLjava_lang_CharArrayII() {
assertEquals(1, Character.codePointCount("\uD800\uDC00".toCharArray(),
0, 2));
assertEquals(3, Character.codePointCount("a\uD800\uDC00b".toCharArray(),
0, 4));
assertEquals(4, Character.codePointCount("a\uD800\uDC00b\uD800".toCharArray(),
0, 5));
assertEquals(4, Character.codePointCount("ab\uD800\uDC00b\uD800".toCharArray(),
1, 5));
try {
Character.codePointCount((char[]) null, 0, 1);
fail("No NPE, null char sequence.");
} catch (NullPointerException e) {
}
try {
Character.codePointCount("abc".toCharArray(), -1, 1);
fail("No IOOBE, negative start.");
} catch (IndexOutOfBoundsException e) {
}
try {
Character.codePointCount("abc".toCharArray(), 0, 4);
fail("No IOOBE, end greater than length.");
} catch (IndexOutOfBoundsException e) {
}
try {
Character.codePointCount("abc".toCharArray(), 1, 3);
fail("No IOOBE, end greater than start.");
} catch (IndexOutOfBoundsException e) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getDirectionality",
args = {char.class}
)
public void test_getDirectionality() throws Exception {
byte[] directionalities = {
// BEGIN android-changed
// Unicode 5.1 defines U+0370 to be Greek capital letter Heta.
Character.DIRECTIONALITY_LEFT_TO_RIGHT,
// END android-changed.
Character.DIRECTIONALITY_LEFT_TO_RIGHT,
Character.DIRECTIONALITY_RIGHT_TO_LEFT,
// BEGIN android-changed
// Unicode standard 5.1 changed category of unicode point 0x0600 from AL to AN
Character.DIRECTIONALITY_ARABIC_NUMBER,
// END android-changed.
Character.DIRECTIONALITY_EUROPEAN_NUMBER,
// Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR,
Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR,
Character.DIRECTIONALITY_ARABIC_NUMBER,
Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR,
Character.DIRECTIONALITY_NONSPACING_MARK,
Character.DIRECTIONALITY_BOUNDARY_NEUTRAL,
Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR,
Character.DIRECTIONALITY_SEGMENT_SEPARATOR,
Character.DIRECTIONALITY_WHITESPACE,
Character.DIRECTIONALITY_OTHER_NEUTRALS,
Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING,
Character.DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE,
Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING,
Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE,
Character.DIRECTIONALITY_POP_DIRECTIONAL_FORMAT
};
char[] characters = {
// BEGIN android-changed
// Unicode 5.1 defines U+0370 to be Greek capital letter Heta.
'\u0370', // 1
// END android-changed
'\u00B5', // 0
'\u05BE', // 1
// BEGIN android-changed
'\u0600', // 6
// END android-changed
'\u00B2', // 3
// '', // No common char in this group on android and java.
'\u00B1', // 5
'\u0660', // 6
'\u00A0', // 7
'\u0300', // 8
'\u009F', // 9
'\u0085', // 10
'\u001F', // 11
'\u0020', // 12
'\u00AB', // 13
'\u202A', // 14
'\u202D', // 15
'\u202B', // 16
'\u202E', // 17
'\u202C' // 18
};
for(int i = 0; i < directionalities.length; i++) {
assertEquals(directionalities[i],
Character.getDirectionality(characters[i]));
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "offsetByCodePoints",
args = {java.lang.CharSequence.class, int.class, int.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "offsetByCodePoints",
args = {char[].class, int.class, int.class, int.class, int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "compareTo",
args = {java.lang.Character.class}
)
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) {
}
}
@TestTargetNew(
level = TestLevel.PARTIAL,
notes = "Checks exceptions.",
method = "codePointAt",
args = {char[].class, int.class, int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "Character",
args = {char.class}
)
public void test_ConstructorC() {
assertEquals("Constructor failed", 'T', new Character('T').charValue());
}
/**
* @tests java.lang.Character#charValue()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "charValue",
args = {}
)
public void test_charValue() {
assertEquals("Incorrect char value returned", 'T', new Character('T')
.charValue());
}
/**
* @tests java.lang.Character#compareTo(java.lang.Character)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "compareTo",
args = {java.lang.Character.class}
)
public void test_compareToLjava_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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "digit",
args = {char.class, int.class}
)
public void test_digitCI() {
assertEquals("Returned incorrect digit", 1, Character.digit('1', 10));
assertEquals("Returned incorrect digit", 15, Character.digit('F', 16));
assertEquals(-1, Character.digit('\uFFFF', 1));
}
/**
* @tests java.lang.Character#digit(int, int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "digit",
args = {int.class, int.class}
)
public void test_digit_II() {
assertEquals(1, Character.digit((int)'1', 10));
assertEquals(15, Character.digit((int)'F', 16));
assertEquals(-1, Character.digit(0x0000, 37));
assertEquals(-1, Character.digit(0x0045, 10));
assertEquals(10, Character.digit(0x0041, 20));
assertEquals(10, Character.digit(0x0061, 20));
assertEquals(-1, Character.digit(0x110000, 20));
}
/**
* @tests java.lang.Character#equals(java.lang.Object)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "equals",
args = {java.lang.Object.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "forDigit",
args = {int.class, int.class}
)
public void test_forDigitII() {
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getNumericValue",
args = {char.class}
)
public void test_getNumericValueC() {
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#getNumericValue(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getNumericValue",
args = {int.class}
)
public void test_getNumericValue_I() {
assertEquals(1, Character.getNumericValue((int)'1'));
assertEquals(15, Character.getNumericValue((int)'F'));
assertEquals(-1, Character.getNumericValue((int)'\u221e'));
assertEquals(-2, Character.getNumericValue((int)'\u00be'));
assertEquals(10000, Character.getNumericValue((int)'\u2182'));
assertEquals(2, Character.getNumericValue((int)'\uff12'));
assertEquals(-1, Character.getNumericValue(0xFFFF));
assertEquals(-1, Character.getNumericValue(0xFFFF));
assertEquals(0, Character.getNumericValue(0x1D7CE));
assertEquals(0, Character.getNumericValue(0x1D7D8));
assertEquals(-1, Character.getNumericValue(0x2F800));
assertEquals(-1, Character.getNumericValue(0x10FFFD));
assertEquals(-1, Character.getNumericValue(0x110000));
assertEquals(50, Character.getNumericValue(0x216C));
assertEquals(10, Character.getNumericValue(0x0041));
assertEquals(35, Character.getNumericValue(0x005A));
assertEquals(10, Character.getNumericValue(0x0061));
assertEquals(35, Character.getNumericValue(0x007A));
assertEquals(10, Character.getNumericValue(0xFF21));
//FIXME depends on ICU4J
//assertEquals(35, Character.getNumericValue(0xFF3A));
assertEquals(10, Character.getNumericValue(0xFF41));
assertEquals(35, Character.getNumericValue(0xFF5A));
}
/**
* @tests java.lang.Character#getType(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getType",
args = {char.class}
)
public void test_getTypeC() {
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#getType(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getType",
args = {int.class}
)
public void test_getType_I() {
assertTrue(Character.getType((int) '\n') == Character.CONTROL);
assertTrue(Character.getType((int) '1') == Character.DECIMAL_DIGIT_NUMBER);
assertTrue(Character.getType((int) ' ') == Character.SPACE_SEPARATOR);
assertTrue(Character.getType((int) 'a') == Character.LOWERCASE_LETTER);
assertTrue(Character.getType((int) 'A') == Character.UPPERCASE_LETTER);
assertTrue(Character.getType((int) '<') == Character.MATH_SYMBOL);
assertTrue(Character.getType((int) ';') == Character.OTHER_PUNCTUATION);
assertTrue(Character.getType((int) '_') == Character.CONNECTOR_PUNCTUATION);
assertTrue(Character.getType((int) '$') == Character.CURRENCY_SYMBOL);
assertTrue(Character.getType((int) '\u2029') == Character.PARAGRAPH_SEPARATOR);
assertTrue(Character.getType(0x9FFF) == Character.UNASSIGNED);
assertTrue(Character.getType(0x30000) == Character.UNASSIGNED);
assertTrue(Character.getType(0x110000) == Character.UNASSIGNED);
assertTrue(Character.getType(0x0041) == Character.UPPERCASE_LETTER);
assertTrue(Character.getType(0x10400) == Character.UPPERCASE_LETTER);
assertTrue(Character.getType(0x0061) == Character.LOWERCASE_LETTER);
assertTrue(Character.getType(0x10428) == Character.LOWERCASE_LETTER);
assertTrue(Character.getType(0x01C5) == Character.TITLECASE_LETTER);
assertTrue(Character.getType(0x1FFC) == Character.TITLECASE_LETTER);
assertTrue(Character.getType(0x02B0) == Character.MODIFIER_LETTER);
assertTrue(Character.getType(0xFF9F) == Character.MODIFIER_LETTER);
assertTrue(Character.getType(0x01BB) == Character.OTHER_LETTER);
assertTrue(Character.getType(0x2F888) == Character.OTHER_LETTER);
assertTrue(Character.getType(0x0F82) == Character.NON_SPACING_MARK);
assertTrue(Character.getType(0x1D180) == Character.NON_SPACING_MARK);
assertTrue(Character.getType(0x0488) == Character.ENCLOSING_MARK);
assertTrue(Character.getType(0x20DE) == Character.ENCLOSING_MARK);
assertTrue(Character.getType(0x1938) == Character.COMBINING_SPACING_MARK);
assertTrue(Character.getType(0x1D165) == Character.COMBINING_SPACING_MARK);
assertTrue(Character.getType(0x194D) == Character.DECIMAL_DIGIT_NUMBER);
assertTrue(Character.getType(0x1D7CE) == Character.DECIMAL_DIGIT_NUMBER);
assertTrue(Character.getType(0x2160) == Character.LETTER_NUMBER);
assertTrue(Character.getType(0x1034A) == Character.LETTER_NUMBER);
assertTrue(Character.getType(0x00B2) == Character.OTHER_NUMBER);
assertTrue(Character.getType(0x10120) == Character.OTHER_NUMBER);
assertTrue(Character.getType(0x0020) == Character.SPACE_SEPARATOR);
assertTrue(Character.getType(0x3000) == Character.SPACE_SEPARATOR);
assertTrue(Character.getType(0x2028) == Character.LINE_SEPARATOR);
assertTrue(Character.getType(0x2029) == Character.PARAGRAPH_SEPARATOR);
assertTrue(Character.getType(0x0000) == Character.CONTROL);
assertTrue(Character.getType(0x009F) == Character.CONTROL);
assertTrue(Character.getType(0x00AD) == Character.FORMAT);
assertTrue(Character.getType(0xE007F) == Character.FORMAT);
assertTrue(Character.getType(0xE000) == Character.PRIVATE_USE);
assertTrue(Character.getType(0x10FFFD) == Character.PRIVATE_USE);
assertTrue(Character.getType(0xD800) == Character.SURROGATE);
assertTrue(Character.getType(0xDFFF) == Character.SURROGATE);
assertTrue(Character.getType(0xFE31) == Character.DASH_PUNCTUATION);
assertTrue(Character.getType(0xFF0D) == Character.DASH_PUNCTUATION);
assertTrue(Character.getType(0x0028) == Character.START_PUNCTUATION);
assertTrue(Character.getType(0xFF62) == Character.START_PUNCTUATION);
assertTrue(Character.getType(0x0029) == Character.END_PUNCTUATION);
assertTrue(Character.getType(0xFF63) == Character.END_PUNCTUATION);
assertTrue(Character.getType(0x005F) == Character.CONNECTOR_PUNCTUATION);
assertTrue(Character.getType(0xFF3F) == Character.CONNECTOR_PUNCTUATION);
assertTrue(Character.getType(0x2034) == Character.OTHER_PUNCTUATION);
assertTrue(Character.getType(0x1039F) == Character.OTHER_PUNCTUATION);
assertTrue(Character.getType(0x002B) == Character.MATH_SYMBOL);
assertTrue(Character.getType(0x1D6C1) == Character.MATH_SYMBOL);
assertTrue(Character.getType(0x0024) == Character.CURRENCY_SYMBOL);
assertTrue(Character.getType(0xFFE6) == Character.CURRENCY_SYMBOL);
assertTrue(Character.getType(0x005E) == Character.MODIFIER_SYMBOL);
assertTrue(Character.getType(0xFFE3) == Character.MODIFIER_SYMBOL);
assertTrue(Character.getType(0x00A6) == Character.OTHER_SYMBOL);
assertTrue(Character.getType(0x1D356) == Character.OTHER_SYMBOL);
assertTrue(Character.getType(0x00AB) == Character.INITIAL_QUOTE_PUNCTUATION);
assertTrue(Character.getType(0x2039) == Character.INITIAL_QUOTE_PUNCTUATION);
assertTrue(Character.getType(0x00BB) == Character.FINAL_QUOTE_PUNCTUATION);
assertTrue(Character.getType(0x203A) == Character.FINAL_QUOTE_PUNCTUATION);
}
/**
* @tests java.lang.Character#hashCode()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "hashCode",
args = {}
)
public void test_hashCode() {
assertEquals("Incorrect hash returned",
89, new Character('Y').hashCode());
}
/**
* @tests java.lang.Character#isDefined(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isDefined",
args = {char.class}
)
public void test_isDefinedC() {
assertTrue("Defined character returned false", Character.isDefined('v'));
assertTrue("Defined character returned false", Character
.isDefined('\u6039'));
}
/**
* @tests java.lang.Character#isDefined(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isDefined",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isDigit",
args = {char.class}
)
public void test_isDigitC() {
assertTrue("Digit returned false", Character.isDigit('1'));
assertTrue("Non-Digit returned false", !Character.isDigit('A'));
}
/**
* @tests java.lang.Character#isDigit(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isDigit",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isIdentifierIgnorable",
args = {char.class}
)
public void test_isIdentifierIgnorableC() {
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#isIdentifierIgnorable(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isIdentifierIgnorable",
args = {int.class}
)
public void test_isIdentifierIgnorable_I() {
assertTrue(Character.isIdentifierIgnorable(0x0000));
assertTrue(Character.isIdentifierIgnorable(0x0004));
assertTrue(Character.isIdentifierIgnorable(0x0008));
assertTrue(Character.isIdentifierIgnorable(0x000E));
assertTrue(Character.isIdentifierIgnorable(0x0013));
assertTrue(Character.isIdentifierIgnorable(0x001B));
assertTrue(Character.isIdentifierIgnorable(0x007F));
assertTrue(Character.isIdentifierIgnorable(0x008F));
assertTrue(Character.isIdentifierIgnorable(0x009F));
assertTrue(Character.isIdentifierIgnorable(0x202b));
assertTrue(Character.isIdentifierIgnorable(0x206c));
assertTrue(Character.isIdentifierIgnorable(0xfeff));
assertFalse(Character.isIdentifierIgnorable(0x0065));
assertTrue(Character.isIdentifierIgnorable(0x1D173));
assertFalse(Character.isIdentifierIgnorable(0x10FFFD));
assertFalse(Character.isIdentifierIgnorable(0x110000));
}
/**
* @tests java.lang.Character#isMirrored(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isMirrored",
args = {char.class}
)
public void test_isMirrored_C() {
assertTrue(Character.isMirrored('\u0028'));
assertFalse(Character.isMirrored('\uFFFF'));
}
/**
* @tests java.lang.Character#isMirrored(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isMirrored",
args = {int.class}
)
public void test_isMirrored_I() {
assertTrue(Character.isMirrored(0x0028));
assertFalse(Character.isMirrored(0xFFFF));
assertFalse(Character.isMirrored(0x110000));
}
/**
* @tests java.lang.Character#isISOControl(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isISOControl",
args = {char.class}
)
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));
for (int i = 160; i < 260; i++)
assertFalse("Not ISOConstrol char returned true", Character
.isISOControl((char) i));
}
/**
* @tests java.lang.Character#isISOControl(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isISOControl",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isJavaIdentifierPart",
args = {char.class}
)
public void test_isJavaIdentifierPartC() {
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 false", Character
.isJavaIdentifierPart('\u200c'));
assertTrue("semi returned true", !Character.isJavaIdentifierPart(';'));
}
/**
* @tests java.lang.Character#isJavaIdentifierPart(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isJavaIdentifierPart",
args = {int.class}
)
public void test_isJavaIdentifierPart_I() {
assertTrue(Character.isJavaIdentifierPart((int)'l'));
assertTrue(Character.isJavaIdentifierPart((int)'$'));
assertTrue(Character.isJavaIdentifierPart((int)'9'));
assertTrue(Character.isJavaIdentifierPart((int)'_'));
assertFalse(Character.isJavaIdentifierPart((int)';'));
assertTrue(Character.isJavaIdentifierPart(0x0041));
assertTrue(Character.isJavaIdentifierPart(0x10400));
assertTrue(Character.isJavaIdentifierPart(0x0061));
assertTrue(Character.isJavaIdentifierPart(0x10428));
assertTrue(Character.isJavaIdentifierPart(0x01C5));
assertTrue(Character.isJavaIdentifierPart(0x1FFC));
assertTrue(Character.isJavaIdentifierPart(0x02B0));
assertTrue(Character.isJavaIdentifierPart(0xFF9F));
assertTrue(Character.isJavaIdentifierPart(0x01BB));
assertTrue(Character.isJavaIdentifierPart(0x2F888));
assertTrue(Character.isJavaIdentifierPart(0x0024));
assertTrue(Character.isJavaIdentifierPart(0xFFE6));
assertTrue(Character.isJavaIdentifierPart(0x005F));
assertTrue(Character.isJavaIdentifierPart(0xFF3F));
assertTrue(Character.isJavaIdentifierPart(0x194D));
assertTrue(Character.isJavaIdentifierPart(0x1D7CE));
assertTrue(Character.isJavaIdentifierPart(0x2160));
assertTrue(Character.isJavaIdentifierPart(0x1034A));
assertTrue(Character.isJavaIdentifierPart(0x0F82));
assertTrue(Character.isJavaIdentifierPart(0x1D180));
assertTrue(Character.isJavaIdentifierPart(0x0000));
assertTrue(Character.isJavaIdentifierPart(0x0008));
assertTrue(Character.isJavaIdentifierPart(0x000E));
assertTrue(Character.isJavaIdentifierPart(0x001B));
assertTrue(Character.isJavaIdentifierPart(0x007F));
assertTrue(Character.isJavaIdentifierPart(0x009F));
assertTrue(Character.isJavaIdentifierPart(0x00AD));
assertTrue(Character.isJavaIdentifierPart(0xE007F));
assertTrue(Character.isJavaIdentifierPart(0x200C));
}
/**
* @tests java.lang.Character#isJavaIdentifierStart(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isJavaIdentifierStart",
args = {char.class}
)
public void test_isJavaIdentifierStartC() {
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#isJavaIdentifierStart(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isJavaIdentifierStart",
args = {int.class}
)
public void test_isJavaIdentifierStart_I() {
assertTrue(Character.isJavaIdentifierStart((int)'l'));
assertTrue(Character.isJavaIdentifierStart((int)'$'));
assertTrue(Character.isJavaIdentifierStart((int)'_'));
assertFalse(Character.isJavaIdentifierStart((int)'9'));
assertFalse(Character.isJavaIdentifierStart((int)'\u200b'));
assertFalse(Character.isJavaIdentifierStart((int)';'));
assertTrue(Character.isJavaIdentifierStart(0x0041));
assertTrue(Character.isJavaIdentifierStart(0x10400));
assertTrue(Character.isJavaIdentifierStart(0x0061));
assertTrue(Character.isJavaIdentifierStart(0x10428));
assertTrue(Character.isJavaIdentifierStart(0x01C5));
assertTrue(Character.isJavaIdentifierStart(0x1FFC));
assertTrue(Character.isJavaIdentifierStart(0x02B0));
assertTrue(Character.isJavaIdentifierStart(0xFF9F));
assertTrue(Character.isJavaIdentifierStart(0x01BB));
assertTrue(Character.isJavaIdentifierStart(0x2F888));
assertTrue(Character.isJavaIdentifierPart(0x0024));
assertTrue(Character.isJavaIdentifierPart(0xFFE6));
assertTrue(Character.isJavaIdentifierPart(0x005F));
assertTrue(Character.isJavaIdentifierPart(0xFF3F));
assertTrue(Character.isJavaIdentifierPart(0x2160));
assertTrue(Character.isJavaIdentifierPart(0x1034A));
assertFalse(Character.isJavaIdentifierPart(0x110000));
}
/**
* @tests java.lang.Character#isJavaLetter(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isJavaLetter",
args = {char.class}
)
@SuppressWarnings("deprecation")
public void test_isJavaLetterC() {
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("ignored control returned true", !Character
.isJavaLetter('\u200b'));
assertTrue("semi returned true", !Character.isJavaLetter(';'));
}
/**
* @tests java.lang.Character#isJavaLetterOrDigit(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isJavaLetterOrDigit",
args = {char.class}
)
@SuppressWarnings("deprecation")
public void test_isJavaLetterOrDigitC() {
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLetter",
args = {char.class}
)
public void test_isLetterC() {
assertTrue("Letter returned false", Character.isLetter('L'));
assertTrue("Non-Letter returned true", !Character.isLetter('9'));
}
/**
* @tests java.lang.Character#isLetter(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLetter",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLetterOrDigit",
args = {char.class}
)
public void test_isLetterOrDigitC() {
assertTrue("Digit returned false", Character.isLetterOrDigit('9'));
assertTrue("Letter returned false", Character.isLetterOrDigit('K'));
assertTrue("Control returned true", !Character.isLetterOrDigit('\n'));
assertTrue("Punctuation returned true", !Character.isLetterOrDigit('?'));
}
/**
* @tests java.lang.Character#isLetterOrDigit(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLetterOrDigit",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLowerCase",
args = {char.class}
)
public void test_isLowerCaseC() {
assertTrue("lower returned false", Character.isLowerCase('a'));
assertTrue("upper returned true", !Character.isLowerCase('T'));
}
/**
* @tests java.lang.Character#isLowerCase(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isLowerCase",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isSpace",
args = {char.class}
)
@SuppressWarnings("deprecation")
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isSpaceChar",
args = {char.class}
)
public void test_isSpaceCharC() {
assertTrue("space returned false", Character.isSpaceChar('\u0020'));
assertTrue("non-space returned true", !Character.isSpaceChar('\n'));
}
/**
* @tests java.lang.Character#isSpaceChar(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isSpaceChar",
args = {int.class}
)
public void test_isSpaceChar_I() {
assertTrue(Character.isSpaceChar((int)'\u0020'));
assertFalse(Character.isSpaceChar((int)'\n'));
assertTrue(Character.isSpaceChar(0x2000));
assertTrue(Character.isSpaceChar(0x200A));
assertTrue(Character.isSpaceChar(0x2028));
assertTrue(Character.isSpaceChar(0x2029));
assertFalse(Character.isSpaceChar(0x110000));
}
/**
* @tests java.lang.Character#isTitleCase(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isTitleCase",
args = {char.class}
)
public void test_isTitleCaseC() {
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#isTitleCase(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isTitleCase",
args = {int.class}
)
public void test_isTitleCase_I() {
//all the titlecase characters
int[] titleCaseCharacters = { 0x01c5, 0x01c8, 0x01cb, 0x01f2, 0x1f88,
0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f, 0x1f98,
0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f, 0x1fa8,
0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf, 0x1fbc,
0x1fcc, 0x1ffc };
for (int i = 0; i < titleCaseCharacters.length; i++) {
assertTrue(Character.isTitleCase(titleCaseCharacters[i]));
}
assertFalse(Character.isTitleCase(0x110000));
}
/**
* @tests java.lang.Character#isUnicodeIdentifierPart(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isUnicodeIdentifierPart",
args = {char.class}
)
public void test_isUnicodeIdentifierPartC() {
assertTrue("'a' returned false", Character.isUnicodeIdentifierPart('a'));
assertTrue("'2' returned false", Character.isUnicodeIdentifierPart('2'));
assertTrue("'+' returned true", !Character.isUnicodeIdentifierPart('+'));
}
/**
* @tests java.lang.Character#isUnicodeIdentifierPart(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isUnicodeIdentifierPart",
args = {int.class}
)
public void test_isUnicodeIdentifierPart_I() {
assertTrue(Character.isUnicodeIdentifierPart((int)'a'));
assertTrue(Character.isUnicodeIdentifierPart((int)'2'));
assertFalse(Character.isUnicodeIdentifierPart((int)'+'));
assertTrue(Character.isUnicodeIdentifierPart(0x1FA9));
assertTrue(Character.isUnicodeIdentifierPart(0x1D400));
assertTrue(Character.isUnicodeIdentifierPart(0x1D622));
assertTrue(Character.isUnicodeIdentifierPart(0x10000));
assertTrue(Character.isUnicodeIdentifierPart(0x0030));
assertTrue(Character.isUnicodeIdentifierPart(0x0035));
assertTrue(Character.isUnicodeIdentifierPart(0x0039));
assertTrue(Character.isUnicodeIdentifierPart(0x0660));
assertTrue(Character.isUnicodeIdentifierPart(0x0665));
assertTrue(Character.isUnicodeIdentifierPart(0x0669));
assertTrue(Character.isUnicodeIdentifierPart(0x06F0));
assertTrue(Character.isUnicodeIdentifierPart(0x06F5));
assertTrue(Character.isUnicodeIdentifierPart(0x06F9));
assertTrue(Character.isUnicodeIdentifierPart(0x0966));
assertTrue(Character.isUnicodeIdentifierPart(0x096A));
assertTrue(Character.isUnicodeIdentifierPart(0x096F));
assertTrue(Character.isUnicodeIdentifierPart(0xFF10));
assertTrue(Character.isUnicodeIdentifierPart(0xFF15));
assertTrue(Character.isUnicodeIdentifierPart(0xFF19));
assertTrue(Character.isUnicodeIdentifierPart(0x1D7CE));
assertTrue(Character.isUnicodeIdentifierPart(0x1D7D8));
assertTrue(Character.isUnicodeIdentifierPart(0x16EE));
assertTrue(Character.isUnicodeIdentifierPart(0xFE33));
assertTrue(Character.isUnicodeIdentifierPart(0xFF10));
assertTrue(Character.isUnicodeIdentifierPart(0x1D165));
assertTrue(Character.isUnicodeIdentifierPart(0x1D167));
assertTrue(Character.isUnicodeIdentifierPart(0x1D173));
assertFalse(Character.isUnicodeIdentifierPart(0x10FFFF));
assertFalse(Character.isUnicodeIdentifierPart(0x110000));
}
/**
* @tests java.lang.Character#isUnicodeIdentifierStart(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isUnicodeIdentifierStart",
args = {char.class}
)
public void test_isUnicodeIdentifierStartC() {
assertTrue("'a' returned false", Character
.isUnicodeIdentifierStart('a'));
assertTrue("'2' returned true", !Character
.isUnicodeIdentifierStart('2'));
assertTrue("'+' returned true", !Character
.isUnicodeIdentifierStart('+'));
}
/**
* @tests java.lang.Character#isUnicodeIdentifierStart(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isUnicodeIdentifierStart",
args = {int.class}
)
public void test_isUnicodeIdentifierStart_I() {
assertTrue(Character.isUnicodeIdentifierStart((int) 'a'));
assertFalse(Character.isUnicodeIdentifierStart((int) '2'));
assertFalse(Character.isUnicodeIdentifierStart((int) '+'));
assertTrue(Character.isUnicodeIdentifierStart(0x1FA9));
assertTrue(Character.isUnicodeIdentifierStart(0x1D400));
assertTrue(Character.isUnicodeIdentifierStart(0x1D622));
assertTrue(Character.isUnicodeIdentifierStart(0x10000));
assertTrue(Character.isUnicodeIdentifierStart(0x16EE));
// number is not a valid start of a Unicode identifier
assertFalse(Character.isUnicodeIdentifierStart(0x0030));
assertFalse(Character.isUnicodeIdentifierStart(0x0039));
assertFalse(Character.isUnicodeIdentifierStart(0x0660));
assertFalse(Character.isUnicodeIdentifierStart(0x0669));
assertFalse(Character.isUnicodeIdentifierStart(0x06F0));
assertFalse(Character.isUnicodeIdentifierStart(0x06F9));
assertFalse(Character.isUnicodeIdentifierPart(0x10FFFF));
assertFalse(Character.isUnicodeIdentifierPart(0x110000));
}
/**
* @tests java.lang.Character#isUpperCase(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isUpperCase",
args = {char.class}
)
public void test_isUpperCaseC() {
assertTrue("Incorrect case value", !Character.isUpperCase('t'));
assertTrue("Incorrect case value", Character.isUpperCase('T'));
assertFalse("Incorrect case value", Character.isUpperCase('1'));
assertFalse("Incorrect case value", Character.isUpperCase('?'));
}
/**
* @tests java.lang.Character#isUpperCase(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isUpperCase",
args = {int.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isWhitespace",
args = {char.class}
)
public void test_isWhitespaceC() {
assertTrue("space returned false", Character.isWhitespace('\n'));
assertTrue("non-space returned true", !Character.isWhitespace('T'));
}
/**
* @tests java.lang.Character#isWhitespace(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isWhitespace",
args = {int.class}
)
public void test_isWhitespace_I() {
assertTrue(Character.isWhitespace((int)'\n'));
assertFalse(Character.isWhitespace((int)'T'));
assertTrue(Character.isWhitespace(0x0009));
assertTrue(Character.isWhitespace(0x000A));
assertTrue(Character.isWhitespace(0x000B));
assertTrue(Character.isWhitespace(0x000C));
assertTrue(Character.isWhitespace(0x000D));
assertTrue(Character.isWhitespace(0x001C));
assertTrue(Character.isWhitespace(0x001D));
assertTrue(Character.isWhitespace(0x001F));
assertTrue(Character.isWhitespace(0x001E));
assertTrue(Character.isWhitespace(0x2000));
assertTrue(Character.isWhitespace(0x200A));
assertTrue(Character.isWhitespace(0x2028));
assertTrue(Character.isWhitespace(0x2029));
assertFalse(Character.isWhitespace(0x00A0));
assertFalse(Character.isWhitespace(0x202F));
assertFalse(Character.isWhitespace(0x110000));
assertFalse(Character.isWhitespace(0xFEFF));
//FIXME depend on ICU4J
//assertFalse(Character.isWhitespace(0x2007));
}
/**
* @tests java.lang.Character#reverseBytes(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "reverseBytes",
args = {char.class}
)
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)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toLowerCase",
args = {char.class}
)
public void test_toLowerCaseC() {
assertEquals("Failed to change case", 't', Character.toLowerCase('T'));
assertEquals("Failed to change case", 't', Character.toLowerCase('t'));
assertEquals("Failed to change case", '1', Character.toLowerCase('1'));
}
/**
* @tests java.lang.Character#toLowerCase(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toLowerCase",
args = {int.class}
)
public void test_toLowerCase_I() {
assertEquals('t', Character.toLowerCase((int)'T'));
assertEquals(0x10428, Character.toLowerCase(0x10400));
assertEquals(0x10428, Character.toLowerCase(0x10428));
assertEquals(0x1D504, Character.toLowerCase(0x1D504));
assertEquals(0x10FFFD, Character.toLowerCase(0x10FFFD));
assertEquals(0x110000, Character.toLowerCase(0x110000));
}
/**
* @tests java.lang.Character#toString()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toString",
args = {}
)
public void test_toString() {
assertEquals("Incorrect String returned", "T", new Character('T').toString());
assertEquals("Incorrect String returned", "1", new Character('1').toString());
assertEquals("Incorrect String returned", "$", new Character('$').toString());
}
/**
* @tests java.lang.Character#toString(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toString",
args = {char.class}
)
public void test_toString_char() {
assertEquals("Incorrect String returned", "T", Character.toString('T'));
}
/**
* @tests java.lang.Character#toTitleCase(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toTitleCase",
args = {char.class}
)
public void test_toTitleCaseC() {
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#toTitleCase(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toTitleCase",
args = {int.class}
)
public void test_toTitleCase_I() {
assertEquals('A', Character.toTitleCase((int)'a'));
assertEquals('A', Character.toTitleCase((int)'A'));
assertEquals('1', Character.toTitleCase((int)'1'));
assertEquals(0x10400, Character.toTitleCase(0x10428));
assertEquals(0x10400, Character.toTitleCase(0x10400));
assertEquals(0x10FFFF, Character.toTitleCase(0x10FFFF));
assertEquals(0x110000, Character.toTitleCase(0x110000));
}
/**
* @tests java.lang.Character#toUpperCase(char)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toUpperCase",
args = {char.class}
)
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'));
}
/**
* @tests java.lang.Character#toUpperCase(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toUpperCase",
args = {int.class}
)
public void test_toUpperCase_I() {
assertEquals('A', Character.toUpperCase((int)'a'));
assertEquals('A', Character.toUpperCase((int)'A'));
assertEquals('1', Character.toUpperCase((int)'1'));
assertEquals(0x10400, Character.toUpperCase(0x10428));
assertEquals(0x10400, Character.toUpperCase(0x10400));
assertEquals(0x10FFFF, Character.toUpperCase(0x10FFFF));
assertEquals(0x110000, Character.toUpperCase(0x110000));
}
/**
* @tests java.lang.Character#getDirectionality(int)
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getDirectionality",
args = {int.class}
)
public void test_isDirectionaliy_I(){
assertEquals(Character.DIRECTIONALITY_UNDEFINED, Character
.getDirectionality(0xFFFE));
assertEquals(Character.DIRECTIONALITY_UNDEFINED, Character
.getDirectionality(0x30000));
assertEquals(Character.DIRECTIONALITY_UNDEFINED, Character
.getDirectionality(0x110000));
assertEquals(Character.DIRECTIONALITY_UNDEFINED, Character
.getDirectionality(-1));
assertEquals(Character.DIRECTIONALITY_LEFT_TO_RIGHT, Character
.getDirectionality(0x0041));
assertEquals(Character.DIRECTIONALITY_LEFT_TO_RIGHT, Character
.getDirectionality(0x10000));
assertEquals(Character.DIRECTIONALITY_LEFT_TO_RIGHT, Character
.getDirectionality(0x104A9));
assertEquals(Character.DIRECTIONALITY_RIGHT_TO_LEFT, Character
.getDirectionality(0xFB4F));
assertEquals(Character.DIRECTIONALITY_RIGHT_TO_LEFT, Character
.getDirectionality(0x10838));
// BEGIN android-changed
// Unicode standard 5.1 changed category of unicode point 0x0600 from AL to AN
assertEquals(Character.DIRECTIONALITY_ARABIC_NUMBER, Character
.getDirectionality(0x0600));
// END android-changed
assertEquals(Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC, Character
.getDirectionality(0xFEFC));
assertEquals(Character.DIRECTIONALITY_EUROPEAN_NUMBER, Character
.getDirectionality(0x2070));
assertEquals(Character.DIRECTIONALITY_EUROPEAN_NUMBER, Character
.getDirectionality(0x1D7FF));
// No common char in this group on android and java.
// assertEquals(Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR, Character
// .getDirectionality(0x002B));
// assertEquals(Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR, Character
// .getDirectionality(0xFF0B));
assertEquals(Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR, Character
.getDirectionality(0x0023));
assertEquals(Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR, Character
.getDirectionality(0x17DB));
assertEquals(Character.DIRECTIONALITY_ARABIC_NUMBER, Character
.getDirectionality(0x0660));
assertEquals(Character.DIRECTIONALITY_ARABIC_NUMBER, Character
.getDirectionality(0x066C));
assertEquals(Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR, Character
.getDirectionality(0x002C));
assertEquals(Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR, Character
.getDirectionality(0xFF1A));
assertEquals(Character.DIRECTIONALITY_NONSPACING_MARK, Character
.getDirectionality(0x17CE));
assertEquals(Character.DIRECTIONALITY_NONSPACING_MARK, Character
.getDirectionality(0xE01DB));
assertEquals(Character.DIRECTIONALITY_BOUNDARY_NEUTRAL, Character
.getDirectionality(0x0000));
assertEquals(Character.DIRECTIONALITY_BOUNDARY_NEUTRAL, Character
.getDirectionality(0xE007F));
assertEquals(Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR, Character
.getDirectionality(0x000A));
assertEquals(Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR, Character
.getDirectionality(0x2029));
assertEquals(Character.DIRECTIONALITY_SEGMENT_SEPARATOR, Character
.getDirectionality(0x0009));
assertEquals(Character.DIRECTIONALITY_SEGMENT_SEPARATOR, Character
.getDirectionality(0x001F));
assertEquals(Character.DIRECTIONALITY_WHITESPACE, Character
.getDirectionality(0x0020));
assertEquals(Character.DIRECTIONALITY_WHITESPACE, Character
.getDirectionality(0x3000));
assertEquals(Character.DIRECTIONALITY_OTHER_NEUTRALS, Character
.getDirectionality(0x2FF0));
assertEquals(Character.DIRECTIONALITY_OTHER_NEUTRALS, Character
.getDirectionality(0x1D356));
assertEquals(Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING, Character
.getDirectionality(0x202A));
assertEquals(Character.DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE, Character
.getDirectionality(0x202D));
assertEquals(Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING, Character
.getDirectionality(0x202B));
assertEquals(Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE, Character
.getDirectionality(0x202E));
assertEquals(Character.DIRECTIONALITY_POP_DIRECTIONAL_FORMAT, Character
.getDirectionality(0x202C));
}
}