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 Hughespackage org.apache.harmony.luni.tests.java.util;
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.Method;
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Comparator;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Date;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.LinkedList;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.List;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_UnmodifiableCollectionTest;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ArraysTest extends junit.framework.TestCase {
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public static class ReversedIntegerComparator implements Comparator {
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int compare(Object o1, Object o2) {
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return -(((Integer) o1).compareTo((Integer) o2));
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean equals(Object o1, Object o2) {
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return ((Integer) o1).compareTo((Integer) o2) == 0;
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    static class MockComparable implements Comparable{
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public int compareTo(Object o) {
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return 0;
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	final static int arraySize = 100;
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static Object[] objArray;
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static boolean[] booleanArray;
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static byte[] byteArray;
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static char[] charArray;
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static double[] doubleArray;
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static float[] floatArray;
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static int[] intArray;
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static long[] longArray;
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static Object[] objectArray;
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static short[] shortArray;
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	{
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		objArray = new Object[arraySize];
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < objArray.length; i++)
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objArray[i] = new Integer(i);
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#asList(java.lang.Object[])
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_asList$Ljava_lang_Object() {
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.util.List
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.util.Arrays.asList(java.lang.Object [])
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		List convertedList = Arrays.asList(objectArray);
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Array and List converted from array do not contain identical elements",
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					convertedList.get(counter) == objectArray[counter]);
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		convertedList.set(50, new Integer(1000));
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("set/get did not work on coverted list", convertedList.get(
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				50).equals(new Integer(1000)));
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		convertedList.set(50, new Integer(50));
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		new Support_UnmodifiableCollectionTest("", convertedList).runTest();
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] myArray = (Object[]) (objectArray.clone());
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		myArray[30] = null;
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		myArray[60] = null;
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		convertedList = Arrays.asList(myArray);
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Array and List converted from array do not contain identical elements",
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					convertedList.get(counter) == myArray[counter]);
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.asList((Object[])null);
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("asList with null arg didn't throw NPE");
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Expected
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(byte[], byte)
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$BB() {
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(byte [], byte)
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (byte counter = 0; counter < arraySize; counter++)
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Binary search on byte[] answered incorrect position",
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(byteArray, counter) == counter);
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(intArray, (byte) -1));
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(intArray, (byte) arraySize) == -(arraySize + 1));
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (byte counter = 0; counter < arraySize; counter++)
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			byteArray[counter] -= 50;
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (byte counter = 0; counter < arraySize; counter++)
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on byte[] involving negative numbers answered incorrect position",
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(byteArray, (byte) (counter - 50)) == counter);
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(char[], char)
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$CC() {
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(char [], char)
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (char counter = 0; counter < arraySize; counter++)
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on char[] answered incorrect position",
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(charArray, (char) (counter + 1)) == counter);
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(charArray, '\u0000'));
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(charArray, (char) (arraySize + 1)) == -(arraySize + 1));
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(double[], double)
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$DD() {
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(double [], double)
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on double[] answered incorrect position",
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(doubleArray, (double) counter) == (double) counter);
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(doubleArray, (double) -1));
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(doubleArray, (double) arraySize) == -(arraySize + 1));
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			doubleArray[counter] -= (double) 50;
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on double[] involving negative numbers answered incorrect position",
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(doubleArray, (double) (counter - 50)) == (double) counter);
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] specials = new double[] { Double.NEGATIVE_INFINITY,
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-Double.MAX_VALUE, -2d, -Double.MIN_VALUE, -0d, 0d,
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.MIN_VALUE, 2d, Double.MAX_VALUE,
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.POSITIVE_INFINITY, Double.NaN };
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < specials.length; i++) {
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			int result = Arrays.binarySearch(specials, specials[i]);
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(specials[i] + " invalid: " + result, result == i);
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("-1d", -4, Arrays.binarySearch(specials, -1d));
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("1d", -8, Arrays.binarySearch(specials, 1d));
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(float[], float)
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$FF() {
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(float [], float)
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on float[] answered incorrect position",
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(floatArray, (float) counter) == (float) counter);
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(floatArray, (float) -1));
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(floatArray, (float) arraySize) == -(arraySize + 1));
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			floatArray[counter] -= (float) 50;
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on float[] involving negative numbers answered incorrect position",
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(floatArray, (float) counter - 50) == (float) counter);
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] specials = new float[] { Float.NEGATIVE_INFINITY,
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-Float.MAX_VALUE, -2f, -Float.MIN_VALUE, -0f, 0f,
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.MIN_VALUE, 2f, Float.MAX_VALUE, Float.POSITIVE_INFINITY,
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.NaN };
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < specials.length; i++) {
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			int result = Arrays.binarySearch(specials, specials[i]);
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(specials[i] + " invalid: " + result, result == i);
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("-1f", -4, Arrays.binarySearch(specials, -1f));
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("1f", -8, Arrays.binarySearch(specials, 1f));
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(int[], int)
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$II() {
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(int [], int)
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Binary search on int[] answered incorrect position",
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(intArray, counter) == counter);
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(intArray, -1));
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Binary search succeeded for value not present in array 2",
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(intArray, arraySize) == -(arraySize + 1));
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			intArray[counter] -= 50;
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on int[] involving negative numbers answered incorrect position",
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(intArray, counter - 50) == counter);
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(long[], long)
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$JJ() {
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(long [], long)
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (long counter = 0; counter < arraySize; counter++)
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Binary search on long[] answered incorrect position",
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(longArray, counter) == counter);
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(longArray, (long) -1));
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(longArray, (long) arraySize) == -(arraySize + 1));
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (long counter = 0; counter < arraySize; counter++)
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			longArray[(int) counter] -= (long) 50;
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (long counter = 0; counter < arraySize; counter++)
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on long[] involving negative numbers answered incorrect position",
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(longArray, counter - (long) 50) == counter);
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(java.lang.Object[],
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.lang.Object)
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$Ljava_lang_ObjectLjava_lang_Object() {
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(java.lang.Object
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// [], java.lang.Object)
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for non-comparable value in empty array",
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(new Object[] {}, new Object()));
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for comparable value in empty array",
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(new Object[] {}, new Integer(-1)));
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on Object[] answered incorrect position",
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(objectArray, objArray[counter]) == counter);
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(objectArray, new Integer(-1)));
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(objectArray, new Integer(arraySize)) == -(arraySize + 1));
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object object = new Object();
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] objects = new MockComparable[] { new MockComparable() };
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Should always return 0", 0, Arrays.binarySearch(objects, object));
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] string_objects = new String[] { "one" };
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(string_objects, object);
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No expected ClassCastException");
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ClassCastException e) {
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(java.lang.Object[],
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.lang.Object, java.util.Comparator)
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$Ljava_lang_ObjectLjava_lang_ObjectLjava_util_Comparator() {
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(java.lang.Object
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// [], java.lang.Object, java.util.Comparator)
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Comparator comp = new ReversedIntegerComparator();
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objectArray[counter] = objArray[arraySize - counter - 1];
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 1",
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(objectArray, new Integer(-1), comp) == -(arraySize + 1));
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 2",
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(objectArray, new Integer(arraySize), comp));
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on Object[] with custom comparator answered incorrect position",
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(objectArray, objArray[counter], comp) == arraySize
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							- counter - 1);
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#binarySearch(short[], short)
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearch$SS() {
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Arrays.binarySearch(short [], short)
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (short counter = 0; counter < arraySize; counter++)
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Binary search on short[] answered incorrect position",
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(shortArray, counter) == counter);
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Binary search succeeded for value not present in array 1",
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				-1, Arrays.binarySearch(intArray, (short) -1));
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"Binary search succeeded for value not present in array 2",
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.binarySearch(intArray, (short) arraySize) == -(arraySize + 1));
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (short counter = 0; counter < arraySize; counter++)
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			shortArray[counter] -= 50;
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (short counter = 0; counter < arraySize; counter++)
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Binary search on short[] involving negative numbers answered incorrect position",
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					Arrays.binarySearch(shortArray, (short) (counter - 50)) == counter);
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_byte() {
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new byte[] { '0' }, 0, 0,
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) '1'));
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new byte[] { '0' }, 1, 1,
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) '1'));
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new byte[] { '0', '1' }, 1, 1,
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) '2'));
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new byte[] { '0', '1' }, 2, 2,
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) '2'));
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_char() {
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new char[] { '0' }, 0, 0, '1'));
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new char[] { '0' }, 1, 1, '1'));
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .binarySearch(new char[] { '0', '1' }, 1, 1, '2'));
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .binarySearch(new char[] { '0', '1' }, 2, 2, '2'));
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_float() {
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new float[] { -1.0f }, 0, 0, 0.0f));
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new float[] { -1.0f }, 1, 1, 0.0f));
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new float[] { -1.0f, 0f }, 1, 1,
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                1f));
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new float[] { -1.0f, 0f }, 2, 2,
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                1f));
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_double() {
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new double[] { -1.0 }, 0, 0, 0.0));
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new double[] { -1.0 }, 1, 1, 0.0));
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new double[] { -1.0, 0 }, 1, 1, 1));
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new double[] { -1.0, 0 }, 2, 2, 1));
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_int() {
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new int[] { -1 }, 0, 0, 0));
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new int[] { -1 }, 1, 1, 0));
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new int[] { -1, 0 }, 1, 1, 1));
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new int[] { -1, 0 }, 2, 2, 1));
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_long() {
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new long[] { -1l }, 0, 0, 0l));
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new long[] { -1l }, 1, 1, 0l));
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new long[] { -1l, 0l }, 1, 1, 1l));
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new long[] { -1l, 0l }, 2, 2, 1l));
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_short() {
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new short[] { (short) -1 }, 0, 0,
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (short) 0));
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new short[] { (short) -1 }, 1, 1,
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (short) 0));
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new short[] { (short) -1,
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (short) 0 }, 1, 1, (short) 1));
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new short[] { (short) -1,
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (short) 0 }, 2, 2, (short) 1));
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_Object() {
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new Object[] { new Integer(-1) },
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                0, 0, new Integer(0)));
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new Object[] { new Integer(-1) },
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                1, 1, new Integer(0)));
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new Object[] { new Integer(-1),
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Integer(0) }, 1, 1, new Integer(1)));
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new Object[] { new Integer(-1),
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Integer(0) }, 2, 2, new Integer(1)));
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Arrays_binaraySearch_T() {
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ReversedIntegerComparator reversedComparator = new ReversedIntegerComparator();
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(new Integer[] { new Integer(-1) },
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                0, 0, new Integer(0), reversedComparator));
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new Integer[] { new Integer(-1) },
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                1, 1, new Integer(0), reversedComparator));
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2, Arrays.binarySearch(new Integer[] { new Integer(-1),
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Integer(0) }, 1, 1, new Integer(1), reversedComparator));
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-3, Arrays.binarySearch(new Integer[] { new Integer(-1),
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Integer(0) }, 2, 2, new Integer(1), reversedComparator));
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(byte[], byte)
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$BB() {
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(byte [], byte)
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte d[] = new byte[1000];
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Byte.MAX_VALUE);
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill byte array correctly",
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Byte.MAX_VALUE);
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(byte[], int, int, byte)
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$BIIB() {
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(byte [], int, int, byte)
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte val = Byte.MAX_VALUE;
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte d[] = new byte[1000];
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill byte array correctly", d[i] == val);
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int result;
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.fill(new byte[2], 2, 1, (byte) 27);
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 0;
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException e) {
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 1;
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 2;
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong exception1", 2, result);
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.fill(new byte[2], -1, 1, (byte) 27);
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 0;
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException e) {
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 1;
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 2;
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong exception2", 1, result);
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.fill(new byte[2], 1, 4, (byte) 27);
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 0;
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException e) {
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 1;
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			result = 2;
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Wrong exception", 1, result);
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(short[], short)
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$SS() {
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(short [], short)
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short d[] = new short[1000];
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Short.MAX_VALUE);
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill short array correctly",
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Short.MAX_VALUE);
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(short[], int, int, short)
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$SIIS() {
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(short [], int, int, short)
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short val = Short.MAX_VALUE;
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short d[] = new short[1000];
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill short array correctly", d[i] == val);
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(char[], char)
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$CC() {
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(char [], char)
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char d[] = new char[1000];
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 'V');
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertEquals("Failed to fill char array correctly", 'V', d[i]);
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(char[], int, int, char)
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$CIIC() {
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(char [], int, int, char)
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char val = 'T';
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char d[] = new char[1000];
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill char array correctly", d[i] == val);
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(int[], int)
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$II() {
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(int [], int)
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int d[] = new int[1000];
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Integer.MAX_VALUE);
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill int array correctly",
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Integer.MAX_VALUE);
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(int[], int, int, int)
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$IIII() {
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(int [], int, int, int)
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int val = Integer.MAX_VALUE;
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int d[] = new int[1000];
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill int array correctly", d[i] == val);
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(long[], long)
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$JJ() {
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(long [], long)
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long d[] = new long[1000];
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Long.MAX_VALUE);
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill long array correctly",
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Long.MAX_VALUE);
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(long[], int, int, long)
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$JIIJ() {
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(long [], int, int, long)
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long d[] = new long[1000];
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, Long.MAX_VALUE);
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == Long.MAX_VALUE));
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill long array correctly",
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Long.MAX_VALUE);
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(float[], float)
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$FF() {
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(float [], float)
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float d[] = new float[1000];
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Float.MAX_VALUE);
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill float array correctly",
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Float.MAX_VALUE);
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(float[], int, int, float)
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$FIIF() {
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(float [], int, int, float)
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float val = Float.MAX_VALUE;
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float d[] = new float[1000];
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill float array correctly", d[i] == val);
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(double[], double)
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$DD() {
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(double [], double)
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double d[] = new double[1000];
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Double.MAX_VALUE);
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill double array correctly",
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i] == Double.MAX_VALUE);
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(double[], int, int, double)
621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$DIID() {
623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(double [], int, int,
624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// double)
625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double val = Double.MAX_VALUE;
626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double d[] = new double[1000];
627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill double array correctly", d[i] == val);
632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(boolean[], boolean)
636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$ZZ() {
638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(boolean [], boolean)
639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean d[] = new boolean[1000];
641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, true);
642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill boolean array correctly", d[i]);
644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(boolean[], int, int, boolean)
648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$ZIIZ() {
650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(boolean [], int, int,
651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// boolean)
652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean val = true;
653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean d[] = new boolean[1000];
654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill boolean array correctly", d[i] == val);
659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(java.lang.Object[], java.lang.Object)
663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$Ljava_lang_ObjectLjava_lang_Object() {
665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(java.lang.Object [],
666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.Object)
667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object val = new Object();
668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object d[] = new Object[1000];
669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 0, d.length, val);
670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < d.length; i++)
671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill Object array correctly", d[i] == val);
672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#fill(java.lang.Object[], int, int,
676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.lang.Object)
677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fill$Ljava_lang_ObjectIILjava_lang_Object() {
679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.fill(java.lang.Object [], int,
680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// int, java.lang.Object)
681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object val = new Object();
682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object d[] = new Object[1000];
683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, val);
684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 400; i++)
685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Filled elements not in range", !(d[i] == val));
686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Failed to fill Object array correctly", d[i] == val);
688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, 400, d.length, null);
690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 400; i < d.length; i++)
691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertNull("Failed to fill Object array correctly with nulls",
692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					d[i]);
693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(byte[], byte[])
697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$B$B() {
699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(byte [], byte [])
700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte d[] = new byte[1000];
701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte x[] = new byte[1000];
702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Byte.MAX_VALUE);
703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Byte.MIN_VALUE);
704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Byte.MAX_VALUE);
706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(short[], short[])
711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$S$S() {
713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(short [], short [])
714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short d[] = new short[1000];
715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short x[] = new short[1000];
716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Short.MAX_VALUE);
717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Short.MIN_VALUE);
718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Short.MAX_VALUE);
720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(char[], char[])
725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$C$C() {
727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(char [], char [])
728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char d[] = new char[1000];
729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char x[] = new char[1000];
730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char c = 'T';
731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, c);
732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, 'L');
733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, c);
735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(int[], int[])
740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$I$I() {
742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(int [], int [])
743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int d[] = new int[1000];
744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int x[] = new int[1000];
745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Integer.MAX_VALUE);
746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Integer.MIN_VALUE);
747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Integer.MAX_VALUE);
749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("wrong result for null array1", !Arrays.equals(new int[2],
752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				null));
753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("wrong result for null array2", !Arrays.equals(null,
754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new int[2]));
755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(long[], long[])
759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$J$J() {
761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(long [], long [])
762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long d[] = new long[1000];
763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long x[] = new long[1000];
764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Long.MAX_VALUE);
765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Long.MIN_VALUE);
766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Long.MAX_VALUE);
768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("should be false", !Arrays.equals(
771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new long[] { 0x100000000L }, new long[] { 0x200000000L }));
772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(float[], float[])
777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$F$F() {
779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(float [], float [])
780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float d[] = new float[1000];
781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float x[] = new float[1000];
782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Float.MAX_VALUE);
783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Float.MIN_VALUE);
784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Float.MAX_VALUE);
786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("NaN not equals", Arrays.equals(new float[] { Float.NaN },
789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new float[] { Float.NaN }));
790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("0f equals -0f", !Arrays.equals(new float[] { 0f },
791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new float[] { -0f }));
792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(double[], double[])
796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$D$D() {
798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(double [], double [])
799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double d[] = new double[1000];
800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double x[] = new double[1000];
801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, Double.MAX_VALUE);
802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Double.MIN_VALUE);
803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, Double.MAX_VALUE);
805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("should be false", !Arrays.equals(new double[] { 1.0 },
808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new double[] { 2.0 }));
809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("NaN not equals", Arrays.equals(new double[] { Double.NaN },
811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new double[] { Double.NaN }));
812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("0d equals -0d", !Arrays.equals(new double[] { 0d },
813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new double[] { -0d }));
814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(boolean[], boolean[])
818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$Z$Z() {
820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(boolean [], boolean
821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// [])
822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean d[] = new boolean[1000];
823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean x[] = new boolean[1000];
824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, true);
825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, false);
826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, true);
828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#equals(java.lang.Object[], java.lang.Object[])
833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equals$Ljava_lang_Object$Ljava_lang_Object() {
835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean java.util.Arrays.equals(java.lang.Object [],
836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.Object [])
837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object d[] = new Object[1000];
838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object x[] = new Object[1000];
839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object o = new Object();
840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(d, o);
841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, new Object());
842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Inequal arrays returned true", !Arrays.equals(d, x));
843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.fill(x, o);
844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		d[50] = null;
845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		x[50] = null;
846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("equal arrays returned false", Arrays.equals(d, x));
847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(byte[])
851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$B() {
853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(byte [])
854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] reversedArray = new byte[arraySize];
855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (byte) (arraySize - counter - 1);
857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == (byte) counter);
861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(byte[], int, int)
865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$BII() {
867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(byte [], int, int)
868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] reversedArray = new byte[arraySize];
871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] originalReversedArray = new byte[arraySize];
872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (byte) (arraySize - counter - 1);
874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new byte[1], startIndex + 1, startIndex);
909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(char[])
916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$C() {
918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(char [])
919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char[] reversedArray = new char[arraySize];
920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (char) (arraySize - counter - 1);
922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == (char) counter);
926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(char[], int, int)
931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$CII() {
933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(char [], int, int)
934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char[] reversedArray = new char[arraySize];
937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		char[] originalReversedArray = new char[arraySize];
938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (char) (arraySize - counter - 1);
940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new char[1], startIndex + 1, startIndex);
975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(double[])
982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$D() {
984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(double [])
985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] reversedArray = new double[arraySize];
986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (double) (arraySize - counter - 1);
988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == (double) counter);
992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] specials1 = new double[] { Double.NaN, Double.MAX_VALUE,
994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.MIN_VALUE, 0d, -0d, Double.POSITIVE_INFINITY,
995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.NEGATIVE_INFINITY };
996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] specials2 = new double[] { 0d, Double.POSITIVE_INFINITY, -0d,
997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.NEGATIVE_INFINITY, Double.MIN_VALUE, Double.NaN,
998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.MAX_VALUE };
999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double[] specials3 = new double[] { 0.0, Double.NaN, 1.0, 2.0, Double.NaN,
1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Double.NaN, 1.0, 3.0, -0.0};
1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] answer = new double[] { Double.NEGATIVE_INFINITY, -0d, 0d,
1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.MIN_VALUE, Double.MAX_VALUE, Double.POSITIVE_INFINITY,
1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Double.NaN };
1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double[] answer3 = new double[] { -0.0, 0.0, 1.0, 1.0, 2.0, 3.0, Double.NaN,
1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Double.NaN, Double.NaN };
1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(specials1);
1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] print1 = new Object[specials1.length];
1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < specials1.length; i++)
1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			print1[i] = new Double(specials1[i]);
1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("specials sort incorrectly 1: " + Arrays.asList(print1),
1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.equals(specials1, answer));
1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(specials2);
1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] print2 = new Object[specials2.length];
1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < specials2.length; i++)
1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			print2[i] = new Double(specials2[i]);
1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("specials sort incorrectly 2: " + Arrays.asList(print2),
1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.equals(specials2, answer));
1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Arrays.sort(specials3);
1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] print3 = new Object[specials3.length];
1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < specials3.length; i++)
1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            print3[i] = new Double(specials3[i]);
1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("specials sort incorrectly 3: " + Arrays.asList(print3),
1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.equals(specials3, answer3));
1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(double[], int, int)
1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$DII() {
1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(double [], int, int)
1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] reversedArray = new double[arraySize];
1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		double[] originalReversedArray = new double[arraySize];
1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (double) (arraySize - counter - 1);
1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new double[1], startIndex + 1, startIndex);
1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(float[])
1082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$F() {
1084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(float [])
1085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] reversedArray = new float[arraySize];
1086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (float) (arraySize - counter - 1);
1088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
1089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
1091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == (float) counter);
1092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] specials1 = new float[] { Float.NaN, Float.MAX_VALUE,
1094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.MIN_VALUE, 0f, -0f, Float.POSITIVE_INFINITY,
1095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.NEGATIVE_INFINITY };
1096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] specials2 = new float[] { 0f, Float.POSITIVE_INFINITY, -0f,
1097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.NEGATIVE_INFINITY, Float.MIN_VALUE, Float.NaN,
1098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.MAX_VALUE };
1099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] answer = new float[] { Float.NEGATIVE_INFINITY, -0f, 0f,
1100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.MIN_VALUE, Float.MAX_VALUE, Float.POSITIVE_INFINITY,
1101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Float.NaN };
1102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(specials1);
1104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] print1 = new Object[specials1.length];
1105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < specials1.length; i++)
1106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			print1[i] = new Float(specials1[i]);
1107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("specials sort incorrectly 1: " + Arrays.asList(print1),
1108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.equals(specials1, answer));
1109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(specials2);
1111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] print2 = new Object[specials2.length];
1112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < specials2.length; i++)
1113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			print2[i] = new Float(specials2[i]);
1114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("specials sort incorrectly 2: " + Arrays.asList(print2),
1115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Arrays.equals(specials2, answer));
1116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(float[], int, int)
1120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$FII() {
1122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(float [], int, int)
1123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] reversedArray = new float[arraySize];
1126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		float[] originalReversedArray = new float[arraySize];
1127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (float) (arraySize - counter - 1);
1129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
1130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
1132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
1137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
1138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
1143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
1145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
1151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
1152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
1157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
1158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
1162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new float[1], startIndex + 1, startIndex);
1164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(int[])
1171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$I() {
1173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(int [])
1174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int[] reversedArray = new int[arraySize];
1175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = arraySize - counter - 1;
1177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
1178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
1180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == counter);
1181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(int[], int, int)
1185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$III() {
1187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(int [], int, int)
1188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int[] reversedArray = new int[arraySize];
1191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int[] originalReversedArray = new int[arraySize];
1192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = arraySize - counter - 1;
1194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
1195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
1197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
1202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
1203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
1208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
1210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
1216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
1217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
1222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
1223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
1227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new int[1], startIndex + 1, startIndex);
1229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(long[])
1236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$J() {
1238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(long [])
1239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long[] reversedArray = new long[arraySize];
1240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (long) (arraySize - counter - 1);
1242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
1243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
1245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == (long) counter);
1246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(long[], int, int)
1251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$JII() {
1253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(long [], int, int)
1254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long[] reversedArray = new long[arraySize];
1257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		long[] originalReversedArray = new long[arraySize];
1258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (long) (arraySize - counter - 1);
1260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
1261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
1263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
1268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
1269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
1274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
1276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
1282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
1283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
1288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
1289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
1293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new long[1], startIndex + 1, startIndex);
1295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(java.lang.Object[])
1302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$Ljava_lang_Object() {
1304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(java.lang.Object [])
1305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] reversedArray = new Object[arraySize];
1306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = objectArray[arraySize - counter - 1];
1308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
1309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
1311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == objectArray[counter]);
1312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(java.lang.Object[], int, int)
1316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$Ljava_lang_ObjectII() {
1318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(java.lang.Object [], int,
1319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// int)
1320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] reversedArray = new Object[arraySize];
1323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] originalReversedArray = new Object[arraySize];
1324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = objectArray[arraySize - counter - 1];
1326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
1327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
1329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
1334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((Comparable) reversedArray[counter])
1335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							.compareTo(reversedArray[counter + 1]) <= 0);
1336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
1341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
1343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
1349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
1350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
1355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
1356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
1360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new Object[1], startIndex + 1, startIndex);
1362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(java.lang.Object[], int, int,
1369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.util.Comparator)
1370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$Ljava_lang_ObjectIILjava_util_Comparator() {
1372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(java.lang.Object [], int,
1373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// int, java.util.Comparator)
1374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ReversedIntegerComparator comp = new ReversedIntegerComparator();
1377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object[] originalArray = new Object[arraySize];
1378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalArray[counter] = objectArray[counter];
1380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(objectArray, startIndex, endIndex, comp);
1381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					objectArray[counter] == originalArray[counter]);
1384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds", comp.compare(
1386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					objectArray[counter], objectArray[counter + 1]) <= 0);
1387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					objectArray[counter] == originalArray[counter]);
1390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(java.lang.Object[], java.util.Comparator)
1394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$Ljava_lang_ObjectLjava_util_Comparator() {
1396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(java.lang.Object [],
1397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.util.Comparator)
1398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ReversedIntegerComparator comp = new ReversedIntegerComparator();
1399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(objectArray, comp);
1400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize - 1; counter++)
1401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted correctly with custom comparator",
1402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					comp
1403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							.compare(objectArray[counter],
1404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									objectArray[counter + 1]) <= 0);
1405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // Regression HARMONY-6076
1408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_sort$Ljava_lang_ObjectLjava_util_Comparator_stable() {
1409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Element[] array = new Element[11];
1410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[0] = new Element(122);
1411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[1] = new Element(146);
1412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[2] = new Element(178);
1413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[3] = new Element(208);
1414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[4] = new Element(117);
1415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[5] = new Element(146);
1416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[6] = new Element(173);
1417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[7] = new Element(203);
1418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[8] = new Element(56);
1419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[9] = new Element(208);
1420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        array[10] = new Element(96);
1421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Comparator<Element> comparator = new Comparator<Element>() {
1423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public int compare(Element object1, Element object2) {
1424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                return object1.value - object2.value;
1425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
1426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        };
1427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Arrays.sort(array, comparator);
1429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 1; i < array.length; i++) {
1431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(comparator.compare(array[i - 1], array[i]) <= 0);
1432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            if (comparator.compare(array[i - 1], array[i]) == 0) {
1433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue(array[i - 1].index < array[i].index);
1434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
1435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public static class Element {
1439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public int value;
1440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public int index;
1442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        private static int count = 0;
1444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Element(int value) {
1446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            this.value = value;
1447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            index = count++;
1448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(short[])
1453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$S() {
1455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(short [])
1456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short[] reversedArray = new short[arraySize];
1457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (short) (arraySize - counter - 1);
1459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray);
1460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++)
1461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Resulting array not sorted",
1462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == (short) counter);
1463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Arrays#sort(short[], int, int)
1467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_sort$SII() {
1469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Arrays.sort(short [], int, int)
1470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int startIndex = arraySize / 4;
1471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int endIndex = 3 * arraySize / 4;
1472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short[] reversedArray = new short[arraySize];
1473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		short[] originalReversedArray = new short[arraySize];
1474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			reversedArray[counter] = (short) (arraySize - counter - 1);
1476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			originalReversedArray[counter] = reversedArray[counter];
1477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Arrays.sort(reversedArray, startIndex, endIndex);
1479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < startIndex; counter++)
1480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = startIndex; counter < endIndex - 1; counter++)
1483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array not sorted within bounds",
1484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] <= reversedArray[counter + 1]);
1485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = endIndex; counter < arraySize; counter++)
1486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Array modified outside of bounds",
1487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					reversedArray[counter] == originalReversedArray[counter]);
1488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception testing
1490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex + 1, startIndex);
1492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, -1, startIndex);
1498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (1)");
1499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(reversedArray, startIndex, reversedArray.length + 1);
1504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("ArrayIndexOutOfBoundsException expected (2)");
1505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ArrayIndexOutOfBoundsException ignore) {
1506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		//exception order testing
1509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Arrays.sort(new short[1], startIndex + 1, startIndex);
1511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException expected");
1512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException ignore) {
1513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(byte[], int, int)
1518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_byte_array_NPE() {
1520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] byte_array_null = null;
1521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(byte_array_null);
1523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(byte_array_null, (int) -1, (int) 1);
1530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(char[], int, int)
1538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_char_array_NPE() {
1540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char[] char_array_null = null;
1541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(char_array_null);
1543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(char_array_null, (int) -1, (int) 1);
1550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(double[], int, int)
1558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_double_array_NPE() {
1560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double[] double_array_null = null;
1561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(double_array_null);
1563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(double_array_null, (int) -1, (int) 1);
1570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(float[], int, int)
1578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_float_array_NPE() {
1580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float[] float_array_null = null;
1581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(float_array_null);
1583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(float_array_null, (int) -1, (int) 1);
1590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(int[], int, int)
1598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_int_array_NPE() {
1600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int[] int_array_null = null;
1601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(int_array_null);
1603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(int_array_null, (int) -1, (int) 1);
1610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(Object[], int, int)
1618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_object_array_NPE() {
1620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] object_array_null = null;
1621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(object_array_null);
1623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(object_array_null, (int) -1, (int) 1);
1630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(object_array_null, (int) -1, (int) 1, null);
1637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(long[], int, int)
1645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_long_array_NPE() {
1647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        long[] long_array_null = null;
1648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(long_array_null);
1650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(long_array_null, (int) -1, (int) 1);
1657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#sort(short[], int, int)
1665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_java_util_Arrays_sort_short_array_NPE() {
1667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        short[] short_array_null = null;
1668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(short_array_null);
1670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Regression for HARMONY-378
1676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            java.util.Arrays.sort(short_array_null, (int) -1, (int) 1);
1677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw java.lang.NullPointerException");
1678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
1680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#deepEquals(Object[], Object[])
1685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_deepEquals$Ljava_lang_ObjectLjava_lang_Object() {
1687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       int [] a1 = {1, 2, 3};
1688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       short [] a2 = {0, 1};
1689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       Object [] a3 = {new Integer(1), a2};
1690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       int [] a4 = {6, 5, 4};
1691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       int [] b1 = {1, 2, 3};
1693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       short [] b2 = {0, 1};
1694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       Object [] b3 = {new Integer(1), b2};
1695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       Object a [] = {a1, a2, a3};
1697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       Object b [] = {b1, b2, b3};
1698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       assertFalse(Arrays.equals(a, b));
1700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       assertTrue(Arrays.deepEquals(a,b));
1701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       a[2] = a4;
1703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes       assertFalse(Arrays.deepEquals(a, b));
1705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#deepHashCode(Object[])
1709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_deepHashCode$Ljava_lang_Object() {
1711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int [] a1 = {1, 2, 3};
1712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        short [] a2 = {0, 1};
1713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object [] a3 = {new Integer(1), a2};
1714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int [] b1 = {1, 2, 3};
1716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        short [] b2 = {0, 1};
1717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object [] b3 = {new Integer(1), b2};
1718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object a [] = {a1, a2, a3};
1720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object b [] = {b1, b2, b3};
1721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int deep_hash_a = Arrays.deepHashCode(a);
1723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int deep_hash_b = Arrays.deepHashCode(b);
1724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(deep_hash_a, deep_hash_b);
1726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     }
1727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(boolean[] a)
1730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LZ() {
1732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        boolean [] boolArr = {true, false, false, true, false};
1736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfBoolean = new LinkedList();
1737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < boolArr.length; i++) {
1738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfBoolean.add(new Boolean(boolArr[i]));
1739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfBoolean.hashCode();
1741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(boolArr);
1742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(int[] a)
1747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LI() {
1749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int [] intArr = {10, 5, 134, 7, 19};
1753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfInteger = new LinkedList();
1754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < intArr.length; i++) {
1756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfInteger.add(new Integer(intArr[i]));
1757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfInteger.hashCode();
1759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(intArr);
1760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int [] intArr2 = {10, 5, 134, 7, 19};
1763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(Arrays.hashCode(intArr2), Arrays.hashCode(intArr));
1764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(char[] a)
1768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LC() {
1770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char [] charArr = {'a', 'g', 'x', 'c', 'm'};
1774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfCharacter = new LinkedList();
1775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < charArr.length; i++) {
1776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfCharacter.add(new Character(charArr[i]));
1777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfCharacter.hashCode();
1779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(charArr);
1780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(byte[] a)
1785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LB() {
1787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte [] byteArr = {5, 9, 7, 6, 17};
1791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfByte = new LinkedList();
1792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < byteArr.length; i++) {
1793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfByte.add(new Byte(byteArr[i]));
1794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfByte.hashCode();
1796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(byteArr);
1797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(long[] a)
1802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LJ() {
1804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        long [] longArr = {67890234512l, 97587236923425l, 257421912912l,
1808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                6754268100l, 5};
1809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfLong = new LinkedList();
1810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < longArr.length; i++) {
1811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfLong.add(new Long(longArr[i]));
1812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfLong.hashCode();
1814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(longArr);
1815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(float[] a)
1820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LF() {
1822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float [] floatArr = {0.13497f, 0.268934f, 12e-5f, -3e+2f, 10e-4f};
1826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfFloat = new LinkedList();
1827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < floatArr.length; i++) {
1828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfFloat.add(new Float(floatArr[i]));
1829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfFloat.hashCode();
1831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(floatArr);
1832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float [] floatArr2 = {0.13497f, 0.268934f, 12e-5f, -3e+2f, 10e-4f};
1835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(Arrays.hashCode(floatArr2), Arrays.hashCode(floatArr));
1836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(double[] a)
1840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LD() {
1842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double [] doubleArr = {0.134945657, 0.0038754, 11e-150, -30e-300, 10e-4};
1846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfDouble = new LinkedList();
1847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < doubleArr.length; i++) {
1848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfDouble.add(new Double(doubleArr[i]));
1849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfDouble.hashCode();
1851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(doubleArr);
1852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(short[] a)
1857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$LS() {
1859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        short [] shortArr = {35, 13, 45, 2, 91};
1863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfShort = new LinkedList();
1864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < shortArr.length; i++) {
1865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfShort.add(new Short(shortArr[i]));
1866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfShort.hashCode();
1868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(shortArr);
1869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#hashCode(Object[] a)
1874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode$Ljava_lang_Object() {
1876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int listHashCode;
1877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int arrayHashCode;
1878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] objectArr = {new Integer(1), new Float(10e-12f), null};
1880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List listOfObject= new LinkedList();
1881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < objectArr.length; i++) {
1882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            listOfObject.add(objectArr[i]);
1883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        listHashCode = listOfObject.hashCode();
1885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        arrayHashCode = Arrays.hashCode(objectArr);
1886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(listHashCode, arrayHashCode);
1887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
1890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Sets up the fixture, for example, open a network connection. This method
1891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * is called before a test is executed.
1892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
1893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void setUp() {
1894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		booleanArray = new boolean[arraySize];
1895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byteArray = new byte[arraySize];
1896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		charArray = new char[arraySize];
1897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		doubleArray = new double[arraySize];
1898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		floatArray = new float[arraySize];
1899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		intArray = new int[arraySize];
1900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		longArray = new long[arraySize];
1901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		objectArray = new Object[arraySize];
1902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		shortArray = new short[arraySize];
1903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter++) {
1905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			byteArray[counter] = (byte) counter;
1906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			charArray[counter] = (char) (counter + 1);
1907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			doubleArray[counter] = counter;
1908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			floatArray[counter] = counter;
1909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			intArray[counter] = counter;
1910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			longArray[counter] = counter;
1911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objectArray[counter] = objArray[counter];
1912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			shortArray[counter] = (short) counter;
1913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int counter = 0; counter < arraySize; counter += 2) {
1915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			booleanArray[counter] = false;
1916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			booleanArray[counter + 1] = true;
1917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(byte[],int,int, byte)
1922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$BIIB() {
1924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (byte counter = 0; counter < arraySize; counter++) {
1925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
1926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on byte[] answered incorrect position",
1927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(byteArray, counter, arraySize, counter) == counter);
1928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
1930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 1", -1,
1931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(byteArray, 0, arraySize, (byte) -1));
1932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(
1933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 2",
1934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(byteArray, (byte) arraySize) == -(arraySize + 1));
1935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (byte counter = 0; counter < arraySize; counter++) {
1936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            byteArray[counter] -= 50;
1937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (byte counter = 0; counter < arraySize; counter++) {
1939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
1940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on byte[] involving negative numbers answered incorrect position",
1941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(byteArray, counter, arraySize,
1942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            (byte) (counter - 50)) == counter);
1943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((byte[])null, 2, 1, (byte) arraySize);
1946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
1947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((byte[])null, -1, 0, (byte) arraySize);
1952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
1953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((byte[])null, -1, -2, (byte) arraySize);
1958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
1959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
1960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(byteArray, 2, 1, (byte) arraySize);
1964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
1965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
1966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(byteArray, 0, 0, (byte) arraySize));
1969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(byteArray, -1, -2, (byte) arraySize);
1971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
1972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
1973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(byteArray, arraySize + 2, arraySize + 1,
1977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (byte) arraySize);
1978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
1979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
1980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(byteArray, -1, 0, (byte) arraySize);
1984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
1985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
1986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
1989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(byteArray, 0, arraySize + 1, (byte) arraySize);
1990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
1991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
1992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
1993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
1994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
1997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(char[], char)
1998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
1999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$CIIC() {
2000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (char counter = 0; counter < arraySize; counter++) {
2001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Binary search on char[] answered incorrect position",
2002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(charArray, counter, arraySize,
2003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            (char) (counter + 1)) == counter);
2004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 1", -1,
2007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(charArray, 0, arraySize, '\u0000'));
2008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Binary search succeeded for value not present in array 2",
2009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(charArray, 0, arraySize,
2010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        (char) (arraySize + 1)) == -(arraySize + 1));
2011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(charArray, 2, 1, (char) arraySize);
2013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((char[])null, 2, 1, (char) arraySize);
2019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((char[])null, -1, 0, (char) arraySize);
2025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((char[])null, -1, -2, (char) arraySize);
2031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(charArray, 0, 0, (char) arraySize));
2036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(charArray, -1, -2, (char) arraySize);
2038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(charArray, arraySize + 2, arraySize + 1,
2044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize);
2045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(charArray, -1, 0, (char) arraySize);
2051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(charArray, 0, arraySize + 1, (char) arraySize);
2057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(double[], double)
2065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$DIID() {
2067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Binary search on double[] answered incorrect position",
2069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(doubleArray, counter, arraySize,
2070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            (double) counter) == (double) counter);
2071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 1", -1,
2074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(doubleArray, 0, arraySize, (double) -1));
2075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Binary search succeeded for value not present in array 2",
2076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(doubleArray, 0, arraySize,
2077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        (double) arraySize) == -(arraySize + 1));
2078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            doubleArray[counter] -= (double) 50;
2080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on double[] involving negative numbers answered incorrect position",
2084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(doubleArray, counter, arraySize,(double) (counter - 50)) == (double) counter);
2085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double[] specials = new double[] { Double.NEGATIVE_INFINITY,
2087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -Double.MAX_VALUE, -2d, -Double.MIN_VALUE, -0d, 0d,
2088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Double.MIN_VALUE, 2d, Double.MAX_VALUE,
2089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Double.POSITIVE_INFINITY, Double.NaN };
2090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < specials.length; i++) {
2091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            int result = Arrays.binarySearch(specials, i, specials.length,specials[i]);
2092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(specials[i] + " invalid: " + result, result == i);
2093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("-1d", -4, Arrays.binarySearch(specials,0,specials.length, -1d));
2095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("1d", -8, Arrays.binarySearch(specials,0,specials.length, 1d));
2096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((double[])null, 2, 1, (double) arraySize);
2098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((double[])null, -1, 0, (double) arraySize);
2104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((double[])null, -1, -2, (double) arraySize);
2110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(doubleArray, 2, 1, (char) arraySize);
2116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(doubleArray, 0, 0, (char) arraySize));
2121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(doubleArray, -1, -2, (char) arraySize);
2123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(doubleArray, arraySize + 2, arraySize + 1,
2129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize);
2130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(doubleArray, -1, 0, (char) arraySize);
2136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(doubleArray, 0, arraySize + 1, (char) arraySize);
2142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(float[], float)
2150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$FIIF() {
2152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Binary search on float[] answered incorrect position",
2154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(floatArray, counter, arraySize,
2155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            (float) counter) == (float) counter);
2156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 1", -1,
2159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(floatArray, 0, arraySize, (float) -1));
2160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Binary search succeeded for value not present in array 2",
2161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays
2162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        .binarySearch(floatArray, 0, arraySize,
2163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                (float) arraySize) == -(arraySize + 1));
2164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            floatArray[counter] -= (float) 50;
2166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on float[] involving negative numbers answered incorrect position",
2170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(floatArray, 0, arraySize,
2171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            (float) counter - 50) == (float) counter);
2172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float[] specials = new float[] { Float.NEGATIVE_INFINITY,
2174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -Float.MAX_VALUE, -2f, -Float.MIN_VALUE, -0f, 0f,
2175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Float.MIN_VALUE, 2f, Float.MAX_VALUE, Float.POSITIVE_INFINITY,
2176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Float.NaN };
2177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < specials.length; i++) {
2178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            int result = Arrays.binarySearch(specials,i,specials.length,specials[i]);
2179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(specials[i] + " invalid: " + result, result == i);
2180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("-1f", -4, Arrays.binarySearch(specials,0,specials.length, -1f));
2182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("1f", -8, Arrays.binarySearch(specials,0,specials.length, 1f));
2183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((float[])null, 2, 1, (float) arraySize);
2185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((float[])null, -1, 0, (float) arraySize);
2191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((float[])null, -1, -2, (float) arraySize);
2197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(floatArray, 2, 1, (char) arraySize);
2203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(floatArray, 0, 0,
2208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (char) arraySize));
2209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(floatArray, -1, -2, (char) arraySize);
2211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(floatArray, arraySize + 2, arraySize + 1,
2217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize);
2218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(floatArray, -1, 0, (char) arraySize);
2224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays
2230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    .binarySearch(floatArray, 0, arraySize + 1,
2231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            (char) arraySize);
2232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(int[], int)
2240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$IIII() {
2242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on int[] answered incorrect position",
2245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(intArray, counter, arraySize, counter) == counter);
2246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 1", -1,
2249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(intArray,0, arraySize, -1));
2250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Binary search succeeded for value not present in array 2",
2251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(intArray,0, arraySize, arraySize) == -(arraySize + 1));
2252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            intArray[counter] -= 50;
2254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on int[] involving negative numbers answered incorrect position",
2258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(intArray,0, arraySize, counter - 50) == counter);
2259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((int[])null, 2, 1, (int) arraySize);
2262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((int[])null, -1, 0, (int) arraySize);
2268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((int[])null, -1, -2, (int) arraySize);
2274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(intArray, 2, 1, (char) arraySize);
2280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays
2285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .binarySearch(intArray, 0, 0, (char) arraySize));
2286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(intArray, -1, -2, (char) arraySize);
2288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(intArray, arraySize + 2, arraySize + 1,
2294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize);
2295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(intArray, -1, 0, (char) arraySize);
2301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(intArray, 0, arraySize + 1, (char) arraySize);
2307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(long[], long)
2315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$JIIJ() {
2317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (long counter = 0; counter < arraySize; counter++){
2318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Binary search on long[] answered incorrect position",
2319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(longArray,0,arraySize, counter) == counter);
2320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Binary search succeeded for value not present in array 1",
2322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -1, Arrays.binarySearch(longArray,0,arraySize, (long) -1));
2323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(
2324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 2",
2325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(longArray,0,arraySize, (long) arraySize) == -(arraySize + 1));
2326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (long counter = 0; counter < arraySize; counter++){
2327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            longArray[(int) counter] -= (long) 50;
2328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (long counter = 0; counter < arraySize; counter++){
2330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on long[] involving negative numbers answered incorrect position",
2332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(longArray,0,arraySize, counter - (long) 50) == counter);
2333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((long[])null, 2, 1, (long) arraySize);
2336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((long[])null, -1, 0, (long) arraySize);
2342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((long[])null, -1, -2, (long) arraySize);
2348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(longArray, 2, 1, (char) arraySize);
2354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays
2359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .binarySearch(longArray, 0, 0, (char) arraySize));
2360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(longArray, -1, -2, (char) arraySize);
2362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(longArray, arraySize + 2, arraySize + 1,
2368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize);
2369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(longArray, -1, 0, (char) arraySize);
2375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(longArray, 0, arraySize + 1, (char) arraySize);
2381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(java.lang.Object[],
2389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *        java.lang.Object)
2390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$Ljava_lang_ObjectIILjava_lang_Object() {
2392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for non-comparable value in empty array",
2394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -1, Arrays.binarySearch(new Object[] {},0,0, new Object()));
2395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for comparable value in empty array",
2397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -1, Arrays.binarySearch(new Object[] {},0,0, new Integer(-1)));
2398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++){
2399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on Object[] answered incorrect position",
2401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(objectArray,counter,arraySize, objArray[counter]) == counter);
2402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Binary search succeeded for value not present in array 1",
2404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -1, Arrays.binarySearch(objectArray,0,arraySize, new Integer(-1)));
2405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(
2406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 2",
2407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(objectArray,0,arraySize, new Integer(arraySize)) == -(arraySize + 1));
2408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((Object[])null, 2, 1, (byte) arraySize);
2410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((Object[])null, -1, 0, (byte) arraySize);
2416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((Object[])null, -1, -2, (byte) arraySize);
2422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, 2, 1, (char) arraySize);
2428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays
2433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .binarySearch(objectArray, 0, 0, (char) arraySize));
2434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, -1, -2, (char) arraySize);
2436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, arraySize + 2, arraySize + 1,
2442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize);
2443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, -1, 0, (char) arraySize);
2449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, 0, arraySize + 1, (char) arraySize);
2455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(java.lang.Object[],
2463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *        java.lang.Object, java.util.Comparator)
2464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$Ljava_lang_ObjectIILjava_lang_ObjectLjava_util_Comparator() {
2466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Comparator comp = new ReversedIntegerComparator();
2467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            objectArray[counter] = objArray[arraySize - counter - 1];
2469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Binary search succeeded for value not present in array 1",
2471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(objectArray, 0, arraySize, new Integer(-1),
2472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        comp) == -(arraySize + 1));
2473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(
2474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 2", -1,
2475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(objectArray, 0, arraySize, new Integer(
2476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        arraySize), comp));
2477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int counter = 0; counter < arraySize; counter++) {
2478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on Object[] with custom comparator answered incorrect position",
2480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(objectArray, objArray[counter], comp) == arraySize
2481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                            - counter - 1);
2482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((Object[])null, 2, 1, (byte) arraySize);
2485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((Object[])null, -1, 0, (byte) arraySize);
2491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((Object[])null, -1, -2, (byte) arraySize);
2497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, 2, 1, (char) arraySize, comp);
2503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays.binarySearch(objectArray, 0, 0,
2508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (char) arraySize, comp));
2509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, -1, -2, (char) arraySize, comp);
2511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, arraySize + 2, arraySize + 1,
2517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize, comp);
2518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, -1, 0, (char) arraySize, comp);
2524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, 0, arraySize + 1,
2530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (char) arraySize, comp);
2531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(objectArray, 0, arraySize ,
2537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    new LinkedList(), comp);
2538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ClassCastException");
2539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ClassCastException e) {
2540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#binarySearch(short[], short)
2546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearch$SIIS() {
2548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (short counter = 0; counter < arraySize; counter++){
2549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue("Binary search on short[] answered incorrect position",
2550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(shortArray,counter,arraySize, counter) == counter);
2551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Binary search succeeded for value not present in array 1",
2553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                -1, Arrays.binarySearch(shortArray,0,arraySize, (short) -1));
2554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(
2555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Binary search succeeded for value not present in array 2",
2556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.binarySearch(shortArray,0,arraySize, (short) arraySize) == -(arraySize + 1));
2557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (short counter = 0; counter < arraySize; counter++){
2558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            shortArray[counter] -= 50;
2559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (short counter = 0; counter < arraySize; counter++){
2561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(
2562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "Binary search on short[] involving negative numbers answered incorrect position",
2563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Arrays.binarySearch(shortArray,counter,arraySize, (short) (counter - 50)) == counter);
2564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((String[])null, 2, 1, (byte) arraySize);
2567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((String[])null, -1, 0, (byte) arraySize);
2573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch((String[])null, -1, -2, (byte) arraySize);
2579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(shortArray, 2, 1, (short) arraySize);
2585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, Arrays
2590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .binarySearch(shortArray, 0, 0, (short) arraySize));
2591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(shortArray, -1, -2, (short) arraySize);
2593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(shortArray, arraySize + 2, arraySize + 1,
2599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    (short) arraySize);
2600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
2601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
2602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(shortArray, -1, 0, (short) arraySize);
2606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.binarySearch(shortArray, 0, arraySize + 1, (short) arraySize);
2612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
2613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
2614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] array = {"a" , "b" , "c"};
2617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-2,Arrays.binarySearch(array, 1, 2, "a", null));
2618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(byte[],int)
2622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$BI() throws Exception {
2624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] result = Arrays.copyOf(byteArray, arraySize*2);
2625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
2628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
2631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(byteArray, arraySize/2);
2633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
2636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((byte[])null, arraySize);
2639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(byteArray, -1);
2645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((byte[])null, -1);
2651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(short[],int)
2659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$SI() throws Exception {
2661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        short[] result = Arrays.copyOf(shortArray, arraySize*2);
2662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
2665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
2668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(shortArray, arraySize/2);
2670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
2673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((short[])null, arraySize);
2676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(shortArray, -1);
2682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((short[])null, -1);
2688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(int[],int)
2696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$II() throws Exception {
2698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int[] result = Arrays.copyOf(intArray, arraySize*2);
2699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
2702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
2705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(intArray, arraySize/2);
2707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
2710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((int[])null, arraySize);
2713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(intArray, -1);
2719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((int[])null, -1);
2725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(boolean[],int)
2733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$ZI() throws Exception {
2735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        boolean[] result = Arrays.copyOf(booleanArray, arraySize*2);
2736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(booleanArray[i], result[i]);
2739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(false, result[i]);
2742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(booleanArray, arraySize/2);
2744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(booleanArray[i], result[i]);
2747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((boolean[])null, arraySize);
2750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(booleanArray, -1);
2756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((boolean[])null, -1);
2762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(char[],int)
2770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$CI() throws Exception {
2772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char[] result = Arrays.copyOf(charArray, arraySize*2);
2773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i+1, result[i]);
2776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
2779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(charArray, arraySize/2);
2781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i+1, result[i]);
2784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((char[])null, arraySize);
2787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(charArray, -1);
2793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((char[])null, -1);
2799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(float[],int)
2807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$FI() throws Exception {
2809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float[] result = Arrays.copyOf(floatArray, arraySize*2);
2810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(floatArray[i], result[i]);
2813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0.0f, result[i]);
2816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(floatArray, arraySize/2);
2818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(floatArray[i], result[i]);
2821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((float[])null, arraySize);
2824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(floatArray, -1);
2830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((float[])null, -1);
2836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(double[],int)
2844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$DI() throws Exception {
2846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double[] result = Arrays.copyOf(doubleArray, arraySize*2);
2847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(doubleArray[i], result[i]);
2850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0.0, result[i]);
2853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(doubleArray, arraySize/2);
2855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(doubleArray[i], result[i]);
2858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((double[])null, arraySize);
2861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(doubleArray, -1);
2867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((double[])null, -1);
2873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(long[],int)
2881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$JI() throws Exception {
2883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        long[] result = Arrays.copyOf(longArray, arraySize*2);
2884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(longArray[i], result[i]);
2887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
2890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(longArray, arraySize/2);
2892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(longArray[i], result[i]);
2895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((long[])null, arraySize);
2898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(longArray, -1);
2904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((long[])null, -1);
2910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(T[],int)
2918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$TI() throws Exception {
2920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] result = Arrays.copyOf(objArray, arraySize*2);
2921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
2924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertNull(result[i]);
2927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(objArray, arraySize/2);
2929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
2932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((String[])null, arraySize);
2935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(objArray, -1);
2941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
2942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
2943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((String[])null, -1);
2947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Date[] component = new Date[0];
2953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object object[] = new Date[0];
2954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        object = Arrays.copyOf(component,2);
2956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(object);
2957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        component = Arrays.copyOf(component,2);
2958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(component);
2959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, component.length);
2960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
2961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
2962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
2963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOf(T[],int,Class<? extends Object[]>))
2964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
2965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOf_$TILClass() throws Exception {
2966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] result = Arrays.copyOf(objArray, arraySize*2,Object[].class);
2967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
2968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
2969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
2970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertNull(result[i]);
2973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(objArray, arraySize/2,Object[].class);
2975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
2978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOf(objArray, arraySize/2,Integer[].class);
2980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
2981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
2982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
2983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((Object[])null, arraySize,LinkedList[].class);
2986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
2988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(objArray, arraySize,LinkedList[].class);
2992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayStoreException ");
2993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayStoreException  e) {
2994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
2995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
2996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
2997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((Object[])null, arraySize,Object[].class);
2998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
2999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf(objArray, -1,Object[].class);
3004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
3005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
3006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((Object[])null, -1,Object[].class);
3010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
3011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
3012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((Object[])null, -1,LinkedList[].class);
3016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NegativeArraySizeException");
3017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NegativeArraySizeException e) {
3018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOf((Object[])null, 0,LinkedList[].class);
3022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0,Arrays.copyOf(objArray, 0,LinkedList[].class).length);
3027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(byte[],int,int)
3031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$BII() throws Exception {
3033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] result = Arrays.copyOfRange(byteArray, 0,arraySize*2);
3034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
3040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(byteArray,0, arraySize/2);
3042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(byteArray,0, 0);
3047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((byte[])null, 0,arraySize);
3050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((byte[])null, -1,arraySize);
3056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((byte[])null, 0,-1);
3062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(byteArray, -1,arraySize);
3068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(byteArray, 0, -1);
3074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(byteArray.length + 1, Arrays.copyOfRange(byteArray, 0,
3079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                byteArray.length + 1).length);
3080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(short[],int,int)
3084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$SII() throws Exception {
3086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        short[] result = Arrays.copyOfRange(shortArray, 0,arraySize*2);
3087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
3093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(shortArray,0, arraySize/2);
3095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(shortArray,0, 0);
3100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((short[])null, 0,arraySize);
3103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((short[])null, -1,arraySize);
3109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((short[])null, 0,-1);
3115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(shortArray, -1,arraySize);
3121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(shortArray, 0,-1);
3127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(shortArray.length + 1, Arrays.copyOfRange(shortArray, 0,
3132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                shortArray.length + 1).length);
3133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(int[],int,int)
3137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$III() throws Exception {
3139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int[] result = Arrays.copyOfRange(intArray, 0,arraySize*2);
3140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
3146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(intArray,0, arraySize/2);
3148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(intArray,0, 0);
3153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((int[])null, 0,arraySize);
3156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((int[])null, -1,arraySize);
3162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((int[])null, 0,-1);
3168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(intArray, -1,arraySize);
3174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(intArray, 0,-1);
3180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(intArray.length + 1, Arrays.copyOfRange(intArray, 0,
3185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                intArray.length + 1).length);
3186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(long[],int,int)
3190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$JII() throws Exception {
3192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        long[] result = Arrays.copyOfRange(longArray, 0,arraySize*2);
3193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
3199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(longArray,0, arraySize/2);
3201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i, result[i]);
3204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(longArray,0, 0);
3206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((long[])null, 0,arraySize);
3209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((long[])null, -1,arraySize);
3215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((long[])null, 0,-1);
3221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(longArray, -1,arraySize);
3227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(longArray, 0,-1);
3233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(longArray.length + 1, Arrays.copyOfRange(longArray, 0,
3238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                longArray.length + 1).length);
3239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(char[],int,int)
3243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$CII() throws Exception {
3245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char[] result = Arrays.copyOfRange(charArray, 0,arraySize*2);
3246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i+1, result[i]);
3249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0, result[i]);
3252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(charArray,0, arraySize/2);
3254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(i+1, result[i]);
3257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(charArray,0, 0);
3259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((char[])null, 0,arraySize);
3262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((char[])null, -1,arraySize);
3268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((char[])null, 0,-1);
3274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(charArray, -1,arraySize);
3280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(charArray, 0,-1);
3286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(charArray.length + 1, Arrays.copyOfRange(charArray, 0,
3291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                charArray.length + 1).length);
3292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(float[],int,int)
3296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$FII() throws Exception {
3298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float[] result = Arrays.copyOfRange(floatArray, 0,arraySize*2);
3299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals((float)i, result[i]);
3302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0.0f, result[i]);
3305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(floatArray,0, arraySize/2);
3307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals((float)i, result[i]);
3310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(floatArray,0, 0);
3312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((float[])null, 0,arraySize);
3315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((float[])null, -1,arraySize);
3321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((float[])null, 0,-1);
3327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(floatArray, -1,arraySize);
3333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(floatArray, 0,-1);
3339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(floatArray.length + 1, Arrays.copyOfRange(floatArray, 0,
3344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                floatArray.length + 1).length);
3345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(double[],int,int)
3349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$DII() throws Exception {
3351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double[] result = Arrays.copyOfRange(doubleArray, 0,arraySize*2);
3352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals((double)i, result[i]);
3355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(0.0, result[i]);
3358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(doubleArray,0, arraySize/2);
3360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals((double)i, result[i]);
3363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(doubleArray,0, 0);
3365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((double[])null, 0,arraySize);
3368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((double[])null, -1,arraySize);
3374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((double[])null, 0,-1);
3380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(doubleArray, -1,arraySize);
3386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(doubleArray, 0,-1);
3392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(doubleArray.length + 1, Arrays.copyOfRange(doubleArray, 0,
3397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                doubleArray.length + 1).length);
3398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(boolean[],int,int)
3402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$ZII() throws Exception {
3404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        boolean[] result = Arrays.copyOfRange(booleanArray, 0,arraySize*2);
3405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(booleanArray[i], result[i]);
3408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(false, result[i]);
3411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(booleanArray,0, arraySize/2);
3413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(booleanArray[i], result[i]);
3416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(booleanArray,0, 0);
3418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((boolean[])null, 0,arraySize);
3421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((boolean[])null, -1,arraySize);
3427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((boolean[])null, 0,-1);
3433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(booleanArray, -1,arraySize);
3439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(booleanArray, 0,-1);
3445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(booleanArray.length + 1, Arrays.copyOfRange(booleanArray, 0,
3450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                booleanArray.length + 1).length);
3451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(Object[],int,int)
3455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$TII() throws Exception {
3457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] result = Arrays.copyOfRange(objArray, 0,arraySize*2);
3458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
3461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(null, result[i]);
3464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(objArray,0, arraySize/2);
3466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
3469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(objArray,0, 0);
3471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((Object[])null, 0,arraySize);
3474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((Object[])null, -1,arraySize);
3480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((Object[])null, 0,-1);
3486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((Object[])objArray, -1,arraySize);
3492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange((Object[])objArray, 0,-1);
3498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(objArray.length + 1, Arrays.copyOfRange(objArray, 0,
3503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                objArray.length + 1).length);
3504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.Arrays#copyOfRange(Object[], int, int, Class)
3508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_copyOfRange_$TIILClass() throws Exception {
3510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] result = Arrays.copyOfRange(objArray, 0,arraySize*2,Integer[].class);
3511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int i = 0;
3512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < arraySize; i++) {
3513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
3514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(null, result[i]);
3517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(objArray,0, arraySize/2,Integer[].class);
3519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        i = 0;
3520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (; i < result.length; i++) {
3521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray[i], result[i]);
3522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = Arrays.copyOfRange(objArray,0, 0,Integer[].class);
3524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
3525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(null, 0,arraySize,Integer[].class);
3527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(null, -1,arraySize,Integer[].class);
3533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(null, 0,-1,Integer[].class);
3539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(objArray, -1,arraySize,Integer[].class);
3545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayIndexOutOfBoundsException");
3546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayIndexOutOfBoundsException e) {
3547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(objArray, 0,-1,Integer[].class);
3551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(objArray, 0,-1,LinkedList[].class);
3557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
3558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
3559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(objArray, 0,1,LinkedList[].class);
3563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayStoreException");
3564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayStoreException e) {
3565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Arrays.copyOfRange(null, 0,1,LinkedList[].class);
3569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
3570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
3571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
3574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(objArray.length + 1, Arrays.copyOfRange(objArray, 0,
3575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    objArray.length + 1, LinkedList[].class).length);
3576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ArrayStoreException");
3577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ArrayStoreException e) {
3578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
3579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
3580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0,
3581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.copyOfRange(objArray, 0, 0, LinkedList[].class).length);
3582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
3585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Arrays#swap(int, int, Object[])
3586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
3587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_swap_I_I_$Ljava_lang_Object() throws Exception {
3588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	Method m = Arrays.class.getDeclaredMethod("swap", int.class, int.class, Object[].class);
3589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	m.setAccessible(true);
3590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	Integer[] arr = {new Integer(0), new Integer(1), new Integer(2)};
3591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	m.invoke(null,0, 1, arr);
3592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	assertEquals("should be equal to 1",1, arr[0].intValue());
3593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	assertEquals("should be equal to 0",0, arr[1].intValue());
3594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
3595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
3596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
3597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Tears down the fixture, for example, close a network connection. This
3598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * method is called after a test is executed.
3599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
3600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void tearDown() {
3601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
3602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
3603