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.31 by jsr166, Sun Feb 22 04:34:44 2015 UTC vs.
Revision 1.45 by jsr166, Sun May 6 22:09:42 2018 UTC

# Line 15 | Line 15 | import java.util.PriorityQueue;
15   import java.util.Queue;
16  
17   import junit.framework.Test;
18 import junit.framework.TestSuite;
18  
19   public class PriorityQueueTest extends JSR166TestCase {
20      public static void main(String[] args) {
21 <        junit.textui.TestRunner.run(suite());
21 >        main(suite(), args);
22      }
23      public static Test suite() {
24 <        return new TestSuite(PriorityQueueTest.class);
24 >        class Implementation implements CollectionImplementation {
25 >            public Class<?> klazz() { return PriorityQueue.class; }
26 >            public Collection emptyCollection() { return new PriorityQueue(); }
27 >            public Object makeElement(int i) { return i; }
28 >            public boolean isConcurrent() { return false; }
29 >            public boolean permitsNulls() { return false; }
30 >        }
31 >        class ComparatorImplementation implements CollectionImplementation {
32 >            public Class<?> klazz() { return PriorityQueue.class; }
33 >            public Collection emptyCollection() { return new PriorityQueue(new MyReverseComparator()); }
34 >            public Object makeElement(int i) { return i; }
35 >            public boolean isConcurrent() { return false; }
36 >            public boolean permitsNulls() { return false; }
37 >        }
38 >        return newTestSuite(PriorityQueueTest.class,
39 >                            CollectionTest.testSuite(new Implementation()),
40 >                            CollectionTest.testSuite(new ComparatorImplementation()));
41      }
42  
43 <    static class MyReverseComparator implements Comparator {
43 >    static class MyReverseComparator implements Comparator, java.io.Serializable {
44          public int compare(Object x, Object y) {
45              return ((Comparable)y).compareTo(x);
46          }
# Line 33 | Line 48 | public class PriorityQueueTest extends J
48  
49      /**
50       * Returns a new queue of given size containing consecutive
51 <     * Integers 0 ... n.
51 >     * Integers 0 ... n - 1.
52       */
53 <    private PriorityQueue<Integer> populatedQueue(int n) {
54 <        PriorityQueue<Integer> q = new PriorityQueue<Integer>(n);
53 >    private static PriorityQueue<Integer> populatedQueue(int n) {
54 >        PriorityQueue<Integer> q = new PriorityQueue<>(n);
55          assertTrue(q.isEmpty());
56 <        for (int i = n-1; i >= 0; i -= 2)
56 >        for (int i = n - 1; i >= 0; i -= 2)
57              assertTrue(q.offer(new Integer(i)));
58          for (int i = (n & 1); i < n; i += 2)
59              assertTrue(q.offer(new Integer(i)));
60          assertFalse(q.isEmpty());
61          assertEquals(n, q.size());
62 +        assertEquals((Integer) 0, q.peek());
63          return q;
64      }
65  
# Line 55 | Line 71 | public class PriorityQueueTest extends J
71      }
72  
73      /**
74 <     * Constructor throws IAE if capacity argument nonpositive
74 >     * Constructor throws IllegalArgumentException if capacity argument nonpositive
75       */
76      public void testConstructor2() {
77          try {
# Line 79 | Line 95 | public class PriorityQueueTest extends J
95       */
96      public void testConstructor4() {
97          try {
98 <            Integer[] ints = new Integer[SIZE];
83 <            new PriorityQueue(Arrays.asList(ints));
98 >            new PriorityQueue(Arrays.asList(new Integer[SIZE]));
99              shouldThrow();
100          } catch (NullPointerException success) {}
101      }
# Line 89 | Line 104 | public class PriorityQueueTest extends J
104       * Initializing from Collection with some null elements throws NPE
105       */
106      public void testConstructor5() {
107 +        Integer[] ints = new Integer[SIZE];
108 +        for (int i = 0; i < SIZE - 1; ++i)
109 +            ints[i] = new Integer(i);
110          try {
93            Integer[] ints = new Integer[SIZE];
94            for (int i = 0; i < SIZE-1; ++i)
95                ints[i] = new Integer(i);
111              new PriorityQueue(Arrays.asList(ints));
112              shouldThrow();
113          } catch (NullPointerException success) {}
# Line 121 | Line 136 | public class PriorityQueueTest extends J
136          for (int i = 0; i < SIZE; ++i)
137              ints[i] = new Integer(i);
138          q.addAll(Arrays.asList(ints));
139 <        for (int i = SIZE-1; i >= 0; --i)
139 >        for (int i = SIZE - 1; i >= 0; --i)
140              assertEquals(ints[i], q.poll());
141      }
142  
# Line 145 | Line 160 | public class PriorityQueueTest extends J
160      public void testSize() {
161          PriorityQueue q = populatedQueue(SIZE);
162          for (int i = 0; i < SIZE; ++i) {
163 <            assertEquals(SIZE-i, q.size());
163 >            assertEquals(SIZE - i, q.size());
164              q.remove();
165          }
166          for (int i = 0; i < SIZE; ++i) {
# Line 158 | Line 173 | public class PriorityQueueTest extends J
173       * offer(null) throws NPE
174       */
175      public void testOfferNull() {
176 +        PriorityQueue q = new PriorityQueue(1);
177          try {
162            PriorityQueue q = new PriorityQueue(1);
178              q.offer(null);
179              shouldThrow();
180          } catch (NullPointerException success) {}
# Line 169 | Line 184 | public class PriorityQueueTest extends J
184       * add(null) throws NPE
185       */
186      public void testAddNull() {
187 +        PriorityQueue q = new PriorityQueue(1);
188          try {
173            PriorityQueue q = new PriorityQueue(1);
189              q.add(null);
190              shouldThrow();
191          } catch (NullPointerException success) {}
# Line 189 | Line 204 | public class PriorityQueueTest extends J
204       * Offer of non-Comparable throws CCE
205       */
206      public void testOfferNonComparable() {
207 +        PriorityQueue q = new PriorityQueue(1);
208          try {
193            PriorityQueue q = new PriorityQueue(1);
194            q.offer(new Object());
195            q.offer(new Object());
209              q.offer(new Object());
210              shouldThrow();
211 <        } catch (ClassCastException success) {}
211 >        } catch (ClassCastException success) {
212 >            assertTrue(q.isEmpty());
213 >            assertEquals(0, q.size());
214 >            assertNull(q.poll());
215 >        }
216      }
217  
218      /**
# Line 213 | Line 230 | public class PriorityQueueTest extends J
230       * addAll(null) throws NPE
231       */
232      public void testAddAll1() {
233 +        PriorityQueue q = new PriorityQueue(1);
234          try {
217            PriorityQueue q = new PriorityQueue(1);
235              q.addAll(null);
236              shouldThrow();
237          } catch (NullPointerException success) {}
# Line 224 | Line 241 | public class PriorityQueueTest extends J
241       * addAll of a collection with null elements throws NPE
242       */
243      public void testAddAll2() {
244 +        PriorityQueue q = new PriorityQueue(SIZE);
245          try {
246 <            PriorityQueue q = new PriorityQueue(SIZE);
229 <            Integer[] ints = new Integer[SIZE];
230 <            q.addAll(Arrays.asList(ints));
246 >            q.addAll(Arrays.asList(new Integer[SIZE]));
247              shouldThrow();
248          } catch (NullPointerException success) {}
249      }
# Line 237 | Line 253 | public class PriorityQueueTest extends J
253       * possibly adding some elements
254       */
255      public void testAddAll3() {
256 +        PriorityQueue q = new PriorityQueue(SIZE);
257 +        Integer[] ints = new Integer[SIZE];
258 +        for (int i = 0; i < SIZE - 1; ++i)
259 +            ints[i] = new Integer(i);
260          try {
241            PriorityQueue q = new PriorityQueue(SIZE);
242            Integer[] ints = new Integer[SIZE];
243            for (int i = 0; i < SIZE-1; ++i)
244                ints[i] = new Integer(i);
261              q.addAll(Arrays.asList(ints));
262              shouldThrow();
263          } catch (NullPointerException success) {}
# Line 254 | Line 270 | public class PriorityQueueTest extends J
270          Integer[] empty = new Integer[0];
271          Integer[] ints = new Integer[SIZE];
272          for (int i = 0; i < SIZE; ++i)
273 <            ints[i] = new Integer(SIZE-1-i);
273 >            ints[i] = new Integer(SIZE - 1 - i);
274          PriorityQueue q = new PriorityQueue(SIZE);
275          assertFalse(q.addAll(Arrays.asList(empty)));
276          assertTrue(q.addAll(Arrays.asList(ints)));
# Line 325 | Line 341 | public class PriorityQueueTest extends J
341              assertTrue(q.contains(i));
342              assertTrue(q.remove(i));
343              assertFalse(q.contains(i));
344 <            assertTrue(q.contains(i-1));
344 >            assertTrue(q.contains(i - 1));
345          }
346          for (int i = 0; i < SIZE; i += 2) {
347              assertTrue(q.contains(i));
348              assertTrue(q.remove(i));
349              assertFalse(q.contains(i));
350 <            assertFalse(q.remove(i+1));
351 <            assertFalse(q.contains(i+1));
350 >            assertFalse(q.remove(i + 1));
351 >            assertFalse(q.contains(i + 1));
352          }
353          assertTrue(q.isEmpty());
354      }
# Line 391 | Line 407 | public class PriorityQueueTest extends J
407                  assertTrue(changed);
408  
409              assertTrue(q.containsAll(p));
410 <            assertEquals(SIZE-i, q.size());
410 >            assertEquals(SIZE - i, q.size());
411              p.remove();
412          }
413      }
# Line 404 | Line 420 | public class PriorityQueueTest extends J
420              PriorityQueue q = populatedQueue(SIZE);
421              PriorityQueue p = populatedQueue(i);
422              assertTrue(q.removeAll(p));
423 <            assertEquals(SIZE-i, q.size());
423 >            assertEquals(SIZE - i, q.size());
424              for (int j = 0; j < i; ++j) {
425                  Integer x = (Integer)(p.remove());
426                  assertFalse(q.contains(x));
# Line 487 | Line 503 | public class PriorityQueueTest extends J
503      }
504  
505      /**
506 <     * A deserialized serialized queue has same elements
506 >     * A deserialized/reserialized queue has same elements
507       */
508      public void testSerialization() throws Exception {
509          Queue x = populatedQueue(SIZE);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines