diff options
author | Elliott Hughes <enh@google.com> | 2014-06-26 23:59:39 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-06-26 18:02:05 +0000 |
commit | 906d1caac9ab8c8b108ed4be244ba4eee58739e5 (patch) | |
tree | 018e5efcfd9eb24764cd7d70b7c1bf070a2bc1e7 /luni/src/test | |
parent | 57d2d897b8dccee54ee88fdf8e851b15f8a35d2a (diff) | |
parent | 18faff22684ebf763de4f49abc19fb8af7ef83da (diff) | |
download | libcore-906d1caac9ab8c8b108ed4be244ba4eee58739e5.zip libcore-906d1caac9ab8c8b108ed4be244ba4eee58739e5.tar.gz libcore-906d1caac9ab8c8b108ed4be244ba4eee58739e5.tar.bz2 |
Merge "Clarify the String.compareTo contract and add tests."
Diffstat (limited to 'luni/src/test')
-rw-r--r-- | luni/src/test/java/libcore/java/lang/StringTest.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/luni/src/test/java/libcore/java/lang/StringTest.java b/luni/src/test/java/libcore/java/lang/StringTest.java index 7df852e..bf162e5 100644 --- a/luni/src/test/java/libcore/java/lang/StringTest.java +++ b/luni/src/test/java/libcore/java/lang/StringTest.java @@ -376,4 +376,71 @@ public class StringTest extends TestCase { assertEquals("[-77, -10, -64, -76]", Arrays.toString("出来".getBytes("gbk"))); assertEquals("[-77, -10]", Arrays.toString("出".getBytes("gbk"))); } + + public void test_compareTo() throws Exception { + // For strings where a character differs, the result is + // the difference between the characters. + assertEquals(-1, "a".compareTo("b")); + assertEquals(-2, "a".compareTo("c")); + assertEquals(1, "b".compareTo("a")); + assertEquals(2, "c".compareTo("a")); + + // For strings where the characters match up to the length of the shorter, + // the result is the difference between the strings' lengths. + assertEquals(0, "a".compareTo("a")); + assertEquals(-1, "a".compareTo("aa")); + assertEquals(-1, "a".compareTo("az")); + assertEquals(-2, "a".compareTo("aaa")); + assertEquals(-2, "a".compareTo("azz")); + assertEquals(-3, "a".compareTo("aaaa")); + assertEquals(-3, "a".compareTo("azzz")); + assertEquals(0, "a".compareTo("a")); + assertEquals(1, "aa".compareTo("a")); + assertEquals(1, "az".compareTo("a")); + assertEquals(2, "aaa".compareTo("a")); + assertEquals(2, "azz".compareTo("a")); + assertEquals(3, "aaaa".compareTo("a")); + assertEquals(3, "azzz".compareTo("a")); + } + + public void test_compareToIgnoreCase() throws Exception { + // For strings where a character differs, the result is + // the difference between the characters. + assertEquals(-1, "a".compareToIgnoreCase("b")); + assertEquals(-1, "a".compareToIgnoreCase("B")); + assertEquals(-2, "a".compareToIgnoreCase("c")); + assertEquals(-2, "a".compareToIgnoreCase("C")); + assertEquals(1, "b".compareToIgnoreCase("a")); + assertEquals(1, "B".compareToIgnoreCase("a")); + assertEquals(2, "c".compareToIgnoreCase("a")); + assertEquals(2, "C".compareToIgnoreCase("a")); + + // For strings where the characters match up to the length of the shorter, + // the result is the difference between the strings' lengths. + assertEquals(0, "a".compareToIgnoreCase("a")); + assertEquals(0, "a".compareToIgnoreCase("A")); + assertEquals(0, "A".compareToIgnoreCase("a")); + assertEquals(0, "A".compareToIgnoreCase("A")); + assertEquals(-1, "a".compareToIgnoreCase("aa")); + assertEquals(-1, "a".compareToIgnoreCase("aA")); + assertEquals(-1, "a".compareToIgnoreCase("Aa")); + assertEquals(-1, "a".compareToIgnoreCase("az")); + assertEquals(-1, "a".compareToIgnoreCase("aZ")); + assertEquals(-2, "a".compareToIgnoreCase("aaa")); + assertEquals(-2, "a".compareToIgnoreCase("AAA")); + assertEquals(-2, "a".compareToIgnoreCase("azz")); + assertEquals(-2, "a".compareToIgnoreCase("AZZ")); + assertEquals(-3, "a".compareToIgnoreCase("aaaa")); + assertEquals(-3, "a".compareToIgnoreCase("AAAA")); + assertEquals(-3, "a".compareToIgnoreCase("azzz")); + assertEquals(-3, "a".compareToIgnoreCase("AZZZ")); + assertEquals(1, "aa".compareToIgnoreCase("a")); + assertEquals(1, "aA".compareToIgnoreCase("a")); + assertEquals(1, "Aa".compareToIgnoreCase("a")); + assertEquals(1, "az".compareToIgnoreCase("a")); + assertEquals(2, "aaa".compareToIgnoreCase("a")); + assertEquals(2, "azz".compareToIgnoreCase("a")); + assertEquals(3, "aaaa".compareToIgnoreCase("a")); + assertEquals(3, "azzz".compareToIgnoreCase("a")); + } } |