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 */ 68f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 78f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravlepackage jsr166; 88f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 98f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.ArrayDeque; 108e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.Arrays; 118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Collection; 128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Deque; 138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Iterator; 148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.NoSuchElementException; 158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Queue; 168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.Random; 178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 188e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport junit.framework.Test; 198e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport junit.framework.TestSuite; 208e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravlepublic class ArrayDequeTest extends JSR166TestCase { 228e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // android-note: Removed because the CTS runner does a bad job of 238e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // retrying tests that have suite() declarations. 248e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // 258e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // public static void main(String[] args) { 268e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // main(suite(), args); 278e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // } 288e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // public static Test suite() { 29e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak // return new TestSuite(ArrayDequeTest.class); 308e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // } 318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Returns a new deque of given size containing consecutive 348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Integers 0 ... n. 358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle private ArrayDeque<Integer> populatedDeque(int n) { 378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque<Integer> q = new ArrayDeque<Integer>(); 388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < n; ++i) 408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offerLast(new Integer(i))); 418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.isEmpty()); 428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(n, q.size()); 438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return q; 448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * new deque is empty 488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor1() { 508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, new ArrayDeque().size()); 518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Initializing from null Collection throws NPE 558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor3() { 578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 588e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath new ArrayDeque((Collection)null); 598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Initializing from Collection of null elements throws NPE 658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor4() { 678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 68e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak new ArrayDeque(Arrays.asList(new Integer[SIZE])); 698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Initializing from Collection with some null elements throws NPE 758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor5() { 77e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak Integer[] ints = new Integer[SIZE]; 78e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int i = 0; i < SIZE - 1; ++i) 79e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ints[i] = new Integer(i); 808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 818e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath new ArrayDeque(Arrays.asList(ints)); 828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Deque contains all elements of collection used to initialize 888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testConstructor6() { 908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(i); 938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(Arrays.asList(ints)); 948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(ints[i], q.pollFirst()); 968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * isEmpty is true before add, false after 1008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testEmpty() { 1028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 1038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 1048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(1)); 1058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.isEmpty()); 1068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(2)); 1078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.removeFirst(); 1088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.removeFirst(); 1098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 1108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * size changes when elements added and removed 1148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSize() { 1168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 1178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 118e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(SIZE - i, q.size()); 1198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.removeFirst(); 1208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 1228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.size()); 1238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(i)); 1248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * push(null) throws NPE 1298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPushNull() { 131e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(1); 1328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.push(null); 1348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 1368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * peekFirst() returns element inserted with push 1408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPush() { 1428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(3); 1438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.pollLast(); 1448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.push(four); 1458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(four, q.peekFirst()); 1468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pop() removes next element, or throws NSEE if empty 1508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPop() { 1528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 1538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 1548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pop()); 1558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.pop(); 1588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 1608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offer(null) throws NPE 1648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferNull() { 166e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 1678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offer(null); 1698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 1718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offerFirst(null) throws NPE 1758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferFirstNull() { 177e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 1788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offerFirst(null); 1808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 1828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offerLast(null) throws NPE 1868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferLastNull() { 188e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 1898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 1908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.offerLast(null); 1918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 1928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 1938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offer(x) succeeds 1978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOffer() { 1998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 2008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offer(zero)); 2018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offer(one)); 2028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(zero, q.peekFirst()); 2038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(one, q.peekLast()); 2048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offerFirst(x) succeeds 2088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferFirst() { 2108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 2118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offerFirst(zero)); 2128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offerFirst(one)); 2138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(one, q.peekFirst()); 2148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(zero, q.peekLast()); 2158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * offerLast(x) succeeds 2198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testOfferLast() { 2218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 2228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offerLast(zero)); 2238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.offerLast(one)); 2248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(zero, q.peekFirst()); 2258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(one, q.peekLast()); 2268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * add(null) throws NPE 2308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddNull() { 232e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 2338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(null); 2358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 2378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addFirst(null) throws NPE 2418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddFirstNull() { 243e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 2448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addFirst(null); 2468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 2488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addLast(null) throws NPE 2528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddLastNull() { 254e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 2558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 2568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addLast(null); 2578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 2588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 2598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * add(x) succeeds 2638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAdd() { 2658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 2668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.add(zero)); 2678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.add(one)); 2688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(zero, q.peekFirst()); 2698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(one, q.peekLast()); 2708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addFirst(x) succeeds 2748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddFirst() { 2768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 2778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addFirst(zero); 2788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addFirst(one); 2798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(one, q.peekFirst()); 2808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(zero, q.peekLast()); 2818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addLast(x) succeeds 2858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddLast() { 2878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 2888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addLast(zero); 2898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addLast(one); 2908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(zero, q.peekFirst()); 2918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(one, q.peekLast()); 2928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addAll(null) throws NPE 2968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll1() { 298e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 2998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 3008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addAll(null); 3018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 3028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 3038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addAll of a collection with null elements throws NPE 3078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll2() { 309e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 3108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 311e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak q.addAll(Arrays.asList(new Integer[SIZE])); 3128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 3138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 3148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * addAll of a collection with any null elements throws NPE after 3188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * possibly adding some elements 3198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll3() { 321e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ArrayDeque q = new ArrayDeque(); 322e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak Integer[] ints = new Integer[SIZE]; 323e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int i = 0; i < SIZE - 1; ++i) 324e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak ints[i] = new Integer(i); 3258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 3268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addAll(Arrays.asList(ints)); 3278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 3288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 3298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Deque contains all elements, in traversal order, of successful addAll 3338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testAddAll5() { 3358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] empty = new Integer[0]; 3368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] ints = new Integer[SIZE]; 3378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 3388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ints[i] = new Integer(i); 3398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 3408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.addAll(Arrays.asList(empty))); 3418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.addAll(Arrays.asList(ints))); 3428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) 3438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(ints[i], q.pollFirst()); 3448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pollFirst() succeeds unless empty 3488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPollFirst() { 3508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 3518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollFirst()); 3538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.pollFirst()); 3558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pollLast() succeeds unless empty 3598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPollLast() { 3618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 362e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int i = SIZE - 1; i >= 0; --i) { 3638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollLast()); 3648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.pollLast()); 3668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * poll() succeeds unless empty 3708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPoll() { 3728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 3738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 3758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.poll()); 3778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove() removes next element, or throws NSEE if empty 3818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemove() { 3838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 3848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 3858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.remove()); 3868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 3888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 3898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 3908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 3918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(x) removes x and returns true if present 3958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveElement() { 3978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 3988e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (int i = 1; i < SIZE; i += 2) { 3998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(i)); 4008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.remove(i)); 4018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(i)); 402e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertTrue(q.contains(i - 1)); 4038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4048e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (int i = 0; i < SIZE; i += 2) { 4058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(i)); 4068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.remove(i)); 4078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(i)); 408e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertFalse(q.remove(i + 1)); 409e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertFalse(q.contains(i + 1)); 4108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 4128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * peekFirst() returns next element, or null if empty 4168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPeekFirst() { 4188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 4198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 4208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.peekFirst()); 4218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollFirst()); 4228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.peekFirst() == null || 4238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle !q.peekFirst().equals(i)); 4248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peekFirst()); 4268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * peek() returns next element, or null if empty 4308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPeek() { 4328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 4338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 4348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.peek()); 4358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 4368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.peek() == null || 4378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle !q.peek().equals(i)); 4388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peek()); 4408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * peekLast() returns next element, or null if empty 4448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPeekLast() { 4468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 447e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int i = SIZE - 1; i >= 0; --i) { 4488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.peekLast()); 4498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollLast()); 4508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.peekLast() == null || 4518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle !q.peekLast().equals(i)); 4528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peekLast()); 4548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * element() returns first element, or throws NSEE if empty 4588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testElement() { 4608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 4618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 4628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.element()); 4638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 4648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 4668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.element(); 4678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 4688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 4698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * getFirst() returns first element, or throws NSEE if empty 4738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testFirstElement() { 4758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 4768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 4778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.getFirst()); 4788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollFirst()); 4798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 4818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.getFirst(); 4828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 4838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 4848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * getLast() returns last element, or throws NSEE if empty 4888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testLastElement() { 4908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 491e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int i = SIZE - 1; i >= 0; --i) { 4928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.getLast()); 4938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollLast()); 4948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 4968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.getLast(); 4978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 4988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 4998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peekLast()); 5008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * removeFirst() removes first element, or throws NSEE if empty 5048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveFirst() { 5068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 5088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.removeFirst()); 5098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.removeFirst(); 5128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 5148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peekFirst()); 5158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * removeLast() removes last element, or throws NSEE if empty 5198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveLast() { 5218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = SIZE - 1; i >= 0; --i) { 5238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.removeLast()); 5248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.removeLast(); 5278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 5298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(q.peekLast()); 5308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * removeFirstOccurrence(x) removes x and returns true if present 5348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveFirstOccurrence() { 5368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5378e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (int i = 1; i < SIZE; i += 2) { 5388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.removeFirstOccurrence(new Integer(i))); 5398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5408e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (int i = 0; i < SIZE; i += 2) { 5418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.removeFirstOccurrence(new Integer(i))); 542e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertFalse(q.removeFirstOccurrence(new Integer(i + 1))); 5438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 5458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * removeLastOccurrence(x) removes x and returns true if present 5498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveLastOccurrence() { 5518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5528e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (int i = 1; i < SIZE; i += 2) { 5538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.removeLastOccurrence(new Integer(i))); 5548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5558e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (int i = 0; i < SIZE; i += 2) { 5568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.removeLastOccurrence(new Integer(i))); 557e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertFalse(q.removeLastOccurrence(new Integer(i + 1))); 5588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 5608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * contains(x) reports true when elements added but not yet removed 5648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContains() { 5668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 5688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(new Integer(i))); 5698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.pollFirst()); 5708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(new Integer(i))); 5718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * clear removes all elements 5768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testClear() { 5788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.clear(); 5808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 5818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, q.size()); 5828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.add(new Integer(1))); 5838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.isEmpty()); 5848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.clear(); 5858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 5868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsAll(c) is true when c contains a subset of elements 5908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContainsAll() { 5928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 5938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque p = new ArrayDeque(); 5948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 5958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.containsAll(p)); 5968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(p.containsAll(q)); 5978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(p.add(new Integer(i))); 5988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(p.containsAll(q)); 6008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * retainAll(c) retains only those elements of c and reports true if changed 6048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 6058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRetainAll() { 6068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 6078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque p = populatedDeque(SIZE); 6088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 6098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle boolean changed = q.retainAll(p); 6108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(changed, (i > 0)); 6118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.containsAll(p)); 612e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(SIZE - i, q.size()); 6138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle p.removeFirst(); 6148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * removeAll(c) removes only those elements of c and reports true if changed 6198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 6208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemoveAll() { 6218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 1; i < SIZE; ++i) { 6228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 6238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque p = populatedDeque(i); 6248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.removeAll(p)); 625e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(SIZE - i, q.size()); 6268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 0; j < i; ++j) { 6278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(q.contains(p.removeFirst())); 6288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle void checkToArray(ArrayDeque q) { 6338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int size = q.size(); 6348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] o = q.toArray(); 6358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(size, o.length); 6368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.iterator(); 6378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < size; i++) { 6388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer x = (Integer) it.next(); 6398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals((Integer)o[0] + i, (int) x); 6408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(o[i], x); 6418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toArray() contains all elements in FIFO order 6468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 6478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToArray() { 6488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 6498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i++) { 6508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle checkToArray(q); 6518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addLast(i); 6528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle // Provoke wraparound 6548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i++) { 6558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle checkToArray(q); 6568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 657e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak q.addLast(SIZE + i); 6588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i++) { 6608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle checkToArray(q); 661e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(SIZE + i, q.poll()); 6628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle void checkToArray2(ArrayDeque q) { 6668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int size = q.size(); 667e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak Integer[] a1 = (size == 0) ? null : new Integer[size - 1]; 6688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] a2 = new Integer[size]; 669e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak Integer[] a3 = new Integer[size + 2]; 6708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle if (size > 0) Arrays.fill(a1, 42); 6718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Arrays.fill(a2, 42); 6728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Arrays.fill(a3, 42); 673e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak Integer[] b1 = (size == 0) ? null : (Integer[]) q.toArray(a1); 6748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] b2 = (Integer[]) q.toArray(a2); 6758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer[] b3 = (Integer[]) q.toArray(a3); 6768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(a2, b2); 6778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(a3, b3); 6788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.iterator(); 6798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < size; i++) { 6808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer x = (Integer) it.next(); 6818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(b1[i], x); 6828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(b1[0] + i, (int) x); 6838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(b2[i], x); 6848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(b3[i], x); 6858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(a3[size]); 687e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(42, (int) a3[size + 1]); 6888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle if (size > 0) { 6898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotSame(a1, b1); 6908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(size, b1.length); 6918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < a1.length; i++) { 6928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(42, (int) a1[i]); 6938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toArray(a) contains all elements in FIFO order 6998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToArray2() { 7018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = new ArrayDeque(); 7028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i++) { 7038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle checkToArray2(q); 7048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.addLast(i); 7058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle // Provoke wraparound 7078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i++) { 7088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle checkToArray2(q); 7098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, q.poll()); 710e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak q.addLast(SIZE + i); 7118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; i++) { 7138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle checkToArray2(q); 714e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(SIZE + i, q.poll()); 7158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toArray(null) throws NullPointerException 7208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToArray_NullArg() { 7228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque l = new ArrayDeque(); 7238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle l.add(new Object()); 7248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 7258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle l.toArray(null); 7268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 7278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 7288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toArray(incompatible array type) throws ArrayStoreException 7328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToArray1_BadArg() { 7348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque l = new ArrayDeque(); 7358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle l.add(new Integer(5)); 7368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 7378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle l.toArray(new String[10]); 7388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 7398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (ArrayStoreException success) {} 7408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Iterator iterates through all elements 7448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testIterator() { 7468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 7478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.iterator(); 7488e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath int i; 7498e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (i = 0; it.hasNext(); i++) 7508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(it.next())); 7518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, SIZE); 7528e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertIteratorExhausted(it); 7538e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath } 7548e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 7558e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath /** 7568e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath * iterator of empty collection has no elements 7578e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath */ 7588e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath public void testEmptyIterator() { 7598e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath Deque c = new ArrayDeque(); 7608e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertIteratorExhausted(c.iterator()); 7618e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertIteratorExhausted(c.descendingIterator()); 7628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Iterator ordering is FIFO 7668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testIteratorOrdering() { 7688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final ArrayDeque q = new ArrayDeque(); 7698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(one); 7708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(two); 7718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(three); 7728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int k = 0; 7738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (Iterator it = q.iterator(); it.hasNext();) { 7748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(++k, it.next()); 7758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(3, k); 7788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * iterator.remove() removes current element 7828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testIteratorRemove() { 7848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final ArrayDeque q = new ArrayDeque(); 7858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final Random rng = new Random(); 7868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int iters = 0; iters < 100; ++iters) { 7878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int max = rng.nextInt(5) + 2; 788e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak int split = rng.nextInt(max - 1) + 1; 7898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 1; j <= max; ++j) 7908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(j)); 7918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.iterator(); 7928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 1; j <= split; ++j) 7938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(it.next(), new Integer(j)); 7948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.remove(); 795e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(it.next(), new Integer(split + 1)); 7968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 1; j <= split; ++j) 7978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(new Integer(j)); 7988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it = q.iterator(); 799e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int j = split + 1; j <= max; ++j) { 8008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(it.next(), new Integer(j)); 8018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.remove(); 8028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(it.hasNext()); 8048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 8058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Descending iterator iterates through all elements 8108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingIterator() { 8128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 8138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int i = 0; 8148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.descendingIterator(); 8158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (it.hasNext()) { 8168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.contains(it.next())); 8178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ++i; 8188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(i, SIZE); 8208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(it.hasNext()); 8218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 8228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.next(); 8238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 8248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NoSuchElementException success) {} 8258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Descending iterator ordering is reverse FIFO 8298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingIteratorOrdering() { 8318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final ArrayDeque q = new ArrayDeque(); 8328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int iters = 0; iters < 100; ++iters) { 8338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(3)); 8348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(2)); 8358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(1)); 8368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int k = 0; 8378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (Iterator it = q.descendingIterator(); it.hasNext();) { 8388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(++k, it.next()); 8398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(3, k); 8428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 8438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 8448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(); 8458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * descendingIterator.remove() removes current element 8508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingIteratorRemove() { 8528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final ArrayDeque q = new ArrayDeque(); 8538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle final Random rng = new Random(); 8548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int iters = 0; iters < 100; ++iters) { 8558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle int max = rng.nextInt(5) + 2; 856e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak int split = rng.nextInt(max - 1) + 1; 8578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = max; j >= 1; --j) 8588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.add(new Integer(j)); 8598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = q.descendingIterator(); 8608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 1; j <= split; ++j) 8618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(it.next(), new Integer(j)); 8628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.remove(); 863e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak assertEquals(it.next(), new Integer(split + 1)); 8648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int j = 1; j <= split; ++j) 8658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle q.remove(new Integer(j)); 8668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it = q.descendingIterator(); 867e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak for (int j = split + 1; j <= max; ++j) { 8688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(it.next(), new Integer(j)); 8698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle it.remove(); 8708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(it.hasNext()); 8728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(q.isEmpty()); 8738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toString() contains toStrings of elements 8788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToString() { 8808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayDeque q = populatedDeque(SIZE); 8818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle String s = q.toString(); 8828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 0; i < SIZE; ++i) { 8838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(String.valueOf(i))); 8848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * A deserialized serialized deque has same elements in same order 8898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSerialization() throws Exception { 8918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Queue x = populatedDeque(SIZE); 8928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Queue y = serialClone(x); 8938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotSame(y, x); 8958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.size(), y.size()); 8968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.toString(), y.toString()); 8978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(Arrays.equals(x.toArray(), y.toArray())); 8988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (!x.isEmpty()) { 8998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(y.isEmpty()); 9008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.remove(), y.remove()); 9018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(y.isEmpty()); 9038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9058e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath /** 9068e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath * remove(null), contains(null) always return false 9078e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath */ 9088e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath public void testNeverContainsNull() { 9098e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath Deque<?>[] qs = { 9108e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath new ArrayDeque<Object>(), 9118e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath populatedDeque(2), 9128e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath }; 9138e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 9148e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath for (Deque<?> q : qs) { 9158e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertFalse(q.contains(null)); 9168e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertFalse(q.remove(null)); 9178e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertFalse(q.removeFirstOccurrence(null)); 9188e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath assertFalse(q.removeLastOccurrence(null)); 9198e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath } 9208e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath } 9218e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 9228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle} 923