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