1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * License for the specific language governing permissions and limitations under
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.lang;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Serializable;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class StringBuilderTest extends TestCase {
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.StringBuilder()
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_Constructor() {
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(sb);
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(16, sb.capacity());
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.StringBuilder(int)
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ConstructorI() {
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(24);
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(sb);
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(24, sb.capacity());
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(-1);
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no exception");
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NegativeArraySizeException e) {
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringBuilder(0));
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.StringBuilder(CharSequence)
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	@SuppressWarnings("cast")
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_lang_CharSequence() {
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder((CharSequence) "fixture");
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture", sb.toString());
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length() + 16, sb.capacity());
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder((CharSequence) new StringBuffer("fixture"));
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture", sb.toString());
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length() + 16, sb.capacity());
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder((CharSequence) null);
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.StringBuilder(String)
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ConstructorLjava_lang_String() {
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder("fixture");
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture", sb.toString());
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length() + 16, sb.capacity());
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder((String) null);
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(boolean)
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendZ() {
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(true));
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("true", sb.toString());
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(false));
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("false", sb.toString());
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(char)
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendC() {
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append('a'));
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("a", sb.toString());
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append('b'));
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("b", sb.toString());
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(char[])
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_append$C() {
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'a', 'b' }));
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'c', 'd' }));
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.append((char[]) null);
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(char[], int, int)
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_append$CII() {
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'a', 'b' }, 0, 2));
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'c', 'd' }, 0, 2));
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'a', 'b', 'c', 'd' }, 0, 2));
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'a', 'b', 'c', 'd' }, 2, 2));
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new char[] { 'a', 'b', 'c', 'd' }, 2, 0));
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", sb.toString());
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.append((char[]) null, 0, 2);
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.append(new char[] { 'a', 'b', 'c', 'd' }, -1, 2);
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative offset");
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.append(new char[] { 'a', 'b', 'c', 'd' }, 0, -1);
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative length");
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.append(new char[] { 'a', 'b', 'c', 'd' }, 2, 3);
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, offset and length overflow");
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(CharSequence)
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendLjava_lang_CharSequence() {
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) "ab"));
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) "cd"));
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) null));
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("null", sb.toString());
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(CharSequence, int, int)
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	@SuppressWarnings("cast")
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_appendLjava_lang_CharSequenceII() {
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) "ab", 0, 2));
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) "cd", 0, 2));
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) "abcd", 0, 2));
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) "abcd", 2, 4));
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((CharSequence) null, 0, 2));
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("nu", sb.toString());
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(double)
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendD() {
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(1D));
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(1D), sb.toString());
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(0D));
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(0D), sb.toString());
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(-1D));
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(-1D), sb.toString());
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Double.NaN));
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Double.NaN), sb.toString());
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Double.NEGATIVE_INFINITY));
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Double.NEGATIVE_INFINITY), sb.toString());
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Double.POSITIVE_INFINITY));
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Double.POSITIVE_INFINITY), sb.toString());
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Double.MIN_VALUE));
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Double.MIN_VALUE), sb.toString());
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Double.MAX_VALUE));
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Double.MAX_VALUE), sb.toString());
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(float)
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendF() {
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(1F));
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(1F), sb.toString());
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(0F));
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(0F), sb.toString());
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(-1F));
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(-1F), sb.toString());
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Float.NaN));
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Float.NaN), sb.toString());
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Float.NEGATIVE_INFINITY));
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Float.NEGATIVE_INFINITY), sb.toString());
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Float.POSITIVE_INFINITY));
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Float.POSITIVE_INFINITY), sb.toString());
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Float.MIN_VALUE));
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Float.MIN_VALUE), sb.toString());
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Float.MAX_VALUE));
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Float.MAX_VALUE), sb.toString());
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(int)
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendI() {
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(1));
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(1), sb.toString());
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(0));
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(0), sb.toString());
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(-1));
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(-1), sb.toString());
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Integer.MIN_VALUE));
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Integer.MIN_VALUE), sb.toString());
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Integer.MAX_VALUE));
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Integer.MAX_VALUE), sb.toString());
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(long)
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendL() {
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(1L));
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(1L), sb.toString());
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(0L));
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(0L), sb.toString());
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(-1L));
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(-1L), sb.toString());
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Integer.MIN_VALUE));
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Integer.MIN_VALUE), sb.toString());
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Integer.MAX_VALUE));
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(String.valueOf(Integer.MAX_VALUE), sb.toString());
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(Object)'
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendLjava_lang_Object() {
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(Fixture.INSTANCE));
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(Fixture.INSTANCE.toString(), sb.toString());
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((Object) null));
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("null", sb.toString());
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(String)
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendLjava_lang_String() {
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append("ab"));
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append("cd"));
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((String) null));
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("null", sb.toString());
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.append(StringBuffer)
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendLjava_lang_StringBuffer() {
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new StringBuffer("ab")));
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab", sb.toString());
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append(new StringBuffer("cd")));
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("cd", sb.toString());
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.append((StringBuffer) null));
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("null", sb.toString());
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.appendCodePoint(int)'
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_appendCodePointI() {
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.appendCodePoint(0x10000);
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("\uD800\uDC00", sb.toString());
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("fixture");
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("\uD800\uDC00fixture", sb.toString());
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.appendCodePoint(0x00010FFFF);
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("\uD800\uDC00fixture\uDBFF\uDFFF", sb.toString());
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.capacity()'
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_capacity() {
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(16, sb.capacity());
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.append("0123456789ABCDEF0123456789ABCDEF");
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(sb.capacity() > 16);
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.charAt(int)'
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_charAtI() {
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < fixture.length(); i++) {
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertEquals((char) ('0' + i), sb.charAt(i));
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.charAt(-1);
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.charAt(fixture.length());
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, equal to length");
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.charAt(fixture.length() + 1);
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, greater than length");
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.codePointAt(int)
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_codePointAtI() {
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder("abc");
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('a', sb.codePointAt(0));
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('b', sb.codePointAt(1));
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('c', sb.codePointAt(2));
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder("\uD800\uDC00");
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x10000, sb.codePointAt(0));
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('\uDC00', sb.codePointAt(1));
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder();
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abc");
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointAt(-1);
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE on negative index.");
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointAt(sb.length());
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE on index equal to length.");
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointAt(sb.length() + 1);
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE on index greater than length.");
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.codePointBefore(int)
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_codePointBeforeI() {
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder("abc");
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('a', sb.codePointBefore(1));
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('b', sb.codePointBefore(2));
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('c', sb.codePointBefore(3));
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder("\uD800\uDC00");
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x10000, sb.codePointBefore(2));
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('\uD800', sb.codePointBefore(1));
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder();
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abc");
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointBefore(0);
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE on zero index.");
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointBefore(-1);
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE on negative index.");
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointBefore(sb.length() + 1);
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE on index greater than length.");
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.codePointCount(int, int)
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_codePointCountII() {
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, new StringBuilder("\uD800\uDC00").codePointCount(0, 2));
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, new StringBuilder("\uD800\uDC01").codePointCount(0, 2));
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, new StringBuilder("\uD801\uDC01").codePointCount(0, 2));
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, new StringBuilder("\uDBFF\uDFFF").codePointCount(0, 2));
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, new StringBuilder("a\uD800\uDC00b").codePointCount(0, 4));
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, new StringBuilder("a\uD800\uDC00b\uD800").codePointCount(0, 5));
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder();
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abc");
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointCount(-1, 2);
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for negative begin index.");
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointCount(0, 4);
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for end index that's too large.");
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.codePointCount(3, 2);
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for begin index larger than end index.");
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.delete(int, int)
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_deleteII() {
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.delete(0, 0));
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture, sb.toString());
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.delete(5, 5));
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture, sb.toString());
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.delete(0, 1));
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("123456789", sb.toString());
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.delete(0, sb.length()));
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", sb.toString());
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.length());
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.delete(0, 11));
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", sb.toString());
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.length());
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(fixture).delete(-1, 2);
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative start");
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(fixture).delete(11, 12);
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, start too far");
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(fixture).delete(13, 12);
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, start larger than end");
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                // HARMONY 6212
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                sb = new StringBuilder();
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                sb.append("abcde");
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                String str = sb.toString();
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                sb.delete(0, sb.length());
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                sb.append("YY");
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("abcde", str);
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("YY", sb.toString());
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.deleteCharAt(int)
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_deleteCharAtI() {
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.deleteCharAt(0));
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("123456789", sb.toString());
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.deleteCharAt(5));
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("012346789", sb.toString());
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.deleteCharAt(9));
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("012345678", sb.toString());
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(fixture).deleteCharAt(-1);
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative index");
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(fixture).deleteCharAt(fixture.length());
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, index equals length");
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringBuilder(fixture).deleteCharAt(fixture.length() + 1);
620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, index exceeds length");
621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.ensureCapacity(int)'
628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ensureCapacityI() {
630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(5);
631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.capacity());
632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.ensureCapacity(10);
633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(12, sb.capacity());
634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.ensureCapacity(26);
635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(26, sb.capacity());
636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.ensureCapacity(55);
637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(55, sb.capacity());
638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.getChars(int, int, char[], int)'
642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getCharsII$CI() {
644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char[] dst = new char[10];
647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.getChars(0, 10, dst, 0);
648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(Arrays.equals(fixture.toCharArray(), dst));
649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(dst, '\0');
651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.getChars(0, 5, dst, 0);
652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char[] fixtureChars = new char[10];
653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.getChars(0, 5, fixtureChars, 0);
654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(Arrays.equals(fixtureChars, dst));
655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(dst, '\0');
657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(fixtureChars, '\0');
658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.getChars(0, 5, dst, 5);
659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.getChars(0, 5, fixtureChars, 5);
660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(Arrays.equals(fixtureChars, dst));
661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(dst, '\0');
663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(fixtureChars, '\0');
664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.getChars(5, 10, dst, 1);
665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.getChars(5, 10, fixtureChars, 1);
666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(Arrays.equals(fixtureChars, dst));
667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.getChars(0, 10, null, 0);
670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.getChars(-1, 10, dst, 0);
677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, srcBegin negative");
678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.getChars(0, 10, dst, -1);
684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, dstBegin negative");
685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.getChars(5, 4, dst, 0);
691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, srcBegin > srcEnd");
692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.getChars(0, 11, dst, 0);
698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, srcEnd > length");
699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.getChars(0, 10, dst, 5);
705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, dstBegin and src size too large for what's left in dst");
706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.indexOf(String)
713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_indexOfLjava_lang_String() {
715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.indexOf("0"));
718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.indexOf("012"));
719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.indexOf("02"));
720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.indexOf("89"));
721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.indexOf(null);
724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.indexOf(String, int)
732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_IndexOfStringInt() {
734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.indexOf("0"));
737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.indexOf("012"));
738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.indexOf("02"));
739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.indexOf("89"));
740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.indexOf("0"), 0);
742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.indexOf("012"), 0);
743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.indexOf("02"), 0);
744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.indexOf("89"), 0);
745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.indexOf("0"), 5);
747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.indexOf("012"), 5);
748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.indexOf("02"), 0);
749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.indexOf("89"), 5);
750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.indexOf(null, 0);
753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, boolean)
761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertIZ() {
763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, true));
766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("true0000", sb.toString());
767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.length());
768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, false));
771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("false0000", sb.toString());
772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, false));
776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00false00", sb.toString());
777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, false));
781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000false", sb.toString());
782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(9, sb.length());
783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, false);
787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative index");
788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, false);
795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, index too large index");
796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, char)
803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertIC() {
805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, 'a'));
808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("a0000", sb.toString());
809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, 'b'));
813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("b0000", sb.toString());
814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, 'b'));
818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00b00", sb.toString());
819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, 'b'));
823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000b", sb.toString());
824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// FIXME this fails on Sun JRE 5.0_5
827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//		try {
828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			sb = new StringBuilder(fixture);
829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			sb.insert(-1, 'a');
830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			fail("no SIOOBE, negative index");
831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//		} catch (StringIndexOutOfBoundsException e) {
832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			// Expected
833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//		}
834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		/*
836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * FIXME This fails on Sun JRE 5.0_5, but that seems like a bug, since
837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * the 'insert(int, char[]) behaves this way.
838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 */
839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//		try {
840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			sb = new StringBuilder(fixture);
841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			sb.insert(5, 'a');
842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			fail("no SIOOBE, index too large index");
843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//		} catch (StringIndexOutOfBoundsException e) {
844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//			// Expected
845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//		}
846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.lang.StringBuilder.insert(int, char)
850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_insertIC_2() {
852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder obj = new StringBuilder();
853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            obj.insert(-1, '?');
855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected");
856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, char[])'
863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertI$C() {
865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, new char[] { 'a', 'b' }));
868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab0000", sb.toString());
869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, new char[] { 'a', 'b' }));
873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00ab00", sb.toString());
874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, new char[] { 'a', 'b' }));
878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000ab", sb.toString());
879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		/*
882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * TODO This NPE is the behavior on Sun's JRE 5.0_5, but it's
883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * undocumented. The assumption is that this method behaves like
884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * String.valueOf(char[]), which does throw a NPE too, but that is also
885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * undocumented.
886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 */
887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(0, (char[]) null);
890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, new char[] { 'a', 'b' });
898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative index");
899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' });
906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, index too large index");
907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, char[], int, int)
914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertI$CII() {
916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, new char[] { 'a', 'b' }, 0, 2));
919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab0000", sb.toString());
920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, new char[] { 'a', 'b' }, 0, 1));
924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("a0000", sb.toString());
925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, new char[] { 'a', 'b' }, 0, 2));
929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00ab00", sb.toString());
930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, new char[] { 'a', 'b' }, 0, 1));
934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00a00", sb.toString());
935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, new char[] { 'a', 'b' }, 0, 2));
939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000ab", sb.toString());
940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, new char[] { 'a', 'b' }, 0, 1));
944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000a", sb.toString());
945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		/*
948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * TODO This NPE is the behavior on Sun's JRE 5.0_5, but it's
949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * undocumented. The assumption is that this method behaves like
950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * String.valueOf(char[]), which does throw a NPE too, but that is also
951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 * undocumented.
952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		 */
953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(0, (char[]) null, 0, 2);
956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, new char[] { 'a', 'b' }, 0, 2);
964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative index");
965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' }, 0, 2);
972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, index too large index");
973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' }, -1, 2);
980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative offset");
981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' }, 0, -1);
988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, negative length");
989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' }, 0, 3);
996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no SIOOBE, too long");
997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, CharSequence)
1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertILjava_lang_CharSequence() {
1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, (CharSequence) "ab"));
1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab0000", sb.toString());
1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, (CharSequence) "ab"));
1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00ab00", sb.toString());
1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (CharSequence) "ab"));
1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000ab", sb.toString());
1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (CharSequence) null));
1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000null", sb.toString());
1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.length());
1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, (CharSequence) "ab");
1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, (CharSequence) "ab");
1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, CharSequence, int, int)
1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	@SuppressWarnings("cast")
1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_insertILjava_lang_CharSequenceII() {
1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, (CharSequence) "ab", 0, 2));
1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ab0000", sb.toString());
1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, (CharSequence) "ab", 0, 1));
1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("a0000", sb.toString());
1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, (CharSequence) "ab", 0, 2));
1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00ab00", sb.toString());
1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, (CharSequence) "ab", 0, 1));
1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00a00", sb.toString());
1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (CharSequence) "ab", 0, 2));
1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000ab", sb.toString());
1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (CharSequence) "ab", 0, 1));
1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000a", sb.toString());
1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (CharSequence) null, 0, 2));
1082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000nu", sb.toString());
1083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, (CharSequence) "ab", 0, 2);
1088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, (CharSequence) "ab", 0, 2);
1096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, (CharSequence) "ab", -1, 2);
1104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative offset");
1105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' }, 0, -1);
1112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative length");
1113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, new char[] { 'a', 'b' }, 0, 3);
1120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, too long");
1121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, double)
1128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertID() {
1130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, -1D));
1133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("-1.00000", sb.toString());
1134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.length());
1135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, 0D));
1138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0.00000", sb.toString());
1139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, sb.length());
1140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, 1D));
1143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("001.000", sb.toString());
1144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, sb.length());
1145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, 2D));
1148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00002.0", sb.toString());
1149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, sb.length());
1150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, 1D);
1154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, 1D);
1162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, float)
1170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertIF() {
1172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, -1F));
1175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("-1.00000", sb.toString());
1176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.length());
1177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, 0F));
1180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0.00000", sb.toString());
1181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, sb.length());
1182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, 1F));
1185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("001.000", sb.toString());
1186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, sb.length());
1187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, 2F));
1190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00002.0", sb.toString());
1191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, sb.length());
1192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, 1F);
1196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, 1F);
1204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, int)
1212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertII() {
1214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, -1));
1217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("-10000", sb.toString());
1218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, 0));
1222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00000", sb.toString());
1223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, 1));
1227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00100", sb.toString());
1228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, 2));
1232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00002", sb.toString());
1233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, 1);
1238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, 1);
1246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, long)
1254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertIJ() {
1256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, -1L));
1259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("-10000", sb.toString());
1260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, 0L));
1264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00000", sb.toString());
1265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, 1L));
1269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00100", sb.toString());
1270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, 2L));
1274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00002", sb.toString());
1275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, 1L);
1280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, 1L);
1288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, Object)
1296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertILjava_lang_Object() {
1298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, Fixture.INSTANCE));
1301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture0000", sb.toString());
1302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(11, sb.length());
1303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, Fixture.INSTANCE));
1306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00fixture00", sb.toString());
1307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(11, sb.length());
1308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, Fixture.INSTANCE));
1311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000fixture", sb.toString());
1312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(11, sb.length());
1313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (Object) null));
1316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000null", sb.toString());
1317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.length());
1318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, Fixture.INSTANCE);
1322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, Fixture.INSTANCE);
1330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.insert(int, String)
1338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_insertILjava_lang_String() {
1340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(0, "fixture"));
1343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture0000", sb.toString());
1344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(11, sb.length());
1345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(2, "fixture"));
1348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("00fixture00", sb.toString());
1349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(11, sb.length());
1350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, "fixture"));
1353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000fixture", sb.toString());
1354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(11, sb.length());
1355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.insert(4, (Object) null));
1358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0000null", sb.toString());
1359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.length());
1360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(-1, "fixture");
1364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, negative index");
1365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.insert(5, "fixture");
1372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no IOOBE, index too large index");
1373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.lastIndexOf(String)
1380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_lastIndexOfLjava_lang_String() {
1382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.lastIndexOf("0"));
1385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.lastIndexOf("012"));
1386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.lastIndexOf("02"));
1387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.lastIndexOf("89"));
1388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.lastIndexOf(null);
1391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
1392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
1393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.lastIndexOf(String, int)
1399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_lastIndexOfLjava_lang_StringI() {
1401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.lastIndexOf("0"));
1404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.lastIndexOf("012"));
1405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.lastIndexOf("02"));
1406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.lastIndexOf("89"));
1407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.lastIndexOf("0"), 0);
1409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.lastIndexOf("012"), 0);
1410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.lastIndexOf("02"), 0);
1411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.lastIndexOf("89"), 0);
1412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.lastIndexOf("0"), 5);
1414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.lastIndexOf("012"), 5);
1415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, sb.lastIndexOf("02"), 0);
1416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(8, sb.lastIndexOf("89"), 5);
1417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.lastIndexOf(null, 0);
1420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no NPE");
1421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
1422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.length()
1428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_length() {
1430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder();
1431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.length());
1432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.append("0000");
1433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(4, sb.length());
1434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.offsetByCodePoints(int, int)'
1438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_offsetByCodePointsII() {
1440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(0, 2);
1441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, result);
1442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("abcd").offsetByCodePoints(3, -1);
1444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, result);
1445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(0, 3);
1447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, result);
1448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(3, -1);
1450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, result);
1451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("a\uD800\uDC00b").offsetByCodePoints(3, 0);
1453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, result);
1454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("\uD800\uDC00bc").offsetByCodePoints(3, 0);
1456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, result);
1457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("a\uDC00bc").offsetByCodePoints(3, -1);
1459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, result);
1460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = new StringBuilder("a\uD800bc").offsetByCodePoints(3, -1);
1462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, result);
1463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder();
1465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abc");
1466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.offsetByCodePoints(-1, 1);
1468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for negative index.");
1469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
1470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.offsetByCodePoints(0, 4);
1475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for offset that's too large.");
1476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
1477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.offsetByCodePoints(3, -4);
1482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for offset that's too small.");
1483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
1484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.offsetByCodePoints(3, 1);
1489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for index that's too large.");
1490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
1491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.offsetByCodePoints(4, -1);
1496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IOOBE for index that's too large.");
1497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
1498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.replace(int, int, String)'
1504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_replaceIILjava_lang_String() {
1506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.replace(1, 3, "11"));
1509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("0110", sb.toString());
1510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(4, sb.length());
1511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.replace(1, 2, "11"));
1514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("01100", sb.toString());
1515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.replace(4, 5, "11"));
1519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("000011", sb.toString());
1520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb = new StringBuilder(fixture);
1523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sb, sb.replace(4, 6, "11"));
1524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("000011", sb.toString());
1525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// FIXME Undocumented NPE in Sun's JRE 5.0_5
1528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.replace(1, 2, null);
1530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No NPE");
1531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
1532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.replace(-1, 2, "11");
1538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, negative start");
1539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.replace(5, 2, "11");
1546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, start > length");
1547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb = new StringBuilder(fixture);
1553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.replace(3, 2, "11");
1554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, start > end");
1555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Regression for HARMONY-348
1560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder buffer = new StringBuilder("1234567");
1561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		buffer.replace(2, 6, "XXX");
1562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("12XXX7",buffer.toString());
1563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private void reverseTest(String org, String rev, String back) {
1566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // create non-shared StringBuilder
1567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder(org);
1568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.reverse();
1569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String reversed = sb.toString();
1570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(rev, reversed);
1571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // create non-shared StringBuilder
1572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder(reversed);
1573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.reverse();
1574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reversed = sb.toString();
1575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(back, reversed);
1576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // test algorithm when StringBuilder is shared
1578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder(org);
1579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String copy = sb.toString();
1580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(org, copy);
1581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.reverse();
1582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reversed = sb.toString();
1583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(rev, reversed);
1584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder(reversed);
1585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        copy = sb.toString();
1586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(rev, copy);
1587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.reverse();
1588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reversed = sb.toString();
1589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(back, reversed);
1590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.reverse()
1594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_reverse() {
1596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        final String fixture = "0123456789";
1597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder(fixture);
1598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(sb, sb.reverse());
1599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("9876543210", sb.toString());
1600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder("012345678");
1602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(sb, sb.reverse());
1603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("876543210", sb.toString());
1604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(1);
1606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(sb, sb.reverse());
1607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("8", sb.toString());
1608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(0);
1610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(sb, sb.reverse());
1611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("", sb.toString());
1612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String str;
1614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "a";
1615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, str, str);
1616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "ab";
1618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "ba", str);
1619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "abcdef";
1621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "fedcba", str);
1622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "abcdefg";
1624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "gfedcba", str);
1625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\ud800\udc00";
1627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, str, str);
1628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\udc00\ud800";
1630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud800\udc00", "\ud800\udc00");
1631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "a\ud800\udc00";
1633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud800\udc00a", str);
1634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "ab\ud800\udc00";
1636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud800\udc00ba", str);
1637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "abc\ud800\udc00";
1639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud800\udc00cba", str);
1640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\ud800\udc00\udc01\ud801\ud802\udc02";
1642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud802\udc02\ud801\udc01\ud800\udc00",
1643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "\ud800\udc00\ud801\udc01\ud802\udc02");
1644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\ud800\udc00\ud801\udc01\ud802\udc02";
1646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud802\udc02\ud801\udc01\ud800\udc00", str);
1647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\ud800\udc00\udc01\ud801a";
1649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "a\ud801\udc01\ud800\udc00",
1650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "\ud800\udc00\ud801\udc01a");
1651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "a\ud800\udc00\ud801\udc01";
1653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud801\udc01\ud800\udc00a", str);
1654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\ud800\udc00\udc01\ud801ab";
1656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "ba\ud801\udc01\ud800\udc00",
1657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "\ud800\udc00\ud801\udc01ab");
1658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "ab\ud800\udc00\ud801\udc01";
1660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud801\udc01\ud800\udc00ba", str);
1661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "\ud800\udc00\ud801\udc01";
1663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud801\udc01\ud800\udc00", str);
1664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "a\ud800\udc00z\ud801\udc01";
1666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud801\udc01z\ud800\udc00a", str);
1667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "a\ud800\udc00bz\ud801\udc01";
1669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud801\udc01zb\ud800\udc00a", str);
1670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "abc\ud802\udc02\ud801\udc01\ud800\udc00";
1672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud800\udc00\ud801\udc01\ud802\udc02cba", str);
1673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        str = "abcd\ud802\udc02\ud801\udc01\ud800\udc00";
1675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        reverseTest(str, "\ud800\udc00\ud801\udc01\ud802\udc02dcba", str);
1676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.setCharAt(int, char)
1680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_setCharAtIC() {
1682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0000";
1683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setCharAt(0, 'A');
1685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("A000", sb.toString());
1686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setCharAt(1, 'B');
1687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("AB00", sb.toString());
1688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setCharAt(2, 'C');
1689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ABC0", sb.toString());
1690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setCharAt(3, 'D');
1691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("ABCD", sb.toString());
1692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.setCharAt(-1, 'A');
1695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, negative index");
1696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.setCharAt(4, 'A');
1702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, index == length");
1703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.setCharAt(5, 'A');
1709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, index > length");
1710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.setLength(int)'
1717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_setLengthI() {
1719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(5);
1722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, sb.length());
1723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("01234", sb.toString());
1724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(6);
1725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, sb.length());
1726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("01234\0", sb.toString());
1727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.setLength(0);
1728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, sb.length());
1729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", sb.toString());
1730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.setLength(-1);
1733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, negative length.");
1734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder("abcde");
1739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("abcde", sb.toString());
1740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(1);
1741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append('g');
1742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("ag", sb.toString());
1743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder("abcde");
1745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(3);
1746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append('g');
1747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("abcg", sb.toString());
1748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder("abcde");
1750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(2);
1751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.charAt(3);
1753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IndexOutOfBoundsException");
1754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
1755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder();
1759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abcdefg");
1760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(2);
1761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(5);
1762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 2; i < 5; i++) {
1763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, sb.charAt(i));
1764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder();
1767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abcdefg");
1768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.delete(2, 4);
1769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(7);
1770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('a', sb.charAt(0));
1771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('b', sb.charAt(1));
1772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('e', sb.charAt(2));
1773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('f', sb.charAt(3));
1774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals('g', sb.charAt(4));
1775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 5; i < 7; i++) {
1776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, sb.charAt(i));
1777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb = new StringBuilder();
1780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abcdefg");
1781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.replace(2, 5, "z");
1782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(7);
1783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 5; i < 7; i++) {
1784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, sb.charAt(i));
1785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.subSequence(int, int)
1790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_subSequenceII() {
1792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		CharSequence ss = sb.subSequence(0, 5);
1795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("01234", ss.toString());
1796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ss = sb.subSequence(0, 0);
1798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", ss.toString());
1799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.subSequence(-1, 1);
1802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, negative start.");
1803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.subSequence(0, -1);
1809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, negative end.");
1810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.subSequence(0, fixture.length() + 1);
1816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, end > length.");
1817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.subSequence(3, 2);
1823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No IOOBE, start > end.");
1824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IndexOutOfBoundsException e) {
1825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.substring(int)
1831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_substringI() {
1833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		String ss = sb.substring(0);
1836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture, ss);
1837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ss = sb.substring(10);
1839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", ss);
1840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(-1);
1843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, negative start.");
1844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(0, -1);
1850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, negative end.");
1851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(fixture.length() + 1);
1857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, start > length.");
1858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.substring(int, int)
1865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_substringII() {
1867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		String ss = sb.substring(0, 5);
1870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("01234", ss);
1871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ss = sb.substring(0, 0);
1873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("", ss);
1874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(-1, 1);
1877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, negative start.");
1878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(0, -1);
1884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, negative end.");
1885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(0, fixture.length() + 1);
1891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, end > length.");
1892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			sb.substring(3, 2);
1898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No SIOOBE, start > end.");
1899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (StringIndexOutOfBoundsException e) {
1900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
1901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.lang.StringBuilder.toString()'
1906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_toString() throws Exception {
1908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        final String fixture = "0123456789";
1909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuilder sb = new StringBuilder(fixture);
1910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(fixture, sb.toString());
1911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(0);
1913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("abcde");
1914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("abcde", sb.toString());
1915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(1000);
1916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] bytes = sb.toString().getBytes("GB18030");
1917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 5; i < bytes.length; i++) {
1918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, bytes[i]);
1919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.setLength(5);
1922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sb.append("fghij");
1923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("abcdefghij", sb.toString());
1924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.StringBuilder.trimToSize()'
1928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_trimToSize() {
1930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final String fixture = "0123456789";
1931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringBuilder sb = new StringBuilder(fixture);
1932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(sb.capacity() > fixture.length());
1933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture.length(), sb.length());
1934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture, sb.toString());
1935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int prevCapacity = sb.capacity();
1936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sb.trimToSize();
1937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(prevCapacity > sb.capacity());
1938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture.length(), sb.length());
1939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(fixture, sb.toString());
1940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // comparator for StringBuilder objects
1943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static final SerializableAssert STRING_BILDER_COMPARATOR = new SerializableAssert() {
1944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void assertDeserialized(Serializable initial,
1945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Serializable deserialized) {
1946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            StringBuilder init = (StringBuilder) initial;
1948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            StringBuilder desr = (StringBuilder) deserialized;
1949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("toString", init.toString(), desr.toString());
1951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    };
1953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests serialization/deserialization.
1956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSerializationSelf() throws Exception {
1958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifySelf(new StringBuilder("0123456789"),
1960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                STRING_BILDER_COMPARATOR);
1961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests serialization/deserialization compatibility with RI.
1965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSerializationCompatibility() throws Exception {
1967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifyGolden(this, new StringBuilder("0123456789"),
1969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                STRING_BILDER_COMPARATOR);
1970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static final class Fixture {
1973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		static final Fixture INSTANCE = new Fixture();
1974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private Fixture() {
1976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
1977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		@Override
1980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public String toString() {
1981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return "fixture";
1982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
1985