--- jsr166/src/test/tck/LinkedListTest.java 2009/11/21 02:07:27 1.13 +++ jsr166/src/test/tck/LinkedListTest.java 2011/05/31 16:16:24 1.28 @@ -1,18 +1,21 @@ /* * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ * Other contributors include Andrew Wright, Jeffrey Hayes, * Pat Fisher, Mike Judd. */ import junit.framework.*; -import java.util.*; -import java.util.concurrent.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.NoSuchElementException; public class LinkedListTest extends JSR166TestCase { public static void main(String[] args) { - junit.textui.TestRunner.run (suite()); + junit.textui.TestRunner.run(suite()); } public static Test suite() { @@ -23,8 +26,8 @@ public class LinkedListTest extends JSR1 * Create a queue of given size containing consecutive * Integers 0 ... n. */ - private LinkedList populatedQueue(int n) { - LinkedList q = new LinkedList(); + private LinkedList populatedQueue(int n) { + LinkedList q = new LinkedList(); assertTrue(q.isEmpty()); for (int i = 0; i < n; ++i) assertTrue(q.offer(new Integer(i))); @@ -47,24 +50,19 @@ public class LinkedListTest extends JSR1 try { LinkedList q = new LinkedList((Collection)null); shouldThrow(); - } - catch (NullPointerException success) {} + } catch (NullPointerException success) {} } /** * Queue contains all elements of collection used to initialize - */ public void testConstructor6() { - try { - Integer[] ints = new Integer[SIZE]; - for (int i = 0; i < SIZE; ++i) - ints[i] = new Integer(i); - LinkedList q = new LinkedList(Arrays.asList(ints)); - for (int i = 0; i < SIZE; ++i) - assertEquals(ints[i], q.poll()); - } - finally {} + Integer[] ints = new Integer[SIZE]; + for (int i = 0; i < SIZE; ++i) + ints[i] = i; + LinkedList q = new LinkedList(Arrays.asList(ints)); + for (int i = 0; i < SIZE; ++i) + assertEquals(ints[i], q.poll()); } /** @@ -100,12 +98,8 @@ public class LinkedListTest extends JSR1 * offer(null) succeeds */ public void testOfferNull() { - try { - LinkedList q = new LinkedList(); - q.offer(null); - } catch (NullPointerException ie) { - unexpectedException(); - } + LinkedList q = new LinkedList(); + q.offer(null); } /** @@ -136,77 +130,73 @@ public class LinkedListTest extends JSR1 LinkedList q = new LinkedList(); q.addAll(null); shouldThrow(); - } - catch (NullPointerException success) {} + } catch (NullPointerException success) {} } /** * Queue contains all elements, in traversal order, of successful addAll */ public void testAddAll5() { - try { - Integer[] empty = new Integer[0]; - Integer[] ints = new Integer[SIZE]; - for (int i = 0; i < SIZE; ++i) - ints[i] = new Integer(i); - LinkedList q = new LinkedList(); - assertFalse(q.addAll(Arrays.asList(empty))); - assertTrue(q.addAll(Arrays.asList(ints))); - for (int i = 0; i < SIZE; ++i) - assertEquals(ints[i], q.poll()); - } - finally {} + Integer[] empty = new Integer[0]; + Integer[] ints = new Integer[SIZE]; + for (int i = 0; i < SIZE; ++i) + ints[i] = i; + LinkedList q = new LinkedList(); + assertFalse(q.addAll(Arrays.asList(empty))); + assertTrue(q.addAll(Arrays.asList(ints))); + for (int i = 0; i < SIZE; ++i) + assertEquals(ints[i], q.poll()); } /** * addAll with too large an index throws IOOBE */ public void testAddAll2_IndexOutOfBoundsException() { + LinkedList l = new LinkedList(); + l.add(new Object()); + LinkedList m = new LinkedList(); + m.add(new Object()); try { - LinkedList l = new LinkedList(); - l.add(new Object()); - LinkedList m = new LinkedList(); - m.add(new Object()); l.addAll(4,m); shouldThrow(); - } catch (IndexOutOfBoundsException success) {} + } catch (IndexOutOfBoundsException success) {} } /** * addAll with negative index throws IOOBE */ public void testAddAll4_BadIndex() { + LinkedList l = new LinkedList(); + l.add(new Object()); + LinkedList m = new LinkedList(); + m.add(new Object()); try { - LinkedList l = new LinkedList(); - l.add(new Object()); - LinkedList m = new LinkedList(); - m.add(new Object()); l.addAll(-1,m); shouldThrow(); - } catch (IndexOutOfBoundsException success) {} + } catch (IndexOutOfBoundsException success) {} } /** - * poll succeeds unless empty + * poll succeeds unless empty */ public void testPoll() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.poll()).intValue()); + assertEquals(i, q.poll()); } assertNull(q.poll()); } /** - * peek returns next element, or null if empty + * peek returns next element, or null if empty */ public void testPeek() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.peek()).intValue()); - q.poll(); + assertEquals(i, q.peek()); + assertEquals(i, q.poll()); assertTrue(q.peek() == null || - i != ((Integer)q.peek()).intValue()); + !q.peek().equals(i)); } assertNull(q.peek()); } @@ -217,29 +207,27 @@ public class LinkedListTest extends JSR1 public void testElement() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.element()).intValue()); - q.poll(); + assertEquals(i, q.element()); + assertEquals(i, q.poll()); } try { q.element(); shouldThrow(); - } - catch (NoSuchElementException success) {} + } catch (NoSuchElementException success) {} } /** - * remove removes next element, or throws NSEE if empty + * remove removes next element, or throws NSEE if empty */ public void testRemove() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.remove()).intValue()); + assertEquals(i, q.remove()); } try { q.remove(); shouldThrow(); - } catch (NoSuchElementException success) { - } + } catch (NoSuchElementException success) {} } /** @@ -248,11 +236,17 @@ public class LinkedListTest extends JSR1 public void testRemoveElement() { LinkedList q = populatedQueue(SIZE); for (int i = 1; i < SIZE; i+=2) { - assertTrue(q.remove(new Integer(i))); + assertTrue(q.contains(i)); + assertTrue(q.remove((Integer)i)); + assertFalse(q.contains(i)); + assertTrue(q.contains(i-1)); } for (int i = 0; i < SIZE; i+=2) { - assertTrue(q.remove(new Integer(i))); - assertFalse(q.remove(new Integer(i+1))); + assertTrue(q.contains(i)); + assertTrue(q.remove((Integer)i)); + assertFalse(q.contains(i)); + assertFalse(q.remove((Integer)(i+1))); + assertFalse(q.contains(i+1)); } assertTrue(q.isEmpty()); } @@ -277,7 +271,7 @@ public class LinkedListTest extends JSR1 q.clear(); assertTrue(q.isEmpty()); assertEquals(0, q.size()); - q.add(new Integer(1)); + assertTrue(q.add(new Integer(1))); assertFalse(q.isEmpty()); q.clear(); assertTrue(q.isEmpty()); @@ -292,7 +286,7 @@ public class LinkedListTest extends JSR1 for (int i = 0; i < SIZE; ++i) { assertTrue(q.containsAll(p)); assertFalse(p.containsAll(q)); - p.add(new Integer(i)); + assertTrue(p.add(new Integer(i))); } assertTrue(p.containsAll(q)); } @@ -333,54 +327,53 @@ public class LinkedListTest extends JSR1 } /** - * toArray contains all elements + * toArray contains all elements in FIFO order */ public void testToArray() { LinkedList q = populatedQueue(SIZE); Object[] o = q.toArray(); - Arrays.sort(o); for (int i = 0; i < o.length; i++) - assertEquals(o[i], q.poll()); + assertSame(o[i], q.poll()); } /** - * toArray(a) contains all elements + * toArray(a) contains all elements in FIFO order */ public void testToArray2() { - LinkedList q = populatedQueue(SIZE); + LinkedList q = populatedQueue(SIZE); Integer[] ints = new Integer[SIZE]; - ints = (Integer[])q.toArray(ints); - Arrays.sort(ints); + Integer[] array = q.toArray(ints); + assertSame(ints, array); for (int i = 0; i < ints.length; i++) - assertEquals(ints[i], q.poll()); + assertSame(ints[i], q.poll()); } /** - * toArray(null) throws NPE + * toArray(null) throws NullPointerException */ - public void testToArray_BadArg() { + public void testToArray_NullArg() { + LinkedList l = new LinkedList(); + l.add(new Object()); try { - LinkedList l = new LinkedList(); - l.add(new Object()); - Object o[] = l.toArray(null); + l.toArray(null); shouldThrow(); } catch (NullPointerException success) {} } /** - * toArray with incompatable aray type throws CCE + * toArray(incompatible array type) throws ArrayStoreException */ public void testToArray1_BadArg() { + LinkedList l = new LinkedList(); + l.add(new Integer(5)); try { - LinkedList l = new LinkedList(); - l.add(new Integer(5)); - Object o[] = l.toArray(new String[10] ); + l.toArray(new String[10]); shouldThrow(); - } catch (ArrayStoreException success) {} + } catch (ArrayStoreException success) {} } /** - * iterator iterates through all elements + * iterator iterates through all elements */ public void testIterator() { LinkedList q = populatedQueue(SIZE); @@ -394,7 +387,7 @@ public class LinkedListTest extends JSR1 } /** - * iterator ordering is FIFO + * iterator ordering is FIFO */ public void testIteratorOrdering() { final LinkedList q = new LinkedList(); @@ -403,8 +396,7 @@ public class LinkedListTest extends JSR1 q.add(new Integer(3)); int k = 0; for (Iterator it = q.iterator(); it.hasNext();) { - int i = ((Integer)(it.next())).intValue(); - assertEquals(++k, i); + assertEquals(++k, it.next()); } assertEquals(3, k); @@ -413,22 +405,22 @@ public class LinkedListTest extends JSR1 /** * iterator.remove removes current element */ - public void testIteratorRemove () { + public void testIteratorRemove() { final LinkedList q = new LinkedList(); q.add(new Integer(1)); q.add(new Integer(2)); q.add(new Integer(3)); Iterator it = q.iterator(); - it.next(); + assertEquals(it.next(), 1); it.remove(); it = q.iterator(); - assertEquals(it.next(), new Integer(2)); - assertEquals(it.next(), new Integer(3)); + assertEquals(it.next(), 2); + assertEquals(it.next(), 3); assertFalse(it.hasNext()); } /** - * Descending iterator iterates through all elements + * Descending iterator iterates through all elements */ public void testDescendingIterator() { LinkedList q = populatedQueue(SIZE); @@ -442,12 +434,12 @@ public class LinkedListTest extends JSR1 assertFalse(it.hasNext()); try { it.next(); - } catch (NoSuchElementException success) { - } + shouldThrow(); + } catch (NoSuchElementException success) {} } /** - * Descending iterator ordering is reverse FIFO + * Descending iterator ordering is reverse FIFO */ public void testDescendingIteratorOrdering() { final LinkedList q = new LinkedList(); @@ -456,8 +448,7 @@ public class LinkedListTest extends JSR1 q.add(new Integer(1)); int k = 0; for (Iterator it = q.descendingIterator(); it.hasNext();) { - int i = ((Integer)(it.next())).intValue(); - assertEquals(++k, i); + assertEquals(++k, it.next()); } assertEquals(3, k); @@ -466,21 +457,20 @@ public class LinkedListTest extends JSR1 /** * descendingIterator.remove removes current element */ - public void testDescendingIteratorRemove () { + public void testDescendingIteratorRemove() { final LinkedList q = new LinkedList(); - q.add(new Integer(3)); - q.add(new Integer(2)); - q.add(new Integer(1)); + q.add(three); + q.add(two); + q.add(one); Iterator it = q.descendingIterator(); it.next(); it.remove(); it = q.descendingIterator(); - assertEquals(it.next(), new Integer(2)); - assertEquals(it.next(), new Integer(3)); + assertSame(it.next(), two); + assertSame(it.next(), three); assertFalse(it.hasNext()); } - /** * toString contains toStrings of elements */ @@ -488,7 +478,7 @@ public class LinkedListTest extends JSR1 LinkedList q = populatedQueue(SIZE); String s = q.toString(); for (int i = 0; i < SIZE; ++i) { - assertTrue(s.indexOf(String.valueOf(i)) >= 0); + assertTrue(s.contains(String.valueOf(i))); } } @@ -498,7 +488,7 @@ public class LinkedListTest extends JSR1 public void testAddFirst() { LinkedList q = populatedQueue(3); q.addFirst(four); - assertEquals(four,q.peek()); + assertSame(four, q.peek()); } /** @@ -506,24 +496,22 @@ public class LinkedListTest extends JSR1 */ public void testPush() { LinkedList q = populatedQueue(3); - q.pollLast(); q.push(four); - assertEquals(four,q.peekFirst()); + assertSame(four, q.peekFirst()); } /** - * pop removes next element, or throws NSEE if empty + * pop removes next element, or throws NSEE if empty */ public void testPop() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.pop()).intValue()); + assertEquals(i, q.pop()); } try { q.pop(); shouldThrow(); - } catch (NoSuchElementException success) { - } + } catch (NoSuchElementException success) {} } /** @@ -545,41 +533,40 @@ public class LinkedListTest extends JSR1 } /** - * pollLast succeeds unless empty + * pollLast succeeds unless empty */ public void testPollLast() { LinkedList q = populatedQueue(SIZE); for (int i = SIZE-1; i >= 0; --i) { - assertEquals(i, ((Integer)q.pollLast()).intValue()); + assertEquals(i, q.pollLast()); } assertNull(q.pollLast()); } /** - * peekFirst returns next element, or null if empty + * peekFirst returns next element, or null if empty */ public void testPeekFirst() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.peekFirst()).intValue()); - q.pollFirst(); + assertEquals(i, q.peekFirst()); + assertEquals(i, q.pollFirst()); assertTrue(q.peekFirst() == null || - i != ((Integer)q.peekFirst()).intValue()); + !q.peekFirst().equals(i)); } assertNull(q.peekFirst()); } - /** - * peekLast returns next element, or null if empty + * peekLast returns next element, or null if empty */ public void testPeekLast() { LinkedList q = populatedQueue(SIZE); for (int i = SIZE-1; i >= 0; --i) { - assertEquals(i, ((Integer)q.peekLast()).intValue()); - q.pollLast(); + assertEquals(i, q.peekLast()); + assertEquals(i, q.pollLast()); assertTrue(q.peekLast() == null || - i != ((Integer)q.peekLast()).intValue()); + !q.peekLast().equals(i)); } assertNull(q.peekLast()); } @@ -587,30 +574,28 @@ public class LinkedListTest extends JSR1 public void testFirstElement() { LinkedList q = populatedQueue(SIZE); for (int i = 0; i < SIZE; ++i) { - assertEquals(i, ((Integer)q.getFirst()).intValue()); - q.pollFirst(); + assertEquals(i, q.getFirst()); + assertEquals(i, q.pollFirst()); } try { q.getFirst(); shouldThrow(); - } - catch (NoSuchElementException success) {} + } catch (NoSuchElementException success) {} } /** - * getLast returns next element, or throws NSEE if empty + * getLast returns next element, or throws NSEE if empty */ public void testLastElement() { LinkedList q = populatedQueue(SIZE); for (int i = SIZE-1; i >= 0; --i) { - assertEquals(i, ((Integer)q.getLast()).intValue()); - q.pollLast(); + assertEquals(i, q.getLast()); + assertEquals(i, q.pollLast()); } try { q.getLast(); shouldThrow(); - } - catch (NoSuchElementException success) {} + } catch (NoSuchElementException success) {} assertNull(q.peekLast()); }