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, 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.lang; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.UnsupportedEncodingException; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Locale; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class String2Test extends junit.framework.TestCase { 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String hw1 = "HelloWorld"; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String hw2 = "HelloWorld"; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String hwlc = "helloworld"; 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String hwuc = "HELLOWORLD"; 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String hello1 = "Hello"; 34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String world1 = "World"; 36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String comp11 = "Test String"; 38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object obj = new Object(); 40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] buf = { 'W', 'o', 'r', 'l', 'd' }; 42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] rbuf = new char[5]; 44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String() 47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor() { 49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String() 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Created incorrect string", new String().equals("")); 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(byte[]) 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$B() { 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(byte []) 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to create string", new String(hw1.getBytes()) 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(hw1)); 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(byte[], int) 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @SuppressWarnings("deprecation") 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$BI() { 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(byte [], int) 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = new String(new byte[] { 65, 66, 67, 68, 69 }, 0); 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string returned: " + s, s.equals("ABCDE")); 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s = new String(new byte[] { 65, 66, 67, 68, 69 }, 1); 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Did not use nonzero hibyte", !s.equals("ABCDE")); 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(byte[], int, int) 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$BII() { 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(byte [], int, int) 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to create string", new String(hw1.getBytes(), 0, hw1 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getBytes().length).equals(hw1)); 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean exception = false; 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new String(new byte[0], 0, Integer.MAX_VALUE); 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath exception = true; 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Did not throw exception", exception); 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(byte[], int, int, int) 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @SuppressWarnings("deprecation") 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$BIII() { 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(byte [], int, int, int) 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = new String(new byte[] { 65, 66, 67, 68, 69 }, 0, 1, 3); 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string returned: " + s, s.equals("BCD")); 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s = new String(new byte[] { 65, 66, 67, 68, 69 }, 1, 0, 5); 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Did not use nonzero hibyte", !s.equals("ABCDE")); 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(byte[], int, int, java.lang.String) 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$BIILjava_lang_String() throws Exception { 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(byte [], int, int, java.lang.String) 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = null; 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s = new String(new byte[] { 65, 66, 67, 68, 69 }, 0, 5, "8859_1"); 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string returned: " + s, s.equals("ABCDE")); 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-1111 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(new String(new byte[] { (byte) 0xC0 }, 0, 1, "UTF-8")); 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(byte[], java.lang.String) 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$BLjava_lang_String() throws Exception { 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(byte [], java.lang.String) 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = null; 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s = new String(new byte[] { 65, 66, 67, 68, 69 }, "8859_1"); 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string returned: " + s, s.equals("ABCDE")); 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(char[]) 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$C() { 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(char []) 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed Constructor test", "World", new String(buf)); 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(char[], int, int) 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$CII() { 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(char [], int, int) 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] buf = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' }; 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = new String(buf, 0, buf.length); 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string created", hw1.equals(s)); 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean exception = false; 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new String(new char[0], 0, Integer.MAX_VALUE); 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath exception = true; 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Did not throw exception", exception); 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(int[], int, int) 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor$III() { 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(int [], int, int) 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new String(new int[0], 2, Integer.MAX_VALUE); 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Did not throw exception"); 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(java.lang.String) 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_String() { 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(java.lang.String) 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = new String("Hello World"); 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to construct correct string", "Hello World", s); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#String(java.lang.StringBuffer) 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringBuffer() { 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String(java.lang.StringBuffer) 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StringBuffer sb = new StringBuffer(); 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath sb.append("HelloWorld"); 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Created incorrect string", "HelloWorld", new String(sb)); 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#charAt(int) 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_charAtI() { 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method char java.lang.String.charAt(int) 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect character returned", hw1.charAt(5) == 'W' 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && (hw1.charAt(1) != 'Z')); 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#compareTo(java.lang.String) 194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_compareToLjava_lang_String() { 196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.compareTo(java.lang.String) 197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value for first < second", "aaaaab" 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareTo("aaaaac") < 0); 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect value for first = second", 0, "aaaaac" 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareTo("aaaaac")); 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value for first > second", "aaaaac" 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareTo("aaaaab") > 0); 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Considered case to not be of importance", !("A" 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareTo("a") == 0)); 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "fixture".compareTo(null); 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("No NPE"); 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#compareToIgnoreCase(java.lang.String) 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_compareToIgnoreCaseLjava_lang_String() { 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.compareToIgnoreCase(java.lang.String) 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value for first < second", "aaaaab" 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("aaaaac") < 0); 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect value for first = second", 0, "aaaaac" 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("aaaaac")); 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect value for first > second", "aaaaac" 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("aaaaab") > 0); 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Considered case to not be of importance", 0, "A" 226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("a")); 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("0xbf should not compare = to 'ss'", "\u00df" 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("ss") != 0); 230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0x130 should compare = to 'i'", 0, "\u0130" 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("i")); 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0x131 should compare = to 'i'", 0, "\u0131" 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .compareToIgnoreCase("i")); 234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale defLocale = Locale.getDefault(); 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.setDefault(new Locale("tr", "")); 238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Locale tr: 0x130 should compare = to 'i'", 0, 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "\u0130".compareToIgnoreCase("i")); 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Locale tr: 0x131 should compare = to 'i'", 0, 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "\u0131".compareToIgnoreCase("i")); 242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.setDefault(defLocale); 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "fixture".compareToIgnoreCase(null); 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("No NPE"); 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#concat(java.lang.String) 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_concatLjava_lang_String() { 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.concat(java.lang.String) 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Concatenation failed to produce correct string", hello1 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .concat(world1).equals(hw1)); 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean exception = false; 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String a = new String("test"); 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String b = null; 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath a.concat(b); 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath exception = true; 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Concatenation failed to throw NP exception (1)", exception); 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath exception = false; 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String a = new String(""); 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String b = null; 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath a.concat(b); 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath exception = true; 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Concatenation failed to throw NP exception (2)", exception); 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s1 = ""; 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s2 = "s2"; 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s3 = s1.concat(s2); 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(s2, s3); 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // The RI returns a new string even when it's the same as the argument string. 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // assertNotSame(s2, s3); 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s3 = s2.concat(s1); 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(s2, s3); 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Neither Android nor the RI returns a new string when it's the same as *this*. 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // assertNotSame(s2, s3); 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s3 = s2.concat(s1); 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertSame(s2, s3); 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#copyValueOf(char[]) 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_copyValueOf$C() { 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.copyValueOf(char 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // []) 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] t = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' }; 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("copyValueOf returned incorrect String", "HelloWorld", 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String.copyValueOf(t)); 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#copyValueOf(char[], int, int) 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_copyValueOf$CII() { 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.copyValueOf(char 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // [], int, int) 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] t = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' }; 313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("copyValueOf returned incorrect String", "World", String 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .copyValueOf(t, 5, 5)); 315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#endsWith(java.lang.String) 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_endsWithLjava_lang_String() { 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.lang.String.endsWith(java.lang.String) 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to fine ending string", hw1.endsWith("ld")); 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#equals(java.lang.Object) 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_equalsLjava_lang_Object() { 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("String not equal", hw1, hw2); 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Empty string equals check", "", ""); 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Null string equals check", (String) null, (String) null); 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse("Unequal strings reports as equal", hw1.equals(comp11)); 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse("Null string comparison failed", hw1.equals((String) null)); 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#equalsIgnoreCase(java.lang.String) 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_equalsIgnoreCaseLjava_lang_String() { 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.equalsIgnoreCase(java.lang.String) 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("lc version returned unequal to uc", hwlc 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equalsIgnoreCase(hwuc)); 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#getBytes() 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getBytes() { 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method byte [] java.lang.String.getBytes() 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] sbytes = hw1.getBytes(); 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < hw1.length(); i++) { 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect bytes", sbytes[i] == (byte) hw1.charAt(i)); 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] chars = new char[1]; 359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < 65536; i++) { 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // skip surrogates 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (i == 0xd800) 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath i = 0xe000; 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] result = null; 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath chars[0] = (char) i; 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String string = new String(chars); 366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = string.getBytes("8859_1"); 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (i < 256) { 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals((byte) i, result[0]); 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Substitute character should be 0x1A [1], but may be '?' 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * character. [1] 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://en.wikipedia.org/wiki/Substitute_character 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(result[0] == '?' || result[0] == 0x1a); 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (java.io.UnsupportedEncodingException e) { 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = string.getBytes("UTF8"); 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int length = i < 0x80 ? 1 : (i < 0x800 ? 2 : 3); 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong length UTF8: " + Integer.toHexString(i), 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result.length == length); 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Wrong bytes UTF8: " + Integer.toHexString(i), 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath (i < 0x80 && result[0] == i) 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath || (i >= 0x80 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && i < 0x800 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && result[0] == (byte) (0xc0 | ((i & 0x7c0) >> 6)) && result[1] == (byte) (0x80 | (i & 0x3f))) 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath || (i >= 0x800 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && result[0] == (byte) (0xe0 | (i >> 12)) 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && result[1] == (byte) (0x80 | ((i & 0xfc0) >> 6)) && result[2] == (byte) (0x80 | (i & 0x3f)))); 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (java.io.UnsupportedEncodingException e) { 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String bytes = null; 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath bytes = new String(result, "UTF8"); 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong UTF8 byte length: " + bytes.length() + "(" 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + ")", bytes.length() == 1); 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Wrong char UTF8: " 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + Integer.toHexString(bytes.charAt(0)) + " (" 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + ")", bytes.charAt(0) == i); 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (java.io.UnsupportedEncodingException e) { 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] bytes = new byte[1]; 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < 256; i++) { 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath bytes[0] = (byte) i; 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String result = null; 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath result = new String(bytes, "8859_1"); 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong char length", 1, result.length()); 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong char value", result.charAt(0) == (char) i); 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (java.io.UnsupportedEncodingException e) { 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#getBytes(int, int, byte[], int) 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @SuppressWarnings("deprecation") 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getBytesII$BI() { 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.lang.String.getBytes(int, int, byte [], 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] buf = new byte[5]; 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Hello World".getBytes(6, 11, buf, 0); 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect bytes", "World", new String(buf)); 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Hello World".getBytes(-1, 1, null, 0); 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Expected StringIndexOutOfBoundsException"); 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (StringIndexOutOfBoundsException e) { 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Threw wrong exception"); 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#getBytes(java.lang.String) 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getBytesLjava_lang_String() throws Exception { 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method byte [] java.lang.String.getBytes(java.lang.String) 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] buf = "Hello World".getBytes(); 449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect bytes", "Hello World", new String(buf)); 450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "string".getBytes("8849_1"); 453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("No UnsupportedEncodingException"); 454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e) { 455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] bytes = "\u3048".getBytes("UTF-8"); 458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] expected = new byte[] { (byte) 0xE3, (byte) 0x81, (byte) 0x88 }; 459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(expected[0], bytes[0]); 460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(expected[1], bytes[1]); 461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(expected[2], bytes[2]); 462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-663 464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "string".getBytes("?Q?D??_??_6ffa?+vG?_??\u951f\ufffd??"); 466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("No UnsupportedEncodingException"); 467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e) { 468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath bytes = "-".getBytes("UTF-16"); 472c04007c41f7363f5f4cde7e19a582ac13adbc153Pete Gillin expected = new byte[] { (byte) 0xfe, (byte) 0xff, (byte) 0x00, (byte) 0x2d }; 473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(expected[0], bytes[0]); 474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(expected[1], bytes[1]); 475c04007c41f7363f5f4cde7e19a582ac13adbc153Pete Gillin assertEquals(expected[2], bytes[2]); 476c04007c41f7363f5f4cde7e19a582ac13adbc153Pete Gillin assertEquals(expected[3], bytes[3]); 477665c45e473c041dc2b1e8d85fbaf7008daa69c06Narayan Kamath 478665c45e473c041dc2b1e8d85fbaf7008daa69c06Narayan Kamath byte[] bytes2 = "-".getBytes("UTF-16LE"); 479c04007c41f7363f5f4cde7e19a582ac13adbc153Pete Gillin assertEquals(bytes2[0], bytes[3]); 480c04007c41f7363f5f4cde7e19a582ac13adbc153Pete Gillin assertEquals(bytes2[1], bytes[2]); 481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#getBytes() 485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getBytes_NPE() throws Exception { 487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "abc".getBytes((String) null); 489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Should throw NullPointerException"); 490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException whatTheRiDocumentsAndWeThrow) { 491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException whatTheRiActuallyThrows) { 492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Hello World".getBytes(1, 2, null, 1); 496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Should throw NullPointerException"); 497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected 499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#getChars(int, int, char[], int) 504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getCharsII$CI() { 506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.lang.String.getChars(int, int, char [], 507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1.getChars(5, hw1.length(), rbuf, 0); 509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < rbuf.length; i++) 511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("getChars returned incorrect char(s)", rbuf[i] == buf[i]); 512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#hashCode() 516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_hashCode() { 518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.hashCode() 519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int hwHashCode = 0; 520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int hwLength = hw1.length(); 521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int powerOfThirtyOne = 1; 522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int counter = hwLength - 1; counter >= 0; counter--) { 523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hwHashCode += hw1.charAt(counter) * powerOfThirtyOne; 524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath powerOfThirtyOne *= 31; 525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("String did not hash to correct value", hwHashCode, hw1.hashCode()); 527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("The empty string \"\" did not hash to zero", 0, "".hashCode()); 528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Calculated wrong string hashcode", -1933545242, "Harmony".hashCode()); 529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#indexOf(int) 533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_indexOfI() { 535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.indexOf(int) 536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid index returned", 1, hw1.indexOf('e')); 537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid index returned", 1, "a\ud800\udc00".indexOf(0x10000)); 538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#indexOf(int, int) 542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_indexOfII() { 544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.indexOf(int, int) 545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid character index returned", 5, hw1.indexOf('W', 2)); 546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid index returned", 2, "ab\ud800\udc00".indexOf(0x10000, 1)); 547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#indexOf(java.lang.String) 551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_indexOfLjava_lang_String() { 553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.indexOf(java.lang.String) 554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to find string", hw1.indexOf("World") > 0); 555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to find string", !(hw1.indexOf("ZZ") > 0)); 556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#indexOf(java.lang.String, int) 560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_indexOfLjava_lang_StringI() { 562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.indexOf(java.lang.String, int) 563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to find string", hw1.indexOf("World", 0) > 0); 564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Found string outside index", !(hw1.indexOf("Hello", 6) > 0)); 565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Did not accept valid negative starting position", 0, 566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hello1.indexOf("", -5)); 567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Reported wrong error code", 5, hello1.indexOf("", 5)); 568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong for empty in empty", 0, "".indexOf("", 0)); 569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#intern() 573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_intern() { 575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.intern() 576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Intern returned incorrect result", hw1.intern() == hw2 577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .intern()); 578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#lastIndexOf(int) 582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_lastIndexOfI() { 584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.lastIndexOf(int) 585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to return correct index", 5, hw1.lastIndexOf('W')); 586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned index for non-existent char", -1, hw1 587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf('Z')); 588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to return correct index", 1, "a\ud800\udc00" 589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf(0x10000)); 590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#lastIndexOf(int, int) 594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_lastIndexOfII() { 596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.lastIndexOf(int, int) 597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to return correct index", 5, hw1.lastIndexOf('W', 598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 6)); 599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned index for char out of specified range", -1, hw1 600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf('W', 4)); 601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned index for non-existent char", -1, hw1 602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf('Z', 9)); 603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#lastIndexOf(java.lang.String) 608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_lastIndexOfLjava_lang_String() { 610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.lastIndexOf(java.lang.String) 611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect index", 5, hw1.lastIndexOf("World")); 612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Found String outside of index", -1, hw1 613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf("HeKKKKKKKK")); 614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#lastIndexOf(java.lang.String, int) 618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_lastIndexOfLjava_lang_StringI() { 620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.lastIndexOf(java.lang.String, 621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect index", 5, hw1.lastIndexOf("World", 9)); 623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int result = hw1.lastIndexOf("Hello", 2); 624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Found String outside of index: " + result, result == 0); 625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Reported wrong error code", -1, hello1 626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf("", -5)); 627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Did not accept valid large starting position", 5, hello1 628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .lastIndexOf("", 5)); 629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#length() 633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_length() { 635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.lang.String.length() 636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid length returned", 11, comp11.length()); 637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#regionMatches(int, java.lang.String, int, int) 641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_regionMatchesILjava_lang_StringII() { 643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.lang.String.regionMatches(int, 644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String, int, int) 645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String bogusString = "xxcedkedkleiorem lvvwr e''' 3r3r 23r"; 646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("identical regions failed comparison", hw1.regionMatches(2, 648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw2, 2, 5)); 649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Different regions returned true", !hw1.regionMatches(2, 650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath bogusString, 2, 5)); 651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#regionMatches(boolean, int, java.lang.String, 655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *int, int) 656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_regionMatchesZILjava_lang_StringII() { 658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.lang.String.regionMatches(boolean, int, 659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String, int, int) 660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String bogusString = "xxcedkedkleiorem lvvwr e''' 3r3r 23r"; 662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("identical regions failed comparison", hw1.regionMatches( 664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath false, 2, hw2, 2, 5)); 665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("identical regions failed comparison with different cases", 666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1.regionMatches(true, 2, hw2, 2, 5)); 667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Different regions returned true", !hw1.regionMatches(true, 668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2, bogusString, 2, 5)); 669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("identical regions failed comparison with different cases", 670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1.regionMatches(false, 2, hw2, 2, 5)); 671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#replace(char, char) 675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_replaceCC() { 677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.replace(char, char) 678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed replace", "HezzoWorzd", hw1.replace('l', 'z')); 679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#replace(CharSequence, CharSequence) 683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_replaceLjava_langCharSequenceLjava_langCharSequence() { 685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed replace", "aaccdd", "aabbdd".replace( 686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new StringBuffer("bb"), "cc")); 687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed replace by bigger seq", "cccbccc", "aba".replace( 688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "a", "ccc")); 689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed replace by smaller seq", "$bba^", "$aaaaa^" 690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .replace(new StringBuilder("aa"), "b")); 691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to replace empty string", "%%a%%b%%c%%", 692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "abc".replace("", "%%")); 693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to replace with empty string", "aacc", 694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "aabbcc".replace("b", "")); 695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to replace in empty string", "abc", 696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "".replace("", "abc")); 697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#startsWith(java.lang.String) 701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_startsWithLjava_lang_String() { 703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.lang.String.startsWith(java.lang.String) 704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to find string", hw1.startsWith("Hello")); 705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Found incorrect string", !hw1.startsWith("T")); 706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#startsWith(java.lang.String, int) 710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_startsWithLjava_lang_StringI() { 712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.lang.String.startsWith(java.lang.String, 713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Failed to find string", hw1.startsWith("World", 5)); 715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Found incorrect string", !hw1.startsWith("Hello", 5)); 716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#substring(int) 720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_substringI() { 722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.substring(int) 723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect substring returned", "World", hw1.substring(5)); 724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("not identical", hw1.substring(0) == hw1); 725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#substring(int, int) 729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_substringII() { 731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.substring(int, int) 732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect substring returned", hw1.substring(0, 5).equals( 733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Hello") 734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && (hw1.substring(5, 10).equals("World"))); 735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("not identical", hw1.substring(0, hw1.length()) == hw1); 736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#substring(int, int) 740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_substringErrorMessage() { 742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1.substring(-1, 1); 744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (StringIndexOutOfBoundsException ex) { 745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String msg = ex.getMessage(); 746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Expected message to contain -1: " + msg, msg 747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .indexOf("-1") != -1); 748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1.substring(4, 1); 751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (StringIndexOutOfBoundsException ex) { 752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String msg = ex.getMessage(); 753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Expected message to contain -3: " + msg, msg 754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .indexOf("-3") != -1); 755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1.substring(0, 100); 758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (StringIndexOutOfBoundsException ex) { 759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String msg = ex.getMessage(); 760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Expected message to contain 100: " + msg, msg 761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .indexOf("100") != -1); 762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toCharArray() 767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toCharArray() { 769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method char [] java.lang.String.toCharArray() 770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = new String(buf, 0, buf.length); 772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] schars = s.toCharArray(); 773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < s.length(); i++) 774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned incorrect char aray", buf[i] == schars[i]); 775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toLowerCase() 779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toLowerCase() { 781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.toLowerCase() 782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("toLowerCase case conversion did not succeed", hwuc 783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toLowerCase().equals(hwlc)); 784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "a) Sigma has ordinary lower case value when isolated with Unicode 4.0", 787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "\u03c3", "\u03a3".toLowerCase()); 788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "b) Sigma has final form lower case value at end of word with Unicode 4.0", 790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "a\u03c2", "a\u03a3".toLowerCase()); 791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("toLowerCase case conversion did not succeed", 793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "\uD801\uDC44", "\uD801\uDC1C".toLowerCase()); 794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toLowerCase(java.util.Locale) 798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toLowerCaseLjava_util_Locale() { 800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String 801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.toLowerCase(java.util.Locale) 802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("toLowerCase case conversion did not succeed", hwuc 803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toLowerCase(java.util.Locale.getDefault()).equals(hwlc)); 804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid \\u0049 for English", "\u0069", "\u0049" 805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toLowerCase(Locale.ENGLISH)); 806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid \\u0049 for Turkish", "\u0131", "\u0049" 807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toLowerCase(new Locale("tr", ""))); 808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toString() 812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toString() { 814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.toString() 815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string returned", hw1.toString().equals(hw1)); 816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toUpperCase() 820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toUpperCase() { 822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.toUpperCase() 823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned string is not UpperCase", hwlc.toUpperCase() 824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(hwuc)); 825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong conversion", "SS", "\u00df".toUpperCase()); 827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = "a\u00df\u1f56"; 829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Invalid conversion", !s.toUpperCase().equals(s)); 830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("toUpperCase case conversion did not succeed", 832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "\uD801\uDC1C", "\uD801\uDC44".toUpperCase()); 833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toUpperCase(java.util.Locale) 837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toUpperCaseLjava_util_Locale() { 839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String 840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.toUpperCase(java.util.Locale) 841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned string is not UpperCase", hwlc.toUpperCase() 842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(hwuc)); 843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid \\u0069 for English", "\u0049", "\u0069" 844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.ENGLISH)); 845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid \\u0069 for Turkish", "\u0130", "\u0069" 846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(new Locale("tr", ""))); 847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#toUpperCase(java.util.Locale) 851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toUpperCaseLjava_util_Locale_subtest0() { 853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String 854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.toUpperCase(java.util.Locale) 855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#trim() 859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_trim() { 861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.trim() 862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect string returned", " HelloWorld ".trim().equals( 863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath hw1)); 864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(char[]) 868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOf$C() { 870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(char []) 871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Returned incorrect String", "World", String.valueOf(buf)); 872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(char[], int, int) 876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOf$CII() { 878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(char [], 879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int, int) 880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] t = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' }; 881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("copyValueOf returned incorrect String", "World", String 882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .valueOf(t, 5, 5)); 883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(char) 887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfC() { 889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(char) 890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < 65536; i++) 891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect valueOf(char) returned: " + i, String 892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .valueOf((char) i).charAt(0) == (char) i); 893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(double) 897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfD() { 899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(double) 900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect double string returned", 901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "1.7976931348623157E308", String.valueOf(Double.MAX_VALUE)); 902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(float) 906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfF() { 908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(float) 909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("incorrect float string returned--got: " 910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + String.valueOf(1.0F) + " wanted: 1.0", String.valueOf(1.0F) 911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("1.0")); 912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("incorrect float string returned--got: " 913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + String.valueOf(0.9F) + " wanted: 0.9", String.valueOf(0.9F) 914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("0.9")); 915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("incorrect float string returned--got: " 916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + String.valueOf(109.567F) + " wanted: 109.567", String 917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .valueOf(109.567F).equals("109.567")); 918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(int) 922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfI() { 924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(int) 925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("returned invalid int string", "1", String.valueOf(1)); 926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(long) 930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfJ() { 932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(long) 933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("returned incorrect long string", "927654321098", String 934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .valueOf(927654321098L)); 935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(java.lang.Object) 939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfLjava_lang_Object() { 941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String 942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.valueOf(java.lang.Object) 943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect Object string returned", obj.toString().equals( 944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String.valueOf(obj))); 945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#valueOf(boolean) 949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfZ() { 951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.lang.String.valueOf(boolean) 952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect boolean string returned", String.valueOf(false) 953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("false") 954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && (String.valueOf(true).equals("true"))); 955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#contentEquals(CharSequence cs) 959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_contentEqualsLjava_lang_CharSequence() { 961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String 962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String.contentEquals(CharSequence cs) 963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse("Incorrect result of compare", "qwerty".contentEquals("")); 964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.lang.String#format(Locale, String, Object[]) 968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 9690c0afb8fbd41051b688f3d06fcd96b89db6d4bceAndreas Gampe @SuppressWarnings({ "boxing", "FormatString" }) 970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_format() { 971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("13% of sum is 0x11", String.format("%d%% of %s is 0x%x", 972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 13, "sum", 17)); 973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("empty format", "", String.format("", 123, this)); 974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String.format(null); 976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("NPE is expected on null format"); 977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException ok) { 978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 981