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

Comparing jsr166/src/test/tck/PriorityQueueTest.java (file contents):
Revision 1.21 by jsr166, Tue Mar 15 19:47:07 2011 UTC vs.
Revision 1.31 by jsr166, Sun Feb 22 04:34:44 2015 UTC

# Line 6 | Line 6
6   * Pat Fisher, Mike Judd.
7   */
8  
9 < import junit.framework.*;
10 < import java.util.*;
11 < import java.util.concurrent.*;
12 < import java.io.*;
9 > import java.util.Arrays;
10 > import java.util.Collection;
11 > import java.util.Comparator;
12 > import java.util.Iterator;
13 > import java.util.NoSuchElementException;
14 > import java.util.PriorityQueue;
15 > import java.util.Queue;
16 >
17 > import junit.framework.Test;
18 > import junit.framework.TestSuite;
19  
20   public class PriorityQueueTest extends JSR166TestCase {
21      public static void main(String[] args) {
# Line 26 | Line 32 | public class PriorityQueueTest extends J
32      }
33  
34      /**
35 <     * Create a queue of given size containing consecutive
35 >     * Returns a new queue of given size containing consecutive
36       * Integers 0 ... n.
37       */
38      private PriorityQueue<Integer> populatedQueue(int n) {
39          PriorityQueue<Integer> q = new PriorityQueue<Integer>(n);
40          assertTrue(q.isEmpty());
41 <        for (int i = n-1; i >= 0; i-=2)
41 >        for (int i = n-1; i >= 0; i -= 2)
42              assertTrue(q.offer(new Integer(i)));
43 <        for (int i = (n & 1); i < n; i+=2)
43 >        for (int i = (n & 1); i < n; i += 2)
44              assertTrue(q.offer(new Integer(i)));
45          assertFalse(q.isEmpty());
46          assertEquals(n, q.size());
# Line 53 | Line 59 | public class PriorityQueueTest extends J
59       */
60      public void testConstructor2() {
61          try {
62 <            PriorityQueue q = new PriorityQueue(0);
62 >            new PriorityQueue(0);
63              shouldThrow();
64          } catch (IllegalArgumentException success) {}
65      }
# Line 63 | Line 69 | public class PriorityQueueTest extends J
69       */
70      public void testConstructor3() {
71          try {
72 <            PriorityQueue q = new PriorityQueue((Collection)null);
72 >            new PriorityQueue((Collection)null);
73              shouldThrow();
74          } catch (NullPointerException success) {}
75      }
# Line 74 | Line 80 | public class PriorityQueueTest extends J
80      public void testConstructor4() {
81          try {
82              Integer[] ints = new Integer[SIZE];
83 <            PriorityQueue q = new PriorityQueue(Arrays.asList(ints));
83 >            new PriorityQueue(Arrays.asList(ints));
84              shouldThrow();
85          } catch (NullPointerException success) {}
86      }
# Line 87 | Line 93 | public class PriorityQueueTest extends J
93              Integer[] ints = new Integer[SIZE];
94              for (int i = 0; i < SIZE-1; ++i)
95                  ints[i] = new Integer(i);
96 <            PriorityQueue q = new PriorityQueue(Arrays.asList(ints));
96 >            new PriorityQueue(Arrays.asList(ints));
97              shouldThrow();
98          } catch (NullPointerException success) {}
99      }
# Line 315 | Line 321 | public class PriorityQueueTest extends J
321       */
322      public void testRemoveElement() {
323          PriorityQueue q = populatedQueue(SIZE);
324 <        for (int i = 1; i < SIZE; i+=2) {
324 >        for (int i = 1; i < SIZE; i += 2) {
325              assertTrue(q.contains(i));
326              assertTrue(q.remove(i));
327              assertFalse(q.contains(i));
328              assertTrue(q.contains(i-1));
329          }
330 <        for (int i = 0; i < SIZE; i+=2) {
330 >        for (int i = 0; i < SIZE; i += 2) {
331              assertTrue(q.contains(i));
332              assertTrue(q.remove(i));
333              assertFalse(q.contains(i));
# Line 400 | Line 406 | public class PriorityQueueTest extends J
406              assertTrue(q.removeAll(p));
407              assertEquals(SIZE-i, q.size());
408              for (int j = 0; j < i; ++j) {
409 <                Integer I = (Integer)(p.remove());
410 <                assertFalse(q.contains(I));
409 >                Integer x = (Integer)(p.remove());
410 >                assertFalse(q.contains(x));
411              }
412          }
413      }
# Line 435 | Line 441 | public class PriorityQueueTest extends J
441       */
442      public void testIterator() {
443          PriorityQueue q = populatedQueue(SIZE);
438        int i = 0;
444          Iterator it = q.iterator();
445 <        while (it.hasNext()) {
445 >        int i;
446 >        for (i = 0; it.hasNext(); i++)
447              assertTrue(q.contains(it.next()));
442            ++i;
443        }
448          assertEquals(i, SIZE);
449 +        assertIteratorExhausted(it);
450 +    }
451 +
452 +    /**
453 +     * iterator of empty collection has no elements
454 +     */
455 +    public void testEmptyIterator() {
456 +        assertIteratorExhausted(new PriorityQueue().iterator());
457      }
458  
459      /**
# Line 463 | Line 475 | public class PriorityQueueTest extends J
475          assertFalse(it.hasNext());
476      }
477  
466
478      /**
479       * toString contains toStrings of elements
480       */
# Line 471 | Line 482 | public class PriorityQueueTest extends J
482          PriorityQueue q = populatedQueue(SIZE);
483          String s = q.toString();
484          for (int i = 0; i < SIZE; ++i) {
485 <            assertTrue(s.indexOf(String.valueOf(i)) >= 0);
485 >            assertTrue(s.contains(String.valueOf(i)));
486          }
487      }
488  
# Line 479 | Line 490 | public class PriorityQueueTest extends J
490       * A deserialized serialized queue has same elements
491       */
492      public void testSerialization() throws Exception {
493 <        PriorityQueue q = populatedQueue(SIZE);
494 <        ByteArrayOutputStream bout = new ByteArrayOutputStream(10000);
495 <        ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout));
496 <        out.writeObject(q);
497 <        out.close();
498 <
499 <        ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
500 <        ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin));
501 <        PriorityQueue r = (PriorityQueue)in.readObject();
502 <        assertEquals(q.size(), r.size());
492 <        while (!q.isEmpty())
493 <            assertEquals(q.remove(), r.remove());
493 >        Queue x = populatedQueue(SIZE);
494 >        Queue y = serialClone(x);
495 >
496 >        assertNotSame(x, y);
497 >        assertEquals(x.size(), y.size());
498 >        while (!x.isEmpty()) {
499 >            assertFalse(y.isEmpty());
500 >            assertEquals(x.remove(), y.remove());
501 >        }
502 >        assertTrue(y.isEmpty());
503      }
504   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines