1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.apache.harmony.regex.tests.java.util.regex;
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.regex.*;
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * TODO Type description
8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SplitTest extends TestCase {
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSimple() {
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Pattern p = Pattern.compile("/");
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] results = p.split("have/you/done/it/right");
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] expected = new String[] { "have", "you", "done", "it", "right" };
1551809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(expected, results);
1651809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes    }
1751809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes
1851809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes    public void testEmptySplits() {
1951809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // Trailing empty matches are removed.
2051809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[0], "hello".split("."));
2151809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "1", "2" }, "1:2:".split(":"));
2251809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // ...including when that results in an empty result.
2351809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[0], ":".split(":"));
2451809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // ...but not when limit < 0.
2551809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "1", "2", "" }, "1:2:".split(":", -1));
26f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
2751809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // Leading empty matches are retained.
2851809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "", "", "o" }, "hello".split(".."));
29f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
3051809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // A separator that doesn't occur in the input gets you the input.
3151809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "hello" }, "hello".split("not-present-in-test"));
3251809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // ...including when the input is the empty string.
3351809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // (Perl returns an empty list instead.)
3451809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "" }, "".split("not-present-in-test"));
3551809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "" }, "".split("A?"));
36f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
3751809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // The limit argument controls the size of the result.
3851809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // If l == 0, the result is as long as needed, except trailing empty matches are dropped.
3951809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // If l < 0, the result is as long as needed, and trailing empty matches are retained.
4051809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // If l > 0, the result contains the first l matches, plus one string containing the remaining input.
4151809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // Examples without a trailing separator (and hence without a trailing empty match):
4251809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c" }, "a,b,c".split(",", 0));
4351809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a,b,c" }, "a,b,c".split(",", 1));
4451809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b,c" }, "a,b,c".split(",", 2));
4551809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c" }, "a,b,c".split(",", 3));
4651809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c" }, "a,b,c".split(",", Integer.MAX_VALUE));
4751809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        // Examples with a trailing separator (and hence possibly with a trailing empty match):
4851809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c" }, "a,b,c,".split(",", 0));
4951809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a,b,c," }, "a,b,c,".split(",", 1));
5051809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b,c," }, "a,b,c,".split(",", 2));
5151809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c," }, "a,b,c,".split(",", 3));
5251809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c", "" }, "a,b,c,".split(",", Integer.MAX_VALUE));
5351809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertArraysEqual(new String[] { "a", "b", "c", "" }, "a,b,c,".split(",", -1));
5451809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes    }
55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
5651809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes    private void assertArraysEqual(String[] expected, String[] actual) {
5751809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes        assertEquals(expected.length, actual.length);
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < expected.length; i++) {
5951809b9c7995d8b813f68712b096d23179de3af0Elliott Hughes            assertEquals(Integer.toString(i), expected[i], actual[i]);
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
62f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSplit1() throws PatternSyntaxException {
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Pattern p = Pattern.compile(" ");
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String input = "poodle zoo";
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String tokens[];
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 1);
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, tokens.length);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[0].equals(input));
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 2);
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poodle", tokens[0]);
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("zoo", tokens[1]);
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 5);
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poodle", tokens[0]);
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("zoo", tokens[1]);
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, -2);
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poodle", tokens[0]);
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("zoo", tokens[1]);
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 0);
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poodle", tokens[0]);
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("zoo", tokens[1]);
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input);
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poodle", tokens[0]);
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("zoo", tokens[1]);
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        p = Pattern.compile("d");
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 1);
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, tokens.length);
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[0].equals(input));
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 2);
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poo", tokens[0]);
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("le zoo", tokens[1]);
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 5);
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poo", tokens[0]);
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("le zoo", tokens[1]);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, -2);
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poo", tokens[0]);
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("le zoo", tokens[1]);
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 0);
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poo", tokens[0]);
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("le zoo", tokens[1]);
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input);
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("poo", tokens[0]);
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("le zoo", tokens[1]);
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        p = Pattern.compile("o");
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 1);
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, tokens.length);
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[0].equals(input));
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 2);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, tokens.length);
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("p", tokens[0]);
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("odle zoo", tokens[1]);
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 5);
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(5, tokens.length);
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("p", tokens[0]);
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[1].equals(""));
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("dle z", tokens[2]);
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[3].equals(""));
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[4].equals(""));
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, -2);
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(5, tokens.length);
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("p", tokens[0]);
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[1].equals(""));
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("dle z", tokens[2]);
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[3].equals(""));
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[4].equals(""));
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input, 0);
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(3, tokens.length);
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("p", tokens[0]);
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[1].equals(""));
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("dle z", tokens[2]);
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tokens = p.split(input);
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(3, tokens.length);
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("p", tokens[0]);
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(tokens[1].equals(""));
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("dle z", tokens[2]);
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSplit2() {
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Pattern p = Pattern.compile("");
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String s[];
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        s = p.split("a", -1);
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(3, s.length);
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("", s[0]);
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("a", s[1]);
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("", s[2]);
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        s = p.split("", -1);
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, s.length);
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("", s[0]);
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        s = p.split("abcd", -1);
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(6, s.length);
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("", s[0]);
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("a", s[1]);
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("b", s[2]);
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("c", s[3]);
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("d", s[4]);
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("", s[5]);
175f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression test for Android
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("GOOG,23,500".split("|").length, 12);
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSplitSupplementaryWithEmptyString() {
182f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        /*
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project         * See http://www.unicode.org/reports/tr18/#Supplementary_Characters
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project         * We have to treat text as code points not code units.
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project         */
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Pattern p = Pattern.compile("");
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String s[];
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        s = p.split("a\ud869\uded6b", -1);
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(5, s.length);
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("", s[0]);
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("a", s[1]);
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("\ud869\uded6", s[2]);
194f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("b", s[3]);
195f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("", s[4]);
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
198