ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/ArrayDequeTest.java
(Generate patch)

Comparing jsr166/src/test/tck/ArrayDequeTest.java (file contents):
Revision 1.18 by jsr166, Wed Nov 3 16:46:34 2010 UTC vs.
Revision 1.26 by jsr166, Tue Feb 21 02:04:17 2012 UTC

# Line 1 | Line 1
1   /*
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4 < * http://creativecommons.org/licenses/publicdomain
4 > * http://creativecommons.org/publicdomain/zero/1.0/
5   */
6  
7   import junit.framework.*;
8 < import java.io.BufferedInputStream;
9 < import java.io.BufferedOutputStream;
10 < import java.io.ByteArrayInputStream;
11 < import java.io.ByteArrayOutputStream;
12 < import java.io.ObjectInputStream;
13 < import java.io.ObjectOutputStream;
14 < import java.util.*;
8 > import java.util.Arrays;
9 > import java.util.ArrayDeque;
10 > import java.util.Collection;
11 > import java.util.Deque;
12 > import java.util.Iterator;
13 > import java.util.NoSuchElementException;
14 > import java.util.Queue;
15 > import java.util.Random;
16  
17   public class ArrayDequeTest extends JSR166TestCase {
18      public static void main(String[] args) {
# Line 23 | Line 24 | public class ArrayDequeTest extends JSR1
24      }
25  
26      /**
27 <     * Create a deque of given size containing consecutive
27 >     * Returns a new deque of given size containing consecutive
28       * Integers 0 ... n.
29       */
30 <    private ArrayDeque populatedDeque(int n) {
31 <        ArrayDeque q = new ArrayDeque();
30 >    private ArrayDeque<Integer> populatedDeque(int n) {
31 >        ArrayDeque<Integer> q = new ArrayDeque<Integer>();
32          assertTrue(q.isEmpty());
33          for (int i = 0; i < n; ++i)
34              assertTrue(q.offerLast(new Integer(i)));
# Line 391 | Line 392 | public class ArrayDequeTest extends JSR1
392      public void testRemoveElement() {
393          ArrayDeque q = populatedDeque(SIZE);
394          for (int i = 1; i < SIZE; i+=2) {
395 <            assertTrue(q.remove(new Integer(i)));
395 >            assertTrue(q.contains(i));
396 >            assertTrue(q.remove(i));
397 >            assertFalse(q.contains(i));
398 >            assertTrue(q.contains(i-1));
399          }
400          for (int i = 0; i < SIZE; i+=2) {
401 <            assertTrue(q.remove(new Integer(i)));
402 <            assertFalse(q.remove(new Integer(i+1)));
401 >            assertTrue(q.contains(i));
402 >            assertTrue(q.remove(i));
403 >            assertFalse(q.contains(i));
404 >            assertFalse(q.remove(i+1));
405 >            assertFalse(q.contains(i+1));
406          }
407          assertTrue(q.isEmpty());
408      }
# Line 488 | Line 495 | public class ArrayDequeTest extends JSR1
495          assertNull(q.peekLast());
496      }
497  
491
498      /**
499       * removeFirst() removes first element, or throws NSEE if empty
500       */
# Line 620 | Line 626 | public class ArrayDequeTest extends JSR1
626      }
627  
628      /**
629 <     * toArray() contains all elements
629 >     * toArray() contains all elements in FIFO order
630       */
631      public void testToArray() {
632          ArrayDeque q = populatedDeque(SIZE);
633          Object[] o = q.toArray();
628        Arrays.sort(o);
634          for (int i = 0; i < o.length; i++)
635 <            assertEquals(o[i], q.pollFirst());
635 >            assertSame(o[i], q.pollFirst());
636      }
637  
638      /**
639 <     * toArray(a) contains all elements
639 >     * toArray(a) contains all elements in FIFO order
640       */
641      public void testToArray2() {
642 <        ArrayDeque q = populatedDeque(SIZE);
642 >        ArrayDeque<Integer> q = populatedDeque(SIZE);
643          Integer[] ints = new Integer[SIZE];
644 <        ints = (Integer[])q.toArray(ints);
645 <        Arrays.sort(ints);
644 >        Integer[] array = q.toArray(ints);
645 >        assertSame(ints, array);
646          for (int i = 0; i < ints.length; i++)
647 <            assertEquals(ints[i], q.pollFirst());
647 >            assertSame(ints[i], q.remove());
648      }
649  
650      /**
# Line 792 | Line 797 | public class ArrayDequeTest extends JSR1
797          }
798      }
799  
795
800      /**
801       * toString() contains toStrings of elements
802       */
# Line 800 | Line 804 | public class ArrayDequeTest extends JSR1
804          ArrayDeque q = populatedDeque(SIZE);
805          String s = q.toString();
806          for (int i = 0; i < SIZE; ++i) {
807 <            assertTrue(s.indexOf(String.valueOf(i)) >= 0);
807 >            assertTrue(s.contains(String.valueOf(i)));
808          }
809      }
810  
# Line 808 | Line 812 | public class ArrayDequeTest extends JSR1
812       * A deserialized serialized deque has same elements in same order
813       */
814      public void testSerialization() throws Exception {
815 <        ArrayDeque q = populatedDeque(SIZE);
816 <        ByteArrayOutputStream bout = new ByteArrayOutputStream(10000);
817 <        ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout));
818 <        out.writeObject(q);
819 <        out.close();
820 <
821 <        ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
822 <        ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin));
823 <        ArrayDeque r = (ArrayDeque)in.readObject();
824 <        assertEquals(q.size(), r.size());
825 <        while (!q.isEmpty())
826 <            assertEquals(q.remove(), r.remove());
815 >        Queue x = populatedDeque(SIZE);
816 >        Queue y = serialClone(x);
817 >
818 >        assertTrue(x != y);
819 >        assertEquals(x.size(), y.size());
820 >        assertEquals(x.toString(), y.toString());
821 >        assertTrue(Arrays.equals(x.toArray(), y.toArray()));
822 >        while (!x.isEmpty()) {
823 >            assertFalse(y.isEmpty());
824 >            assertEquals(x.remove(), y.remove());
825 >        }
826 >        assertTrue(y.isEmpty());
827      }
828  
829   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines