1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Serializable;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayDeque;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayList;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ConcurrentModificationException;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Iterator;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.NoSuchElementException;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ArrayDequeTest extends TestCase {
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private Object testObjOne;
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private Object testObjTwo;
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private Object testObjThree;
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private Object testObjFour;
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private Object testObjLast;
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private ArrayDeque<Object> testQue;
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    @Override
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected void setUp() throws Exception {
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        super.setUp();
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testObjOne = new Object();
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testObjTwo = new Object();
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testObjThree = new Object();
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testObjFour = new Object();
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testObjLast = new Object();
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue = new ArrayDeque<Object>();
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#ArrayDeque()}
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Constructor() throws Exception {
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, new ArrayDeque<Object>().size());
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#ArrayDeque(java.util.Collection)}
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Constructor_LCollection() throws Exception {
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, new ArrayDeque<Object>(new ArrayList<Object>()).size());
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new ArrayDeque<Object>(null);
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NPE");
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#ArrayDeque(int)}
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Constructor_Int() throws Exception {
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, new ArrayDeque<Object>(8).size());
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayDeque<Object> zeroCapQue = new ArrayDeque<Object>(0);
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, zeroCapQue.size());
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        zeroCapQue.add(testObjOne);
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, zeroCapQue.size());
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, new ArrayDeque<Object>(0).size());
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayDeque<Object> negCapQue = new ArrayDeque<Object>(-1);
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, negCapQue.size());
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        negCapQue.add(testObjOne);
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, negCapQue.size());
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayDeque<Object> oneCapQue = new ArrayDeque<Object>(1);
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, oneCapQue.size());
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        oneCapQue.add(testObjOne);
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, oneCapQue.size());
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        oneCapQue.add(testObjOne);
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, oneCapQue.size());
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#addFirst(Object)}
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_addFirst() throws Exception {
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.addFirst(testObjOne);
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, testQue.size());
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.addFirst(testObjOne);
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.addFirst(testObjTwo);
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peek());
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.getLast());
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.addFirst(null);
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#addLast(Object)}
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_addLast() throws Exception {
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.addLast(testObjOne);
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, testQue.size());
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.addLast(testObjOne);
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.addLast(testObjTwo);
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.getLast());
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.addLast(null);
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#offerFirst(Object)}
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_offerFirst() throws Exception {
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerFirst(testObjOne));
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, testQue.size());
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerFirst(testObjOne));
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerFirst(testObjTwo));
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peek());
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.getLast());
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.offerFirst(null);
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#offerLast(Object)}
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_offerLast() throws Exception {
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, testQue.size());
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.getLast());
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.offerLast(null);
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#removeFirst()}
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_removeFirst() throws Exception {
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.removeFirst());
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.removeFirst());
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.removeFirst());
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.removeFirst();
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#removeLast()}
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_removeLast() throws Exception {
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.removeLast());
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.removeLast());
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.removeLast());
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.removeLast();
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#pollFirst()}
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_pollFirst() throws Exception {
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollFirst());
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollFirst());
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollFirst());
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull(testQue.pollFirst());
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#peekLast()}
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_pollLast() throws Exception {
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollLast());
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollLast());
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollLast());
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull(testQue.pollFirst());
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#getFirst()}
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getFirst() throws Exception {
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.getFirst());
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollFirst());
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.getFirst());
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollFirst());
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollFirst());
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.getFirst();
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#getLast()}
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getLast() throws Exception {
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.getLast());
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollLast());
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.getLast());
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollLast());
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollLast());
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.getLast();
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#peekFirst()}
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_peekFirst() throws Exception {
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekFirst());
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollFirst());
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peekFirst());
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollFirst());
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollFirst());
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(null, testQue.peekFirst());
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#peekLast()}
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_peekLast() throws Exception {
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollLast());
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peekLast());
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollLast());
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollLast());
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull(testQue.peekLast());
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#removeFirstOccurrence(Object)}
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_removeFirstOccurrence() throws Exception {
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.removeFirstOccurrence(testObjOne));
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.removeFirstOccurrence(testObjFour));
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peekFirst());
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekLast());
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, testQue.size());
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.removeFirstOccurrence(testObjOne));
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekLast());
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.removeFirstOccurrence(testObjOne));
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.removeFirstOccurrence(testObjOne));
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#removeLastOccurrence(Object)}
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_removeLastOccurrence() throws Exception {
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.removeLastOccurrence(testObjOne));
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.removeLastOccurrence(testObjFour));
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekFirst());
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, testQue.size());
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.removeLastOccurrence(testObjOne));
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekFirst());
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.removeLastOccurrence(testObjOne));
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.removeLastOccurrence(testObjOne));
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#add(Object)}
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_add() throws Exception {
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekFirst());
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.add(null);
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw NullPointerException");
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#offer(Object)}
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_offer() throws Exception {
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offer(testObjOne));
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offer(testObjTwo));
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offer(testObjOne));
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offer(testObjThree));
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekFirst());
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.offer(null);
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw NullPointerException");
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#remove()}
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_remove() throws Exception {
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.remove());
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.remove());
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.remove());
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.remove();
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#poll()}
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_poll() throws Exception {
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.poll());
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.poll());
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.poll());
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull(testQue.poll());
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#element()}
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_element() throws Exception {
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.element());
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollFirst());
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.element());
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollFirst());
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.element());
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollFirst());
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.element();
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#peek()}
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_peek() throws Exception {
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pollFirst());
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peek());
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pollFirst());
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pollFirst());
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(null, testQue.peek());
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#push(Object)}
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_push() throws Exception {
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.push(testObjOne);
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, testQue.size());
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.push(testObjOne);
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.push(testObjTwo);
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peek());
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.getLast());
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.push(null);
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#pop()}
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_pop() throws Exception {
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.pop());
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.pop());
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.pop());
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.pop();
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException ");
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#addFirst(Object)}
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_size() throws Exception {
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, testQue.size());
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.remove();
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.remove();
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.clear();
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.size());
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#isEmpty()}
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_isEmpty() throws Exception {
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.isEmpty());
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.isEmpty());
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.isEmpty());
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.isEmpty());
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.remove();
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.remove();
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.isEmpty());
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.clear();
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.isEmpty());
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#iterator()}
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_iterator() throws Exception {
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.iterator().hasNext());
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjLast));
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Iterator result = testQue.iterator();
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            result.remove();
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalStateException");
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalStateException e) {
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            result.next();
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw ConcurrentModificationException");
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ConcurrentModificationException e) {
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = testQue.iterator();
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result.next());
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, result.next());
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result.next());
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, result.next());
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjLast, result.next());
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(result.hasNext());
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result.remove();
620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, result.next());
621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(result.hasNext());
622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            result.next();
624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException");
625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // test a full array
629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayDeque<Object> ad = new ArrayDeque<Object>();
630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill the array
631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 16; ++i) {
632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            ad.addLast(new Object());
633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(ad.iterator().hasNext());
635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Iterator<Object> iter = ad.iterator();
636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 16; ++i) {
637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(iter.hasNext());
638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            iter.next();
639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter.remove();
641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // test un-full array
642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ad = new ArrayDeque<Object>();
643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill the array
644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 5; ++i) {
645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ad.addLast(new Object());
646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter = ad.iterator();
648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 5; ++i) {
649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue(iter.hasNext());
650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                iter.next();
651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter.remove();
653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ad = new ArrayDeque<Object>();
655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill the array
656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 16; ++i) {
657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            ad.addLast(new Object());
658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter = ad.iterator();
660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(iter.hasNext());
661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < ad.size(); ++i) {
662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            iter.next();
663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(iter.hasNext());
665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter.remove();
666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ad.add(new Object());
667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(iter.hasNext());
668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#descendingIterator()}
672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_descendingIterator() throws Exception {
674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.descendingIterator().hasNext());
675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjLast));
680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Iterator result = testQue.descendingIterator();
681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            result.remove();
684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalStateException");
685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalStateException e) {
686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjFour));
689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // a strange behavior here, RI's descendingIterator() and iterator() is
691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // properly different. Notice spec: "The iterators returned by this
692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // class's iterator method are fail-fast". RI shows descendingIterator()
693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // is not an iterator method.
694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjLast,result.next());
695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = testQue.descendingIterator();
697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjFour, result.next());
698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjLast, result.next());
699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, result.next());
700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result.next());
701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, result.next());
702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(result.hasNext());
703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result.remove();
704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result.next());
705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(result.hasNext());
706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            result.next();
708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NoSuchElementException");
709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NoSuchElementException e) {
710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // test a full array
713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayDeque<Object> ad = new ArrayDeque<Object>();
714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill the array
715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 16; ++i) {
716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            ad.addLast(new Object());
717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(ad.descendingIterator().hasNext());
719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Iterator<Object> iter = ad.descendingIterator();
720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 16; ++i) {
721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertTrue(iter.hasNext());
722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            iter.next();
723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter.remove();
725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // test un-full array
726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ad = new ArrayDeque<Object>();
727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill the array
728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 5; ++i) {
729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ad.addLast(new Object());
730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter = ad.descendingIterator();
732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 5; ++i) {
733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue(iter.hasNext());
734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                iter.next();
735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter.remove();
737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ad = new ArrayDeque<Object>();
739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill the array
740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < 16; ++i) {
741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            ad.addLast(new Object());
742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter = ad.descendingIterator();
744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(iter.hasNext());
745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < ad.size(); ++i) {
746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            iter.next();
747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(iter.hasNext());
749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iter.remove();
750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ad.add(new Object());
751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(iter.hasNext());
752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#contains(Object)}
756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_contains() throws Exception {
758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.contains(testObjFour));
759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.contains(null));
760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjLast));
765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.contains(testObjOne));
767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.contains(testObjTwo));
768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.contains(testObjThree));
769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.contains(testObjLast));
770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.contains(null));
771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.clear();
772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.contains(testObjOne));
773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.contains(testObjTwo));
774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#remove(Object)}
778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_remove_LObject() throws Exception {
780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjTwo));
782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjThree));
784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.offerLast(testObjOne));
785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.remove(testObjOne));
787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.remove(testObjFour));
788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, testQue.peekFirst());
789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekLast());
790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, testQue.size());
791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.remove(testObjOne));
792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, testQue.size());
793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peekLast());
794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.remove(testObjOne));
795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, testQue.size());
796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, testQue.peekLast());
797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(testQue.remove(testObjOne));
798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#clear()}
802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_clear() throws Exception {
804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.isEmpty());
805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.clear();
806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.isEmpty());
807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        testQue.clear();
812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.isEmpty());
813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#toArray()}
817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_toArray() throws Exception {
819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, testQue.toArray().length);
820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjLast));
825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] result = testQue.toArray();
826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result[0]);
828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, result[1]);
829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result[2]);
830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, result[3]);
831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjLast, result[4]);
832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // change in array do not affect ArrayDeque
833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result[0] = null;
834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#toArray(Object[])}
840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_toArray_$LObject() throws Exception {
842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] array = new Object[0];
843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object[] result = testQue.toArray(array);
844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, result.length);
845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(array, result);
846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjLast));
851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result = testQue.toArray(array);
852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, result.length);
854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, array.length);
855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(array == result);
856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result[0]);
857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjTwo, result[1]);
858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, result[2]);
859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjThree, result[3]);
860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjLast, result[4]);
861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // change in array do not affect ArrayDeque
862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result[0] = null;
863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, testQue.size());
864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testObjOne, testQue.peek());
865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            testQue.toArray(null);
867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw NullPointerException");
868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.util.ArrayDeque#clone()}
876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_clone() throws Exception {
878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayDeque<Object> cloned = testQue.clone();
879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, cloned.size());
880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(cloned == testQue);
881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjTwo));
883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjOne));
884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjThree));
885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testObjLast));
886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(testQue));
887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        cloned = testQue.clone();
888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(6, cloned.size());
889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        while (0 != testQue.size()) {
890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(testQue.remove(), cloned.remove());
891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.util.ArrayDeque#Serialization()
896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_serialization() throws Exception {
898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(1)));
899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(2)));
900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(3)));
901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(4)));
902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(5)));
903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifySelf(testQue, new SerializableAssert() {
904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void assertDeserialized(Serializable initial,
905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Serializable deserialized) {
906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ArrayDeque<Object> formerQue = (ArrayDeque)initial;
907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ArrayDeque<Object> deserializedQue = (ArrayDeque)deserialized;
908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals(formerQue.remove(),deserializedQue.remove());
909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests serialization/deserialization compatibility with RI.
915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    @SuppressWarnings( { "unchecked", "boxing" })
917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSerializationCompatibility() throws Exception {
918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(1)));
919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(2)));
920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(3)));
921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(4)));
922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(testQue.add(new Integer(5)));
923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifyGolden(this,testQue, new SerializableAssert() {
924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void assertDeserialized(Serializable initial,
925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    Serializable deserialized) {
926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ArrayDeque<Object> formerQue = (ArrayDeque)initial;
927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ArrayDeque<Object> deserializedQue = (ArrayDeque)deserialized;
928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals(formerQue.remove(),deserializedQue.remove());
929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
933