1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.CharacterIterator;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.StringCharacterIterator;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class StringCharacterIteratorTest extends TestCase {
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.StringCharacterIterator(String,
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        int)
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ConstructorI() {
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringCharacterIterator("value", 0));
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringCharacterIterator("value", "value".length()));
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringCharacterIterator("", 0));
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator(null, 0);
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: no null pointer");
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", -1);
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 1: no illegal argument");
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", "value".length() + 1);
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 2: no illegal argument");
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator(String, int, int, int)
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_ConstructorIII() {
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringCharacterIterator("value", 0, "value".length(),
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				0));
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringCharacterIterator("value", 0, "value".length(),
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				1));
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotNull(new StringCharacterIterator("", 0, 0, 0));
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator(null, 0, 0, 0);
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no null pointer");
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", -1, "value".length(), 0);
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument: invalid begin");
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", 0, "value".length() + 1, 0);
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument: invalid end");
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", 2, 1, 0);
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument: start greater than end");
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", 2, 1, 2);
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument: start greater than end");
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", 2, 4, 1);
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument: location greater than start");
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			new StringCharacterIterator("value", 0, 2, 3);
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument: location greater than start");
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.equals(Object)
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equalsLjava_lang_Object() {
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(sci0, sci0);
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(sci0.equals(null));
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(sci0.equals("fixture"));
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator sci1 = new StringCharacterIterator("fixture");
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(sci0, sci1);
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sci1.next();
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(sci0.equals(sci1));
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		sci0.next();
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(sci0, sci1);
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it2 = new StringCharacterIterator("xxstinx", 2,
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Range is equal", !it1.equals(it2));
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it3 = new StringCharacterIterator("testing", 2,
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 2);
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it3.setIndex(4);
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Not equal", it1.equals(it3));
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.clone()
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_clone() {
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertSame(sci0, sci0);
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator sci1 = (StringCharacterIterator) sci0.clone();
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertNotSame(sci0, sci1);
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(sci0, sci1);
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing", 2,
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator clone = (StringCharacterIterator) it.clone();
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Clone not equal", it.equals(clone));
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.current()
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_current() {
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.current());
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.next();
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('i', fixture.current());
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                StringCharacterIterator it =
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong current char", 'i', it.current());
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.first()
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_first() {
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.first());
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.next();
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.first());
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.first());
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				2);
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('i', fixture.first());
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                StringCharacterIterator it1 =
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong first char", 's', it1.first());
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong next char", 't', it1.next());
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                it1 = new StringCharacterIterator("testing", 2, 2, 2);
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Not DONE", it1.first() == CharacterIterator.DONE);
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.getBeginIndex()
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getBeginIndex() {
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getBeginIndex());
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getBeginIndex());
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				2);
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(1, fixture.getBeginIndex());
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                StringCharacterIterator it1 =
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong begin index 2", 2, it1.getBeginIndex());
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.getEndIndex()
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getEndIndex() {
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length(), fixture.getEndIndex());
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length(), fixture.getEndIndex());
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				2);
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length(), fixture.getEndIndex());
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, 4, 2);
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(4, fixture.getEndIndex());
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                StringCharacterIterator it1 =
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong end index 6", 6, it1.getEndIndex());
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.getIndex()
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testGetIndex() {
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getIndex());
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(1, fixture.getIndex());
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				2);
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(2, fixture.getIndex());
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, 4, 2);
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(2, fixture.getIndex());
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.last()
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testLast() {
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.last());
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.next();
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.last());
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.last());
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				2);
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.last());
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, 4, 2);
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('t', fixture.last());
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.next()
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_next() {
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getIndex());
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('i', fixture.next());
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(1, fixture.getIndex());
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('x', fixture.next());
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(2, fixture.getIndex());
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('t', fixture.next());
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(3, fixture.getIndex());
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('u', fixture.next());
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(4, fixture.getIndex());
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('r', fixture.next());
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, fixture.getIndex());
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.next());
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, fixture.getIndex());
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, fixture.getIndex());
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, fixture.getIndex());
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, fixture.getIndex());
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 3);
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char result = it1.next();
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrong next char1", 'i', result);
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrong next char2", 'n', it1.next());
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Wrong next char3", it1.next() == CharacterIterator.DONE);
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Wrong next char4", it1.next() == CharacterIterator.DONE);
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int index = it1.getIndex();
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrong index", 6, index);
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Wrong current char",
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                   it1.current() == CharacterIterator.DONE);
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.previous()
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_previous() {
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.previous());
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('i', fixture.next());
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('x', fixture.next());
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('t', fixture.next());
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('u', fixture.next());
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('r', fixture.next());
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.next());
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(7, fixture.getIndex());
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.previous());
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(6, fixture.getIndex());
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('r', fixture.previous());
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(5, fixture.getIndex());
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('u', fixture.previous());
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(4, fixture.getIndex());
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('t', fixture.previous());
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(3, fixture.getIndex());
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('x', fixture.previous());
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(2, fixture.getIndex());
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('i', fixture.previous());
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(1, fixture.getIndex());
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.previous());
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getIndex());
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.previous());
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getIndex());
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                StringCharacterIterator it1 =
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong previous char1", 't', it1.previous());
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong previous char2", 's', it1.previous());
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Wrong previous char3",
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                           it1.previous() == CharacterIterator.DONE);
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Wrong previous char4",
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                           it1.previous() == CharacterIterator.DONE);
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong index", 2, it1.getIndex());
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong current char", 's', it1.current());
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.setIndex(int)
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_setIndex() {
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		while (fixture.next() != CharacterIterator.DONE) {
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// empty
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("fixture".length(), fixture.getIndex());
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.setIndex(0);
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0, fixture.getIndex());
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.current());
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.setIndex("fixture".length() - 1);
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('e', fixture.current());
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fixture.setIndex(-1);
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument");
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fixture.setIndex("fixture".length() + 1);
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no illegal argument");
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.text.StringCharacterIterator.setText(String)
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_setText() {
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		fixture.setText("fix");
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('f', fixture.current());
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals('x', fixture.last());
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fixture.setText(null);
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("no null pointer");
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String)
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_lang_String() {
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(new StringCharacterIterator("value"));
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(new StringCharacterIterator(""));
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new StringCharacterIterator(null);
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Assert 0: no null pointer");
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing");
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong begin index", 0, it.getBeginIndex());
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong end index", 7, it.getEndIndex());
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current index", 0, it.getIndex());
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current char", 't', it.current());
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong next char", 'e', it.next());
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String,
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *        int)
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_lang_StringI() {
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing", 3);
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong begin index", 0, it.getBeginIndex());
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong end index", 7, it.getEndIndex());
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current index", 3, it.getIndex());
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current char", 't', it.current());
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong next char", 'i', it.next());
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String,
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *        int, int, int)
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_lang_StringIII() {
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing", 2,
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong begin index", 2, it.getBeginIndex());
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong end index", 6, it.getEndIndex());
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current index", 4, it.getIndex());
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current char", 'i', it.current());
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong next char", 'n', it.next());
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#getIndex()
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getIndex() {
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong index 4", 4, it1.getIndex());
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it1.next();
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong index 5", 5, it1.getIndex());
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it1.last();
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong index 4/2", 5, it1.getIndex());
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#hashCode()
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode() {
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it2 = new StringCharacterIterator("xxstinx", 2,
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Hash is equal", it1.hashCode() != it2.hashCode());
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it3 = new StringCharacterIterator("testing", 2,
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 2);
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Hash equal1", it1.hashCode() != it3.hashCode());
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it3 = new StringCharacterIterator("testing", 0, 6, 4);
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Hash equal2", it1.hashCode() != it3.hashCode());
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it3 = new StringCharacterIterator("testing", 2, 5, 4);
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Hash equal3", it1.hashCode() != it3.hashCode());
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it3 = new StringCharacterIterator("froging", 2, 6, 4);
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Hash equal4", it1.hashCode() != it3.hashCode());
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(sci0.hashCode(), sci0.hashCode());
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator sci1 = new StringCharacterIterator("fixture");
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(sci0.hashCode(), sci1.hashCode());
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sci1.next();
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        sci0.next();
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(sci0.hashCode(), sci1.hashCode());
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#last()
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_last() {
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 3);
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong last char", 'n', it1.last());
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong previous char", 'i', it1.previous());
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it1 = new StringCharacterIterator("testing", 2, 2, 2);
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Not DONE", it1.last() == CharacterIterator.DONE);
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#setIndex(int)
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setIndexI() {
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong result1", 's', it1.setIndex(2));
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char result = it1.next();
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Wrong next char: " + result, result == 't');
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Wrong result2", it1.setIndex(6) == CharacterIterator.DONE);
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong previous char", 'n', it1.previous());
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.text.StringCharacterIterator#setText(java.lang.String)
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_setTextLjava_lang_String() {
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6, 4);
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        it1.setText("frog");
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong begin index", 0, it1.getBeginIndex());
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong end index", 4, it1.getEndIndex());
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong current index", 0, it1.getIndex());
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
522