Add Character.isTitleCase.
PiperOrigin-RevId: 355341342
Change-Id: I0d57f07dab3905299d519f90f487e461259da79e
diff --git a/user/super/com/google/gwt/emul/java/lang/Character.java b/user/super/com/google/gwt/emul/java/lang/Character.java
index 345a629..9bef6a5 100644
--- a/user/super/com/google/gwt/emul/java/lang/Character.java
+++ b/user/super/com/google/gwt/emul/java/lang/Character.java
@@ -18,7 +18,6 @@
import static javaemul.internal.InternalPreconditions.checkCriticalArgument;
import java.io.Serializable;
-
import javaemul.internal.NativeRegExp;
/**
@@ -44,7 +43,6 @@
* - isISOControl(char)
* - isMirrored(char)
* - isSpaceChar(char)
- * - isTitleCase(char)
* - isUnicodeIdentifierPart(char)
* - isUnicodeIdentifierStart(char)
* - getDirectionality(*)
@@ -329,6 +327,11 @@
return isHighSurrogate(highSurrogate) && isLowSurrogate(lowSurrogate);
}
+ public static boolean isTitleCase(char c) {
+ // https://www.compart.com/en/unicode/category/Lt
+ return c != toUpperCase(c) && c != toLowerCase(c);
+ }
+
/*
* TODO: correct Unicode handling.
*/
diff --git a/user/test/com/google/gwt/emultest/java/lang/CharacterTest.java b/user/test/com/google/gwt/emultest/java/lang/CharacterTest.java
index e843146..426e817 100644
--- a/user/test/com/google/gwt/emultest/java/lang/CharacterTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/CharacterTest.java
@@ -16,6 +16,7 @@
package com.google.gwt.emultest.java.lang;
import com.google.gwt.junit.client.GWTTestCase;
+import java.util.Arrays;
/**
* Tests for java.lang.Character.
@@ -416,6 +417,52 @@
}
}
+ public void test_isTitleCaseC() {
+ char[] expectedTitleCaseChars = {
+ (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
+ };
+
+ char[] foundChars = new char[expectedTitleCaseChars.length];
+ int lastFoundCharIndex = 0;
+ for (char c = 0; c < 65535; c++) {
+ if (Character.isTitleCase(c)) {
+ foundChars[lastFoundCharIndex++] = c;
+ }
+ }
+
+ assertTrue(Arrays.equals(expectedTitleCaseChars, foundChars));
+ }
+
public void testToString() {
assertEquals(" ", new Character((char) 32).toString());
}