@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return spliterator.estimateSize(); }
@Override public long estimateSize() { return spliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return spliterator.estimateSize(); }
@Override public long estimateSize() { return spliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Override public long estimateSize() { return fromSpliterator.estimateSize(); }
@Nullable private static <E> Spliterator<E> trySplitTestingSize(Spliterator<E> spliterator) { boolean subsized = spliterator.hasCharacteristics(Spliterator.SUBSIZED); long originalSize = spliterator.estimateSize(); Spliterator<E> trySplit = spliterator.trySplit(); if (spliterator.estimateSize() > originalSize) { fail( format( "estimated size of spliterator after trySplit (%s) is larger than original size (%s)", spliterator.estimateSize(), originalSize)); if (trySplit.estimateSize() > originalSize) { fail( format( "estimated size of trySplit result (%s) is larger than original size (%s)", trySplit.estimateSize(), originalSize)); "sum of estimated sizes of trySplit and original spliterator after trySplit", originalSize, trySplit.estimateSize() + spliterator.estimateSize()); } else { assertEquals( "estimated size of spliterator after failed trySplit", originalSize, spliterator.estimateSize());
Spliterator<E> spliterator = spliteratorSupplier.get(); int characteristics = spliterator.characteristics(); long estimatedSize = spliterator.estimateSize(); for (SpliteratorDecompositionStrategy strategy : EnumSet.allOf(SpliteratorDecompositionStrategy.class)) {
splitrsBuilder.add(splitr); characteristics &= splitr.characteristics(); estimatedSize = LongMath.saturatedAdd(estimatedSize, splitr.estimateSize());
return StreamSupport.stream( new AbstractSpliterator<R>( Math.min(splitrA.estimateSize(), splitrB.estimateSize()), characteristics) { @Override public boolean tryAdvance(Consumer<? super R> action) {
@CacheSpec @CheckNoWriter @CheckNoStats @Test(dataProvider = "caches") public void keySpliterator_estimateSize(Map<Integer, Integer> map, CacheContext context) { Spliterator<Integer> spliterator = map.keySet().spliterator(); assertThat((int) spliterator.estimateSize(), is(map.size())); }
@CacheSpec @CheckNoWriter @CheckNoStats @Test(dataProvider = "caches") public void valueSpliterator_estimateSize(Map<Integer, Integer> map, CacheContext context) { Spliterator<Integer> spliterator = map.values().spliterator(); assertThat((int) spliterator.estimateSize(), is(map.size())); }
@CacheSpec @CheckNoWriter @CheckNoStats @Test(dataProvider = "caches") public void entrySpliterator_estimateSize(Map<Integer, Integer> map, CacheContext context) { Spliterator<Entry<Integer, Integer>> spliterator = map.entrySet().spliterator(); assertThat((int) spliterator.estimateSize(), is(map.size())); }
/** * KeySetView.spliterator returns spliterator over the elements in this set */ public void testKeySetSpliterator() { LongAdder adder = new LongAdder(); ConcurrentMap map = map5(); Set set = map.keySet(); Spliterator<Integer> sp = set.spliterator(); checkSpliteratorCharacteristics(sp, CONCURRENT | DISTINCT | NONNULL); assertEquals(sp.estimateSize(), map.size()); Spliterator<Integer> sp2 = sp.trySplit(); sp.forEachRemaining((Integer x) -> adder.add(x.longValue())); long v = adder.sumThenReset(); sp2.forEachRemaining((Integer x) -> adder.add(x.longValue())); long v2 = adder.sum(); assertEquals(v + v2, 15); }