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