ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/jtreg/util/PriorityQueue/PriorityQueueSort.java
(Generate patch)

Comparing jsr166/src/test/jtreg/util/PriorityQueue/PriorityQueueSort.java (file contents):
Revision 1.1 by dl, Wed Aug 27 13:42:53 2003 UTC vs.
Revision 1.14 by jsr166, Mon Jan 8 03:46:26 2018 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/publicdomain/zero/1.0/
5 + */
6 +
7 + /*
8   * @test
9 < * @synopsis Checks that a priority queue returns elements in sorted order across various operations
9 > * @bug 4486658
10 > * @summary Checks that a priority queue returns elements in sorted order across various operations
11   */
12  
13 < import java.util.*;
13 > import java.util.ArrayList;
14 > import java.util.Collections;
15 > import java.util.Comparator;
16 > import java.util.Iterator;
17 > import java.util.List;
18 > import java.util.PriorityQueue;
19 > import java.util.Queue;
20  
21   public class PriorityQueueSort {
22  
23 <    static class MyComparator implements Comparator<Integer> {
23 >    static class MyComparator implements Comparator<Integer> {
24          public int compare(Integer x, Integer y) {
25 <            int i = ((Integer)x).intValue();
13 <            int j = ((Integer)y).intValue();
14 <            if (i < j) return -1;
15 <            if (i > j) return 1;
16 <            return 0;
25 >            return Integer.compare(x.intValue(), y.intValue());
26          }
27      }
28  
# Line 21 | Line 30 | public class PriorityQueueSort {
30          int n = 10000;
31          if (args.length > 0)
32              n = Integer.parseInt(args[0]);
33 <        
34 <        List<Integer> sorted = new ArrayList<Integer>(n);
33 >
34 >        List<Integer> sorted = new ArrayList<>(n);
35          for (int i = 0; i < n; i++)
36              sorted.add(new Integer(i));
37 <        List<Integer> shuffled = new ArrayList<Integer>(sorted);
37 >        List<Integer> shuffled = new ArrayList<>(sorted);
38          Collections.shuffle(shuffled);
39  
40 <        Queue<Integer> pq = new PriorityQueue<Integer>(n, new MyComparator());
40 >        Queue<Integer> pq = new PriorityQueue<>(n, new MyComparator());
41          for (Iterator<Integer> i = shuffled.iterator(); i.hasNext(); )
42              pq.add(i.next());
43  
44 <        List<Integer> recons = new ArrayList<Integer>();
44 >        List<Integer> recons = new ArrayList<>();
45          while (!pq.isEmpty())
46              recons.add(pq.remove());
47          if (!recons.equals(sorted))
48              throw new RuntimeException("Sort test failed");
49  
50          recons.clear();
51 <        pq = new PriorityQueue<Integer>(shuffled);
51 >        pq = new PriorityQueue<>(shuffled);
52          while (!pq.isEmpty())
53              recons.add(pq.remove());
54          if (!recons.equals(sorted))
55              throw new RuntimeException("Sort test failed");
56  
57          // Remove all odd elements from queue
58 <        pq = new PriorityQueue<Integer>(shuffled);
58 >        pq = new PriorityQueue<>(shuffled);
59          for (Iterator<Integer> i = pq.iterator(); i.hasNext(); )
60              if ((i.next().intValue() & 1) == 1)
61                  i.remove();
# Line 62 | Line 71 | public class PriorityQueueSort {
71              throw new RuntimeException("Iterator remove test failed.");
72      }
73   }
65

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines