1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/*
2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more
3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements.  See the NOTICE file distributed with
4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership.
5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0
6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with
7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License.  You may obtain a copy of the License at
8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *
9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0
10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *
11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software
12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * License for the specific language governing permissions and limitations under
15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License.
16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */
17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.lang;
19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Serializable;
21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Arrays;
22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport junit.framework.TestCase;
24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath// import org.apache.harmony.testframework.serialization.SerializationTest;
26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath// import org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class StringBuilderTest extends TestCase {
29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.StringBuilder()
32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_Constructor() {
34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertNotNull(sb);
36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(16, sb.capacity());
37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.StringBuilder(int)
41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ConstructorI() {
43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(24);
44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertNotNull(sb);
45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(24, sb.capacity());
46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(-1);
49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no exception");
50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NegativeArraySizeException e) {
51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertNotNull(new StringBuilder(0));
55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.StringBuilder(CharSequence)
59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    @SuppressWarnings("cast")
61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ConstructorLjava_lang_CharSequence() {
62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder((CharSequence) "fixture");
63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture", sb.toString());
64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture".length() + 16, sb.capacity());
65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder((CharSequence) new StringBuffer("fixture"));
67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture", sb.toString());
68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture".length() + 16, sb.capacity());
69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder((CharSequence) null);
72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.StringBuilder(String)
80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ConstructorLjava_lang_String() {
82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder("fixture");
83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture", sb.toString());
84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture".length() + 16, sb.capacity());
85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder((String) null);
88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(boolean)
95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendZ() {
97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(true));
99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("true", sb.toString());
100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(false));
102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("false", sb.toString());
103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(char)
107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendC() {
109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append('a'));
111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("a", sb.toString());
112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append('b'));
114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("b", sb.toString());
115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(char[])
119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_append$C() {
121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'a', 'b' }));
123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'c', 'd' }));
126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.append((char[]) null);
129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(char[], int, int)
137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_append$CII() {
139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'a', 'b' }, 0, 2));
141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'c', 'd' }, 0, 2));
144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'a', 'b', 'c', 'd' }, 0, 2));
148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'a', 'b', 'c', 'd' }, 2, 2));
152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new char[] { 'a', 'b', 'c', 'd' }, 2, 0));
156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", sb.toString());
157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.append((char[]) null, 0, 2);
160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.append(new char[] { 'a', 'b', 'c', 'd' }, -1, 2);
167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative offset");
168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.append(new char[] { 'a', 'b', 'c', 'd' }, 0, -1);
174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative length");
175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.append(new char[] { 'a', 'b', 'c', 'd' }, 2, 3);
181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, offset and length overflow");
182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(CharSequence)
189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendLjava_lang_CharSequence() {
191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) "ab"));
193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) "cd"));
196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) null));
199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("null", sb.toString());
200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(CharSequence, int, int)
204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    @SuppressWarnings("cast")
206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendLjava_lang_CharSequenceII() {
207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) "ab", 0, 2));
209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) "cd", 0, 2));
212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) "abcd", 0, 2));
215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) "abcd", 2, 4));
218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((CharSequence) null, 0, 2));
221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("nu", sb.toString());
222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(double)
226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendD() {
228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(1D));
230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(1D), sb.toString());
231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(0D));
233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(0D), sb.toString());
234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(-1D));
236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(-1D), sb.toString());
237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Double.NaN));
239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Double.NaN), sb.toString());
240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Double.NEGATIVE_INFINITY));
242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Double.NEGATIVE_INFINITY), sb.toString());
243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Double.POSITIVE_INFINITY));
245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Double.POSITIVE_INFINITY), sb.toString());
246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Double.MIN_VALUE));
248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Double.MIN_VALUE), sb.toString());
249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Double.MAX_VALUE));
251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Double.MAX_VALUE), sb.toString());
252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(float)
256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendF() {
258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(1F));
260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(1F), sb.toString());
261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(0F));
263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(0F), sb.toString());
264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(-1F));
266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(-1F), sb.toString());
267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Float.NaN));
269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Float.NaN), sb.toString());
270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Float.NEGATIVE_INFINITY));
272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Float.NEGATIVE_INFINITY), sb.toString());
273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Float.POSITIVE_INFINITY));
275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Float.POSITIVE_INFINITY), sb.toString());
276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Float.MIN_VALUE));
278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Float.MIN_VALUE), sb.toString());
279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Float.MAX_VALUE));
281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Float.MAX_VALUE), sb.toString());
282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(int)
286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendI() {
288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(1));
290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(1), sb.toString());
291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(0));
293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(0), sb.toString());
294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(-1));
296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(-1), sb.toString());
297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Integer.MIN_VALUE));
299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Integer.MIN_VALUE), sb.toString());
300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Integer.MAX_VALUE));
302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Integer.MAX_VALUE), sb.toString());
303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(long)
307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendL() {
309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(1L));
311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(1L), sb.toString());
312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(0L));
314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(0L), sb.toString());
315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(-1L));
317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(-1L), sb.toString());
318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Integer.MIN_VALUE));
320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Integer.MIN_VALUE), sb.toString());
321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Integer.MAX_VALUE));
323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(String.valueOf(Integer.MAX_VALUE), sb.toString());
324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(Object)'
328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendLjava_lang_Object() {
330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(Fixture.INSTANCE));
332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(Fixture.INSTANCE.toString(), sb.toString());
333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((Object) null));
336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("null", sb.toString());
337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(String)
341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendLjava_lang_String() {
343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append("ab"));
345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append("cd"));
348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((String) null));
351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("null", sb.toString());
352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.append(StringBuffer)
356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendLjava_lang_StringBuffer() {
358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new StringBuffer("ab")));
360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab", sb.toString());
361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append(new StringBuffer("cd")));
363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("cd", sb.toString());
364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.append((StringBuffer) null));
366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("null", sb.toString());
367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.appendCodePoint(int)'
371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_appendCodePointI() {
373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.appendCodePoint(0x10000);
375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("\uD800\uDC00", sb.toString());
376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("fixture");
377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("\uD800\uDC00fixture", sb.toString());
378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.appendCodePoint(0x00010FFFF);
379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("\uD800\uDC00fixture\uDBFF\uDFFF", sb.toString());
380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.capacity()'
384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_capacity() {
386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(16, sb.capacity());
388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("0123456789ABCDEF0123456789ABCDEF");
389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(sb.capacity() > 16);
390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.charAt(int)'
394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_charAtI() {
396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 0; i < fixture.length(); i++) {
399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals((char) ('0' + i), sb.charAt(i));
400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.charAt(-1);
404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.charAt(fixture.length());
411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, equal to length");
412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.charAt(fixture.length() + 1);
417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, greater than length");
418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.codePointAt(int)
424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_codePointAtI() {
426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder("abc");
427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('a', sb.codePointAt(0));
428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('b', sb.codePointAt(1));
429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('c', sb.codePointAt(2));
430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder("\uD800\uDC00");
432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0x10000, sb.codePointAt(0));
433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('\uDC00', sb.codePointAt(1));
434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder();
436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abc");
437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointAt(-1);
439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE on negative index.");
440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointAt(sb.length());
446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE on index equal to length.");
447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointAt(sb.length() + 1);
453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE on index greater than length.");
454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.codePointBefore(int)
461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_codePointBeforeI() {
463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder("abc");
464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('a', sb.codePointBefore(1));
465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('b', sb.codePointBefore(2));
466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('c', sb.codePointBefore(3));
467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder("\uD800\uDC00");
469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0x10000, sb.codePointBefore(2));
470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('\uD800', sb.codePointBefore(1));
471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder();
473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abc");
474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointBefore(0);
477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE on zero index.");
478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointBefore(-1);
484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE on negative index.");
485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointBefore(sb.length() + 1);
491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE on index greater than length.");
492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.codePointCount(int, int)
499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_codePointCountII() {
501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(1, new StringBuilder("\uD800\uDC00").codePointCount(0, 2));
502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(1, new StringBuilder("\uD800\uDC01").codePointCount(0, 2));
503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(1, new StringBuilder("\uD801\uDC01").codePointCount(0, 2));
504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(1, new StringBuilder("\uDBFF\uDFFF").codePointCount(0, 2));
505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(3, new StringBuilder("a\uD800\uDC00b").codePointCount(0, 4));
507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(4, new StringBuilder("a\uD800\uDC00b\uD800").codePointCount(0, 5));
508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abc");
511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointCount(-1, 2);
513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for negative begin index.");
514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointCount(0, 4);
520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for end index that's too large.");
521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.codePointCount(3, 2);
527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for begin index larger than end index.");
528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.delete(int, int)
535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_deleteII() {
537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.delete(0, 0));
540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture, sb.toString());
541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.delete(5, 5));
542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture, sb.toString());
543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.delete(0, 1));
544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("123456789", sb.toString());
545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.delete(0, sb.length()));
547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", sb.toString());
548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.length());
549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.delete(0, 11));
552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", sb.toString());
553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.length());
554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(fixture).delete(-1, 2);
557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative start");
558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(fixture).delete(11, 12);
564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, start too far");
565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(fixture).delete(13, 12);
571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, start larger than end");
572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // HARMONY 6212
577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder();
578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abcde");
579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String str = sb.toString();
580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.delete(0, sb.length());
581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("YY");
582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("abcde", str);
583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("YY", sb.toString());
584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.deleteCharAt(int)
588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_deleteCharAtI() {
590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.deleteCharAt(0));
593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("123456789", sb.toString());
594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.deleteCharAt(5));
597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("012346789", sb.toString());
598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.deleteCharAt(9));
601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("012345678", sb.toString());
602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(fixture).deleteCharAt(-1);
606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative index");
607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(fixture).deleteCharAt(fixture.length());
613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, index equals length");
614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new StringBuilder(fixture).deleteCharAt(fixture.length() + 1);
620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, index exceeds length");
621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.ensureCapacity(int)'
628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_ensureCapacityI() {
630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(5);
631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.capacity());
632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.ensureCapacity(10);
633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(12, sb.capacity());
634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.ensureCapacity(26);
635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(26, sb.capacity());
636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.ensureCapacity(55);
637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(55, sb.capacity());
638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.getChars(int, int, char[], int)'
642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_getCharsII$CI() {
644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        char[] dst = new char[10];
647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.getChars(0, 10, dst, 0);
648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Arrays.equals(fixture.toCharArray(), dst));
649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.fill(dst, '\0');
651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.getChars(0, 5, dst, 0);
652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        char[] fixtureChars = new char[10];
653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        fixture.getChars(0, 5, fixtureChars, 0);
654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Arrays.equals(fixtureChars, dst));
655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.fill(dst, '\0');
657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.fill(fixtureChars, '\0');
658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.getChars(0, 5, dst, 5);
659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        fixture.getChars(0, 5, fixtureChars, 5);
660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Arrays.equals(fixtureChars, dst));
661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.fill(dst, '\0');
663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        Arrays.fill(fixtureChars, '\0');
664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.getChars(5, 10, dst, 1);
665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        fixture.getChars(5, 10, fixtureChars, 1);
666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(Arrays.equals(fixtureChars, dst));
667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.getChars(0, 10, null, 0);
670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.getChars(-1, 10, dst, 0);
677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, srcBegin negative");
678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.getChars(0, 10, dst, -1);
684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, dstBegin negative");
685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.getChars(5, 4, dst, 0);
691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, srcBegin > srcEnd");
692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.getChars(0, 11, dst, 0);
698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, srcEnd > length");
699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.getChars(0, 10, dst, 5);
705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, dstBegin and src size too large for what's left in dst");
706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.indexOf(String)
713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_indexOfLjava_lang_String() {
715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.indexOf("0"));
718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.indexOf("012"));
719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.indexOf("02"));
720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.indexOf("89"));
721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.indexOf(null);
724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.indexOf(String, int)
732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_IndexOfStringInt() {
734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.indexOf("0"));
737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.indexOf("012"));
738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.indexOf("02"));
739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.indexOf("89"));
740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.indexOf("0"), 0);
742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.indexOf("012"), 0);
743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.indexOf("02"), 0);
744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.indexOf("89"), 0);
745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.indexOf("0"), 5);
747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.indexOf("012"), 5);
748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.indexOf("02"), 0);
749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.indexOf("89"), 5);
750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.indexOf(null, 0);
753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, boolean)
761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertIZ() {
763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, true));
766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("true0000", sb.toString());
767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.length());
768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, false));
771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("false0000", sb.toString());
772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, false));
776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00false00", sb.toString());
777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, false));
781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000false", sb.toString());
782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(9, sb.length());
783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, false);
787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative index");
788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, false);
795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, index too large index");
796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, char)
803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertIC() {
805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, 'a'));
808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("a0000", sb.toString());
809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, 'b'));
813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("b0000", sb.toString());
814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, 'b'));
818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00b00", sb.toString());
819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, 'b'));
823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000b", sb.toString());
824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // FIXME this fails on Sun JRE 5.0_5
827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//		try {
828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			sb = new StringBuilder(fixture);
829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			sb.insert(-1, 'a');
830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			fail("no SIOOBE, negative index");
831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//		} catch (StringIndexOutOfBoundsException e) {
832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			// Expected
833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//		}
834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        /*
836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * FIXME This fails on Sun JRE 5.0_5, but that seems like a bug, since
837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * the 'insert(int, char[]) behaves this way.
838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           */
839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//		try {
840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			sb = new StringBuilder(fixture);
841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			sb.insert(5, 'a');
842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			fail("no SIOOBE, index too large index");
843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//		} catch (StringIndexOutOfBoundsException e) {
844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//			// Expected
845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath//		}
846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, char)
850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertIC_2() {
852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder obj = new StringBuilder();
853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            obj.insert(-1, '?');
855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("ArrayIndexOutOfBoundsException expected");
856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (ArrayIndexOutOfBoundsException e) {
857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // expected
858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, char[])'
863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertI$C() {
865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, new char[] { 'a', 'b' }));
868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab0000", sb.toString());
869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, new char[] { 'a', 'b' }));
873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00ab00", sb.toString());
874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, new char[] { 'a', 'b' }));
878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000ab", sb.toString());
879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        /*
882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * TODO This NPE is the behavior on Sun's JRE 5.0_5, but it's
883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * undocumented. The assumption is that this method behaves like
884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * String.valueOf(char[]), which does throw a NPE too, but that is also
885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * undocumented.
886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           */
887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(0, (char[]) null);
890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, new char[] { 'a', 'b' });
898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative index");
899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' });
906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, index too large index");
907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, char[], int, int)
914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertI$CII() {
916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, new char[] { 'a', 'b' }, 0, 2));
919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab0000", sb.toString());
920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, new char[] { 'a', 'b' }, 0, 1));
924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("a0000", sb.toString());
925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, new char[] { 'a', 'b' }, 0, 2));
929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00ab00", sb.toString());
930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, new char[] { 'a', 'b' }, 0, 1));
934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00a00", sb.toString());
935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, new char[] { 'a', 'b' }, 0, 2));
939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000ab", sb.toString());
940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, new char[] { 'a', 'b' }, 0, 1));
944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000a", sb.toString());
945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        /*
948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * TODO This NPE is the behavior on Sun's JRE 5.0_5, but it's
949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * undocumented. The assumption is that this method behaves like
950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * String.valueOf(char[]), which does throw a NPE too, but that is also
951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           * undocumented.
952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath           */
953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(0, (char[]) null, 0, 2);
956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, new char[] { 'a', 'b' }, 0, 2);
964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative index");
965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' }, 0, 2);
972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, index too large index");
973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' }, -1, 2);
980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative offset");
981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' }, 0, -1);
988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, negative length");
989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' }, 0, 3);
996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no SIOOBE, too long");
997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, CharSequence)
1004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertILjava_lang_CharSequence() {
1006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, (CharSequence) "ab"));
1009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab0000", sb.toString());
1010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, (CharSequence) "ab"));
1014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00ab00", sb.toString());
1015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (CharSequence) "ab"));
1019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000ab", sb.toString());
1020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (CharSequence) null));
1024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000null", sb.toString());
1025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.length());
1026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, (CharSequence) "ab");
1030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, (CharSequence) "ab");
1038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, CharSequence, int, int)
1046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    @SuppressWarnings("cast")
1048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertILjava_lang_CharSequenceII() {
1049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, (CharSequence) "ab", 0, 2));
1052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ab0000", sb.toString());
1053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, (CharSequence) "ab", 0, 1));
1057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("a0000", sb.toString());
1058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, (CharSequence) "ab", 0, 2));
1062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00ab00", sb.toString());
1063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, (CharSequence) "ab", 0, 1));
1067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00a00", sb.toString());
1068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (CharSequence) "ab", 0, 2));
1072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000ab", sb.toString());
1073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (CharSequence) "ab", 0, 1));
1077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000a", sb.toString());
1078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (CharSequence) null, 0, 2));
1082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000nu", sb.toString());
1083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, (CharSequence) "ab", 0, 2);
1088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, (CharSequence) "ab", 0, 2);
1096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, (CharSequence) "ab", -1, 2);
1104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative offset");
1105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' }, 0, -1);
1112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative length");
1113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, new char[] { 'a', 'b' }, 0, 3);
1120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, too long");
1121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, double)
1128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertID() {
1130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, -1D));
1133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("-1.00000", sb.toString());
1134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.length());
1135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, 0D));
1138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0.00000", sb.toString());
1139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(7, sb.length());
1140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, 1D));
1143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("001.000", sb.toString());
1144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(7, sb.length());
1145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, 2D));
1148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00002.0", sb.toString());
1149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(7, sb.length());
1150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, 1D);
1154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, 1D);
1162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, float)
1170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertIF() {
1172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, -1F));
1175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("-1.00000", sb.toString());
1176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.length());
1177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, 0F));
1180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0.00000", sb.toString());
1181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(7, sb.length());
1182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, 1F));
1185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("001.000", sb.toString());
1186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(7, sb.length());
1187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, 2F));
1190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00002.0", sb.toString());
1191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(7, sb.length());
1192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, 1F);
1196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, 1F);
1204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, int)
1212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertII() {
1214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, -1));
1217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("-10000", sb.toString());
1218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, 0));
1222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00000", sb.toString());
1223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, 1));
1227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00100", sb.toString());
1228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, 2));
1232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00002", sb.toString());
1233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, 1);
1238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, 1);
1246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, long)
1254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertIJ() {
1256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, -1L));
1259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("-10000", sb.toString());
1260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, 0L));
1264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00000", sb.toString());
1265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, 1L));
1269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00100", sb.toString());
1270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, 2L));
1274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00002", sb.toString());
1275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, 1L);
1280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, 1L);
1288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, Object)
1296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertILjava_lang_Object() {
1298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, Fixture.INSTANCE));
1301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture0000", sb.toString());
1302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(11, sb.length());
1303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, Fixture.INSTANCE));
1306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00fixture00", sb.toString());
1307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(11, sb.length());
1308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, Fixture.INSTANCE));
1311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000fixture", sb.toString());
1312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(11, sb.length());
1313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (Object) null));
1316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000null", sb.toString());
1317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.length());
1318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, Fixture.INSTANCE);
1322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, Fixture.INSTANCE);
1330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.insert(int, String)
1338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_insertILjava_lang_String() {
1340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(0, "fixture"));
1343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("fixture0000", sb.toString());
1344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(11, sb.length());
1345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(2, "fixture"));
1348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("00fixture00", sb.toString());
1349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(11, sb.length());
1350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, "fixture"));
1353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000fixture", sb.toString());
1354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(11, sb.length());
1355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.insert(4, (Object) null));
1358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0000null", sb.toString());
1359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.length());
1360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(-1, "fixture");
1364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, negative index");
1365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.insert(5, "fixture");
1372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no IOOBE, index too large index");
1373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.lastIndexOf(String)
1380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_lastIndexOfLjava_lang_String() {
1382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.lastIndexOf("0"));
1385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.lastIndexOf("012"));
1386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.lastIndexOf("02"));
1387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.lastIndexOf("89"));
1388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.lastIndexOf(null);
1391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
1392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
1393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.lastIndexOf(String, int)
1399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_lastIndexOfLjava_lang_StringI() {
1401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.lastIndexOf("0"));
1404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.lastIndexOf("012"));
1405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.lastIndexOf("02"));
1406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.lastIndexOf("89"));
1407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.lastIndexOf("0"), 0);
1409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.lastIndexOf("012"), 0);
1410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.lastIndexOf("02"), 0);
1411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.lastIndexOf("89"), 0);
1412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.lastIndexOf("0"), 5);
1414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.lastIndexOf("012"), 5);
1415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(-1, sb.lastIndexOf("02"), 0);
1416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(8, sb.lastIndexOf("89"), 5);
1417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.lastIndexOf(null, 0);
1420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("no NPE");
1421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
1422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.length()
1428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_length() {
1430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
1431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.length());
1432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("0000");
1433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(4, sb.length());
1434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.offsetByCodePoints(int, int)'
1438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_offsetByCodePointsII() {
1440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        int result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(0, 2);
1441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(3, result);
1442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("abcd").offsetByCodePoints(3, -1);
1444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(2, result);
1445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(0, 3);
1447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(4, result);
1448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(3, -1);
1450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(1, result);
1451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(3, 0);
1453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(3, result);
1454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("\uD800\uDC00bc").offsetByCodePoints(3, 0);
1456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(3, result);
1457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("a\uDC00bc").offsetByCodePoints(3, -1);
1459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(2, result);
1460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        result = new StringBuilder("a\uD800bc").offsetByCodePoints(3, -1);
1462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(2, result);
1463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder();
1465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abc");
1466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.offsetByCodePoints(-1, 1);
1468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for negative index.");
1469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.offsetByCodePoints(0, 4);
1475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for offset that's too large.");
1476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.offsetByCodePoints(3, -4);
1482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for offset that's too small.");
1483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.offsetByCodePoints(3, 1);
1489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for index that's too large.");
1490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.offsetByCodePoints(4, -1);
1496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE for index that's too large.");
1497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.replace(int, int, String)'
1504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_replaceIILjava_lang_String() {
1506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.replace(1, 3, "11"));
1509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("0110", sb.toString());
1510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(4, sb.length());
1511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.replace(1, 2, "11"));
1514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("01100", sb.toString());
1515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.replace(4, 5, "11"));
1519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("000011", sb.toString());
1520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(fixture);
1523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.replace(4, 6, "11"));
1524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("000011", sb.toString());
1525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // FIXME Undocumented NPE in Sun's JRE 5.0_5
1528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.replace(1, 2, null);
1530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No NPE");
1531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
1532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.replace(-1, 2, "11");
1538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, negative start");
1539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.replace(5, 2, "11");
1546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, start > length");
1547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb = new StringBuilder(fixture);
1553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.replace(3, 2, "11");
1554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, start > end");
1555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // Regression for HARMONY-348
1560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder buffer = new StringBuilder("1234567");
1561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        buffer.replace(2, 6, "XXX");
1562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("12XXX7", buffer.toString());
1563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    private void reverseTest(String org, String rev, String back) {
1566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // create non-shared StringBuilder
1567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(org);
1568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.reverse();
1569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String reversed = sb.toString();
1570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(rev, reversed);
1571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // create non-shared StringBuilder
1572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(reversed);
1573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.reverse();
1574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reversed = sb.toString();
1575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(back, reversed);
1576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // test algorithm when StringBuilder is shared
1578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(org);
1579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String copy = sb.toString();
1580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(org, copy);
1581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.reverse();
1582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reversed = sb.toString();
1583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(rev, reversed);
1584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder(reversed);
1585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        copy = sb.toString();
1586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(rev, copy);
1587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.reverse();
1588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reversed = sb.toString();
1589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(back, reversed);
1590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.reverse()
1594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_reverse() {
1596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.reverse());
1599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("9876543210", sb.toString());
1600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder("012345678");
1602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.reverse());
1603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("876543210", sb.toString());
1604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(1);
1606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.reverse());
1607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("8", sb.toString());
1608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
1610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertSame(sb, sb.reverse());
1611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", sb.toString());
1612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String str;
1614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "a";
1615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, str, str);
1616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "ab";
1618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "ba", str);
1619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "abcdef";
1621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "fedcba", str);
1622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "abcdefg";
1624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "gfedcba", str);
1625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\ud800\udc00";
1627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, str, str);
1628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\udc00\ud800";
1630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud800\udc00", "\ud800\udc00");
1631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "a\ud800\udc00";
1633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud800\udc00a", str);
1634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "ab\ud800\udc00";
1636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud800\udc00ba", str);
1637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "abc\ud800\udc00";
1639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud800\udc00cba", str);
1640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\ud800\udc00\udc01\ud801\ud802\udc02";
1642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud802\udc02\ud801\udc01\ud800\udc00",
1643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "\ud800\udc00\ud801\udc01\ud802\udc02");
1644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\ud800\udc00\ud801\udc01\ud802\udc02";
1646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud802\udc02\ud801\udc01\ud800\udc00", str);
1647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\ud800\udc00\udc01\ud801a";
1649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "a\ud801\udc01\ud800\udc00",
1650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "\ud800\udc00\ud801\udc01a");
1651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "a\ud800\udc00\ud801\udc01";
1653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud801\udc01\ud800\udc00a", str);
1654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\ud800\udc00\udc01\ud801ab";
1656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "ba\ud801\udc01\ud800\udc00",
1657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "\ud800\udc00\ud801\udc01ab");
1658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "ab\ud800\udc00\ud801\udc01";
1660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud801\udc01\ud800\udc00ba", str);
1661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "\ud800\udc00\ud801\udc01";
1663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud801\udc01\ud800\udc00", str);
1664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "a\ud800\udc00z\ud801\udc01";
1666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud801\udc01z\ud800\udc00a", str);
1667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "a\ud800\udc00bz\ud801\udc01";
1669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud801\udc01zb\ud800\udc00a", str);
1670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "abc\ud802\udc02\ud801\udc01\ud800\udc00";
1672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud800\udc00\ud801\udc01\ud802\udc02cba", str);
1673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        str = "abcd\ud802\udc02\ud801\udc01\ud800\udc00";
1675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        reverseTest(str, "\ud800\udc00\ud801\udc01\ud802\udc02dcba", str);
1676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.setCharAt(int, char)
1680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_setCharAtIC() {
1682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0000";
1683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setCharAt(0, 'A');
1685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("A000", sb.toString());
1686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setCharAt(1, 'B');
1687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("AB00", sb.toString());
1688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setCharAt(2, 'C');
1689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ABC0", sb.toString());
1690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setCharAt(3, 'D');
1691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ABCD", sb.toString());
1692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.setCharAt(-1, 'A');
1695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, negative index");
1696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.setCharAt(4, 'A');
1702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, index == length");
1703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.setCharAt(5, 'A');
1709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, index > length");
1710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.setLength(int)'
1717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_setLengthI() {
1719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(5);
1722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(5, sb.length());
1723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("01234", sb.toString());
1724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(6);
1725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(6, sb.length());
1726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("01234\0", sb.toString());
1727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
1728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(0, sb.length());
1729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", sb.toString());
1730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.setLength(-1);
1733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, negative length.");
1734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder("abcde");
1739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("abcde", sb.toString());
1740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(1);
1741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append('g');
1742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("ag", sb.toString());
1743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder("abcde");
1745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(3);
1746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append('g');
1747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("abcg", sb.toString());
1748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder("abcde");
1750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(2);
1751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.charAt(3);
1753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("should throw IndexOutOfBoundsException");
1754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder();
1759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abcdefg");
1760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(2);
1761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(5);
1762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 2; i < 5; i++) {
1763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals(0, sb.charAt(i));
1764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder();
1767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abcdefg");
1768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.delete(2, 4);
1769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(7);
1770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('a', sb.charAt(0));
1771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('b', sb.charAt(1));
1772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('e', sb.charAt(2));
1773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('f', sb.charAt(3));
1774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals('g', sb.charAt(4));
1775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 5; i < 7; i++) {
1776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals(0, sb.charAt(i));
1777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb = new StringBuilder();
1780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abcdefg");
1781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.replace(2, 5, "z");
1782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(7);
1783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 5; i < 7; i++) {
1784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals(0, sb.charAt(i));
1785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.subSequence(int, int)
1790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_subSequenceII() {
1792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        CharSequence ss = sb.subSequence(0, 5);
1795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("01234", ss.toString());
1796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        ss = sb.subSequence(0, 0);
1798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", ss.toString());
1799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.subSequence(-1, 1);
1802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, negative start.");
1803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.subSequence(0, -1);
1809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, negative end.");
1810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.subSequence(0, fixture.length() + 1);
1816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, end > length.");
1817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.subSequence(3, 2);
1823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No IOOBE, start > end.");
1824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (IndexOutOfBoundsException e) {
1825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.substring(int)
1831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_substringI() {
1833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String ss = sb.substring(0);
1836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture, ss);
1837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        ss = sb.substring(10);
1839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", ss);
1840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(-1);
1843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, negative start.");
1844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(0, -1);
1850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, negative end.");
1851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(fixture.length() + 1);
1857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, start > length.");
1858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.substring(int, int)
1865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_substringII() {
1867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String ss = sb.substring(0, 5);
1870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("01234", ss);
1871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        ss = sb.substring(0, 0);
1873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("", ss);
1874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(-1, 1);
1877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, negative start.");
1878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(0, -1);
1884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, negative end.");
1885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(0, fixture.length() + 1);
1891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, end > length.");
1892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
1897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            sb.substring(3, 2);
1898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("No SIOOBE, start > end.");
1899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (StringIndexOutOfBoundsException e) {
1900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            // Expected
1901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.toString()'
1906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_toString() throws Exception {
1908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture, sb.toString());
1911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(0);
1913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("abcde");
1914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("abcde", sb.toString());
1915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(1000);
1916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        byte[] bytes = sb.toString().getBytes("GB18030");
1917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        for (int i = 5; i < bytes.length; i++) {
1918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals(0, bytes[i]);
1919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.setLength(5);
1922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.append("fghij");
1923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals("abcdefghij", sb.toString());
1924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.lang.StringBuilder.trimToSize()'
1928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_trimToSize() {
1930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        final String fixture = "0123456789";
1931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        StringBuilder sb = new StringBuilder(fixture);
1932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(sb.capacity() > fixture.length());
1933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture.length(), sb.length());
1934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture, sb.toString());
1935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        int prevCapacity = sb.capacity();
1936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        sb.trimToSize();
1937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(prevCapacity > sb.capacity());
1938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture.length(), sb.length());
1939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(fixture, sb.toString());
1940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    // comparator for StringBuilder objects
1943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /*
1944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    private static final SerializableAssert STRING_BILDER_COMPARATOR = new SerializableAssert() {
1945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        public void assertDeserialized(Serializable initial,
1946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Serializable deserialized) {
1947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            StringBuilder init = (StringBuilder) initial;
1949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            StringBuilder desr = (StringBuilder) deserialized;
1950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals("toString", init.toString(), desr.toString());
1952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    };
1954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    */
1955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * serialization/deserialization.
1958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void testSerializationSelf() throws Exception {
1960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // SerializationTest.verifySelf(new StringBuilder("0123456789"),
1962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        //        STRING_BILDER_COMPARATOR);
1963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
1966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * serialization/deserialization compatibility with RI.
1967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
1968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void testSerializationCompatibility() throws Exception {
1969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        //SerializationTest.verifyGolden(this, new StringBuilder("0123456789"),
1971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        //        STRING_BILDER_COMPARATOR);
1972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    private static final class Fixture {
1975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        static final Fixture INSTANCE = new Fixture();
1976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        private Fixture() {
1978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            super();
1979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
1981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        @Override
1982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        public String toString() {
1983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            return "fixture";
1984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
1985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
1986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath}
1987