1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.java.util; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collections; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Comparator; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.LinkedList; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ListIterator; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.NoSuchElementException; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Random; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.RandomAccess; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.SortedSet; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TreeMap; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TreeSet; 395839b909d9528b7726e678a4b696ed37df15d897Jesse Wilsonimport java.util.Arrays; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_CollectionTest; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_ListTest; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_SetTest; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_UnmodifiableCollectionTest; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_UnmodifiableMapTest; 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class CollectionsTest extends junit.framework.TestCase { 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private LinkedList ll; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private LinkedList myll; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 53740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private LinkedList reversedLinkedList; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 55740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private LinkedList myReversedLinkedList; 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private Set s; 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 59740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private Set mys; 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 61740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private HashMap hm; 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 63740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private Object[] objArray; 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann private Object[] myobjArray; 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static class ReversedMyIntComparator implements Comparator { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int compare(Object o1, Object o2) { 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return -((MyInt) o1).compareTo((MyInt) o2); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int equals(Object o1, Object o2) { 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return ((MyInt) o1).compareTo((MyInt) o2); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static class SynchCollectionChecker implements Runnable { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection col; 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int colSize; 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int totalToRun; 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean offset; 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project volatile int numberOfChecks = 0; 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean result = true; 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList normalCountingList; 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList offsetCountingList; 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // ensure the list either contains the numbers from 0 to size-1 or 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the numbers from size to 2*size -1 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (numberOfChecks < totalToRun) { 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (col) { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!(col.isEmpty() || col.containsAll(normalCountingList) || col 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsAll(offsetCountingList))) 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = false; 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col.clear(); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (offset) 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col.addAll(offsetCountingList); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col.addAll(normalCountingList); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project numberOfChecks++; 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SynchCollectionChecker(Collection c, boolean offset, 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int totalChecks) { 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // The collection to test, whether to offset the filler values by 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // size or not, and the min number of iterations to run 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project totalToRun = totalChecks; 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col = c; 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project colSize = c.size(); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalCountingList = new ArrayList(colSize); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetCountingList = new ArrayList(colSize); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < colSize; counter++) 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalCountingList.add(new Integer(counter)); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < colSize; counter++) 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetCountingList.add(new Integer(counter + colSize)); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col.clear(); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (offset) 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col.addAll(offsetCountingList); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col.addAll(normalCountingList); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean offset() { 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // answer true iff the list is filled with a counting sequence 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // starting at the value size to 2*size - 1 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // else the list with be filled starting at 0 to size - 1 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return offset; 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean getResult() { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // answer true iff no corruption has been found in the collection 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return result; 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getNumberOfChecks() { 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // answer the number of checks that have been performed on the list 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return numberOfChecks; 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static class SynchMapChecker implements Runnable { 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map map; 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int mapSize; 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int totalToRun; 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean offset; 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project volatile int numberOfChecks = 0; 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean result = true; 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map normalCountingMap; 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map offsetCountingMap; 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object firstNormalValue = normalCountingMap.get(new Integer(0)); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object lastNormalValue = normalCountingMap.get(new Integer( 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mapSize - 1)); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object firstOffsetValue = offsetCountingMap 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(new Integer(mapSize)); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object lastOffsetValue = offsetCountingMap.get(new Integer( 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2 * mapSize - 1)); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // ensure the list either contains the numbers from 0 to size-1 or 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the numbers from size to 2*size -1 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (numberOfChecks < totalToRun) { 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (map) { 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!(map.isEmpty() 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (map.containsValue(firstNormalValue) && map 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsValue(lastNormalValue)) || (map 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsValue(firstOffsetValue) && map 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsValue(lastOffsetValue)))) 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = false; 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.clear(); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (offset) 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.putAll(offsetCountingMap); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.putAll(normalCountingMap); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project numberOfChecks++; 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SynchMapChecker(Map m, boolean offset, int totalChecks) { 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // The collection to test, whether to offset the filler values by 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // size or not, and the min number of iterations to run 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer myInt; 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project totalToRun = totalChecks; 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map = m; 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mapSize = m.size(); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalCountingMap = new HashMap(mapSize); 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetCountingMap = new HashMap(mapSize); 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < mapSize; counter++) { 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myInt = new Integer(counter); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalCountingMap.put(myInt, myInt); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < mapSize; counter++) { 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myInt = new Integer(counter + mapSize); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetCountingMap.put(myInt, myInt); 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.clear(); 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (offset) 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.putAll(offsetCountingMap); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.putAll(normalCountingMap); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean offset() { 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // answer true iff the list is filled with a counting sequence 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // starting at the value size to 2*size - 1 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // else the list with be filled starting at 0 to size - 1 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return offset; 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean getResult() { 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // answer true iff no corruption has been found in the collection 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return result; 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getNumberOfChecks() { 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // answer the number of checks that have been performed on the list 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return numberOfChecks; 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static class CollectionTest extends junit.framework.TestCase { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection col; // must contain the Integers 0 to 99 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public CollectionTest(String p1) { 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(p1); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public CollectionTest(String p1, Collection c) { 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(p1); 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project col = c; 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static class MyInt { 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int data; 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MyInt(int value) { 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data = value; 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int compareTo(MyInt object) { 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return data > object.data ? 1 : (data < object.data ? -1 : 0); 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 265229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#binarySearch(java.util.List, 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Object) 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_binarySearchLjava_util_ListLjava_lang_Object() { 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.binarySearch(java.util.List, java.lang.Object) 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes ll is sorted and has no duplicate keys 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int llSize = ll.size(); 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ensure a NPE is thrown if the list is NULL 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.binarySearch(null, new Object()); 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < llSize; counter++) { 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect binary search item position", ll 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(Collections.binarySearch(ll, ll.get(counter))) == ll 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter)); 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 287229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#binarySearch(java.util.List, 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Object, java.util.Comparator) 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_binarySearchLjava_util_ListLjava_lang_ObjectLjava_util_Comparator() { 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.binarySearch(java.util.List, java.lang.Object, 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Comparator) 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes reversedLinkedList is sorted in reversed order and has no 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // duplicate keys 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int rSize = myReversedLinkedList.size(); 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ReversedMyIntComparator comp = new ReversedMyIntComparator(); 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ensure a NPE is thrown if the list is NULL 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.binarySearch(null, new Object(), comp); 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < rSize; counter++) { 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned incorrect binary search item position using custom comparator", 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myReversedLinkedList.get(Collections.binarySearch( 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myReversedLinkedList, myReversedLinkedList 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter), comp)) == myReversedLinkedList 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter)); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_ArrayList extends ArrayList { 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object set (int index, Object o){ 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new UnsupportedOperationException(); 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 321f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 323229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#copy(java.util.List, java.util.List) 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_copyLjava_util_ListLjava_util_List() { 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.copy(java.util.List, 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.List) 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ensure a NPE is thrown if the list is NULL 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.copy(null, ll); 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list first parameter"); 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.copy(ll, null); 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list second parameter"); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int llSize = ll.size(); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ll.set(25, null); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer extraElement = new Integer(1); 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer extraElement2 = new Integer(2); 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.addAll(myReversedLinkedList); 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(extraElement); 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(extraElement2); 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.copy(al, ll); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < llSize; counter++) { 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Elements do not match after copying collection", al 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter) == ll.get(counter)); 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Elements after copied elements affected by copy", 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project extraElement == al.get(llSize) 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && extraElement2 == al.get(llSize + 1)); 355f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList ar1 = new ArrayList(); 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList ar2 = new ArrayList(); 358f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 360f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < 5; i ++) { 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ar2.add(new Integer(i)); 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 364f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < 10; i ++) { 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ar1.add(new Integer(i)); 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 368f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.copy(ar2, ar1); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 375f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal1 = new Mock_ArrayList(); 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal2 = new Mock_ArrayList(); 378f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < 10; i ++) { 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal1.add(new Integer(i)); 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal2.add(new Integer(10 - i)); 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 383f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.copy(mal1, mal2); 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 393229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#copy(java.util.List, java.util.List) 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_copy_check_index() { 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList a1 = new ArrayList(); 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project a1.add("one"); 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project a1.add("two"); 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList a2 = new ArrayList(); 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project a2.add("aa"); 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.copy(a2, a1); 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException"); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("aa", a2.get(0)); 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 413229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#enumeration(java.util.Collection) 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_enumerationLjava_util_Collection() { 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Enumeration 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.enumeration(java.util.Collection) 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TreeSet ts = new TreeSet(); 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ts.addAll(s); 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = Collections.enumeration(ts); 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int count = 0; 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect enumeration", 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project e.nextElement() == objArray[count++]); 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Enumeration missing elements: " + count, 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project count == objArray.length); 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 430229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#fill(java.util.List, java.lang.Object) 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_fillLjava_util_ListLjava_lang_Object() { 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.fill(java.util.List, 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.lang.Object) 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.fill(null, new Object()); 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int size = ll.size(); 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.fill(ll, "k"); 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Fill modified list size", size == ll.size()); 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = ll.iterator(); 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Failed to fill elements", "k", i.next()); 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.fill(ll, null); 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Fill with nulls modified list size", size == ll.size()); 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project i = ll.iterator(); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Failed to fill with nulls", i.next()); 452f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal = new Mock_ArrayList(); 454f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("one"); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("two"); 457f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.fill(mal, "value"); 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException ecpected"); 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 467229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#max(java.util.Collection) 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_maxLjava_util_Collection() { 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.max(java.util.Collection) 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes s, objArray are sorted 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect max element", 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.max(s) == objArray[objArray.length - 1]); 475f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 477f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.max(al); 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchElementException expected"); 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 484f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("String"); 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Integer(1)); 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Double(3.14)); 488f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.max(al); 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 498229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#max(java.util.Collection, 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.Comparator) 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_maxLjava_util_CollectionLjava_util_Comparator() { 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.max(java.util.Collection, java.util.Comparator) 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes s, objArray are sorted 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // With this custom (backwards) comparator the 'max' element should be 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the smallest in the list 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ReversedMyIntComparator rmic = new ReversedMyIntComparator(); 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned incorrect max element using custom comparator", 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.max(mys, rmic) == myobjArray[0]); 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 514f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.max(al, rmic); 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchElementException expected"); 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 521f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("String"); 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Integer(1)); 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Double(3.14)); 525f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.max(al, rmic); 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 535229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#min(java.util.Collection) 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_minLjava_util_Collection() { 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.min(java.util.Collection) 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes s, objArray are sorted 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect min element", 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.min(s) == objArray[0]); 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 544f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.min(al); 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchElementException expected"); 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 551f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("String"); 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Integer(1)); 554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Double(3.14)); 555f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.min(al); 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 565229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#min(java.util.Collection, 566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.Comparator) 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_minLjava_util_CollectionLjava_util_Comparator() { 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.min(java.util.Collection, java.util.Comparator) 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes s, objArray are sorted 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // With this custom (backwards) comparator the 'min' element should be 574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the largest in the list 575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ReversedMyIntComparator rmic = new ReversedMyIntComparator(); 576f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned incorrect min element using custom comparator", 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.min(mys, rmic) == myobjArray[objArray.length - 1]); 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 582f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.min(al, rmic); 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchElementException expected"); 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 589f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("String"); 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Integer(1)); 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Double(3.14)); 593f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.min(al, rmic); 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 603229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#nCopies(int, java.lang.Object) 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_nCopiesILjava_lang_Object() { 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.List java.util.Collections.nCopies(int, 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.lang.Object) 608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o = new Object(); 609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List l = Collections.nCopies(100, o); 610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = l.iterator(); 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object first = i.next(); 612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned list consists of copies not refs", first == o); 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Returned list of incorrect size", 100, l.size()); 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Contains", l.contains(o)); 615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Contains null", !l.contains(null)); 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("null nCopies contains", !Collections.nCopies(2, null) 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(o)); 618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("null nCopies contains null", Collections.nCopies(2, null) 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(null)); 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l = Collections.nCopies(20, null); 621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project i = l.iterator(); 622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; i.hasNext(); counter++) { 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("List is too large", counter < 20); 624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Element should be null: " + counter, i.next()); 625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(o); 628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Returned list is not immutable"); 629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.nCopies(-2, new HashSet()); 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("nCopies with negative arg didn't throw IAE"); 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 642229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#reverse(java.util.List) 643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_reverseLjava_util_List() { 645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.reverse(java.util.List) 646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.reverse(null); 648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.reverse(ll); 652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = ll.iterator(); 653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int count = objArray.length - 1; 654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) { 655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to reverse collection", 656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project i.next() == objArray[count]); 657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project --count; 658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList myList = new ArrayList(); 660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myList.add(null); 661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myList.add(new Integer(20)); 662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.reverse(myList); 663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Did not reverse correctly--first element is: " 664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + myList.get(0), myList.get(0).equals(new Integer(20))); 665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Did not reverse correctly--second element is: " 666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + myList.get(1), myList.get(1)); 667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal = new Mock_ArrayList(); 669f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("First"); 671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("Second"); 672f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.reverse(mal); 675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 682229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#reverseOrder() 683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_reverseOrder() { 685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Comparator 686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.reverseOrder() 687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes no duplicates in ll 688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Comparator comp = Collections.reverseOrder(); 689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList list2 = new LinkedList(ll); 690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(list2, comp); 691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int llSize = ll.size(); 692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < llSize; counter++) 693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("New comparator does not reverse sorting order", ll 694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter) == list2.get(llSize - counter - 1)); 695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 698229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#shuffle(java.util.List) 699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_shuffleLjava_util_List() { 701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.shuffle(java.util.List) 702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Assumes ll is sorted and has no duplicate keys and is large ( > 20 703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // elements) 704adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test shuffling a Sequential Access List 706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(null); 708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.addAll(ll); 713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testShuffle(al, "Sequential Access", false); 714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test shuffling a Random Access List 716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList ll2 = new LinkedList(); 717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ll2.addAll(ll); 718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testShuffle(ll2, "Random Access", false); 7195839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson } 720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 7215839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson public void testShuffleRandomAccessWithSeededRandom() { 7225839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson List<String> list = Arrays.asList("A", "B", "C", "D", "E", "F", "G"); 7235839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson Collections.shuffle(list, new Random(0)); 7245839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson assertEquals(Arrays.asList("B", "A", "D", "C", "G", "E", "F"), list); 7255839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson } 7265839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson 7275839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson public void testShuffleWithSeededRandom() { 7285839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson List<String> list = new LinkedList<String>(Arrays.asList( 7295839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson "A", "B", "C", "D", "E", "F", "G")); 7305839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson Collections.shuffle(list, new Random(0)); 7315839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson assertEquals(Arrays.asList("B", "A", "D", "C", "G", "E", "F"), list); 732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void testShuffle(List list, String type, boolean random) { 735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean sorted = true; 736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean allMatch = true; 737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int index = 0; 738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int size = list.size(); 739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (random) 741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(list); 742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(list, new Random(200)); 744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < size - 1; counter++) { 746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (((Integer) list.get(counter)).compareTo((Integer)list.get(counter + 1)) > 0) { 747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sorted = false; 748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 7505839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson assertFalse("Shuffling sorted " + type 7515839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson + " list resulted in sorted list (should be unlikely)", sorted); 752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < 20; counter++) { 753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project index = 30031 * counter % (size + 1); // 30031 is a large prime 754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (list.get(index) != ll.get(index)) 755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project allMatch = false; 756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 7575839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson assertFalse("Too many element positions match in shuffled " + type 7585839b909d9528b7726e678a4b696ed37df15d897Jesse Wilson + " list", allMatch); 759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 762229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#shuffle(java.util.List, java.util.Random) 763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_shuffleLjava_util_ListLjava_util_Random() { 765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.shuffle(java.util.List, 766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Random) 767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Assumes ll is sorted and has no duplicate keys and is large ( > 20 768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // elements) 769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test shuffling a Sequential Access List 771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(null, new Random(200)); 773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.addAll(ll); 778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testShuffle(al, "Sequential Access", true); 779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test shuffling a Random Access List 781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList ll2 = new LinkedList(); 782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ll2.addAll(ll); 783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testShuffle(ll2, "Random Access", true); 784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal = new Mock_ArrayList(); 787f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("First"); 789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("Second"); 790f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(mal, new Random(200)); 793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 800229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#singleton(java.lang.Object) 801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_singletonLjava_lang_Object() { 803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set 804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.singleton(java.lang.Object) 805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object o = new Object(); 806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set single = Collections.singleton(o); 807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size", 1, single.size()); 808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Contains", single.contains(o)); 809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Contains null", !single.contains(null)); 810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("null nCopies contains", !Collections.singleton(null) 811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(o)); 812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("null nCopies contains null", Collections.singleton(null) 813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(null)); 814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project single.add("l"); 816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of singleton"); 821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 824229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#sort(java.util.List) 825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_sortLjava_util_List() { 827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.sort(java.util.List) 828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assumes no duplicate keys in ll 829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int llSize = ll.size(); 830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int rllSize = reversedLinkedList.size(); 831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort((List)null); 833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(ll); 837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(ll); 838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(reversedLinkedList); 839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < llSize - 1; counter++) { 840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Sorting shuffled list resulted in unsorted list", 842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ((Integer) ll.get(counter)).compareTo((Integer)ll.get(counter + 1)) < 0); 843adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < rllSize - 1; counter++) { 846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Sorting reversed list resulted in unsorted list", 847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ((Integer) reversedLinkedList.get(counter)) 848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .compareTo((Integer)reversedLinkedList.get(counter + 1)) < 0); 849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 852f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("String"); 854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Integer(1)); 855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Double(3.14)); 856f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(al); 859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 860adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 863f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal = new Mock_ArrayList(); 865f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("First"); 867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("Second"); 868f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(mal); 871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 876adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 877adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 878229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#sort(java.util.List, java.util.Comparator) 879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_sortLjava_util_ListLjava_util_Comparator() { 881adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Collections.sort(java.util.List, 882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Comparator) 883adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Comparator comp = new ReversedMyIntComparator(); 884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(null, comp); 886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 887adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.shuffle(myll); 890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(myll, comp); 891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int llSize = myll.size(); 892adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 893adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < llSize - 1; counter++) { 894adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Sorting shuffled list with custom comparator resulted in unsorted list", 896adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ((MyInt) myll.get(counter)).compareTo((MyInt) myll 897adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(counter + 1)) >= 0); 898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 899adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 901f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 902adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("String"); 903adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Integer(1)); 904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add(new Double(3.14)); 905f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 906adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(al, comp); 908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 912f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 913adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal = new Mock_ArrayList(); 914f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add(new MyInt(1)); 916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add(new MyInt(2)); 917f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(mal, comp); 920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 923adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 927229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#swap(java.util.List, int, int) 928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_swapLjava_util_ListII() { 930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method swap(java.util.List, int, int) 931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList smallList = new LinkedList(); 933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10; i++) { 934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 935adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test exception cases 938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.swap(smallList, -1, 6); 940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException for -1"); 941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 942adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 943adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 944adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.swap(smallList, 6, -1); 946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException for -1"); 947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 951adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.swap(smallList, 6, 11); 952adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException for 11"); 953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 954adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.swap(smallList, 11, 6); 958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException for 11"); 959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 962adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ensure a NPE is thrown if the list is NULL 963adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.swap(null, 1, 1); 965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 967adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test with valid parameters 970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.swap(smallList, 4, 7); 971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Didn't Swap the element at position 4 ", new Integer(7), 972adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.get(4)); 973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Didn't Swap the element at position 7 ", new Integer(4), 974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.get(7)); 975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // make sure other elements didn't get swapped by mistake 977adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10; i++) { 978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (i != 4 && i != 7) 979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("shouldn't have swapped the element at position " 980adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + i, new Integer(i), smallList.get(i)); 981adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 985229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#replaceAll(java.util.List, java.lang.Object, 986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Object) 987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_replaceAllLjava_util_ListLjava_lang_ObjectLjava_lang_Object() { 989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method replaceAll(java.util.List, java.lang.Object, 990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.lang.Object) 991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 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"; 993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] chars = string1.toCharArray(); 994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List list = new ArrayList(); 995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < chars.length; i++) { 996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(new Character(chars[i])); 997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 999adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.replaceAll(null, new Object(), new Object()); 1001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 1002adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1003adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1004adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1005adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test replace for an element that is not in the list 1006adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean result = Collections.replaceAll(list, new Character('1'), 1007adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Character('Z')); 1008adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("Test1: Collections.replaceAll() returned wrong result", 1009adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result); 1010adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test2 : ReplaceAll modified the list incorrectly", 1011adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project string1, getString(list)); 1012adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1013adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test replace for an element that is in the list 1014adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = Collections.replaceAll(list, new Character('S'), 1015adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Character('K')); 1016adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test3: Collections.replaceAll() returned wrong result", 1017adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result); 1018adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test4: ReplaceAll modified the list incorrectly", 1019adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (string1 = string1.replace('S', 'K')), getString(list)); 1020adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1021adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test replace for the last element in the list 1022adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = Collections.replaceAll(list, new Character('Z'), 1023adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Character('N')); 1024adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test5: Collections.replaceAll() returned wrong result", 1025adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result); 1026adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test6: ReplaceAll modified the list incorrectly", 1027adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (string1 = string1.replace('Z', 'N')), getString(list)); 1028adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1029adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test replace for the first element in the list 1030adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = Collections.replaceAll(list, new Character('A'), 1031adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Character('B')); 1032adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test7: Collections.replaceAll() returned wrong result", 1033adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result); 1034adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test8: ReplaceAll modified the list incorrectly", 1035adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (string1 = string1.replace('A', 'B')), getString(list)); 1036adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1037adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test replacing elements with null 1038adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList smallList = new LinkedList(); 1039adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10; i++) { 1040adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 1041adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1042adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.set(4, new Integer(5)); 1043adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = Collections.replaceAll(smallList, new Integer(5), null); 1044adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test9: Collections.replaceAll() returned wrong result", 1045adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result); 1046adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < smallList.size(); i++) { 1047adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (i == 4 || i == 5) 1048adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertSame("Test9: ReplaceAll didn't replace element at " + i, 1049adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null, smallList.get(i)); 1050adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 1051adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals( 1052adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Test9: ReplaceAll shouldn't have replaced element at " 1053adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + i, new Integer(i), smallList.get(i)); 1054adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1055adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1056adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test replacing null elements with another value 1057adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = Collections.replaceAll(smallList, null, new Integer(99)); 1058adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test10: Collections.replaceAll() returned wrong result", 1059adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result); 1060adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1061adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < smallList.size(); i++) { 1062adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (i == 4 || i == 5) 1063adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test10: ReplaceAll didn't replace element at " 1064adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + i, new Integer(99), smallList.get(i)); 1065adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 1066adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals( 1067adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Test10: ReplaceAll shouldn't have replaced element at " 1068adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + i, new Integer(i), smallList.get(i)); 1069adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1070f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1071adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_ArrayList mal = new Mock_ArrayList(); 1072f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1073adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("First"); 1074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mal.add("Second"); 1075f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1077adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.replaceAll(mal, "Second", null); 1078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 1079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1080adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1085229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#rotate(java.util.List, int) 1086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1087adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_rotateLjava_util_ListI() { 1088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method rotate(java.util.List, int) 1089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1091adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(null, 0); 1092adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 1093adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1095adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test rotating a Sequential Access List 1097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList list1 = new LinkedList(); 1098adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10; i++) { 1099adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list1.add(objArray[i]); 1100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testRotate(list1, "Sequential Access"); 1102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test rotating a Random Access List 1104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList list2 = new ArrayList(); 1105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10; i++) { 1106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list2.add(objArray[i]); 1107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testRotate(list2, "Random Access"); 1109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void testRotate(List list, String type) { 1112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate with positive distance 1113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, 7); 1114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test1: rotate modified the " + type 1115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "3456789012", getString(list)); 1116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate with negative distance 1118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, -2); 1119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test2: rotate modified the " + type 1120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5678901234", getString(list)); 1121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate sublist with negative distance 1123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List subList = list.subList(1, 5); 1124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(subList, -1); 1125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test3: rotate modified the " + type 1126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5789601234", getString(list)); 1127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate sublist with positive distance 1129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(subList, 2); 1130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test4: rotate modified the " + type 1131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5967801234", getString(list)); 1132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate with positive distance that is larger than list size 1134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, 23); 1135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test5: rotate modified the " + type 1136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "2345967801", getString(list)); 1137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate with negative distance that is larger than list size 1139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, -23); 1140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test6: rotate modified the " + type 1141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5967801234", getString(list)); 1142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // rotate with 0 and equivalent distances, this should make no 1144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // modifications to the list 1145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, 0); 1146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test7: rotate modified the " + type 1147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5967801234", getString(list)); 1148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, -30); 1150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test8: rotate modified the " + type 1151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5967801234", getString(list)); 1152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, 30); 1154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test9: rotate modified the " + type 1155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list incorrectly,", "5967801234", getString(list)); 1156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String getString(List list) { 1159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer buffer = new StringBuffer(); 1160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < list.size(); i++) { 1161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buffer.append(list.get(i)); 1162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buffer.toString(); 1164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1167229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#rotate(java.util.List, int) 1168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_rotate2() { 1170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List list = new ArrayList(); 1171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, 5); 1173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected UnsupportedOperationException for empty list, " 1175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + e); 1176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(0, "zero"); 1179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(1, "one"); 1180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(2, "two"); 1181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(3, "three"); 1182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(4, "four"); 1183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, Integer.MIN_VALUE); 1185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 0, ", "three", 1186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (String) list.get(0)); 1187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 1, ", "four", 1188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (String) list.get(1)); 1189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 2, ", "zero", 1190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (String) list.get(2)); 1191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 3, ", "one", 1192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (String) list.get(3)); 1193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 4, ", "two", 1194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (String) list.get(4)); 1195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1198229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#indexOfSubList(java.util.List, 1199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.List) 1200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_indexOfSubListLjava_util_ListLjava_util_List() { 1202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int indexOfSubList(java.util.List, java.util.List) 1203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List list = new ArrayList(); 1204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.indexOfSubList(null, list); 1206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list first parameter"); 1207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.indexOfSubList(list, null); 1211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list second parameter"); 1212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 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"; 1216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(1, string1, "B", true); 1218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(2, string1, "LIST", true); 1219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(3, string1, "SUBLIST", true); 1220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(4, string1, "NONE", true); 1221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(5, string1, "END", true); 1222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test boundary conditions: 1224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(6, "", "", true); 1225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(7, "LIST", "", true); 1226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(8, "", "SUBLIST", true); 1227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1230229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#indexOfSubList(java.util.List, 1231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.List) 1232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_indexOfSubList2() { 1234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList sub = new ArrayList(); 1235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.add(new Integer(1)); 1236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.add(new Integer(2)); 1237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.add(new Integer(3)); 1238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList sub2 = new ArrayList(); 1240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub2.add(new Integer(7)); 1241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub2.add(new Integer(8)); 1242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList src = new ArrayList(); 1244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.addAll(sub); 1245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.addAll(sub); 1246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.addAll(sub); 1247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.add(new Integer(5)); 1248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.add(new Integer(6)); 1249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // so src becomes a list like this: 1251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [1, 2, 3, 1, 2, 3, 1, 2, 3, 5, 6] 1252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(3, 11)); 1254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [1, 2, 3, 1, 2, 3, 5, 6] 1255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestA : Returned wrong indexOfSubList, ", 3, Collections 1256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(src, sub)); 1257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(6, 11)); 1259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [1, 2, 3, 5, 6] 1260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestB : Returned wrong indexOfSubList, ", 6, Collections 1261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(src, sub)); 1262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 3)); 1264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [1, 2, 3] 1265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestCC : Returned wrong indexOfSubList, ", 0, Collections 1266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(src, sub)); 1267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(9, 11)); 1269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [5, 6] 1270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestD : Returned wrong indexOfSubList, ", 9, Collections 1271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(src, sub)); 1272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(10, 11)); 1274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [6] 1275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestE : Returned wrong indexOfSubList, ", 10, Collections 1276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(src, sub)); 1277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 11)); 1279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the whole list 1280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestH : Returned wrong indexIndexOfSubList, ", 0, 1281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.indexOfSubList(src, sub)); 1282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // a non-matching list 1284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestI : Returned wrong indexOfSubList, ", -1, Collections 1285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(src, sub2)); 1286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 128819ab821c3b1da5812590140a21ad9d551a3a3ec5Joshua Bloch 1289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void testwithCharList(int count, String string1, String string2, 1290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean first) { 1291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] chars = string1.toCharArray(); 1292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List list = new ArrayList(); 1293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < chars.length; i++) { 1294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(new Character(chars[i])); 1295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project chars = string2.toCharArray(); 1297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List sublist = new ArrayList(); 1298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < chars.length; i++) { 1299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sublist.add(new Character(chars[i])); 1300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (first) 1303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test " + count + ": Returned wrong index:", string1 1304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOf(string2), Collections 1305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .indexOfSubList(list, sublist)); 1306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 1307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test " + count + ": Returned wrong index:", string1 1308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .lastIndexOf(string2), Collections.lastIndexOfSubList(list, 1309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sublist)); 1310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1313229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#lastIndexOfSubList(java.util.List, 1314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.List) 1315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_lastIndexOfSubListLjava_util_ListLjava_util_List() { 1317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int lastIndexOfSubList(java.util.List, 1318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.List) 1319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 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"; 1320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List list = new ArrayList(); 1322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(null, list); 1324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list first parameter"); 1325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(list, null); 1329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list second parameter"); 1330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(1, string1, "B", false); 1334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(2, string1, "LIST", false); 1335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(3, string1, "SUBLIST", false); 1336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(4, string1, "END", false); 1337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(5, string1, "NONE", false); 1338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test boundary conditions 1340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(6, "", "", false); 1341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(7, "LIST", "", false); 1342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testwithCharList(8, "", "SUBLIST", false); 1343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1346229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#lastIndexOfSubList(java.util.List, 1347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.List) 1348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_lastIndexOfSubList2() { 1350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList sub = new ArrayList(); 1351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.add(new Integer(1)); 1352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.add(new Integer(2)); 1353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.add(new Integer(3)); 1354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList sub2 = new ArrayList(); 1356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub2.add(new Integer(7)); 1357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub2.add(new Integer(8)); 1358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList src = new ArrayList(); 1360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.addAll(sub); 1361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.addAll(sub); 1362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.addAll(sub); 1363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.add(new Integer(5)); 1364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project src.add(new Integer(6)); 1365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // so src is a list like this: 1367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [1, 2, 3, 1, 2, 3, 1, 2, 3, 5, 6] 1368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.reverse(src); 1370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it becomes like this : 1371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [6, 5, 3, 2, 1, 3, 2, 1, 3, 2, 1] 1372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 8)); 1374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [6, 5, 3, 2, 1, 3, 2, 1] 1375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestA : Returned wrong lastIndexOfSubList, ", 0, 1376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 5)); 1379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [6, 5, 3, 2, 1] 1380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestB : Returned wrong lastIndexOfSubList, ", 0, 1381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(2, 5)); 1384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [3, 2, 1] 1385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestC : Returned wrong lastIndexOfSubList, ", 8, 1386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(9, 11)); 1389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [2, 1] 1390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestD : Returned wrong lastIndexOfSubList, ", 9, 1391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(10, 11)); 1394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [1] 1395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestE : Returned wrong lastIndexOfSubList, ", 10, 1396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 2)); 1399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [6, 5] 1400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestF : Returned wrong lastIndexOfSubList, ", 0, 1401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 1)); 1404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // [6] 1405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestG : Returned wrong lastIndexOfSubList, ", 0, 1406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub = new ArrayList(src.subList(0, 11)); 1409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the whole list 1410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestH : Returned wrong lastIndexOfSubList, ", 0, 1411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub)); 1412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // a non-matching list 1414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("TestI : Returned wrong lastIndexOfSubList, ", -1, 1415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.lastIndexOfSubList(src, sub2)); 1416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1419229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#list(java.util.Enumeration) 1420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_listLjava_util_Enumeration() { 1422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.ArrayList list(java.util.Enumeration) 1423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = Collections.enumeration(ll); 1425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = Collections.list(e); 1426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int size = al.size(); 1428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size", ll.size(), size); 1429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < size; i++) { 1431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("wrong element at position " + i + ",", ll.get(i), al 1432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(i)); 1433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1437229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedCollection(java.util.Collection) 1438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedCollectionLjava_util_Collection() { 1440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Collection 1441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.synchronizedCollection(java.util.Collection) 1442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList smallList = new LinkedList(); 1444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 50; i++) { 1445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 1446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int numberOfLoops = 200; 1449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection synchCol = Collections.synchronizedCollection(smallList); 1450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Replacing the previous line with the line below *should* cause the 1451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test to fail--the collecion below isn't synchronized 1452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Collection synchCol = smallList; 1453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchCol, false, numberOfLoops); 1456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchCol, true, numberOfLoops); 1458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread normalThread = new Thread(normalSynchChecker); 1459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread offsetThread = new Thread(offsetSynchChecker); 1460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.start(); 1461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.start(); 1462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(10); 1466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned collection corrupted by multiple thread access", 1470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalSynchChecker.getResult() 1471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && offsetSynchChecker.getResult()); 1472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.join(5000); 1474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.join(5000); 1475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("join() interrupted"); 1477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchCol.add(null); 1480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Trying to use nulls in collection failed", synchCol 1481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(null)); 1482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList = new LinkedList(); 1484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 1486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_CollectionTest("", Collections 1488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .synchronizedCollection(smallList)).runTest(); 1489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1492229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedList(java.util.List) 1493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedListLjava_util_List() { 1495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.synchronizedList(null); 1497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 1498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test with a Sequential Access List 1502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List smallList = new LinkedList(); 1503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testSynchronizedList(smallList, "Sequential Access"); 1504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList = new LinkedList(); 1506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List myList; 1507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 1509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myList = Collections.synchronizedList(smallList); 1511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_ListTest("", myList).runTest(); 1512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test with a Random Access List 1514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList = new ArrayList(); 1515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testSynchronizedList(smallList, "Random Access"); 1516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList = new ArrayList(); 1518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 1520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myList = Collections.synchronizedList(smallList); 1522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_ListTest("", myList).runTest(); 1523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void testSynchronizedList(List smallList, String type) { 1526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 50; i++) { 1527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[i]); 1528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int numberOfLoops = 200; 1530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List synchList = Collections.synchronizedList(smallList); 1531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (type.equals("Random Access")) 1532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 1533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned synchronized list should implement the Random Access interface", 1534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchList instanceof RandomAccess); 1535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 1536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 1537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned synchronized list should not implement the Random Access interface", 1538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project !(synchList instanceof RandomAccess)); 1539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Replacing the previous line with the line below *should* cause the 1541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test to fail--the list below isn't synchronized 1542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // List synchList = smallList; 1543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchList, false, numberOfLoops); 1545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchList, true, numberOfLoops); 1547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread normalThread = new Thread(normalSynchChecker); 1548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread offsetThread = new Thread(offsetSynchChecker); 1549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.start(); 1550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.start(); 1551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(10); 1555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 1559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project type 1560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " list tests: Returned list corrupted by multiple thread access", 1561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalSynchChecker.getResult() 1562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && offsetSynchChecker.getResult()); 1563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.join(5000); 1565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.join(5000); 1566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(type + " list tests: join() interrupted"); 1568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchList.set(25, null); 1570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(type + " list tests: Trying to use nulls in list failed", 1571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchList.get(25)); 1572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1575229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedMap(java.util.Map) 1576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedMapLjava_util_Map() { 1578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Map 1579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.synchronizedMap(java.util.Map) 1580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap smallMap = new HashMap(); 1581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 50; i++) { 1582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(objArray[i], objArray[i]); 1583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int numberOfLoops = 200; 1586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map synchMap = Collections.synchronizedMap(smallMap); 1587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Replacing the previous line with the line below should cause the test 1588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // to fail--the list below isn't synchronized 1589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Map synchMap = smallMap; 1590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchMapChecker normalSynchChecker = new SynchMapChecker(synchMap, 1592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project false, numberOfLoops); 1593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchMapChecker offsetSynchChecker = new SynchMapChecker(synchMap, 1594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project true, numberOfLoops); 1595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread normalThread = new Thread(normalSynchChecker); 1596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread offsetThread = new Thread(offsetSynchChecker); 1597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.start(); 1598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.start(); 1599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(10); 1603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned map corrupted by multiple thread access", 1607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalSynchChecker.getResult() 1608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && offsetSynchChecker.getResult()); 1609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.join(5000); 1611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.join(5000); 1612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("join() interrupted"); 1614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // synchronized map does not have to permit null keys or values 1617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap.put(new Long(25), null); 1618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap.put(null, new Long(30)); 1619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Trying to use a null value in map failed", synchMap 1620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(new Long(25))); 1621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Trying to use a null key in map failed", synchMap.get(null) 1622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .equals(new Long(30))); 1623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap = new HashMap(); 1625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(objArray[i].toString(), objArray[i]); 1627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap = Collections.synchronizedMap(smallMap); 1629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableMapTest("", synchMap).runTest(); 1630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap.keySet().remove(objArray[50].toString()); 1631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull( 1632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Removing a key from the keySet of the synchronized map did not remove it from the synchronized map: ", 1633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap.get(objArray[50].toString())); 1634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull( 1635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Removing a key from the keySet of the synchronized map did not remove it from the original map", 1636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.get(objArray[50].toString())); 1637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1640229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedSet(java.util.Set) 1641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedSetLjava_util_Set() { 1643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set 1644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.synchronizedSet(java.util.Set) 1645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashSet smallSet = new HashSet(); 1646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 50; i++) { 1647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallSet.add(objArray[i]); 1648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int numberOfLoops = 200; 1651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set synchSet = Collections.synchronizedSet(smallSet); 1652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Replacing the previous line with the line below should cause the test 1653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // to fail--the set below isn't synchronized 1654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Set synchSet = smallSet; 1655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchSet, false, numberOfLoops); 1658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchSet, true, numberOfLoops); 1660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread normalThread = new Thread(normalSynchChecker); 1661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread offsetThread = new Thread(offsetSynchChecker); 1662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.start(); 1663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.start(); 1664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(10); 1668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned set corrupted by multiple thread access", 1672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalSynchChecker.getResult() 1673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && offsetSynchChecker.getResult()); 1674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.join(5000); 1676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.join(5000); 1677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("join() interrupted"); 1679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set mySet = Collections.synchronizedSet(smallSet); 1682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mySet.add(null); 1683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Trying to use nulls in list failed", mySet.contains(null)); 1684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallSet = new HashSet(); 1686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallSet.add(objArray[i]); 1688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_SetTest("", Collections.synchronizedSet(smallSet)) 1690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .runTest(); 1691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1694229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedSortedMap(java.util.SortedMap) 1695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedSortedMapLjava_util_SortedMap() { 1697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.SortedMap 1698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.synchronizedSortedMap(java.util.SortedMap) 1699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TreeMap smallMap = new TreeMap(); 1700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 50; i++) { 1701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(objArray[i], objArray[i]); 1702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1704adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int numberOfLoops = 200; 1705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map synchMap = Collections.synchronizedMap(smallMap); 1706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Replacing the previous line with the line below should cause the test 1707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // to fail--the list below isn't synchronized 1708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Map synchMap = smallMap; 1709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchMapChecker normalSynchChecker = new SynchMapChecker(synchMap, 1711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project false, numberOfLoops); 1712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchMapChecker offsetSynchChecker = new SynchMapChecker(synchMap, 1713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project true, numberOfLoops); 1714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread normalThread = new Thread(normalSynchChecker); 1715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread offsetThread = new Thread(offsetSynchChecker); 1716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.start(); 1717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.start(); 1718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1721adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(10); 1722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned map corrupted by multiple thread access", 1726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalSynchChecker.getResult() 1727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && offsetSynchChecker.getResult()); 1728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.join(5000); 1730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.join(5000); 1731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("join() interrupted"); 1733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap = new TreeMap(); 1736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) { 1737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(objArray[i].toString(), objArray[i]); 1738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap = Collections.synchronizedSortedMap(smallMap); 1740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableMapTest("", synchMap).runTest(); 1741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap.keySet().remove(objArray[50].toString()); 1742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull( 1743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Removing a key from the keySet of the synchronized map did not remove it from the synchronized map", 1744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchMap.get(objArray[50].toString())); 1745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull( 1746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Removing a key from the keySet of the synchronized map did not remove it from the original map", 1747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.get(objArray[50].toString())); 1748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1751229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedSortedSet(java.util.SortedSet) 1752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedSortedSetLjava_util_SortedSet() { 1754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.SortedSet 1755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.synchronizedSortedSet(java.util.SortedSet) 1756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TreeSet smallSet = new TreeSet(); 1757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 50; i++) { 1758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallSet.add(objArray[i]); 1759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int numberOfLoops = 200; 1762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set synchSet = Collections.synchronizedSet(smallSet); 1763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Replacing the previous line with the line below should cause the test 1764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // to fail--the list below isn't synchronized 1765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Set synchSet = smallSet; 1766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker normalSynchChecker = new SynchCollectionChecker( 1768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchSet, false, numberOfLoops); 1769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SynchCollectionChecker offsetSynchChecker = new SynchCollectionChecker( 1770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchSet, true, numberOfLoops); 1771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread normalThread = new Thread(normalSynchChecker); 1772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread offsetThread = new Thread(offsetSynchChecker); 1773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.start(); 1774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.start(); 1775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((normalSynchChecker.getNumberOfChecks() < numberOfLoops) 1776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project || (offsetSynchChecker.getNumberOfChecks() < numberOfLoops)) { 1777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(10); 1779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned set corrupted by multiple thread access", 1783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalSynchChecker.getResult() 1784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && offsetSynchChecker.getResult()); 1785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project normalThread.join(5000); 1787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project offsetThread.join(5000); 1788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 1789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("join() interrupted"); 1790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1794229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableCollection(java.util.Collection) 1795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableCollectionLjava_util_Collection() { 1797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Collection 1798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.unmodifiableCollection(java.util.Collection) 1799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 1800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection c = Collections.unmodifiableCollection(ll); 1801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned collection is of incorrect size", c.size() == ll 1802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .size()); 1803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = ll.iterator(); 1804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 1805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned list missing elements", c.contains(i.next())); 1806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.add(new Object()); 1808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!exception) { 1813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of collection"); 1814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1815f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.remove(new Object()); 1818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of collection"); 1819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1821f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 1822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection myCollection = new ArrayList(); 1824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myCollection.add(new Integer(20)); 1825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myCollection.add(null); 1826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = Collections.unmodifiableCollection(myCollection); 1827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Collection should contain null", c.contains(null)); 1828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Collection should contain Integer(20)", c 1829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(new Integer(20))); 1830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myCollection = new ArrayList(); 1832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < 100; counter++) { 1833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myCollection.add(objArray[counter]); 1834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableCollectionTest("", Collections 1836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .unmodifiableCollection(myCollection)).runTest(); 1837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1840229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableList(java.util.List) 1841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableListLjava_util_List() { 1843adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.List 1844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.unmodifiableList(java.util.List) 1845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test with a Sequential Access List 1847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 1848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List c = Collections.unmodifiableList(ll); 1849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ensure a NPE is thrown if the list is NULL 1850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.unmodifiableList(null); 1852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException for null list parameter"); 1853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned list is of incorrect size", c.size() == ll.size()); 1857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 1858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Returned List should not implement Random Access interface", 1859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project !(c instanceof RandomAccess)); 1860adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = ll.iterator(); 1862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 1863adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned list missing elements", c.contains(i.next())); 1864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.add(new Object()); 1866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!exception) { 1871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of list"); 1872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1873f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.remove(new Object()); 1876adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of list"); 1877adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1878adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1879f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 1880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1881adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test with a Random Access List 1882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List smallList = new ArrayList(); 1883adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(null); 1884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add("yoink"); 1885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = Collections.unmodifiableList(smallList); 1886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("First element should be null", c.get(0)); 1887adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("List should contain null", c.contains(null)); 1888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 1889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "T1. Returned List should implement Random Access interface", 1890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c instanceof RandomAccess); 1891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1892adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList = new ArrayList(); 1893adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < 100; counter++) { 1894adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallList.add(objArray[counter]); 1895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1896adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List myList = Collections.unmodifiableList(smallList); 1897adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("List should not contain null", !myList.contains(null)); 1898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 1899adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "T2. Returned List should implement Random Access interface", 1900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myList instanceof RandomAccess); 1901adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1902adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("get failed on unmodifiable list", myList.get(50).equals( 1903adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Integer(50))); 1904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ListIterator listIterator = myList.listIterator(); 1905adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; listIterator.hasNext(); counter++) { 1906adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("List has wrong elements", ((Integer) listIterator 1907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .next()).intValue() == counter); 1908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableCollectionTest("", smallList).runTest(); 1910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1913229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableMap(java.util.Map) 1914adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableMapLjava_util_Map() { 1916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Map 1917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.unmodifiableMap(java.util.Map) 1918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 1919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map c = Collections.unmodifiableMap(hm); 1920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned map is of incorrect size", c.size() == hm.size()); 1921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = hm.keySet().iterator(); 1922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) { 1923adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object x = i.next(); 1924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned map missing elements", c.get(x).equals( 1925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.get(x))); 1926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1927adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.put(new Object(), ""); 1929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Allowed modification of map", exception); 1934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1935adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = false; 1936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.remove(new Object()); 1938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1942adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Allowed modification of map", exception); 1943adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1944adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = false; 1945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator it = c.entrySet().iterator(); 1946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map.Entry entry = (Map.Entry) it.next(); 1947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project entry.setValue("modified"); 1949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1951adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1952adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Allowed modification of entry", exception); 1954adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = false; 1956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object[] array = c.entrySet().toArray(); 1957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ((Map.Entry) array[0]).setValue("modified"); 1959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1962adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1963adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Allowed modification of array entry", exception); 1964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = false; 1966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map.Entry[] array2 = (Map.Entry[]) c.entrySet().toArray( 1967adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Map.Entry[0]); 1968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project array2[0].setValue("modified"); 1970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 1971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 1972adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 1973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Allowed modification of array entry2", exception); 1975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap smallMap = new HashMap(); 1977adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(null, new Long(30)); 1978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(new Long(25), null); 1979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map unmodMap = Collections.unmodifiableMap(smallMap); 1980adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1981adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Trying to use a null value in map failed", unmodMap 1982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .get(new Long(25))); 1983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Trying to use a null key in map failed", unmodMap.get(null) 1984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .equals(new Long(30))); 1985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap = new HashMap(); 1987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < 100; counter++) { 1988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project smallMap.put(objArray[counter].toString(), objArray[counter]); 1989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project unmodMap = Collections.unmodifiableMap(smallMap); 1991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableMapTest("", unmodMap).runTest(); 1992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1996229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableSet(java.util.Set) 1997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableSetLjava_util_Set() { 1999adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set 2000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.unmodifiableSet(java.util.Set) 2001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 2002adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set c = Collections.unmodifiableSet(s); 2003adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned set is of incorrect size", c.size() == s.size()); 2004adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = ll.iterator(); 2005adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 2006adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned set missing elements", c.contains(i.next())); 2007adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2008adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.add(new Object()); 2009adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2010adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 2011adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 2012adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2013adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!exception) { 2014adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of set"); 2015adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2016adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2017adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.remove(new Object()); 2018adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of set"); 2019adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2020adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 2021f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 2022adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2023adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set mySet = Collections.unmodifiableSet(new HashSet()); 2024adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Should not contain null", !mySet.contains(null)); 2025adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mySet = Collections.unmodifiableSet(Collections.singleton(null)); 2026adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Should contain null", mySet.contains(null)); 2027adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2028adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mySet = new TreeSet(); 2029adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int counter = 0; counter < 100; counter++) { 2030adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mySet.add(objArray[counter]); 2031adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2032adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableCollectionTest("", Collections 2033adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .unmodifiableSet(mySet)).runTest(); 2034adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2035adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2036adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 2037229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableSortedMap(java.util.SortedMap) 2038adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2039adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableSortedMapLjava_util_SortedMap() { 2040adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.SortedMap 2041adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.unmodifiableSortedMap(java.util.SortedMap) 2042adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 2043adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TreeMap tm = new TreeMap(); 2044adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tm.putAll(hm); 2045adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map c = Collections.unmodifiableSortedMap(tm); 2046adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned map is of incorrect size", c.size() == tm.size()); 2047adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = hm.keySet().iterator(); 2048adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) { 2049adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object x = i.next(); 2050adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned map missing elements", c.get(x).equals( 2051adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tm.get(x))); 2052adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2053adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2054adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.put(new Object(), ""); 2055adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2056adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 2057adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 2058adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2059adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2060adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!exception) { 2061adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of map"); 2062adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2063adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2064adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.remove(new Object()); 2065adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2066adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 2067adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 2068adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2069adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of map"); 2070adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2071adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2072adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 2073229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableSortedSet(java.util.SortedSet) 2074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2075adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableSortedSetLjava_util_SortedSet() { 2076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.SortedSet 2077adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.unmodifiableSortedSet(java.util.SortedSet) 2078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 2079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SortedSet ss = new TreeSet(); 2080adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ss.addAll(s); 2081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SortedSet c = Collections.unmodifiableSortedSet(ss); 2082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned set is of incorrect size", c.size() == ss.size()); 2083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = ll.iterator(); 2084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 2085adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned set missing elements", c.contains(i.next())); 2086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2087adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.add(new Object()); 2088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 2090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 2091adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2092adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!exception) { 2093adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of set"); 2094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2095adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.remove(new Object()); 2097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2098adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Correct 2099adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 2100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Allowed modification of set"); 2102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 2105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test unmodifiable objects toString methods 2106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiable_toString_methods() { 2108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-552 2109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList(); 2110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("a"); 2111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.add("b"); 2112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection uc = Collections.unmodifiableCollection(al); 2113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("[a, b]", uc.toString()); 2114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap m = new HashMap(); 2115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project m.put("one", "1"); 2116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project m.put("two", "2"); 2117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map um = Collections.unmodifiableMap(m); 211819ab821c3b1da5812590140a21ad9d551a3a3ec5Joshua Bloch assertTrue("{one=1, two=2}".equals(um.toString()) || 2119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes "{two=2, one=1}".equals(um.toString())); 2120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212219ab821c3b1da5812590140a21ad9d551a3a3ec5Joshua Bloch 2123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_singletonListLjava_lang_Object() { 2124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set 2125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.singleton(java.lang.Object) 2126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String str = "Singleton"; 2127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List single = Collections.singletonList(str); 2129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, single.size()); 2130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(single.contains(str)); 2131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(single.contains(null)); 2132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.singletonList(null).contains(str)); 2133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.singletonList(null).contains(null)); 2134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project single.add("New element"); 2137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 2138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 2140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_singletonMapLjava_lang_Object() { 2144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set 2145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Collections.singleton(java.lang.Object) 2146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Double key = new Double (3.14); 2147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String value = "Fundamental constant"; 2148f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map single = Collections.singletonMap(key, value); 2150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, single.size()); 2151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(single.containsKey(key)); 2152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(single.containsValue(value)); 2153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(single.containsKey(null)); 2154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(single.containsValue(null)); 2155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.singletonMap(null, null).containsKey(key)); 2156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.singletonMap(null, null).containsValue(value)); 2157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.singletonMap(null, null).containsKey(null)); 2158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.singletonMap(null, null).containsValue(null)); 2159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project single.clear(); 2162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 2163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 2165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2166f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 2168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project single.put(new Double(1), "one wrong value"); 2169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 2170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 2171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 2172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2174f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 2176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 2177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is called before a test is executed. 2178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() { 2180740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann objArray = new Object[1000]; 2181740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann myobjArray = new Object[1000]; 2182740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann for (int i = 0; i < objArray.length; i++) { 2183740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann objArray[i] = new Integer(i); 2184740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann myobjArray[i] = new MyInt(i); 2185740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann } 2186740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann 2187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ll = new LinkedList(); 2188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myll = new LinkedList(); 2189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s = new HashSet(); 2190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mys = new HashSet(); 2191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project reversedLinkedList = new LinkedList(); // to be sorted in reverse order 2192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myReversedLinkedList = new LinkedList(); // to be sorted in reverse 2193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // order 2194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm = new HashMap(); 2195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < objArray.length; i++) { 2196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ll.add(objArray[i]); 2197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myll.add(myobjArray[i]); 2198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(objArray[i]); 2199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mys.add(myobjArray[i]); 2200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project reversedLinkedList.add(objArray[objArray.length - i - 1]); 2201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myReversedLinkedList.add(myobjArray[myobjArray.length - i - 1]); 2202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(objArray[i].toString(), objArray[i]); 2203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 2207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tears down the fixture, for example, close a network connection. This 2208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method is called after a test is executed. 2209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() { 2211740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann objArray = null; 2212740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann myobjArray = null; 2213f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2214740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann ll = null; 2215740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann myll = null; 2216740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann reversedLinkedList = null; 2217740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann myReversedLinkedList = null; 2218740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann s = null; 2219740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann mys = null; 2220740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann hm = null; 2221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void doneSuite() { 2224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objArray = null; 2225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 2227