test/java/util/Collection/MOAT.java

Print this page

        

*** 171,180 **** --- 171,183 ---- Map<Integer,Integer> singletonMap = singletonMap(1,2); equal(singletonMap.size(), 1); testMap(singletonMap); testImmutableMap(singletonMap); + + // Protected ArrayList#removeRange + NewArrayList.testRemoveRange(); } private static void checkContainsSelf(Collection<Integer> c) { check(c.containsAll(c)); check(c.containsAll(Arrays.asList(c.toArray())));
*** 1391,1397 **** --- 1394,1439 ---- } public int size() { return set.size(); } } + private static class NewArrayList extends ArrayList<Integer> { + // ArrayList#removeRange is protected, so is tested + // from within a derived class + public static void testRemoveRange() { + final int MAX_ITEM = 8; + final int START_INDEX = -2; + final int END_INDEX = MAX_ITEM + 2; + + final NewArrayList list = new NewArrayList(); + try { list.removeRange(list.size(), list.size()); } + catch (Throwable t) { unexpected(t); } + for (int i = 0; i <= MAX_ITEM; ++i) { + list.add(i); + } + + for (int fromIndex = START_INDEX; fromIndex <= END_INDEX; ++fromIndex) { + for (int toIndex = START_INDEX; toIndex <= END_INDEX; ++toIndex) { + if (fromIndex < 0 + || toIndex > list.size() + || toIndex < fromIndex) { + final int FROM_INDEX = fromIndex; + final int TO_INDEX = toIndex; + THROWS(IndexOutOfBoundsException.class, + new Fun() { void f() { list.removeRange(FROM_INDEX, TO_INDEX); }}); + } else { + try { + NewArrayList list1 = (NewArrayList)list.clone(); + list1.removeRange(fromIndex, toIndex); + for (int i = 0, j = 0; i < list1.size(); ++i, ++j) { + if (j == fromIndex) + j = toIndex; + check(list1.get(i) == j); + } + } catch (Throwable t) { unexpected(t); } + } + } + } + } + } }