summaryrefslogtreecommitdiffstats
path: root/luni/src/test/java
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-06-27 00:12:29 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-06-27 00:12:29 +0000
commitf3e0201df6de099b6cbf61cc9595399087772a7b (patch)
tree0fe9456cf43271bf8bf4ce08c7e9b42d53e87f09 /luni/src/test/java
parentc880d337f6c26d89e8511a1f7b002a0a03554850 (diff)
parentb33c48b4228c2bf3bd3ffbb7e80122b3f6dff928 (diff)
downloadlibcore-f3e0201df6de099b6cbf61cc9595399087772a7b.zip
libcore-f3e0201df6de099b6cbf61cc9595399087772a7b.tar.gz
libcore-f3e0201df6de099b6cbf61cc9595399087772a7b.tar.bz2
am b33c48b4: am 906d1caa: Merge "Clarify the String.compareTo contract and add tests."
* commit 'b33c48b4228c2bf3bd3ffbb7e80122b3f6dff928': Clarify the String.compareTo contract and add tests.
Diffstat (limited to 'luni/src/test/java')
-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"));
+ }
}