ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/jtreg/util/PriorityQueue/PriorityQueueSort.java
Revision: 1.3
Committed: Mon Sep 1 21:38:20 2003 UTC (20 years, 9 months ago) by jsr166
Branch: MAIN
CVS Tags: JSR166_NOV3_FREEZE, JSR166_PFD, JSR166_DEC9_PRE_ES_SUBMIT, JSR166_DEC9_POST_ES_SUBMIT
Changes since 1.2: +1 -2 lines
Log Message:
Correct @run timeouts.  Avoid @run "run-ons"

File Contents

# Content
1 /*
2 * @test %I% %E%
3 * @bug 4486658
4 * @compile -source 1.5 PriorityQueueSort.java
5 * @run main PriorityQueueSort
6 * @summary Checks that a priority queue returns elements in sorted order across various operations
7 */
8
9 import java.util.*;
10
11 public class PriorityQueueSort {
12
13 static class MyComparator implements Comparator<Integer> {
14 public int compare(Integer x, Integer y) {
15 int i = ((Integer)x).intValue();
16 int j = ((Integer)y).intValue();
17 if (i < j) return -1;
18 if (i > j) return 1;
19 return 0;
20 }
21 }
22
23 public static void main(String[] args) {
24 int n = 10000;
25 if (args.length > 0)
26 n = Integer.parseInt(args[0]);
27
28 List<Integer> sorted = new ArrayList<Integer>(n);
29 for (int i = 0; i < n; i++)
30 sorted.add(new Integer(i));
31 List<Integer> shuffled = new ArrayList<Integer>(sorted);
32 Collections.shuffle(shuffled);
33
34 Queue<Integer> pq = new PriorityQueue<Integer>(n, new MyComparator());
35 for (Iterator<Integer> i = shuffled.iterator(); i.hasNext(); )
36 pq.add(i.next());
37
38 List<Integer> recons = new ArrayList<Integer>();
39 while (!pq.isEmpty())
40 recons.add(pq.remove());
41 if (!recons.equals(sorted))
42 throw new RuntimeException("Sort test failed");
43
44 recons.clear();
45 pq = new PriorityQueue<Integer>(shuffled);
46 while (!pq.isEmpty())
47 recons.add(pq.remove());
48 if (!recons.equals(sorted))
49 throw new RuntimeException("Sort test failed");
50
51 // Remove all odd elements from queue
52 pq = new PriorityQueue<Integer>(shuffled);
53 for (Iterator<Integer> i = pq.iterator(); i.hasNext(); )
54 if ((i.next().intValue() & 1) == 1)
55 i.remove();
56 recons.clear();
57 while (!pq.isEmpty())
58 recons.add(pq.remove());
59
60 for (Iterator<Integer> i = sorted.iterator(); i.hasNext(); )
61 if ((i.next().intValue() & 1) == 1)
62 i.remove();
63
64 if (!recons.equals(sorted))
65 throw new RuntimeException("Iterator remove test failed.");
66 }
67 }
68