summaryrefslogtreecommitdiffstats
path: root/luni/src/test
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-06-26 23:59:39 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-06-26 18:02:05 +0000
commit906d1caac9ab8c8b108ed4be244ba4eee58739e5 (patch)
tree018e5efcfd9eb24764cd7d70b7c1bf070a2bc1e7 /luni/src/test
parent57d2d897b8dccee54ee88fdf8e851b15f8a35d2a (diff)
parent18faff22684ebf763de4f49abc19fb8af7ef83da (diff)
downloadlibcore-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.java67
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"));
+ }
}