PriorityQueueTest.java revision 8f0d92bba199d906c70a5e40d7f3516c1a424117
18f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle/* 28f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Written by Doug Lea with assistance from members of JCP JSR-166 38f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Expert Group and released to the public domain, as explained at 48f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * http://creativecommons.org/publicdomain/zero/1.0/ 58f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Other contributors include Andrew Wright, Jeffrey Hayes, 68f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Pat Fisher, Mike Judd. 78f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 88f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 98f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravlepackage jsr166; 108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport junit.framework.*; 128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Arrays; 138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Collection; 148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Comparator; 158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Iterator; 168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.NoSuchElementException; 178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.PriorityQueue; 188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Queue; 198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravlepublic class PriorityQueueTest extends JSR166TestCase { 218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle static class MyReverseComparator implements Comparator { 238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public int compare(Object x, Object y) { 248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return ((Comparable)y).compareTo(x); 258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Returns a new queue of given size containing consecutive 308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Integers 0 ... n. 318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle private PriorityQueue<Integer> populatedQueue(int n) { 338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue<Integer> q = new PriorityQueue<Integer>(n); 348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = n-1; i >= 0; i-=2) 368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offer(new Integer(i))); 378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = (n & 1); i < n; i+=2) 388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offer(new Integer(i))); 398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.isEmpty()); 408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(n, q.size()); 418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return q; 428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * A new queue has unbounded capacity 468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor1() { 488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, new PriorityQueue(SIZE).size()); 498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Constructor throws IAE if capacity argument nonpositive 538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor2() { 558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(0); 578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (IllegalArgumentException success) {} 598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Initializing from null Collection throws NPE 638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor3() { 658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue((Collection)null); 678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Initializing from Collection of null elements throws NPE 738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor4() { 758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(Arrays.asList(ints)); 788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Initializing from Collection with some null elements throws NPE 848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor5() { 868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE-1; ++i) 898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(i); 908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(Arrays.asList(ints)); 918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Queue contains all elements of collection used to initialize 978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor6() { 998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 1008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 1018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(i); 1028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(Arrays.asList(ints)); 1038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 1048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(ints[i], q.poll()); 1058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * The comparator used in constructor is used 1098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor7() { 1118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle MyReverseComparator cmp = new MyReverseComparator(); 1128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(SIZE, cmp); 1138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(cmp, q.comparator()); 1148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 1158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 1168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(i); 1178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addAll(Arrays.asList(ints)); 1188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = SIZE-1; i >= 0; --i) 1198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(ints[i], q.poll()); 1208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * isEmpty is true before add, false after 1248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testEmpty() { 1268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(2); 1278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 1288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(1)); 1298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.isEmpty()); 1308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(2)); 1318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 1328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 1338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 1348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * size changes when elements added and removed 1388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSize() { 1408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 1418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 1428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(SIZE-i, q.size()); 1438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 1448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 1468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.size()); 1478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(i)); 1488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offer(null) throws NPE 1538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferNull() { 1558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(1); 1578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offer(null); 1588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 1608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * add(null) throws NPE 1648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddNull() { 1668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(1); 1688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(null); 1698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 1718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Offer of comparable element succeeds 1758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOffer() { 1778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(1); 1788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offer(zero)); 1798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offer(one)); 1808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Offer of non-Comparable throws CCE 1848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferNonComparable() { 1868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(1); 1888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offer(new Object()); 1898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offer(new Object()); 1908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offer(new Object()); 1918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (ClassCastException success) {} 1938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * add of comparable succeeds 1978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAdd() { 1998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(SIZE); 2008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 2018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.size()); 2028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.add(new Integer(i))); 2038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addAll(null) throws NPE 2088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll1() { 2108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(1); 2128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addAll(null); 2138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 2158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addAll of a collection with null elements throws NPE 2198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll2() { 2218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(SIZE); 2238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 2248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addAll(Arrays.asList(ints)); 2258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 2278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addAll of a collection with any null elements throws NPE after 2318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * possibly adding some elements 2328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll3() { 2348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(SIZE); 2368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 2378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE-1; ++i) 2388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(i); 2398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addAll(Arrays.asList(ints)); 2408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 2428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Queue contains all elements of successful addAll 2468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll5() { 2488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] empty = new Integer[0]; 2498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 2508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 2518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(SIZE-1-i); 2528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = new PriorityQueue(SIZE); 2538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.addAll(Arrays.asList(empty))); 2548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.addAll(Arrays.asList(ints))); 2558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 2568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(new Integer(i), q.poll()); 2578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * poll succeeds unless empty 2618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPoll() { 2638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 2648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 2658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 2668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.poll()); 2688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * peek returns next element, or null if empty 2728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPeek() { 2748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 2758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 2768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.peek()); 2778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 2788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.peek() == null || 2798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle !q.peek().equals(i)); 2808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peek()); 2828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * element returns next element, or throws NSEE if empty 2868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testElement() { 2888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 2898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 2908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.element()); 2918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 2928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.element(); 2958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 2978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove removes next element, or throws NSEE if empty 3018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemove() { 3038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.remove()); 3068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 3088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 3098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 3108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 3118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(x) removes x and returns true if present 3158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveElement() { 3178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 1; i < SIZE; i+=2) { 3198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(i)); 3208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.remove(i)); 3218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(i)); 3228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(i-1)); 3238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i+=2) { 3258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(i)); 3268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.remove(i)); 3278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(i)); 3288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.remove(i+1)); 3298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(i+1)); 3308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 3328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * contains(x) reports true when elements added but not yet removed 3368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContains() { 3388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(new Integer(i))); 3418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.poll(); 3428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(new Integer(i))); 3438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * clear removes all elements 3488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testClear() { 3508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.clear(); 3528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 3538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, q.size()); 3548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(1)); 3558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.isEmpty()); 3568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.clear(); 3578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 3588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsAll(c) is true when c contains a subset of elements 3628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContainsAll() { 3648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue p = new PriorityQueue(SIZE); 3668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.containsAll(p)); 3688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(p.containsAll(q)); 3698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle p.add(new Integer(i)); 3708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(p.containsAll(q)); 3728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * retainAll(c) retains only those elements of c and reports true if changed 3768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRetainAll() { 3788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue p = populatedQueue(SIZE); 3808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle boolean changed = q.retainAll(p); 3828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle if (i == 0) 3838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(changed); 3848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle else 3858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(changed); 3868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.containsAll(p)); 3888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(SIZE-i, q.size()); 3898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle p.remove(); 3908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * removeAll(c) removes only those elements of c and reports true if changed 3958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveAll() { 3978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 1; i < SIZE; ++i) { 3988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 3998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue p = populatedQueue(i); 4008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.removeAll(p)); 4018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(SIZE-i, q.size()); 4028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 0; j < i; ++j) { 4038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer I = (Integer)(p.remove()); 4048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(I)); 4058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toArray contains all elements 4118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToArray() { 4138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 4148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] o = q.toArray(); 4158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Arrays.sort(o); 4168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < o.length; i++) 4178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(o[i], q.poll()); 4188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toArray(a) contains all elements 4228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToArray2() { 4248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue<Integer> q = populatedQueue(SIZE); 4258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 4268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] array = q.toArray(ints); 4278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(ints, array); 4288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Arrays.sort(ints); 4298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < ints.length; i++) 4308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(ints[i], q.poll()); 4318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * iterator iterates through all elements 4358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testIterator() { 4378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 4388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int i = 0; 4398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.iterator(); 4408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (it.hasNext()) { 4418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(it.next())); 4428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ++i; 4438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, SIZE); 4458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * iterator.remove removes current element 4498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testIteratorRemove() { 4518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final PriorityQueue q = new PriorityQueue(3); 4528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(2)); 4538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(1)); 4548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(3)); 4558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.iterator(); 4578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.next(); 4588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.remove(); 4598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it = q.iterator(); 4618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(it.next(), new Integer(2)); 4628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(it.next(), new Integer(3)); 4638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(it.hasNext()); 4648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toString contains toStrings of elements 4688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToString() { 4708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle PriorityQueue q = populatedQueue(SIZE); 4718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle String s = q.toString(); 4728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 4738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(String.valueOf(i))); 4748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * A deserialized serialized queue has same elements 4798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSerialization() throws Exception { 4818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Queue x = populatedQueue(SIZE); 4828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Queue y = serialClone(x); 4838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotSame(x, y); 4858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.size(), y.size()); 4868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (!x.isEmpty()) { 4878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(y.isEmpty()); 4888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.remove(), y.remove()); 4898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(y.isEmpty()); 4918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle} 493