1994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes/*
2994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
3994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * contributor license agreements.  See the NOTICE file distributed with
4994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * this work for additional information regarding copyright ownership.
5994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
6994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * (the "License"); you may not use this file except in compliance with
7994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * the License.  You may obtain a copy of the License at
8994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes *
9994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes *
11994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * Unless required by applicable law or agreed to in writing, software
12994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
13994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * See the License for the specific language governing permissions and
15994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * limitations under the License.
16994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */
17994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
18994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespackage org.apache.harmony.tests.java.text;
19994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
20994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.CharacterIterator;
21994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.StringCharacterIterator;
22994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
23994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport junit.framework.TestCase;
24994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
25994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespublic class StringCharacterIteratorTest extends TestCase {
26994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
27994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
28994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.StringCharacterIterator(String,
29994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 *        int)
30994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
31994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_ConstructorI() {
32994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotNull(new StringCharacterIterator("value", 0));
33994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotNull(new StringCharacterIterator("value", "value".length()));
34994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotNull(new StringCharacterIterator("", 0));
35994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
36994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator(null, 0);
37994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("Assert 0: no null pointer");
38994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (NullPointerException e) {
39994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// expected
40994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
41994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
42994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
43994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", -1);
44994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("Assert 1: no illegal argument");
45994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
46994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// expected
47994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
48994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
49994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
50994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", "value".length() + 1);
51994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("Assert 2: no illegal argument");
52994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
53994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// expected
54994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
55994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
56994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
57994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
58994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator(String, int, int, int)
59994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
60994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_ConstructorIII() {
61994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotNull(new StringCharacterIterator("value", 0, "value".length(),
62994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				0));
63994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotNull(new StringCharacterIterator("value", 0, "value".length(),
64994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				1));
65994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotNull(new StringCharacterIterator("", 0, 0, 0));
66994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
67994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
68994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator(null, 0, 0, 0);
69994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no null pointer");
70994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (NullPointerException e) {
71994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
72994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
73994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
74994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
75994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", -1, "value".length(), 0);
76994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument: invalid begin");
77994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
78994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
79994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
80994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
81994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
82994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", 0, "value".length() + 1, 0);
83994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument: invalid end");
84994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
85994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
86994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
87994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
88994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
89994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", 2, 1, 0);
90994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument: start greater than end");
91994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
92994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
93994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
94994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
95994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
96994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", 2, 1, 2);
97994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument: start greater than end");
98994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
99994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
100994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
101994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
102994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
103994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", 2, 4, 1);
104994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument: location greater than start");
105994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
106994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
107994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
108994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
109994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
110994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			new StringCharacterIterator("value", 0, 2, 3);
111994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument: location greater than start");
112994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
113994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// Expected
114994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
115994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
116994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
117994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
118994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.equals(Object)
119994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
120994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_equalsLjava_lang_Object() {
121994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
122994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(sci0, sci0);
123994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertFalse(sci0.equals(null));
124994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertFalse(sci0.equals("fixture"));
125994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
126994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator sci1 = new StringCharacterIterator("fixture");
127994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(sci0, sci1);
128994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
129994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		sci1.next();
130994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertFalse(sci0.equals(sci1));
131994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		sci0.next();
132994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(sci0, sci1);
133994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
134994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
135994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
136994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it2 = new StringCharacterIterator("xxstinx", 2,
137994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
138994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Range is equal", !it1.equals(it2));
139994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it3 = new StringCharacterIterator("testing", 2,
140994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 2);
141994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it3.setIndex(4);
142994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Not equal", it1.equals(it3));
143994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
144994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
145994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
146994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.clone()
147994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
148994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_clone() {
149994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
150994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertSame(sci0, sci0);
151994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator sci1 = (StringCharacterIterator) sci0.clone();
152994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertNotSame(sci0, sci1);
153994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(sci0, sci1);
154994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
155994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing", 2,
156994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
157994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator clone = (StringCharacterIterator) it.clone();
158994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Clone not equal", it.equals(clone));
159994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
160994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
161994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
162994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.current()
163994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
164994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_current() {
165994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
166994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.current());
167994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture.next();
168994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('i', fixture.current());
169994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
170994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                StringCharacterIterator it =
171994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
172994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong current char", 'i', it.current());
173994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
174994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
175994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
176994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.first()
177994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
178994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_first() {
179994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
180994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.first());
181994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture.next();
182994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.first());
183994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
184994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.first());
185994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
186994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				2);
187994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('i', fixture.first());
188994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
189994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                StringCharacterIterator it1 =
190994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
191994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong first char", 's', it1.first());
192994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong next char", 't', it1.next());
193994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                it1 = new StringCharacterIterator("testing", 2, 2, 2);
194994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertTrue("Not DONE", it1.first() == CharacterIterator.DONE);
195994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
196994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
197994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
198994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.getBeginIndex()
199994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
200994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_getBeginIndex() {
201994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
202994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getBeginIndex());
203994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
204994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getBeginIndex());
205994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
206994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				2);
207994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(1, fixture.getBeginIndex());
208994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
209994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                StringCharacterIterator it1 =
210994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
211994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong begin index 2", 2, it1.getBeginIndex());
212994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
213994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
214994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
215994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.getEndIndex()
216994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
217994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_getEndIndex() {
218994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
219994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("fixture".length(), fixture.getEndIndex());
220994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
221994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("fixture".length(), fixture.getEndIndex());
222994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
223994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				2);
224994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("fixture".length(), fixture.getEndIndex());
225994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, 4, 2);
226994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(4, fixture.getEndIndex());
227994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
228994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                StringCharacterIterator it1 =
229994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
230994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong end index 6", 6, it1.getEndIndex());
231994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
232994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
233994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
234994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.getIndex()
235994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
236994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void testGetIndex() {
237994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
238994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getIndex());
239994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
240994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(1, fixture.getIndex());
241994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
242994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				2);
243994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(2, fixture.getIndex());
244994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, 4, 2);
245994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(2, fixture.getIndex());
246994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
247994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
248994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
249994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.last()
250994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
251994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void testLast() {
252994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
253994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.last());
254994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture.next();
255994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.last());
256994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1);
257994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.last());
258994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
259994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes				2);
260994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.last());
261994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture = new StringCharacterIterator("fixture", 1, 4, 2);
262994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('t', fixture.last());
263994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
264994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
265994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
266994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.next()
267994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
268994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_next() {
269994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
270994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getIndex());
271994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('i', fixture.next());
272994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(1, fixture.getIndex());
273994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('x', fixture.next());
274994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(2, fixture.getIndex());
275994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('t', fixture.next());
276994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(3, fixture.getIndex());
277994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('u', fixture.next());
278994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(4, fixture.getIndex());
279994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('r', fixture.next());
280994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(5, fixture.getIndex());
281994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.next());
282994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(6, fixture.getIndex());
283994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
284994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(7, fixture.getIndex());
285994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
286994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(7, fixture.getIndex());
287994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
288994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(7, fixture.getIndex());
289994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
290994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
291994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 3);
292994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        char result = it1.next();
293994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertEquals("Wrong next char1", 'i', result);
294994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertEquals("Wrong next char2", 'n', it1.next());
295994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Wrong next char3", it1.next() == CharacterIterator.DONE);
296994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Wrong next char4", it1.next() == CharacterIterator.DONE);
297994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        int index = it1.getIndex();
298994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertEquals("Wrong index", 6, index);
299994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Wrong current char",
300994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                   it1.current() == CharacterIterator.DONE);
301994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
302994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
303994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
304994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.previous()
305994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
306994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_previous() {
307994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
308994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.previous());
309994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('i', fixture.next());
310994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('x', fixture.next());
311994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('t', fixture.next());
312994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('u', fixture.next());
313994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('r', fixture.next());
314994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.next());
315994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
316994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
317994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.next());
318994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(7, fixture.getIndex());
319994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.previous());
320994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(6, fixture.getIndex());
321994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('r', fixture.previous());
322994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(5, fixture.getIndex());
323994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('u', fixture.previous());
324994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(4, fixture.getIndex());
325994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('t', fixture.previous());
326994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(3, fixture.getIndex());
327994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('x', fixture.previous());
328994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(2, fixture.getIndex());
329994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('i', fixture.previous());
330994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(1, fixture.getIndex());
331994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.previous());
332994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getIndex());
333994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(CharacterIterator.DONE, fixture.previous());
334994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getIndex());
335994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
336994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                StringCharacterIterator it1 =
337994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                    new StringCharacterIterator("testing", 2, 6, 4);
338994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong previous char1", 't', it1.previous());
339994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong previous char2", 's', it1.previous());
340994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertTrue("Wrong previous char3",
341994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                           it1.previous() == CharacterIterator.DONE);
342994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertTrue("Wrong previous char4",
343994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                           it1.previous() == CharacterIterator.DONE);
344994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong index", 2, it1.getIndex());
345994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                assertEquals("Wrong current char", 's', it1.current());
346994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
347994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
348994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
349994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.setIndex(int)
350994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
351994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_setIndex() {
352994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
353994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		while (fixture.next() != CharacterIterator.DONE) {
354994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// empty
355994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
356994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("fixture".length(), fixture.getIndex());
357994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture.setIndex(0);
358994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals(0, fixture.getIndex());
359994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.current());
360994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture.setIndex("fixture".length() - 1);
361994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('e', fixture.current());
362994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
363994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fixture.setIndex(-1);
364994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument");
365994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
366994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// expected
367994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
368994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
369994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
370994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fixture.setIndex("fixture".length() + 1);
371994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no illegal argument");
372994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (IllegalArgumentException e) {
373994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// expected
374994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
375994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
376994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
377994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	/**
378994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 * @tests java.text.StringCharacterIterator.setText(String)
379994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	 */
380994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	public void test_setText() {
381994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		StringCharacterIterator fixture = new StringCharacterIterator("fixture");
382994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		fixture.setText("fix");
383994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('f', fixture.current());
384994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals('x', fixture.last());
385994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
386994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		try {
387994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fixture.setText(null);
388994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			fail("no null pointer");
389994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		} catch (NullPointerException e) {
390994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes			// expected
391994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		}
392994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes	}
393994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
394994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
395994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String)
396994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
397994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_ConstructorLjava_lang_String() {
398994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertNotNull(new StringCharacterIterator("value"));
399994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertNotNull(new StringCharacterIterator(""));
400994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        try {
401994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes            new StringCharacterIterator(null);
402994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes            fail("Assert 0: no null pointer");
403994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        } catch (NullPointerException e) {
404994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes            // expected
405994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        }
406994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
407994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing");
408994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong begin index", 0, it.getBeginIndex());
409994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong end index", 7, it.getEndIndex());
410994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current index", 0, it.getIndex());
411994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current char", 't', it.current());
412994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong next char", 'e', it.next());
413994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
414994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
415994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
416994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String,
417994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     *        int)
418994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
419994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_ConstructorLjava_lang_StringI() {
420994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing", 3);
421994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong begin index", 0, it.getBeginIndex());
422994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong end index", 7, it.getEndIndex());
423994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current index", 3, it.getIndex());
424994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current char", 't', it.current());
425994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong next char", 'i', it.next());
426994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
427994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
428994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
429994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String,
430994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     *        int, int, int)
431994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
432994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_ConstructorLjava_lang_StringIII() {
433994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it = new StringCharacterIterator("testing", 2,
434994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
435994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong begin index", 2, it.getBeginIndex());
436994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong end index", 6, it.getEndIndex());
437994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current index", 4, it.getIndex());
438994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current char", 'i', it.current());
439994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong next char", 'n', it.next());
440994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
441994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
442994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
443994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#getIndex()
444994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
445994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_getIndex() {
446994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
447994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
448994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong index 4", 4, it1.getIndex());
449994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it1.next();
450994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong index 5", 5, it1.getIndex());
451994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it1.last();
452994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong index 4/2", 5, it1.getIndex());
453994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
454994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
455994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
456994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#hashCode()
457994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
458994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_hashCode() {
459994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
460994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
461994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it2 = new StringCharacterIterator("xxstinx", 2,
462994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
463994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Hash is equal", it1.hashCode() != it2.hashCode());
464994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it3 = new StringCharacterIterator("testing", 2,
465994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 2);
466994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Hash equal1", it1.hashCode() != it3.hashCode());
467994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it3 = new StringCharacterIterator("testing", 0, 6, 4);
468994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Hash equal2", it1.hashCode() != it3.hashCode());
469994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it3 = new StringCharacterIterator("testing", 2, 5, 4);
470994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Hash equal3", it1.hashCode() != it3.hashCode());
471994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it3 = new StringCharacterIterator("froging", 2, 6, 4);
472994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Hash equal4", it1.hashCode() != it3.hashCode());
473994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
474994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
475994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertEquals(sci0.hashCode(), sci0.hashCode());
476994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
477994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator sci1 = new StringCharacterIterator("fixture");
478994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertEquals(sci0.hashCode(), sci1.hashCode());
479994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
480994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        sci1.next();
481994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        sci0.next();
482994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertEquals(sci0.hashCode(), sci1.hashCode());
483994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
484994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
485994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
486994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#last()
487994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
488994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_last() {
489994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
490994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 3);
491994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong last char", 'n', it1.last());
492994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong previous char", 'i', it1.previous());
493994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it1 = new StringCharacterIterator("testing", 2, 2, 2);
494994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Not DONE", it1.last() == CharacterIterator.DONE);
495994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
496994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
497994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
498994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#setIndex(int)
499994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
500994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_setIndexI() {
501994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
502994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
503994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong result1", 's', it1.setIndex(2));
504994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        char result = it1.next();
505994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Wrong next char: " + result, result == 't');
506994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        assertTrue("Wrong result2", it1.setIndex(6) == CharacterIterator.DONE);
507994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong previous char", 'n', it1.previous());
508994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
509994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes
510994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    /**
511994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     * @tests java.text.StringCharacterIterator#setText(java.lang.String)
512994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes     */
513994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    public void test_setTextLjava_lang_String() {
514994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
515994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes                6, 4);
516994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes        it1.setText("frog");
517994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong begin index", 0, it1.getBeginIndex());
518994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong end index", 4, it1.getEndIndex());
519994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes		assertEquals("Wrong current index", 0, it1.getIndex());
520994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes    }
521994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes}
522