245 |
|
for (int i = 0; i < n; i++) c.add(impl.makeElement(i)); |
246 |
|
ArrayList iterated = new ArrayList(); |
247 |
|
ArrayList iteratedForEachRemaining = new ArrayList(); |
248 |
+ |
ArrayList tryAdvanced = new ArrayList(); |
249 |
|
ArrayList spliterated = new ArrayList(); |
250 |
< |
ArrayList foreached = new ArrayList(); |
250 |
> |
ArrayList forEached = new ArrayList(); |
251 |
> |
ArrayList removeIfed = new ArrayList(); |
252 |
|
for (Object x : c) iterated.add(x); |
253 |
|
c.iterator().forEachRemaining(e -> iteratedForEachRemaining.add(e)); |
254 |
+ |
for (Spliterator s = c.spliterator(); |
255 |
+ |
s.tryAdvance(e -> tryAdvanced.add(e)); ) {} |
256 |
|
c.spliterator().forEachRemaining(e -> spliterated.add(e)); |
257 |
< |
c.forEach(e -> foreached.add(e)); |
257 |
> |
c.forEach(e -> forEached.add(e)); |
258 |
> |
c.removeIf(e -> { removeIfed.add(e); return false; }); |
259 |
|
boolean ordered = |
260 |
|
c.spliterator().hasCharacteristics(Spliterator.ORDERED); |
261 |
|
if (c instanceof List || c instanceof Deque) |
262 |
|
assertTrue(ordered); |
263 |
|
if (ordered) { |
264 |
|
assertEquals(iterated, iteratedForEachRemaining); |
265 |
+ |
assertEquals(iterated, tryAdvanced); |
266 |
|
assertEquals(iterated, spliterated); |
267 |
< |
assertEquals(iterated, foreached); |
267 |
> |
assertEquals(iterated, forEached); |
268 |
> |
assertEquals(iterated, removeIfed); |
269 |
|
} else { |
270 |
|
HashSet cset = new HashSet(c); |
271 |
|
assertEquals(cset, new HashSet(iterated)); |
272 |
|
assertEquals(cset, new HashSet(iteratedForEachRemaining)); |
273 |
+ |
assertEquals(cset, new HashSet(tryAdvanced)); |
274 |
|
assertEquals(cset, new HashSet(spliterated)); |
275 |
< |
assertEquals(cset, new HashSet(foreached)); |
275 |
> |
assertEquals(cset, new HashSet(forEached)); |
276 |
> |
assertEquals(cset, new HashSet(removeIfed)); |
277 |
|
} |
278 |
|
if (c instanceof Deque) { |
279 |
|
Deque d = (Deque) c; |