Support_ListTest.java revision dd828f42a5c83b4270d4fbf6fce2da1878f1e84a
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18package tests.support; 19 20import dalvik.annotation.TestTargetClass; 21 22import java.util.LinkedList; 23import java.util.List; 24import java.util.ListIterator; 25import java.util.NoSuchElementException; 26 27@TestTargetClass(List.class) 28public class Support_ListTest extends junit.framework.TestCase { 29 30 List<Integer> list; // must contain the Integers 0 to 99 in order 31 32 public Support_ListTest(String p1) { 33 super(p1); 34 } 35 36 public Support_ListTest(String p1, List<Integer> l) { 37 super(p1); 38 list = l; 39 } 40 41 @Override 42 public void runTest() { 43 int hashCode = 1; 44 for (int counter = 0; counter < 100; counter++) { 45 Object elem; 46 elem = list.get(counter); 47 hashCode = 31 * hashCode + elem.hashCode(); 48 assertTrue("ListTest - get failed", elem 49 .equals(new Integer(counter))); 50 } 51 assertTrue("ListTest - hashCode failed", hashCode == list.hashCode()); 52 53 list.add(50, new Integer(1000)); 54 assertTrue("ListTest - a) add with index failed--did not insert", list 55 .get(50).equals(new Integer(1000))); 56 assertTrue( 57 "ListTest - b) add with index failed--did not move following elements", 58 list.get(51).equals(new Integer(50))); 59 assertTrue( 60 "ListTest - c) add with index failed--affected previous elements", 61 list.get(49).equals(new Integer(49))); 62 63 list.set(50, new Integer(2000)); 64 assertTrue("ListTest - a) set failed--did not set", list.get(50) 65 .equals(new Integer(2000))); 66 assertTrue("ListTest - b) set failed--affected following elements", 67 list.get(51).equals(new Integer(50))); 68 assertTrue("ListTest - c) set failed--affected previous elements", list 69 .get(49).equals(new Integer(49))); 70 71 list.remove(50); 72 assertTrue("ListTest - a) remove with index failed--did not remove", 73 list.get(50).equals(new Integer(50))); 74 assertTrue( 75 "ListTest - b) remove with index failed--did not move following elements", 76 list.get(51).equals(new Integer(51))); 77 assertTrue( 78 "ListTest - c) remove with index failed--affected previous elements", 79 list.get(49).equals(new Integer(49))); 80 81 List<Integer> myList = new LinkedList<Integer>(); 82 myList.add(new Integer(500)); 83 myList.add(new Integer(501)); 84 myList.add(new Integer(502)); 85 86 list.addAll(50, myList); 87 assertTrue("ListTest - a) addAll with index failed--did not insert", 88 list.get(50).equals(new Integer(500))); 89 assertTrue("ListTest - b) addAll with index failed--did not insert", 90 list.get(51).equals(new Integer(501))); 91 assertTrue("ListTest - c) addAll with index failed--did not insert", 92 list.get(52).equals(new Integer(502))); 93 assertTrue( 94 "ListTest - d) addAll with index failed--did not move following elements", 95 list.get(53).equals(new Integer(50))); 96 assertTrue( 97 "ListTest - e) addAll with index failed--affected previous elements", 98 list.get(49).equals(new Integer(49))); 99 100 List<Integer> mySubList = list.subList(50, 53); 101 assertEquals(3, mySubList.size()); 102 assertTrue( 103 "ListTest - a) sublist Failed--does not contain correct elements", 104 mySubList.get(0).equals(new Integer(500))); 105 assertTrue( 106 "ListTest - b) sublist Failed--does not contain correct elements", 107 mySubList.get(1).equals(new Integer(501))); 108 assertTrue( 109 "ListTest - c) sublist Failed--does not contain correct elements", 110 mySubList.get(2).equals(new Integer(502))); 111 112 t_listIterator(mySubList); 113 114 mySubList.clear(); 115 assertEquals("ListTest - Clearing the sublist did not remove the appropriate elements from the original list", 116 100, list.size()); 117 118 t_listIterator(list); 119 ListIterator<Integer> li = list.listIterator(); 120 for (int counter = 0; li.hasNext(); counter++) { 121 Object elem; 122 elem = li.next(); 123 assertTrue("ListTest - listIterator failed", elem 124 .equals(new Integer(counter))); 125 } 126 127 new Support_CollectionTest("", list).runTest(); 128 129 } 130 131 public void t_listIterator(List<Integer> list) { 132 ListIterator<Integer> li = list.listIterator(1); 133 assertTrue("listIterator(1)", li.next() == list.get(1)); 134 135 int orgSize = list.size(); 136 li = list.listIterator(); 137 for (int i = 0; i <= orgSize; i++) { 138 if (i == 0) { 139 assertTrue("list iterator hasPrevious(): " + i, !li 140 .hasPrevious()); 141 } else { 142 assertTrue("list iterator hasPrevious(): " + i, li 143 .hasPrevious()); 144 } 145 if (i == list.size()) { 146 assertTrue("list iterator hasNext(): " + i, !li.hasNext()); 147 } else { 148 assertTrue("list iterator hasNext(): " + i, li.hasNext()); 149 } 150 assertTrue("list iterator nextIndex(): " + i, li.nextIndex() == i); 151 assertTrue("list iterator previousIndex(): " + i, li 152 .previousIndex() == i - 1); 153 boolean exception = false; 154 try { 155 assertTrue("list iterator next(): " + i, li.next() == list 156 .get(i)); 157 } catch (NoSuchElementException e) { 158 exception = true; 159 } 160 if (i == list.size()) { 161 assertTrue("list iterator next() exception: " + i, exception); 162 } else { 163 assertTrue("list iterator next() exception: " + i, !exception); 164 } 165 } 166 167 for (int i = orgSize - 1; i >= 0; i--) { 168 assertTrue("list iterator previous(): " + i, li.previous() == list 169 .get(i)); 170 assertTrue("list iterator nextIndex()2: " + i, li.nextIndex() == i); 171 assertTrue("list iterator previousIndex()2: " + i, li 172 .previousIndex() == i - 1); 173 if (i == 0) { 174 assertTrue("list iterator hasPrevious()2: " + i, !li 175 .hasPrevious()); 176 } else { 177 assertTrue("list iterator hasPrevious()2: " + i, li 178 .hasPrevious()); 179 } 180 assertTrue("list iterator hasNext()2: " + i, li.hasNext()); 181 } 182 boolean exception = false; 183 try { 184 li.previous(); 185 } catch (NoSuchElementException e) { 186 exception = true; 187 } 188 assertTrue("list iterator previous() exception", exception); 189 190 Integer add1 = new Integer(600); 191 Integer add2 = new Integer(601); 192 li.add(add1); 193 assertTrue("list iterator add(), size()", list.size() == (orgSize + 1)); 194 assertEquals("list iterator add(), nextIndex()", 1, li.nextIndex()); 195 assertEquals("list iterator add(), previousIndex()", 196 0, li.previousIndex()); 197 Object next = li.next(); 198 assertTrue("list iterator add(), next(): " + next, next == list.get(1)); 199 li.add(add2); 200 Object previous = li.previous(); 201 assertTrue("list iterator add(), previous(): " + previous, 202 previous == add2); 203 assertEquals("list iterator add(), nextIndex()2", 2, li.nextIndex()); 204 assertEquals("list iterator add(), previousIndex()2", 205 1, li.previousIndex()); 206 207 li.remove(); 208 assertTrue("list iterator remove(), size()", 209 list.size() == (orgSize + 1)); 210 assertEquals("list iterator remove(), nextIndex()", 2, li.nextIndex()); 211 assertEquals("list iterator remove(), previousIndex()", 1, li 212 .previousIndex()); 213 assertTrue("list iterator previous()2", li.previous() == list.get(1)); 214 assertTrue("list iterator previous()3", li.previous() == list.get(0)); 215 assertTrue("list iterator next()2", li.next() == list.get(0)); 216 li.remove(); 217 assertTrue("list iterator hasPrevious()3", !li.hasPrevious()); 218 assertTrue("list iterator hasNext()3", li.hasNext()); 219 assertTrue("list iterator size()", list.size() == orgSize); 220 assertEquals("list iterator nextIndex()3", 0, li.nextIndex()); 221 assertEquals("list iterator previousIndex()3", -1, li.previousIndex()); 222 } 223} 224