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