Home | History | Annotate | Download | only in stream

Lines Matching refs:spliterator

35 import java.util.Spliterator;
59 public static void testSpliterator(Supplier<Spliterator<Integer>> supplier) {
63 public static void testSpliterator(Supplier<Spliterator<Integer>> supplier,
68 public static void testIntSpliterator(Supplier<Spliterator.OfInt> supplier) {
72 public static void testIntSpliterator(Supplier<Spliterator.OfInt> supplier,
95 public static void testLongSpliterator(Supplier<Spliterator.OfLong> supplier) {
99 public static void testLongSpliterator(Supplier<Spliterator.OfLong> supplier,
122 public static void testDoubleSpliterator(Supplier<Spliterator.OfDouble> supplier) {
126 public static void testDoubleSpliterator(Supplier<Spliterator.OfDouble> supplier,
149 static <T, S extends Spliterator<T>> void testSpliterator(Supplier<S> supplier,
153 Spliterator<T> spliterator = supplier.get();
155 spliterator.forEachRemaining(addToFromForEach);
172 private static <T, S extends Spliterator<T>> void testNullPointerException(Supplier<S> s) {
176 if (sp instanceof Spliterator.OfInt) {
177 Spliterator.OfInt psp = (Spliterator.OfInt) sp;
181 else if (sp instanceof Spliterator.OfLong) {
182 Spliterator.OfLong psp = (Spliterator.OfLong) sp;
186 else if (sp instanceof Spliterator.OfDouble) {
187 Spliterator.OfDouble psp = (Spliterator.OfDouble) sp;
197 private static <T, S extends Spliterator<T>> void testForEach(
202 S spliterator = supplier.get();
203 long sizeIfKnown = spliterator.getExactSizeIfKnown();
204 boolean isOrdered = spliterator.hasCharacteristics(Spliterator.ORDERED);
207 spliterator = supplier.get();
209 spliterator.forEachRemaining(addToFromForEach);
212 spliterator.forEachRemaining(boxingAdapter.apply(
213 e -> fail("Spliterator.forEach produced an element after spliterator exhausted: " + e)));
215 spliterator.tryAdvance(boxingAdapter.apply(
216 e -> fail("Spliterator.tryAdvance produced an element after spliterator exhausted: " + e)));
227 private static <T, S extends Spliterator<T>> void testTryAdvance(
232 S spliterator = supplier.get();
233 long sizeIfKnown = spliterator.getExactSizeIfKnown();
234 boolean isOrdered = spliterator.hasCharacteristics(Spliterator.ORDERED);
236 spliterator = supplier.get();
239 while (spliterator.tryAdvance(addToFromTryAdvance)) { }
242 spliterator.forEachRemaining(boxingAdapter.apply(
243 e -> fail("Spliterator.forEach produced an element after spliterator exhausted: " + e)));
245 spliterator.tryAdvance(boxingAdapter.apply(
246 e -> fail("Spliterator.tryAdvance produced an element after spliterator exhausted: " + e)));
257 private static <T, S extends Spliterator<T>> void testMixedTryAdvanceForEach(
262 S spliterator = supplier.get();
263 long sizeIfKnown = spliterator.getExactSizeIfKnown();
264 boolean isOrdered = spliterator.hasCharacteristics(Spliterator.ORDERED);
268 spliterator = supplier.get();
270 for (int i = 0; i < 10 && spliterator.tryAdvance(addToDest); i++) { }
271 spliterator.forEachRemaining(addToDest);
274 spliterator.forEachRemaining(boxingAdapter.apply(
275 e -> fail("Spliterator.forEach produced an element after spliterator exhausted: " + e)));
277 spliterator.tryAdvance(boxingAdapter.apply(
278 e -> fail("Spliterator.tryAdvance produced an element after spliterator exhausted: " + e)));
288 private static <T, S extends Spliterator<T>> void testMixedTraverseAndSplit(
293 S spliterator = supplier.get();
294 long sizeIfKnown = spliterator.getExactSizeIfKnown();
295 boolean isOrdered = spliterator.hasCharacteristics(Spliterator.ORDERED);
299 spliterator = supplier.get();
302 Spliterator<T> spl1, spl2, spl3;
303 spliterator.tryAdvance(b);
304 spl2 = spliterator.trySplit();
315 spliterator.tryAdvance(b);
316 spl3 = spliterator.trySplit();
321 spliterator.tryAdvance(b);
322 spliterator.forEachRemaining(b);
332 private static <T, S extends Spliterator<T>> void testSplitAfterFullTraversal(
336 Spliterator<T> spliterator = supplier.get();
337 while (spliterator.tryAdvance(boxingAdapter.apply(e -> { }))) { }
338 Spliterator<T> split = spliterator.trySplit();
342 spliterator = supplier.get();
343 spliterator.forEachRemaining(boxingAdapter.apply(e -> { }));
344 split = spliterator.trySplit();
348 spliterator = supplier.get();
349 spliterator.tryAdvance(boxingAdapter.apply(e -> { }));
350 spliterator.forEachRemaining(boxingAdapter.apply(e -> { }));
351 split = spliterator.trySplit();
355 private static <T, S extends Spliterator<T>> void testSplitOnce(
360 S spliterator = supplier.get();
361 long sizeIfKnown = spliterator.getExactSizeIfKnown();
362 boolean isOrdered = spliterator.hasCharacteristics(Spliterator.ORDERED);
365 Spliterator<T> s1 = supplier.get();
366 Spliterator<T> s2 = s1.trySplit();
383 private static <T, S extends Spliterator<T>> void testSplitSixDeep(
388 S spliterator = supplier.get();
389 boolean isOrdered = spliterator.hasCharacteristics(Spliterator.ORDERED);
393 spliterator = supplier.get();
395 assertSpliterator(spliterator);
398 splitSixDeepVisitor(depth, 0, dest, spliterator, boxingAdapter, spliterator.characteristics(), false);
403 spliterator = supplier.get();
404 splitSixDeepVisitor(depth, 0, dest, spliterator, boxingAdapter, spliterator
410 Spliterator spliterator, UnaryOperator boxingAdapter,
412 splitSixDeepVisitor(depth, curLevel, dest, spliterator, boxingAdapter, rootCharacteristics, useTryAdvance);
417 // private static <T, S extends Spliterator<T>>
420 List<T> dest, Spliterator<T> spliterator, UnaryOperator<Consumer<T>> boxingAdapter,
421 // List<T> dest, S spliterator, UnaryOperator<Consumer<T>> boxingAdapter,
424 long beforeSize = spliterator.getExactSizeIfKnown();
425 Spliterator<T> split = spliterator.trySplit();
428 assertSpliterator(spliterator, rootCharacteristics);
430 if ((rootCharacteristics & Spliterator.SUBSIZED) != 0 &&
431 (rootCharacteristics & Spliterator.SIZED) != 0) {
432 assertEquals(beforeSize, split.estimateSize() + spliterator.estimateSize());
438 splitSixDeepVisitor(depth, curLevel + 1, dest, spliterator, boxingAdapter, rootCharacteristics, useTryAdvance);
441 long sizeIfKnown = spliterator.getExactSizeIfKnown();
445 while (spliterator.tryAdvance(addToDest)) {
453 spliterator.forEachRemaining(boxingAdapter.apply(
454 e -> fail("Spliterator.forEach produced an element after spliterator exhausted: " + e)));
456 Spliterator<T> split = spliterator.trySplit();
462 spliterator.forEachRemaining(addToLeafDest);
468 spliterator.tryAdvance(boxingAdapter.apply(
469 e -> fail("Spliterator.tryAdvance produced an element after spliterator exhausted: " + e)));
471 Spliterator<T> split = spliterator.trySplit();
479 private static <T, S extends Spliterator<T>> void testSplitUntilNull(
484 Spliterator<T> s = supplier.get();
485 boolean isOrdered = s.hasCharacteristics(Spliterator.ORDERED);
500 final Spliterator<T> s;
502 SplitNode(Consumer<T> c, Spliterator<T> s) {
506 private SplitNode(Consumer<T> c, int rootCharacteristics, Spliterator<T> s) {
512 SplitNode<T> fromSplit(Spliterator<T> split) {
518 * Set the maximum stack capacity to 0.25MB. This should be more than enough to detect a bad spliterator
525 // Use an explicit stack to avoid a StackOverflowException when testing a Spliterator
527 // for a spliterator that is badly behaved.
536 Spliterator<T> parentAndRightSplit = e.s;
543 Spliterator<T> leftSplit = parentAndRightSplit.trySplit();
583 private static void assertSpliterator(Spliterator<?> s, int rootCharacteristics) {
584 if ((rootCharacteristics & Spliterator.SUBSIZED) != 0) {
585 assertTrue(s.hasCharacteristics(Spliterator.SUBSIZED),
591 private static void assertSpliterator(Spliterator<?> s) {
592 if (s.hasCharacteristics(Spliterator.SUBSIZED)) {
593 assertTrue(s.hasCharacteristics(Spliterator.SIZED));
595 if (s.hasCharacteristics(Spliterator.SIZED)) {
601 assertTrue(s.hasCharacteristics(Spliterator.SORTED));
603 assertFalse(s.hasCharacteristics(Spliterator.SORTED));
633 static<U> void mixedTraverseAndSplit(Consumer<U> b, Spliterator<U> splTop) {
634 Spliterator<U> spl1, spl2, spl3;
657 static void mixedTraverseAndSplit(IntConsumer b, Spliterator.OfInt splTop) {
658 Spliterator.OfInt spl1, spl2, spl3;
680 static void mixedTraverseAndSplit(LongConsumer b, Spliterator.OfLong splTop) {
681 Spliterator.OfLong spl1, spl2, spl3;
704 static void mixedTraverseAndSplit(DoubleConsumer b, Spliterator.OfDouble splTop) {
705 Spliterator.OfDouble spl1, spl2, spl3;