44 |
|
final ArrayDeque<Item> q; |
45 |
|
ThreadLocalRandom rnd = ThreadLocalRandom.current(); |
46 |
|
switch (rnd.nextInt(6)) { |
47 |
< |
case 0: q = new ArrayDeque<Item>(); break; |
48 |
< |
case 1: q = new ArrayDeque<Item>(0); break; |
49 |
< |
case 2: q = new ArrayDeque<Item>(1); break; |
50 |
< |
case 3: q = new ArrayDeque<Item>(Math.max(0, n - 1)); break; |
51 |
< |
case 4: q = new ArrayDeque<Item>(n); break; |
52 |
< |
case 5: q = new ArrayDeque<Item>(n + 1); break; |
47 |
> |
case 0: q = new ArrayDeque<>(); break; |
48 |
> |
case 1: q = new ArrayDeque<>(0); break; |
49 |
> |
case 2: q = new ArrayDeque<>(1); break; |
50 |
> |
case 3: q = new ArrayDeque<>(Math.max(0, n - 1)); break; |
51 |
> |
case 4: q = new ArrayDeque<>(n); break; |
52 |
> |
case 5: q = new ArrayDeque<>(n + 1); break; |
53 |
|
default: throw new AssertionError(); |
54 |
|
} |
55 |
|
switch (rnd.nextInt(3)) { |
123 |
|
*/ |
124 |
|
public void testConstructor6() { |
125 |
|
Item[] items = defaultItems; |
126 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(Arrays.asList(items)); |
126 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(Arrays.asList(items)); |
127 |
|
for (int i = 0; i < SIZE; ++i) |
128 |
|
mustEqual(items[i], q.pollFirst()); |
129 |
|
} |
132 |
|
* isEmpty is true before add, false after |
133 |
|
*/ |
134 |
|
public void testEmpty() { |
135 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
135 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
136 |
|
assertTrue(q.isEmpty()); |
137 |
|
q.add(one); |
138 |
|
assertFalse(q.isEmpty()); |
161 |
|
* push(null) throws NPE |
162 |
|
*/ |
163 |
|
public void testPushNull() { |
164 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(1); |
164 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(1); |
165 |
|
try { |
166 |
|
q.push(null); |
167 |
|
shouldThrow(); |
196 |
|
* offer(null) throws NPE |
197 |
|
*/ |
198 |
|
public void testOfferNull() { |
199 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
199 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
200 |
|
try { |
201 |
|
q.offer(null); |
202 |
|
shouldThrow(); |
207 |
|
* offerFirst(null) throws NPE |
208 |
|
*/ |
209 |
|
public void testOfferFirstNull() { |
210 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
210 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
211 |
|
try { |
212 |
|
q.offerFirst(null); |
213 |
|
shouldThrow(); |
218 |
|
* offerLast(null) throws NPE |
219 |
|
*/ |
220 |
|
public void testOfferLastNull() { |
221 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
221 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
222 |
|
try { |
223 |
|
q.offerLast(null); |
224 |
|
shouldThrow(); |
229 |
|
* offer(x) succeeds |
230 |
|
*/ |
231 |
|
public void testOffer() { |
232 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
232 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
233 |
|
assertTrue(q.offer(zero)); |
234 |
|
assertTrue(q.offer(one)); |
235 |
|
assertSame(zero, q.peekFirst()); |
240 |
|
* offerFirst(x) succeeds |
241 |
|
*/ |
242 |
|
public void testOfferFirst() { |
243 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
243 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
244 |
|
assertTrue(q.offerFirst(zero)); |
245 |
|
assertTrue(q.offerFirst(one)); |
246 |
|
assertSame(one, q.peekFirst()); |
251 |
|
* offerLast(x) succeeds |
252 |
|
*/ |
253 |
|
public void testOfferLast() { |
254 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
254 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
255 |
|
assertTrue(q.offerLast(zero)); |
256 |
|
assertTrue(q.offerLast(one)); |
257 |
|
assertSame(zero, q.peekFirst()); |
262 |
|
* add(null) throws NPE |
263 |
|
*/ |
264 |
|
public void testAddNull() { |
265 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
265 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
266 |
|
try { |
267 |
|
q.add(null); |
268 |
|
shouldThrow(); |
273 |
|
* addFirst(null) throws NPE |
274 |
|
*/ |
275 |
|
public void testAddFirstNull() { |
276 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
276 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
277 |
|
try { |
278 |
|
q.addFirst(null); |
279 |
|
shouldThrow(); |
284 |
|
* addLast(null) throws NPE |
285 |
|
*/ |
286 |
|
public void testAddLastNull() { |
287 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
287 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
288 |
|
try { |
289 |
|
q.addLast(null); |
290 |
|
shouldThrow(); |
295 |
|
* add(x) succeeds |
296 |
|
*/ |
297 |
|
public void testAdd() { |
298 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
298 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
299 |
|
assertTrue(q.add(zero)); |
300 |
|
assertTrue(q.add(one)); |
301 |
|
assertSame(zero, q.peekFirst()); |
306 |
|
* addFirst(x) succeeds |
307 |
|
*/ |
308 |
|
public void testAddFirst() { |
309 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
309 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
310 |
|
q.addFirst(zero); |
311 |
|
q.addFirst(one); |
312 |
|
assertSame(one, q.peekFirst()); |
317 |
|
* addLast(x) succeeds |
318 |
|
*/ |
319 |
|
public void testAddLast() { |
320 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
320 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
321 |
|
q.addLast(zero); |
322 |
|
q.addLast(one); |
323 |
|
assertSame(zero, q.peekFirst()); |
328 |
|
* addAll(null) throws NPE |
329 |
|
*/ |
330 |
|
public void testAddAll1() { |
331 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
331 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
332 |
|
try { |
333 |
|
q.addAll(null); |
334 |
|
shouldThrow(); |
339 |
|
* addAll of a collection with null elements throws NPE |
340 |
|
*/ |
341 |
|
public void testAddAll2() { |
342 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
342 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
343 |
|
try { |
344 |
|
q.addAll(Arrays.asList(new Item[SIZE])); |
345 |
|
shouldThrow(); |
351 |
|
* possibly adding some elements |
352 |
|
*/ |
353 |
|
public void testAddAll3() { |
354 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
354 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
355 |
|
Item[] items = new Item[2]; items[0] = zero; |
356 |
|
try { |
357 |
|
q.addAll(Arrays.asList(items)); |
365 |
|
public void testAddAll5() { |
366 |
|
Item[] empty = new Item[0]; |
367 |
|
Item[] items = defaultItems; |
368 |
< |
ArrayDeque<Item> q = new ArrayDeque<Item>(); |
368 |
> |
ArrayDeque<Item> q = new ArrayDeque<>(); |
369 |
|
assertFalse(q.addAll(Arrays.asList(empty))); |
370 |
|
assertTrue(q.addAll(Arrays.asList(items))); |
371 |
|
for (int i = 0; i < SIZE; ++i) |
577 |
|
assertTrue(q.isEmpty()); |
578 |
|
assertFalse(q.removeFirstOccurrence(null)); |
579 |
|
assertFalse(q.removeFirstOccurrence(fortytwo)); |
580 |
< |
q = new ArrayDeque<Item>(); |
580 |
> |
q = new ArrayDeque<>(); |
581 |
|
assertFalse(q.removeFirstOccurrence(null)); |
582 |
|
assertFalse(q.removeFirstOccurrence(fortytwo)); |
583 |
|
} |
601 |
|
assertTrue(q.isEmpty()); |
602 |
|
assertFalse(q.removeLastOccurrence(null)); |
603 |
|
assertFalse(q.removeLastOccurrence(fortytwo)); |
604 |
< |
q = new ArrayDeque<Item>(); |
604 |
> |
q = new ArrayDeque<>(); |
605 |
|
assertFalse(q.removeLastOccurrence(null)); |
606 |
|
assertFalse(q.removeLastOccurrence(fortytwo)); |
607 |
|
} |
637 |
|
*/ |
638 |
|
public void testContainsAll() { |
639 |
|
ArrayDeque<Item> q = populatedDeque(SIZE); |
640 |
< |
ArrayDeque<Item> p = new ArrayDeque<Item>(); |
640 |
> |
ArrayDeque<Item> p = new ArrayDeque<>(); |
641 |
|
for (int i = 0; i < SIZE; ++i) { |
642 |
|
assertTrue(q.containsAll(p)); |
643 |
|
assertFalse(p.containsAll(q)); |
734 |
|
* toArray(null) throws NullPointerException |
735 |
|
*/ |
736 |
|
public void testToArray_NullArg() { |
737 |
< |
ArrayDeque<Item> l = new ArrayDeque<Item>(); |
737 |
> |
ArrayDeque<Item> l = new ArrayDeque<>(); |
738 |
|
l.add(zero); |
739 |
|
try { |
740 |
|
l.toArray((Object[])null); |
746 |
|
* toArray(incompatible array type) throws ArrayStoreException |
747 |
|
*/ |
748 |
|
public void testToArray_incompatibleArrayType() { |
749 |
< |
ArrayDeque<Item> l = new ArrayDeque<Item>(); |
749 |
> |
ArrayDeque<Item> l = new ArrayDeque<>(); |
750 |
|
l.add(five); |
751 |
|
try { |
752 |
|
l.toArray(new String[10]); |
775 |
|
* iterator of empty collection has no elements |
776 |
|
*/ |
777 |
|
public void testEmptyIterator() { |
778 |
< |
Deque<Item> c = new ArrayDeque<Item>(); |
778 |
> |
Deque<Item> c = new ArrayDeque<>(); |
779 |
|
assertIteratorExhausted(c.iterator()); |
780 |
|
assertIteratorExhausted(c.descendingIterator()); |
781 |
|
} |
784 |
|
* Iterator ordering is FIFO |
785 |
|
*/ |
786 |
|
public void testIteratorOrdering() { |
787 |
< |
final ArrayDeque<Item> q = new ArrayDeque<Item>(); |
787 |
> |
final ArrayDeque<Item> q = new ArrayDeque<>(); |
788 |
|
q.add(one); |
789 |
|
q.add(two); |
790 |
|
q.add(three); |
800 |
|
* iterator.remove() removes current element |
801 |
|
*/ |
802 |
|
public void testIteratorRemove() { |
803 |
< |
final ArrayDeque<Item> q = new ArrayDeque<Item>(); |
803 |
> |
final ArrayDeque<Item> q = new ArrayDeque<>(); |
804 |
|
final Random rng = new Random(); |
805 |
|
for (int iters = 0; iters < 100; ++iters) { |
806 |
|
int max = rng.nextInt(5) + 2; |
847 |
|
* Descending iterator ordering is reverse FIFO |
848 |
|
*/ |
849 |
|
public void testDescendingIteratorOrdering() { |
850 |
< |
final ArrayDeque<Item> q = new ArrayDeque<Item>(); |
850 |
> |
final ArrayDeque<Item> q = new ArrayDeque<>(); |
851 |
|
for (int iters = 0; iters < 100; ++iters) { |
852 |
|
q.add(three); |
853 |
|
q.add(two); |
868 |
|
* descendingIterator.remove() removes current element |
869 |
|
*/ |
870 |
|
public void testDescendingIteratorRemove() { |
871 |
< |
final ArrayDeque<Item> q = new ArrayDeque<Item>(); |
871 |
> |
final ArrayDeque<Item> q = new ArrayDeque<>(); |
872 |
|
final Random rng = new Random(); |
873 |
|
for (int iters = 0; iters < 100; ++iters) { |
874 |
|
int max = rng.nextInt(5) + 2; |
945 |
|
*/ |
946 |
|
public void testNeverContainsNull() { |
947 |
|
Deque<?>[] qs = { |
948 |
< |
new ArrayDeque<Object>(), |
948 |
> |
new ArrayDeque<>(), |
949 |
|
populatedDeque(2), |
950 |
|
}; |
951 |
|
|