1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Serializable; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.InvocationTargetException; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.Method; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayDeque; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayList; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collections; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Comparator; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Deque; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Enumeration; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashMap; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashSet; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Iterator; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.LinkedList; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.List; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ListIterator; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Map; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Queue; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Random; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.RandomAccess; 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set; 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.SortedSet; 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TreeMap; 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TreeSet; 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays; 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest; 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert; 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_CollectionTest; 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_ListTest; 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_SetTest; 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_UnmodifiableCollectionTest; 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_UnmodifiableMapTest; 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.util.SerializationTester; 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class CollectionsTest extends junit.framework.TestCase { 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList ll; 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList myll; 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList reversedLinkedList; 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList myReversedLinkedList; 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set s; 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set mys; 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes HashMap hm; 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static Object[] objArray; 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static Object[] myobjArray; 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objArray = new Object[1000]; 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myobjArray = new Object[1000]; 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < objArray.length; i++) { 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objArray[i] = new Integer(i); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myobjArray[i] = new MyInt(i); 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class ReversedMyIntComparator implements Comparator { 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int compare(Object o1, Object o2) { 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return -((MyInt) o1).compareTo((MyInt) o2); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int equals(Object o1, Object o2) { 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return ((MyInt) o1).compareTo((MyInt) o2); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class SynchCollectionChecker implements Runnable { 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection col; 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int colSize; 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int totalToRun; 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean offset; 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes volatile int numberOfChecks = 0; 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean result = true; 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList normalCountingList; 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList offsetCountingList; 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void run() { 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ensure the list either contains the numbers from 0 to size-1 or 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the numbers from size to 2*size -1 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (numberOfChecks < totalToRun) { 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchronized (col) { 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!(col.isEmpty() || col.containsAll(normalCountingList) || col 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .containsAll(offsetCountingList))) 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = false; 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.clear(); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (offset) 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.addAll(offsetCountingList); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.addAll(normalCountingList); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numberOfChecks++; 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public SynchCollectionChecker(Collection c, boolean offset, 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int totalChecks) { 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // The collection to test, whether to offset the filler values by 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // size or not, and the min number of iterations to run 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes totalToRun = totalChecks; 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col = c; 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes colSize = c.size(); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalCountingList = new ArrayList(colSize); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetCountingList = new ArrayList(colSize); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < colSize; counter++) 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalCountingList.add(new Integer(counter)); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < colSize; counter++) 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetCountingList.add(new Integer(counter + colSize)); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.clear(); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (offset) 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.addAll(offsetCountingList); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.addAll(normalCountingList); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean offset() { 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // answer true iff the list is filled with a counting sequence 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // starting at the value size to 2*size - 1 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // else the list with be filled starting at 0 to size - 1 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return offset; 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean getResult() { 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // answer true iff no corruption has been found in the collection 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return result; 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int getNumberOfChecks() { 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // answer the number of checks that have been performed on the list 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return numberOfChecks; 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class SynchMapChecker implements Runnable { 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map map; 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int mapSize; 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int totalToRun; 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean offset; 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes volatile int numberOfChecks = 0; 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean result = true; 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map normalCountingMap; 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map offsetCountingMap; 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void run() { 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object firstNormalValue = normalCountingMap.get(new Integer(0)); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object lastNormalValue = normalCountingMap.get(new Integer( 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mapSize - 1)); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object firstOffsetValue = offsetCountingMap 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(new Integer(mapSize)); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object lastOffsetValue = offsetCountingMap.get(new Integer( 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2 * mapSize - 1)); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ensure the list either contains the numbers from 0 to size-1 or 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the numbers from size to 2*size -1 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (numberOfChecks < totalToRun) { 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchronized (map) { 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!(map.isEmpty() 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (map.containsValue(firstNormalValue) && map 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .containsValue(lastNormalValue)) || (map 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .containsValue(firstOffsetValue) && map 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .containsValue(lastOffsetValue)))) 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = false; 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.clear(); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (offset) 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.putAll(offsetCountingMap); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.putAll(normalCountingMap); 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numberOfChecks++; 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public SynchMapChecker(Map m, boolean offset, int totalChecks) { 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // The collection to test, whether to offset the filler values by 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // size or not, and the min number of iterations to run 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer myInt; 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes totalToRun = totalChecks; 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map = m; 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mapSize = m.size(); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalCountingMap = new HashMap(mapSize); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetCountingMap = new HashMap(mapSize); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < mapSize; counter++) { 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myInt = new Integer(counter); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalCountingMap.put(myInt, myInt); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < mapSize; counter++) { 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myInt = new Integer(counter + mapSize); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetCountingMap.put(myInt, myInt); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.clear(); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (offset) 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.putAll(offsetCountingMap); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.putAll(normalCountingMap); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean offset() { 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // answer true iff the list is filled with a counting sequence 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // starting at the value size to 2*size - 1 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // else the list with be filled starting at 0 to size - 1 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return offset; 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean getResult() { 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // answer true iff no corruption has been found in the collection 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return result; 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int getNumberOfChecks() { 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // answer the number of checks that have been performed on the list 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return numberOfChecks; 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class CollectionTest extends junit.framework.TestCase { 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection col; // must contain the Integers 0 to 99 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public CollectionTest(String p1) { 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(p1); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public CollectionTest(String p1, Collection c) { 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(p1); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col = c; 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class MyInt { 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int data; 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public MyInt(int value) { 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes data = value; 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int compareTo(MyInt object) { 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return data > object.data ? 1 : (data < object.data ? -1 : 0); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#binarySearch(java.util.List, 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.lang.Object) 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_binarySearchLjava_util_ListLjava_lang_Object() { 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.binarySearch(java.util.List, java.lang.Object) 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes ll is sorted and has no duplicate keys 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int llSize = ll.size(); 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ensure a NPE is thrown if the list is NULL 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.binarySearch(null, new Object()); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < llSize; counter++) { 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect binary search item position", ll 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(counter), ll.get(Collections.binarySearch(ll, ll 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(counter)))); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#binarySearch(java.util.List, 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.lang.Object, java.util.Comparator) 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_binarySearchLjava_util_ListLjava_lang_ObjectLjava_util_Comparator() { 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.binarySearch(java.util.List, java.lang.Object, 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Comparator) 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes reversedLinkedList is sorted in reversed order and has no 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // duplicate keys 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int rSize = myReversedLinkedList.size(); 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ReversedMyIntComparator comp = new ReversedMyIntComparator(); 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ensure a NPE is thrown if the list is NULL 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.binarySearch(null, new Object(), comp); 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < rSize; counter++) { 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Returned incorrect binary search item position using custom comparator", 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myReversedLinkedList.get(counter), myReversedLinkedList 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(Collections.binarySearch(myReversedLinkedList, 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myReversedLinkedList.get(counter), comp))); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#copy(java.util.List, java.util.List) 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_copyLjava_util_ListLjava_util_List() { 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.copy(java.util.List, 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.List) 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ensure a NPE is thrown if the list is NULL 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.copy(null, ll); 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list first parameter"); 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.copy(ll, null); 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list second parameter"); 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int llSize = ll.size(); 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ll.set(25, null); 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList al = new ArrayList(); 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer extraElement = new Integer(1); 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer extraElement2 = new Integer(2); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.addAll(myReversedLinkedList); 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.add(extraElement); 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.add(extraElement2); 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.copy(al, ll); 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < llSize; counter++) { 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Elements do not match after copying collection", ll 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(counter), al.get(counter)); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Elements after copied elements affected by copy", 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes extraElement == al.get(llSize) 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && extraElement2 == al.get(llSize + 1)); 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#copy(java.util.List, java.util.List) 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_copy_check_index() { 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList a1 = new ArrayList(); 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a1.add("one"); 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a1.add("two"); 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList a2 = new ArrayList(); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a2.add("aa"); 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.copy(a2, a1); 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IndexOutOfBoundsException"); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("aa", a2.get(0)); 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#enumeration(java.util.Collection) 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_enumerationLjava_util_Collection() { 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Enumeration 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.enumeration(java.util.Collection) 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet ts = new TreeSet(); 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ts.addAll(s); 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Enumeration e = Collections.enumeration(ts); 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int count = 0; 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (e.hasMoreElements()) { 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect enumeration", e.nextElement(), 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objArray[count++]); 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Enumeration missing elements: " + count, objArray.length, 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes count); 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#fill(java.util.List, java.lang.Object) 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_fillLjava_util_ListLjava_lang_Object() { 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.fill(java.util.List, 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.Object) 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.fill(null, new Object()); 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int size = ll.size(); 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.fill(ll, "k"); 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Fill modified list size", size, ll.size()); 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ll.iterator(); 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Failed to fill elements", "k", i.next()); 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.fill(ll, null); 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Fill with nulls modified list size", size, ll.size()); 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i = ll.iterator(); 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Failed to fill with nulls", i.next()); 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#max(java.util.Collection) 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_maxLjava_util_Collection() { 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.max(java.util.Collection) 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes s, objArray are sorted 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect max element", Collections.max(s), 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objArray[objArray.length - 1]); 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#max(java.util.Collection, 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Comparator) 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_maxLjava_util_CollectionLjava_util_Comparator() { 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.max(java.util.Collection, java.util.Comparator) 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes s, objArray are sorted 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // With this custom (backwards) comparator the 'max' element should be 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the smallest in the list 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect max element using custom comparator", 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.max(mys, new ReversedMyIntComparator()), 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myobjArray[0]); 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#min(java.util.Collection) 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_minLjava_util_Collection() { 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.min(java.util.Collection) 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes s, objArray are sorted 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect min element", Collections.min(s), 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objArray[0]); 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#min(java.util.Collection, 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Comparator) 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_minLjava_util_CollectionLjava_util_Comparator() { 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.min(java.util.Collection, java.util.Comparator) 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes s, objArray are sorted 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // With this custom (backwards) comparator the 'min' element should be 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the largest in the list 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect min element using custom comparator", 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.min(mys, new ReversedMyIntComparator()), 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myobjArray[objArray.length - 1]); 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#nCopies(int, java.lang.Object) 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_nCopiesILjava_lang_Object() { 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.List java.util.Collections.nCopies(int, 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.Object) 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object o = new Object(); 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List l = Collections.nCopies(100, o); 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = l.iterator(); 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object first = i.next(); 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned list consists of copies not refs", first, o); 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned list of incorrect size", 100, l.size()); 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Contains", l.contains(o)); 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Contains null", l.contains(null)); 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("null nCopies contains", Collections.nCopies(2, null) 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(o)); 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("null nCopies contains null", Collections.nCopies(2, null) 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(null)); 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes l = Collections.nCopies(20, null); 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i = l.iterator(); 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; i.hasNext(); counter++) { 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("List is too large", counter < 20); 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Element should be null: " + counter, i.next()); 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes l.add(o); 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Returned list is not immutable"); 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.nCopies(-2, new HashSet()); 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("nCopies with negative arg didn't throw IAE"); 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#reverse(java.util.List) 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_reverseLjava_util_List() { 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.reverse(java.util.List) 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.reverse(null); 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.reverse(ll); 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ll.iterator(); 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int count = objArray.length - 1; 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) { 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Failed to reverse collection", objArray[count], i 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .next()); 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes --count; 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList myList = new ArrayList(); 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList.add(null); 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList.add(new Integer(20)); 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.reverse(myList); 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Did not reverse correctly--first element is: " 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + myList.get(0), new Integer(20), myList.get(0)); 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Did not reverse correctly--second element is: " 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + myList.get(1), myList.get(1)); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#reverseOrder() 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_reverseOrder() { 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Comparator 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.reverseOrder() 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes no duplicates in ll 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Comparator comp = Collections.reverseOrder(); 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList list2 = new LinkedList(ll); 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(list2, comp); 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int llSize = ll.size(); 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < llSize; counter++) 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("New comparator does not reverse sorting order", list2 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(llSize - counter - 1), ll.get(counter)); 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#shuffle(java.util.List) 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_shuffleLjava_util_List() { 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.shuffle(java.util.List) 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Assumes ll is sorted and has no duplicate keys and is large ( > 20 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // elements) 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test shuffling a Sequential Access List 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(null); 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList al = new ArrayList(); 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.addAll(ll); 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testShuffle(al, "Sequential Access", false); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test shuffling a Random Access List 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList ll2 = new LinkedList(); 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ll2.addAll(ll); 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testShuffle(ll2, "Random Access", false); 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testShuffleRandomAccessWithSeededRandom() { 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List<String> list = Arrays.asList("A", "B", "C", "D", "E", "F", "G"); 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(list, new Random(0)); 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Arrays.asList("B", "A", "D", "C", "G", "E", "F"), list); 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testShuffleWithSeededRandom() { 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List<String> list = new LinkedList<String>(Arrays.asList( 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "A", "B", "C", "D", "E", "F", "G")); 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(list, new Random(0)); 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Arrays.asList("B", "A", "D", "C", "G", "E", "F"), list); 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void testShuffle(List list, String type, boolean random) { 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean sorted = true; 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean allMatch = true; 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int index = 0; 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int size = list.size(); 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (random) 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(list); 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(list, new Random(200)); 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < size - 1; counter++) { 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (((Integer) list.get(counter)).compareTo((Integer)list.get(counter + 1)) > 0) { 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sorted = false; 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Shuffling sorted " + type 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list resulted in sorted list (should be unlikely)", sorted); 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < 20; counter++) { 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes index = 30031 * counter % (size + 1); // 30031 is a large prime 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (list.get(index) != ll.get(index)) 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes allMatch = false; 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Too many element positions match in shuffled " + type 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list", allMatch); 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#shuffle(java.util.List, java.util.Random) 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_shuffleLjava_util_ListLjava_util_Random() { 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.shuffle(java.util.List, 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Random) 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Assumes ll is sorted and has no duplicate keys and is large ( > 20 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // elements) 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test shuffling a Sequential Access List 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(null, new Random(200)); 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Excepted 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList al = new ArrayList(); 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.addAll(ll); 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testShuffle(al, "Sequential Access", true); 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test shuffling a Random Access List 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList ll2 = new LinkedList(); 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ll2.addAll(ll); 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testShuffle(ll2, "Random Access", true); 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List l = new ArrayList(); 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes l.add('a'); 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes l.add('b'); 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes l.add('c'); 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(l, new Random(12345678921L)); 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("acb", l.get(0).toString()+l.get(1)+l.get(2)); 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#singleton(java.lang.Object) 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_singletonLjava_lang_Object() { 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Set 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.singleton(java.lang.Object) 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object o = new Object(); 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set single = Collections.singleton(o); 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong size", 1, single.size()); 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Contains", single.contains(o)); 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Contains null", single.contains(null)); 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("null nCopies contains", Collections.singleton(null) 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(o)); 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("null nCopies contains null", Collections.singleton(null) 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(null)); 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes single.add("l"); 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of singleton"); 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Excepted 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#sort(java.util.List) 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_sortLjava_util_List() { 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.sort(java.util.List) 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assumes no duplicate keys in ll 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int llSize = ll.size(); 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int rllSize = reversedLinkedList.size(); 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort((List)null); 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(ll); 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(ll); 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(reversedLinkedList); 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < llSize - 1; counter++) { 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Sorting shuffled list resulted in unsorted list", 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((Integer) ll.get(counter)).compareTo((Integer)ll.get(counter + 1)) < 0); 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < rllSize - 1; counter++) { 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Sorting reversed list resulted in unsorted list", 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((Integer) reversedLinkedList.get(counter)) 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .compareTo((Integer)reversedLinkedList.get(counter + 1)) < 0); 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#sort(java.util.List, java.util.Comparator) 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_sortLjava_util_ListLjava_util_Comparator() { 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.util.Collections.sort(java.util.List, 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Comparator) 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Comparator comp = new ReversedMyIntComparator(); 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(null, comp); 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.shuffle(myll); 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(myll, comp); 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int llSize = myll.size(); 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < llSize - 1; counter++) { 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Sorting shuffled list with custom comparator resulted in unsorted list", 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((MyInt) myll.get(counter)).compareTo((MyInt) myll 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(counter + 1)) >= 0); 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#swap(java.util.List, int, int) 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_swapLjava_util_ListII() { 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method swap(java.util.List, int, int) 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList smallList = new LinkedList(); 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test exception cases 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.swap(smallList, -1, 6); 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IndexOutOfBoundsException for -1"); 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.swap(smallList, 6, -1); 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IndexOutOfBoundsException for -1"); 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.swap(smallList, 6, 11); 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IndexOutOfBoundsException for 11"); 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.swap(smallList, 11, 6); 782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IndexOutOfBoundsException for 11"); 783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ensure a NPE is thrown if the list is NULL 788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.swap(null, 1, 1); 790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with valid parameters 796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.swap(smallList, 4, 7); 797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Didn't Swap the element at position 4 ", new Integer(7), 798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.get(4)); 799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Didn't Swap the element at position 7 ", new Integer(4), 800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.get(7)); 801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // make sure other elements didn't get swapped by mistake 803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (i != 4 && i != 7) 805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("shouldn't have swapped the element at position " 806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + i, new Integer(i), smallList.get(i)); 807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#replaceAll(java.util.List, java.lang.Object, 812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.lang.Object) 813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_replaceAllLjava_util_ListLjava_lang_ObjectLjava_lang_Object() { 815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method replaceAll(java.util.List, java.lang.Object, 816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.Object) 817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String string1 = "A-B-C-D-E-S-JF-SUB-G-H-I-J-SUBL-K-L-LIST-M-N--S-S-O-SUBLIS-P-Q-R-SUBLIST-S-T-U-V-W-X-Y-Z"; 819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] chars = string1.toCharArray(); 820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new ArrayList(); 821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < chars.length; i++) { 822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(new Character(chars[i])); 823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.replaceAll(null, new Object(), new Object()); 827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test replace for an element that is not in the list 833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean result = Collections.replaceAll(list, new Character('1'), 834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Character('Z')); 835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Test1: Collections.replaceAll() returned wrong result", 836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result); 837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2 : ReplaceAll modified the list incorrectly", 838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes string1, getString(list)); 839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test replace for an element that is in the list 841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = Collections.replaceAll(list, new Character('S'), 842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Character('K')); 843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Test3: Collections.replaceAll() returned wrong result", 844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result); 845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test4: ReplaceAll modified the list incorrectly", 846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (string1 = string1.replace('S', 'K')), getString(list)); 847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test replace for the last element in the list 849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = Collections.replaceAll(list, new Character('Z'), 850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Character('N')); 851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Test5: Collections.replaceAll() returned wrong result", 852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result); 853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test6: ReplaceAll modified the list incorrectly", 854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (string1 = string1.replace('Z', 'N')), getString(list)); 855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test replace for the first element in the list 857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = Collections.replaceAll(list, new Character('A'), 858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Character('B')); 859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Test7: Collections.replaceAll() returned wrong result", 860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result); 861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test8: ReplaceAll modified the list incorrectly", 862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (string1 = string1.replace('A', 'B')), getString(list)); 863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test replacing elements with null 865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList smallList = new LinkedList(); 866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.set(4, new Integer(5)); 870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = Collections.replaceAll(smallList, new Integer(5), null); 871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Test9: Collections.replaceAll() returned wrong result", 872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result); 873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < smallList.size(); i++) { 874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (i == 4 || i == 5) 875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Test9: ReplaceAll didn't replace element at " + i, 876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, smallList.get(i)); 877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test9: ReplaceAll shouldn't have replaced element at " 880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + i, new Integer(i), smallList.get(i)); 881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test replacing null elements with another value 884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = Collections.replaceAll(smallList, null, new Integer(99)); 885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Test10: Collections.replaceAll() returned wrong result", 886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result); 887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < smallList.size(); i++) { 889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (i == 4 || i == 5) 890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test10: ReplaceAll didn't replace element at " 891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + i, new Integer(99), smallList.get(i)); 892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test10: ReplaceAll shouldn't have replaced element at " 895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + i, new Integer(i), smallList.get(i)); 896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#rotate(java.util.List, int) 901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_rotateLjava_util_ListI() { 903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method rotate(java.util.List, int) 904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(null, 0); 907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test rotating a Sequential Access List 913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList list1 = new LinkedList(); 914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list1.add(objArray[i]); 916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testRotate(list1, "Sequential Access"); 918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test rotating a Random Access List 920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList list2 = new ArrayList(); 921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list2.add(objArray[i]); 923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testRotate(list2, "Random Access"); 925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void testRotate(List list, String type) { 928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate with positive distance 929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, 7); 930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test1: rotate modified the " + type 931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "3456789012", getString(list)); 932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate with negative distance 934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, -2); 935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test2: rotate modified the " + type 936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5678901234", getString(list)); 937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate sublist with negative distance 939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List subList = list.subList(1, 5); 940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(subList, -1); 941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test3: rotate modified the " + type 942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5789601234", getString(list)); 943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate sublist with positive distance 945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(subList, 2); 946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test4: rotate modified the " + type 947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5967801234", getString(list)); 948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate with positive distance that is larger than list size 950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, 23); 951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test5: rotate modified the " + type 952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "2345967801", getString(list)); 953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate with negative distance that is larger than list size 955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, -23); 956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test6: rotate modified the " + type 957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5967801234", getString(list)); 958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // rotate with 0 and equivalent distances, this should make no 960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // modifications to the list 961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, 0); 962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test7: rotate modified the " + type 963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5967801234", getString(list)); 964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, -30); 966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test8: rotate modified the " + type 967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5967801234", getString(list)); 968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, 30); 970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test9: rotate modified the " + type 971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list incorrectly,", "5967801234", getString(list)); 972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private String getString(List list) { 975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes StringBuffer buffer = new StringBuffer(); 976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < list.size(); i++) { 977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer.append(list.get(i)); 978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return buffer.toString(); 980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#rotate(java.util.List, int) 984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_rotate2() { 986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new ArrayList(); 987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, 5); 989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected UnsupportedOperationException for empty list, " 991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + e); 992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(0, "zero"); 995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(1, "one"); 996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(2, "two"); 997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(3, "three"); 998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(4, "four"); 999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.rotate(list, Integer.MIN_VALUE); 1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Rotated incorrectly at position 0, ", "three", 1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (String) list.get(0)); 1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Rotated incorrectly at position 1, ", "four", 1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (String) list.get(1)); 1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Rotated incorrectly at position 2, ", "zero", 1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (String) list.get(2)); 1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Rotated incorrectly at position 3, ", "one", 1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (String) list.get(3)); 1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Rotated incorrectly at position 4, ", "two", 1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (String) list.get(4)); 1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#indexOfSubList(java.util.List, 1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.List) 1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_indexOfSubListLjava_util_ListLjava_util_List() { 1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int indexOfSubList(java.util.List, java.util.List) 1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new ArrayList(); 1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.indexOfSubList(null, list); 1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list first parameter"); 1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.indexOfSubList(list, null); 1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list second parameter"); 1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String string1 = "A-B-C-D-E-S-JF-SUB-G-H-I-J-SUBL-K-L-LIST-M-N--S-S-O-SUBLIS-P-Q-R-SUBLIST-S-T-U-V-W-X-Y-Z"; 1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(1, string1, "B", true); 1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(2, string1, "LIST", true); 1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(3, string1, "SUBLIST", true); 1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(4, string1, "NONE", true); 1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(5, string1, "END", true); 1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test boundary conditions: 1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(6, "", "", true); 1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(7, "LIST", "", true); 1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(8, "", "SUBLIST", true); 1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#indexOfSubList(java.util.List, 1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.List) 1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_indexOfSubList2() { 1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList sub = new ArrayList(); 1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub.add(new Integer(1)); 1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub.add(new Integer(2)); 1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub.add(new Integer(3)); 1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList sub2 = new ArrayList(); 1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub2.add(new Integer(7)); 1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub2.add(new Integer(8)); 1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList src = new ArrayList(); 1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.addAll(sub); 1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.addAll(sub); 1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.addAll(sub); 1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.add(new Integer(5)); 1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.add(new Integer(6)); 1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // so src becomes a list like this: 1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [1, 2, 3, 1, 2, 3, 1, 2, 3, 5, 6] 1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(3, 11)); 1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [1, 2, 3, 1, 2, 3, 5, 6] 1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestA : Returned wrong indexOfSubList, ", 3, Collections 1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(src, sub)); 1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(6, 11)); 1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [1, 2, 3, 5, 6] 1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestB : Returned wrong indexOfSubList, ", 6, Collections 1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(src, sub)); 1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 3)); 1082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [1, 2, 3] 1083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestCC : Returned wrong indexOfSubList, ", 0, Collections 1084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(src, sub)); 1085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(9, 11)); 1087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [5, 6] 1088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestD : Returned wrong indexOfSubList, ", 9, Collections 1089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(src, sub)); 1090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(10, 11)); 1092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [6] 1093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestE : Returned wrong indexOfSubList, ", 10, Collections 1094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(src, sub)); 1095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 11)); 1097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the whole list 1098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestH : Returned wrong indexIndexOfSubList, ", 0, 1099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.indexOfSubList(src, sub)); 1100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a non-matching list 1102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestI : Returned wrong indexOfSubList, ", -1, Collections 1103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(src, sub2)); 1104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param string2 1108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param string1 1109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param index 1110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void testwithCharList(int count, String string1, String string2, 1112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean first) { 1113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] chars = string1.toCharArray(); 1114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new ArrayList(); 1115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < chars.length; i++) { 1116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(new Character(chars[i])); 1117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes chars = string2.toCharArray(); 1119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List sublist = new ArrayList(); 1120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < chars.length; i++) { 1121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sublist.add(new Character(chars[i])); 1122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (first) 1125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test " + count + ": Returned wrong index:", string1 1126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOf(string2), Collections 1127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .indexOfSubList(list, sublist)); 1128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 1129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Test " + count + ": Returned wrong index:", string1 1130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .lastIndexOf(string2), Collections.lastIndexOfSubList(list, 1131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sublist)); 1132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#lastIndexOfSubList(java.util.List, 1136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.List) 1137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_lastIndexOfSubListLjava_util_ListLjava_util_List() { 1139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int lastIndexOfSubList(java.util.List, 1140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.List) 1141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String string1 = "A-B-C-D-E-S-JF-SUB-G-H-I-J-SUBL-K-L-LIST-M-N--S-S-O-SUBLIS-P-Q-R-SUBLIST-S-T-U-V-W-X-Y-Z-END"; 1142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new ArrayList(); 1144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(null, list); 1146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list first parameter"); 1147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(list, null); 1152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list second parameter"); 1153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(1, string1, "B", false); 1158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(2, string1, "LIST", false); 1159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(3, string1, "SUBLIST", false); 1160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(4, string1, "END", false); 1161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(5, string1, "NONE", false); 1162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test boundary conditions 1164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(6, "", "", false); 1165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(7, "LIST", "", false); 1166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testwithCharList(8, "", "SUBLIST", false); 1167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#lastIndexOfSubList(java.util.List, 1171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.List) 1172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_lastIndexOfSubList2() { 1174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList sub = new ArrayList(); 1175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub.add(new Integer(1)); 1176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub.add(new Integer(2)); 1177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub.add(new Integer(3)); 1178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList sub2 = new ArrayList(); 1180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub2.add(new Integer(7)); 1181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub2.add(new Integer(8)); 1182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList src = new ArrayList(); 1184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.addAll(sub); 1185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.addAll(sub); 1186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.addAll(sub); 1187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.add(new Integer(5)); 1188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src.add(new Integer(6)); 1189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // so src is a list like this: 1191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [1, 2, 3, 1, 2, 3, 1, 2, 3, 5, 6] 1192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.reverse(src); 1194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // it becomes like this : 1195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [6, 5, 3, 2, 1, 3, 2, 1, 3, 2, 1] 1196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 8)); 1198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [6, 5, 3, 2, 1, 3, 2, 1] 1199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestA : Returned wrong lastIndexOfSubList, ", 0, 1200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 5)); 1203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [6, 5, 3, 2, 1] 1204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestB : Returned wrong lastIndexOfSubList, ", 0, 1205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(2, 5)); 1208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [3, 2, 1] 1209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestC : Returned wrong lastIndexOfSubList, ", 8, 1210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(9, 11)); 1213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [2, 1] 1214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestD : Returned wrong lastIndexOfSubList, ", 9, 1215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(10, 11)); 1218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [1] 1219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestE : Returned wrong lastIndexOfSubList, ", 10, 1220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 2)); 1223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [6, 5] 1224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestF : Returned wrong lastIndexOfSubList, ", 0, 1225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 1)); 1228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // [6] 1229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestG : Returned wrong lastIndexOfSubList, ", 0, 1230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sub = new ArrayList(src.subList(0, 11)); 1233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the whole list 1234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestH : Returned wrong lastIndexOfSubList, ", 0, 1235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub)); 1236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a non-matching list 1238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("TestI : Returned wrong lastIndexOfSubList, ", -1, 1239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.lastIndexOfSubList(src, sub2)); 1240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#list(java.util.Enumeration) 1244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_listLjava_util_Enumeration() { 1246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.ArrayList list(java.util.Enumeration) 1247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Enumeration e = Collections.enumeration(ll); 1249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList al = Collections.list(e); 1250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int size = al.size(); 1252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong size", ll.size(), size); 1253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < size; i++) { 1255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("wrong element at position " + i + ",", ll.get(i), al 1256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(i)); 1257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @throws InterruptedException 1262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#synchronizedCollection(java.util.Collection) 1263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_synchronizedCollectionLjava_util_Collection() throws InterruptedException { 1265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Collection 1266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.synchronizedCollection(java.util.Collection) 1267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedList smallList = new LinkedList(); 1269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 50; i++) { 1270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 1271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int numberOfLoops = 200; 1274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection synchCol = Collections.synchronizedCollection(smallList); 1275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Replacing the previous line with the line below *should* cause the 1276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test to fail--the collecion below isn't synchronized 1277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Collection synchCol = smallList; 1278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchCol, false, numberOfLoops); 1281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchCol, true, numberOfLoops); 1283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread normalThread = new Thread(normalSynchChecker); 1284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread offsetThread = new Thread(offsetSynchChecker); 1285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.start(); 1286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.start(); 1287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread.sleep(10); 1292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned collection corrupted by multiple thread access", 1297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalSynchChecker.getResult() 1298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && offsetSynchChecker.getResult()); 1299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.join(5000); 1301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.join(5000); 1302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("join() interrupted"); 1304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchCol.add(null); 1307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Trying to use nulls in collection failed", synchCol 1308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(null)); 1309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList = new LinkedList(); 1311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) { 1312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 1313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_CollectionTest("", Collections 1315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .synchronizedCollection(smallList)).runTest(); 1316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Test self reference 1318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchCol = Collections.synchronizedCollection(smallList); 1319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchCol.add(smallList); 1320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("should contain self ref", synchCol.toString().indexOf("(this") > -1); 1321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#synchronizedList(java.util.List) 1325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_synchronizedListLjava_util_List() { 1327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.synchronizedList(null); 1329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 1330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with a Sequential Access List 1335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List smallList = new LinkedList(); 1336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testSynchronizedList(smallList, "Sequential Access"); 1337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList = new LinkedList(); 1339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List myList; 1340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) { 1341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 1342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList = Collections.synchronizedList(smallList); 1344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_ListTest("", myList).runTest(); 1346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with a Random Access List 1348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList = new ArrayList(); 1349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testSynchronizedList(smallList, "Random Access"); 1350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList = new ArrayList(); 1352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) { 1353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 1354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList = Collections.synchronizedList(smallList); 1356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_ListTest("", myList).runTest(); 1357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Test self reference 1359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList = Collections.synchronizedList(smallList); 1360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList.add(smallList); 1361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("should contain self ref", myList.toString().indexOf("(this") > -1); 1362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void testSynchronizedList(List smallList, String type) { 1365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 50; i++) { 1366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[i]); 1367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int numberOfLoops = 200; 1369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List synchList = Collections.synchronizedList(smallList); 1370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (type.equals("Random Access")) 1371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 1372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Returned synchronized list should implement the Random Access interface", 1373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchList instanceof RandomAccess); 1374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 1375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 1376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Returned synchronized list should not implement the Random Access interface", 1377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes !(synchList instanceof RandomAccess)); 1378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Replacing the previous line with the line below *should* cause the 1380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test to fail--the list below isn't synchronized 1381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // List synchList = smallList; 1382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchList, false, numberOfLoops); 1384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchList, true, numberOfLoops); 1386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread normalThread = new Thread(normalSynchChecker); 1387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread offsetThread = new Thread(offsetSynchChecker); 1388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.start(); 1389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.start(); 1390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread.sleep(10); 1394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 1399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes type 1400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + " list tests: Returned list corrupted by multiple thread access", 1401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalSynchChecker.getResult() 1402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && offsetSynchChecker.getResult()); 1403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.join(5000); 1405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.join(5000); 1406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(type + " list tests: join() interrupted"); 1408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchList.set(25, null); 1410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(type + " list tests: Trying to use nulls in list failed", 1411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchList.get(25)); 1412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#synchronizedMap(java.util.Map) 1416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_synchronizedMapLjava_util_Map() { 1418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Map 1419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.synchronizedMap(java.util.Map) 1420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes HashMap smallMap = new HashMap(); 1421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 50; i++) { 1422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(objArray[i], objArray[i]); 1423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int numberOfLoops = 200; 1426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map synchMap = Collections.synchronizedMap(smallMap); 1427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Replacing the previous line with the line below should cause the test 1428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // to fail--the list below isn't synchronized 1429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Map synchMap = smallMap; 1430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchMapChecker normalSynchChecker = new SynchMapChecker(synchMap, 1432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes false, numberOfLoops); 1433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchMapChecker offsetSynchChecker = new SynchMapChecker(synchMap, 1434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes true, numberOfLoops); 1435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread normalThread = new Thread(normalSynchChecker); 1436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread offsetThread = new Thread(offsetSynchChecker); 1437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.start(); 1438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.start(); 1439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread.sleep(10); 1443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned map corrupted by multiple thread access", 1448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalSynchChecker.getResult() 1449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && offsetSynchChecker.getResult()); 1450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.join(5000); 1452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.join(5000); 1453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("join() interrupted"); 1455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // synchronized map does not have to permit null keys or values 1458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap.put(new Long(25), null); 1459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap.put(null, new Long(30)); 1460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Trying to use a null value in map failed", synchMap 1461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(new Long(25))); 1462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Trying to use a null key in map failed", synchMap.get(null) 1463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new Long(30))); 1464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap = new HashMap(); 1466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) { 1467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(objArray[i].toString(), objArray[i]); 1468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap = Collections.synchronizedMap(smallMap); 1470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_UnmodifiableMapTest("", synchMap).runTest(); 1471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap.keySet().remove(objArray[50].toString()); 1472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull( 1473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Removing a key from the keySet of the synchronized map did not remove it from the synchronized map: ", 1474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap.get(objArray[50].toString())); 1475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull( 1476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Removing a key from the keySet of the synchronized map did not remove it from the original map", 1477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.get(objArray[50].toString())); 1478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#synchronizedSet(java.util.Set) 1482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_synchronizedSetLjava_util_Set() { 1484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Set 1485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.synchronizedSet(java.util.Set) 1486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes HashSet smallSet = new HashSet(); 1487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 50; i++) { 1488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallSet.add(objArray[i]); 1489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int numberOfLoops = 200; 1492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set synchSet = Collections.synchronizedSet(smallSet); 1493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Replacing the previous line with the line below should cause the test 1494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // to fail--the set below isn't synchronized 1495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Set synchSet = smallSet; 1496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchSet, false, numberOfLoops); 1499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchSet, true, numberOfLoops); 1501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread normalThread = new Thread(normalSynchChecker); 1502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread offsetThread = new Thread(offsetSynchChecker); 1503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.start(); 1504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.start(); 1505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread.sleep(10); 1509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned set corrupted by multiple thread access", 1514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalSynchChecker.getResult() 1515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && offsetSynchChecker.getResult()); 1516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.join(5000); 1518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.join(5000); 1519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("join() interrupted"); 1521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set mySet = Collections.synchronizedSet(smallSet); 1524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mySet.add(null); 1525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Trying to use nulls in list failed", mySet.contains(null)); 1526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallSet = new HashSet(); 1528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) { 1529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallSet.add(objArray[i]); 1530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_SetTest("", Collections.synchronizedSet(smallSet)) 1532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .runTest(); 1533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Test self reference 1535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mySet = Collections.synchronizedSet(smallSet); 1536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mySet.add(smallSet); 1537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("should contain self ref", mySet.toString().indexOf("(this") > -1); 1538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#synchronizedSortedMap(java.util.SortedMap) 1542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_synchronizedSortedMapLjava_util_SortedMap() { 1544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedMap 1545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.synchronizedSortedMap(java.util.SortedMap) 1546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeMap smallMap = new TreeMap(); 1547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 50; i++) { 1548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(objArray[i], objArray[i]); 1549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int numberOfLoops = 200; 1552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map synchMap = Collections.synchronizedMap(smallMap); 1553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Replacing the previous line with the line below should cause the test 1554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // to fail--the list below isn't synchronized 1555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Map synchMap = smallMap; 1556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchMapChecker normalSynchChecker = new SynchMapChecker(synchMap, 1558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes false, numberOfLoops); 1559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchMapChecker offsetSynchChecker = new SynchMapChecker(synchMap, 1560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes true, numberOfLoops); 1561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread normalThread = new Thread(normalSynchChecker); 1562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread offsetThread = new Thread(offsetSynchChecker); 1563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.start(); 1564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.start(); 1565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread.sleep(10); 1569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned map corrupted by multiple thread access", 1574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalSynchChecker.getResult() 1575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && offsetSynchChecker.getResult()); 1576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.join(5000); 1578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.join(5000); 1579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("join() interrupted"); 1581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap = new TreeMap(); 1584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 100; i++) { 1585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(objArray[i].toString(), objArray[i]); 1586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap = Collections.synchronizedSortedMap(smallMap); 1588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_UnmodifiableMapTest("", synchMap).runTest(); 1589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap.keySet().remove(objArray[50].toString()); 1590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull( 1591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Removing a key from the keySet of the synchronized map did not remove it from the synchronized map", 1592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchMap.get(objArray[50].toString())); 1593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull( 1594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Removing a key from the keySet of the synchronized map did not remove it from the original map", 1595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.get(objArray[50].toString())); 1596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#synchronizedSortedSet(java.util.SortedSet) 1600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_synchronizedSortedSetLjava_util_SortedSet() { 1602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedSet 1603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.synchronizedSortedSet(java.util.SortedSet) 1604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeSet smallSet = new TreeSet(); 1605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 50; i++) { 1606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallSet.add(objArray[i]); 1607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int numberOfLoops = 200; 1610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set synchSet = Collections.synchronizedSet(smallSet); 1611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Replacing the previous line with the line below should cause the test 1612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // to fail--the list below isn't synchronized 1613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Set synchSet = smallSet; 1614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchSet, false, numberOfLoops); 1617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes synchSet, true, numberOfLoops); 1619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread normalThread = new Thread(normalSynchChecker); 1620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread offsetThread = new Thread(offsetSynchChecker); 1621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.start(); 1622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.start(); 1623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Thread.sleep(10); 1627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //Expected 1629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned set corrupted by multiple thread access", 1632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalSynchChecker.getResult() 1633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && offsetSynchChecker.getResult()); 1634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes normalThread.join(5000); 1636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes offsetThread.join(5000); 1637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InterruptedException e) { 1638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("join() interrupted"); 1639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#unmodifiableCollection(java.util.Collection) 1644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiableCollectionLjava_util_Collection() { 1646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Collection 1647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.unmodifiableCollection(java.util.Collection) 1648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean exception = false; 1649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection c = Collections.unmodifiableCollection(ll); 1650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned collection is of incorrect size", c.size() == ll 1651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .size()); 1652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ll.iterator(); 1653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 1654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned list missing elements", c.contains(i.next())); 1655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.add(new Object()); 1657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!exception) { 1662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of collection"); 1663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.remove(new Object()); 1667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of collection"); 1668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection myCollection = new ArrayList(); 1673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myCollection.add(new Integer(20)); 1674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myCollection.add(null); 1675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c = Collections.unmodifiableCollection(myCollection); 1676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Collection should contain null", c.contains(null)); 1677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Collection should contain Integer(20)", c 1678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .contains(new Integer(20))); 1679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myCollection = new ArrayList(); 1681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < 100; counter++) { 1682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myCollection.add(objArray[counter]); 1683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_UnmodifiableCollectionTest("", Collections 1685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .unmodifiableCollection(myCollection)).runTest(); 1686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#unmodifiableList(java.util.List) 1690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiableListLjava_util_List() { 1692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.List 1693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.unmodifiableList(java.util.List) 1694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with a Sequential Access List 1696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean exception = false; 1697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List c = Collections.unmodifiableList(ll); 1698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ensure a NPE is thrown if the list is NULL 1699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.unmodifiableList(null); 1701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NullPointerException for null list parameter"); 1702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned list is of incorrect size", c.size() == ll.size()); 1706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 1707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Returned List should not implement Random Access interface", 1708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes !(c instanceof RandomAccess)); 1709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ll.iterator(); 1711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 1712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned list missing elements", c.contains(i.next())); 1713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.add(new Object()); 1715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!exception) { 1720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of list"); 1721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.remove(new Object()); 1725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of list"); 1726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test with a Random Access List 1731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List smallList = new ArrayList(); 1732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(null); 1733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add("yoink"); 1734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c = Collections.unmodifiableList(smallList); 1735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("First element should be null", c.get(0)); 1736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("List should contain null", c.contains(null)); 1737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 1738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "T1. Returned List should implement Random Access interface", 1739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c instanceof RandomAccess); 1740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList = new ArrayList(); 1742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < 100; counter++) { 1743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallList.add(objArray[counter]); 1744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List myList = Collections.unmodifiableList(smallList); 1746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("List should not contain null", !myList.contains(null)); 1747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 1748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "T2. Returned List should implement Random Access interface", 1749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myList instanceof RandomAccess); 1750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("get failed on unmodifiable list", myList.get(50).equals( 1752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Integer(50))); 1753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ListIterator listIterator = myList.listIterator(); 1754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; listIterator.hasNext(); counter++) { 1755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("List has wrong elements", ((Integer) listIterator 1756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .next()).intValue() == counter); 1757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_UnmodifiableCollectionTest("", smallList).runTest(); 1759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#unmodifiableMap(java.util.Map) 1763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiableMapLjava_util_Map() { 1765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Map 1766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.unmodifiableMap(java.util.Map) 1767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean exception = false; 1768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map c = Collections.unmodifiableMap(hm); 1769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned map is of incorrect size", c.size() == hm.size()); 1770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = hm.keySet().iterator(); 1771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) { 1772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object x = i.next(); 1773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned map missing elements", c.get(x).equals( 1774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes hm.get(x))); 1775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.put(new Object(), ""); 1778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Allowed modification of map", exception); 1783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = false; 1785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.remove(new Object()); 1787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Allowed modification of map", exception); 1792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = false; 1794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator it = c.entrySet().iterator(); 1795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map.Entry entry = (Map.Entry) it.next(); 1796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes entry.setValue("modified"); 1798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Allowed modification of entry", exception); 1803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = false; 1805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object[] array = c.entrySet().toArray(); 1806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((Map.Entry) array[0]).setValue("modified"); 1808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Allowed modification of array entry", exception); 1813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = false; 1815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map.Entry[] array2 = (Map.Entry[]) c.entrySet().toArray( 1816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Map.Entry[0]); 1817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes array2[0].setValue("modified"); 1819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Allowed modification of array entry2", exception); 1824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes HashMap smallMap = new HashMap(); 1826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(null, new Long(30)); 1827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(new Long(25), null); 1828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map unmodMap = Collections.unmodifiableMap(smallMap); 1829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Trying to use a null value in map failed", unmodMap 1831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .get(new Long(25))); 1832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Trying to use a null key in map failed", unmodMap.get(null) 1833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new Long(30))); 1834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap = new HashMap(); 1836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < 100; counter++) { 1837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes smallMap.put(objArray[counter].toString(), objArray[counter]); 1838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes unmodMap = Collections.unmodifiableMap(smallMap); 1840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_UnmodifiableMapTest("", unmodMap).runTest(); 1841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#unmodifiableSet(java.util.Set) 1846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiableSetLjava_util_Set() { 1848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Set 1849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.unmodifiableSet(java.util.Set) 1850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean exception = false; 1851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set c = Collections.unmodifiableSet(s); 1852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned set is of incorrect size", c.size() == s.size()); 1853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ll.iterator(); 1854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 1855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned set missing elements", c.contains(i.next())); 1856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.add(new Object()); 1858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!exception) { 1863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of set"); 1864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.remove(new Object()); 1867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of set"); 1868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set mySet = Collections.unmodifiableSet(new HashSet()); 1873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not contain null", !mySet.contains(null)); 1874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mySet = Collections.unmodifiableSet(Collections.singleton(null)); 1875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should contain null", mySet.contains(null)); 1876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mySet = new TreeSet(); 1878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int counter = 0; counter < 100; counter++) { 1879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mySet.add(objArray[counter]); 1880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Support_UnmodifiableCollectionTest("", Collections 1882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .unmodifiableSet(mySet)).runTest(); 1883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#unmodifiableSortedMap(java.util.SortedMap) 1887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiableSortedMapLjava_util_SortedMap() { 1889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedMap 1890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.unmodifiableSortedMap(java.util.SortedMap) 1891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean exception = false; 1892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TreeMap tm = new TreeMap(); 1893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes tm.putAll(hm); 1894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map c = Collections.unmodifiableSortedMap(tm); 1895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned map is of incorrect size", c.size() == tm.size()); 1896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = hm.keySet().iterator(); 1897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) { 1898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object x = i.next(); 1899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned map missing elements", c.get(x).equals( 1900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes tm.get(x))); 1901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.put(new Object(), ""); 1904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!exception) { 1909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of map"); 1910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.remove(new Object()); 1913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 1916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of map"); 1918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#unmodifiableSortedSet(java.util.SortedSet) 1922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiableSortedSetLjava_util_SortedSet() { 1924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.SortedSet 1925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.util.Collections.unmodifiableSortedSet(java.util.SortedSet) 1926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean exception = false; 1927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SortedSet ss = new TreeSet(); 1928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ss.addAll(s); 1929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SortedSet c = Collections.unmodifiableSortedSet(ss); 1930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned set is of incorrect size", c.size() == ss.size()); 1931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator i = ll.iterator(); 1932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) 1933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned set missing elements", c.contains(i.next())); 1934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.add(new Object()); 1936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes exception = true; 1938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!exception) { 1941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of set"); 1942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.remove(new Object()); 1945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 1946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 1947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 1948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Allowed modification of set"); 1950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test unmodifiable objects toString methods 1954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unmodifiable_toString_methods() { 1956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-552 1957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ArrayList al = new ArrayList(); 1958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.add("a"); 1959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes al.add("b"); 1960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection uc = Collections.unmodifiableCollection(al); 1961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("[a, b]", uc.toString()); 1962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes HashMap m = new HashMap(); 1963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes m.put("one", "1"); 1964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes m.put("two", "2"); 1965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map um = Collections.unmodifiableMap(m); 1966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("{one=1, two=2}", um.toString()); 1967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#checkType(Object, Class) 1971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_checkType_Ljava_lang_Object_Ljava_lang_Class() throws Exception { 1973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Method m = Collections.class.getDeclaredMethod("checkType", Object.class, Class.class); 1974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes m.setAccessible(true); 1975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes m.invoke(null, new Object(), Object.class); 1976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes m.invoke(null, new Object(), int.class); 19792a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes fail(); 19802a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (InvocationTargetException expected) { 1981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_binarySearch_asymmetry_with_comparator() throws Exception{ 1985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new ArrayList(); 1986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s1 = new String("a"); 1987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s2 = new String("aa"); 1988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s3 = new String("aaa"); 1989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(s1); 1990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(s2); 1991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(s3); 1992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(list); 1993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object o = Collections.binarySearch(list, 1, new StringComparator()); 1994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(0,o); 1995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_binarySearch_asymmetry() throws Exception{ 1998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List list = new LinkedList(); 1999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s1 = new String("a"); 2000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s2 = new String("aa"); 2001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s3 = new String("aaa"); 2002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(new MyComparable(s1)); 2003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(new MyComparable(s2)); 2004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes list.add(new MyComparable(s3)); 2005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.sort(list); 2006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object o = Collections.binarySearch(list, 1); 2007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(0,o); 2008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private class MyComparable implements Comparable { 2012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String s; 2014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public MyComparable(String s) { 2016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.s = s; 2017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int compareTo(Object another) { 2021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int length = 0; 2022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (another instanceof MyComparable) { 2023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes length = (((MyComparable) another).s).length(); 2024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 2025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes length = (Integer) another; 2026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return s.length() - length; 2028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private class StringComparator implements Comparator { 2033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int compare(Object object1, Object object2) { 2035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s = (String) object1; 2036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int length; 2037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if(object2 instanceof String){ 2038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes length = ((String)object2).length(); 2039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 2041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes { 2042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes length = (Integer) object2; 2043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return s.length() - length; 2045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.Collections#newSetFromMap(Map)} 2051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_newSetFromMap_LMap() throws Exception { 2053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt[] = new Integer[100]; 2054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testInt[i] = new Integer(i); 2056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map<Integer,Boolean> map = new HashMap<Integer,Boolean>(); 2058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<Integer> set = Collections.newSetFromMap(map); 2059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.put(testInt[i], true); 2061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // operater on map successed 2063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.put(testInt[1], false); 2064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(map.containsKey(testInt[1])); 2065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(100, map.size()); 2066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(map.get(testInt[1])); 2067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(100, set.size()); 2068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(set.contains(testInt[16])); 2069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator setIter = set.iterator(); 2070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator mapIter = map.keySet().iterator(); 2071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int i = 0; 2072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // in the same order 2073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while(setIter.hasNext()){ 2074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(mapIter.next(),setIter.next()); 2075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // operator on set successed 2078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt101 = new Integer(101); 2079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt102 = new Integer(102); 2080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes set.add(testInt101); 2081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(set.contains(testInt101)); 2082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(map.get(testInt101)); 2083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // operator on map still passes 2085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.put(testInt102, false); 2086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(set.contains(testInt102)); 2087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(map.get(testInt102)); 2088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // exception thrown 2090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 2091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collections.newSetFromMap(map); 2092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail ("should throw IllegalArgumentException"); 2093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 2094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 2095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests serialization/deserialization. 2100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings({ "unchecked", "boxing" }) 2102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSerializationSelf_newSetFromMap() throws Exception { 2103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt[] = new Integer[100]; 2104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testInt[i] = new Integer(i); 2106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map<Integer,Boolean> map = new HashMap<Integer,Boolean>(); 2108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<Integer> set = Collections.newSetFromMap(map); 2109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.put(testInt[i], true); 2111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SerializationTest.verifySelf(set); 2113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests serialization/deserialization compatibility with RI. 2117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings({ "unchecked", "boxing" }) 2119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSerializationCompatibility_newSetFromMap() throws Exception { 2120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt[] = new Integer[100]; 2121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testInt[i] = new Integer(i); 2123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Map<Integer,Boolean> map = new HashMap<Integer,Boolean>(); 2125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<Integer> set = Collections.newSetFromMap(map); 2126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.put(testInt[i], true); 2128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(SerializationTester.assertCompabilityEquals(set, "serialization/java/util/Collections_newSetFromMap.golden.ser")); 2130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.Collections#asLifoQueue(Deque) 2134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_asLifoQueue() throws Exception { 2136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt[] = new Integer[100]; 2137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer test101 = new Integer(101); 2138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testInt[i] = new Integer(i); 2140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Deque deque = new ArrayDeque<Integer>(); 2142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Queue<Integer> que = Collections.asLifoQueue(deque); 2143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes que.add(testInt[i]); 2145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(100, deque.size()); 2147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(100, que.size()); 2148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = testInt.length-1; i >=0 ; i--) { 2149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(testInt[i], deque.pop()); 2150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, deque.size()); 2152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, que.size()); 2153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes deque.push(testInt[i]); 2155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(100, deque.size()); 2157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(100, que.size()); 2158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection col = new LinkedList<Integer>(); 2159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes col.add(test101); 2160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes que.addAll(col); 2161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(test101, que.remove()); 2162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = testInt.length-1; i >=0 ; i--) { 2163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(testInt[i], que.remove()); 2164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, deque.size()); 2166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, que.size()); 2167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests serialization/deserialization. 2171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings({ "unchecked", "boxing" }) 2173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSerializationSelf_asLifoQueue() throws Exception { 2174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt[] = new Integer[100]; 2175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer test101 = new Integer(101); 2176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testInt[i] = new Integer(i); 2178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Deque deque = new ArrayDeque<Integer>(); 2180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Queue<Integer> que = Collections.asLifoQueue(deque); 2181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes que.add(testInt[i]); 2183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SerializationTest.verifySelf(que, new SerializableAssert(){ 2185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void assertDeserialized(Serializable initial, Serializable deserialized) { 2186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Queue<Integer> initque = (Queue) initial; 2187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Queue<Integer> deserque = (Queue) deserialized; 2188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (!initque.isEmpty()){ 2189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(initque.remove(),deserque.remove()); 2190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }); 2193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests serialization/deserialization compatibility with RI. 2197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings({ "unchecked", "boxing" }) 2199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSerializationCompatibility_asLifoQueue() throws Exception { 2200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer testInt[] = new Integer[100]; 2201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Integer test101 = new Integer(101); 2202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testInt[i] = new Integer(i); 2204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Deque deque = new ArrayDeque<Integer>(); 2206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Queue<Integer> que = Collections.asLifoQueue(deque); 2207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < testInt.length; i++) { 2208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes que.add(testInt[i]); 2209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Queue deserQue = (Queue)SerializationTester.readObject(que, "serialization/java/util/Collections_asLifoQueue.golden.ser"); 2211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while(!deserQue.isEmpty()){ 2212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(que.remove(),deserQue.remove()); 2213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.Collections#emptyList() 2218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_emptyList() { 2220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List<String> list = Collections.emptyList(); 2221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("should be true", list.isEmpty()); 2222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Sets up the fixture, for example, open a network connection. This method 2226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * is called before a test is executed. 2227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 2229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ll = new LinkedList(); 2230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myll = new LinkedList(); 2231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s = new HashSet(); 2232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mys = new HashSet(); 2233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reversedLinkedList = new LinkedList(); // to be sorted in reverse order 2234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myReversedLinkedList = new LinkedList(); // to be sorted in reverse 2235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // order 2236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes hm = new HashMap(); 2237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < objArray.length; i++) { 2238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ll.add(objArray[i]); 2239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myll.add(myobjArray[i]); 2240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.add(objArray[i]); 2241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mys.add(myobjArray[i]); 2242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reversedLinkedList.add(objArray[objArray.length - i - 1]); 2243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes myReversedLinkedList.add(myobjArray[myobjArray.length - i - 1]); 2244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes hm.put(objArray[i].toString(), objArray[i]); 2245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tears down the fixture, for example, close a network connection. This 2250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method is called after a test is executed. 2251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() { 2253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void doneSuite() { 2256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objArray = null; 2257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 2259