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, WITHOUT
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * License for the specific language governing permissions and limitations under
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Serializable;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayList;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collections;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Comparator;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashMap;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashSet;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.LinkedList;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.List;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Map;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.RandomAccess;
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.SortedMap;
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.SortedSet;
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TreeMap;
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TreeSet;
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Vector;
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest;
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.util.SerializationTester;
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class Collections2Test extends TestCase {
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static final SerializableAssert comparator = new SerializableAssert() {
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void assertDeserialized(Serializable reference, Serializable test) {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertSame(reference, test);
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    };
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#binarySearch(java.util.List,
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.lang.Object, java.util.Comparator)
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_binarySearchLjava_util_ListLjava_lang_ObjectLjava_util_Comparator() {
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Regression for HARMONY-94
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		LinkedList<Integer> lst = new LinkedList<Integer>();
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		lst.add(new Integer(30));
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Collections.sort(lst, null);
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int index = Collections.binarySearch(lst, new Integer(2), null);
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, index);
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#binarySearch(java.util.List,
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.lang.Object)
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	@SuppressWarnings("unchecked")
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_binarySearchLjava_util_ListLjava_lang_Object() {
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// regression for Harmony-1367
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		List localList = new LinkedList();
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(-1, Collections.binarySearch(localList, new Object()));
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		localList.add(new Object());
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.binarySearch(localList, new Integer(1));
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Should throw ClassCastException");
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassCastException e) {
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#rotate(java.util.List, int)
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_rotateLjava_util_ListI() {
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Regression for HARMONY-19 Rotate an *empty* list
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Collections.rotate(new ArrayList<Object>(), 25);
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Regression for HARMONY-20
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		List<String> list = new ArrayList<String>();
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		list.add(0, "zero");
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		list.add(1, "one");
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		list.add(2, "two");
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		list.add(3, "three");
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		list.add(4, "four");
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Collections.rotate(list, Integer.MIN_VALUE);
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Rotated incorrectly at position 0, ", "three",
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				list.get(0));
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Rotated incorrectly at position 1, ", "four",
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				list.get(1));
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Rotated incorrectly at position 2, ", "zero",
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				list.get(2));
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Rotated incorrectly at position 3, ", "one",
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				list.get(3));
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Rotated incorrectly at position 4, ", "two",
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				list.get(4));
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#synchronizedCollection(java.util.Collection)
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_synchronizedCollectionLjava_util_Collection() {
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.synchronizedCollection(null);
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: synchronizedCollection(null) must throw NPE");
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#synchronizedSortedMap(java.util.SortedMap)
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_synchronizedSortedMapLjava_util_SortedMap() {
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.synchronizedSortedMap(null);
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: synchronizedSortedMap(null) must throw NPE");
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#synchronizedMap(java.util.Map)
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_synchronizedMapLjava_util_Map() {
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.synchronizedMap(null);
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: synchronizedMap(map) must throw NPE");
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#synchronizedSet(java.util.Set)
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_synchronizedSetLjava_util_Set() {
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.synchronizedSet(null);
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: synchronizedSet(set) must throw NPE");
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#synchronizedSortedSet(java.util.SortedSet)
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_synchronizedSortedSetLjava_util_SortedSet() {
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.synchronizedSortedSet(null);
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: synchronizedSortedSet(null) must throw NPE");
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#unmodifiableCollection(java.util.Collection)
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_unmodifiableCollectionLjava_util_Collection() {
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.unmodifiableCollection(null);
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: unmodifiableCollection(null) must throw NPE");
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#unmodifiableMap(java.util.Map)
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_unmodifiableMapLjava_util_Map() {
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.unmodifiableMap(null);
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: unmodifiableMap(null) must throw NPE");
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#unmodifiableSet(java.util.Set)
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_unmodifiableSetLjava_util_Set() {
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.unmodifiableSet(null);
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: unmodifiableSet(null) must throw NPE");
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#unmodifiableSortedMap(java.util.SortedMap)
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_unmodifiableSortedMapLjava_util_SortedMap() {
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.unmodifiableSortedMap(null);
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: unmodifiableSortedMap(null) must throw NPE");
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Collections#unmodifiableSortedSet(java.util.SortedSet)
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_unmodifiableSortedSetLjava_util_SortedSet() {
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Regression for HARMONY-93
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Collections.unmodifiableSortedSet(null);
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Assert 0: unmodifiableSortedSet(null) must throw NPE");
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Collections#frequency(java.util.Collection,Object)
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_frequencyLjava_util_CollectionLint() {
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Collections.frequency(null, null);
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Assert 0: frequency(null,<any>) must throw NPE");
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {}
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<String> strings = Arrays.asList(new String[] { "1", "2", "3", "1", "1" });
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 1: did not find three \"1\" strings", 3,
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Collections.frequency(strings, "1"));
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 2: did not find one \"2\" strings", 1, Collections
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .frequency(strings, "2"));
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 3: did not find three \"3\" strings", 1,
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Collections.frequency(strings, "3"));
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 4: matched on null when there are none", 0,
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Collections.frequency(strings, null));
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<Object> objects = Arrays.asList(new Object[] { new Integer(1), null, null,
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Long(1) });
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 5: did not find one Integer(1)", 1, Collections
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .frequency(objects, new Integer(1)));
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 6: did not find one Long(1)", 1, Collections
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .frequency(objects, new Long(1)));
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Assert 7: did not find two null references", 2,
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Collections.frequency(objects, null));
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Collections#reverseOrder()
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_reverseOrder() {
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Comparator<String> roc = Collections.reverseOrder();
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull("Assert 0: comparator must not be null", roc);
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Assert 1: comparator must implement Serializable",
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                roc instanceof Serializable);
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] fixtureDesc = new String[] { "2", "1", "0" };
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] numbers = new String[] { "0", "1", "2" };
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Arrays.sort(numbers, roc);
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Assert 2: the arrays are not equal, the sort failed",
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.equals(fixtureDesc, numbers));
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Collections#reverseOrder(java.util.Comparator)
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_reverseOrderLjava_util_Comparator() {
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Comparator<String> roc = Collections
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .reverseOrder(String.CASE_INSENSITIVE_ORDER);
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull("Assert 0: comparator must not be null", roc);
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Assert 1: comparator must implement Serializable",
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                roc instanceof Serializable);
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] fixtureDesc = new String[] { "2", "1", "0" };
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] numbers = new String[] { "0", "1", "2" };
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Arrays.sort(numbers, roc);
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Assert 2: the arrays are not equal, the sort failed",
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.equals(fixtureDesc, numbers));
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        roc = Collections.reverseOrder(null);
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull("Assert 3: comparator must not be null", roc);
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Assert 4: comparator must implement Serializable",
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                roc instanceof Serializable);
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        numbers = new String[] { "0", "1", "2" };
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Arrays.sort(numbers, roc);
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Assert 5: the arrays are not equal, the sort failed",
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Arrays.equals(fixtureDesc, numbers));
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_AddAll() {
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<Object> l = new ArrayList<Object>();
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.addAll(l, new Object[] {}));
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(l.isEmpty());
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.addAll(l, new Object[] { new Integer(1),
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Integer(2), new Integer(3) }));
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(l.isEmpty());
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(l.equals(Arrays.asList(new Object[] { new Integer(1),
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new Integer(2), new Integer(3) })));
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Disjoint() {
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] arr1 = new Object[10];
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < arr1.length; i++) {
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            arr1[i] = new Integer(i);
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] arr2 = new Object[20];
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < arr2.length; i++) {
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            arr2[i] = new Integer(100 + i);
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collection<Object> c1 = new ArrayList<Object>();
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collection<Object> c2 = new ArrayList<Object>();
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c1, arr1);
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c2, arr2);
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.disjoint(c1, c2));
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1.add(arr2[10]);
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.disjoint(c1, c2));
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1 = new LinkedList<Object>();
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c2 = new LinkedList<Object>();
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c1, arr1);
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c2, arr2);
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.disjoint(c1, c2));
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1.add(arr2[10]);
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.disjoint(c1, c2));
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1 = new TreeSet<Object>();
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c2 = new TreeSet<Object>();
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c1, arr1);
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c2, arr2);
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.disjoint(c1, c2));
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1.add(arr2[10]);
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.disjoint(c1, c2));
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1 = new HashSet<Object>();
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c2 = new HashSet<Object>();
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c1, arr1);
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c2, arr2);
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.disjoint(c1, c2));
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1.add(arr2[10]);
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.disjoint(c1, c2));
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1 = new LinkedList<Object>();
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c2 = new TreeSet<Object>();
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c1, arr1);
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c2, arr2);
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.disjoint(c1, c2));
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1.add(arr2[10]);
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.disjoint(c1, c2));
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1 = new Vector<Object>();
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c2 = new HashSet<Object>();
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c1, arr1);
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collections.addAll(c2, arr2);
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(Collections.disjoint(c1, c2));
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c1.add(arr2[10]);
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(Collections.disjoint(c1, c2));
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Collections.EmptyList#readResolve()
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_EmptyList_readResolve() throws Exception {
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifySelf(Collections.EMPTY_LIST, comparator);
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Collections.EmptyMap#readResolve()
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_EmptyMap_readResolve() throws Exception {
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifySelf(Collections.EMPTY_MAP, comparator);
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.Collections.EmptySet#readResolve()
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_EmptySet_readResolve() throws Exception {
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifySelf(Collections.EMPTY_SET, comparator);
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedCollectionSerializationCompatability() throws Exception {
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collection<String> c = Collections.emptySet();
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedCollection(c, String.class);
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedCollection.golden.ser");
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedListRandomAccessSerializationCompatability() throws Exception {
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<String> c = new ArrayList<String>();
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(c instanceof RandomAccess);
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedList(c, String.class);
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedListRandomAccess.golden.ser");
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedListSerializationCompatability() throws Exception {
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<String> c = new LinkedList<String>();
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(c instanceof RandomAccess);
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedList(c, String.class);
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedList.golden.ser");
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedSetSerializationCompatability() throws Exception {
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Set<String> c = new HashSet<String>();
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(c instanceof SortedSet);
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedSet(c, String.class);
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedSet.golden.ser");
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedMapSerializationCompatability() throws Exception {
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Map<String, String> c = new HashMap<String, String>();
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(c instanceof SortedMap);
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedMap(c, String.class, String.class);
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedMap.golden.ser");
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedSortedSetSerializationCompatability() throws Exception {
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SortedSet<String> c = new TreeSet<String>();
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedSortedSet(c, String.class);
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedSortedSet.golden.ser");
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkedSortedMapSerializationCompatability() throws Exception {
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SortedMap<String, String> c = new TreeMap<String, String>();
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        c = Collections.checkedSortedMap(c, String.class, String.class);
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTester.assertCompabilityEquals(c, "serialization/java/util/Collections_CheckedSortedMap.golden.ser");
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_emptyList(){
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<Object> emptyList = Collections.emptyList();
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, emptyList.size());
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(emptyList instanceof RandomAccess);
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // Regression test for http://issues.apache.org/jira/browse/HARMONY-6122
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Collections_swap_IndexOutOfBoundsException() {
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Collections.swap(new ArrayList<Object>(), -1, 3);
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IOOBE expected");
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        List<Object> list = new ArrayList<Object>();
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        list.add("0");
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Collections.swap(list, 0, -1);
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IOOBE expected");
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Collections.swap(list, 0, 3);
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IOOBE expected");
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Collections.swap(new ArrayList<Object>(), 3, 3);
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IOOBE expected");
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
497