return makeYielder(pQueue, oldDudeAtCrosswalk, initValue, accumulator);
@Override public <OutType> OutType accumulate(OutType initValue, Accumulator<OutType, T> accumulator) { Yielder<OutType> yielder = null; try { yielder = toYielder(initValue, YieldingAccumulators.fromAccumulator(accumulator)); return yielder.get(); } finally { CloseQuietly.close(yielder); } }
private <T> OrderedMergeSequence<T> makeMergedSequence( Ordering<T> ordering, List<TestSequence<T>> seqs ) { return new OrderedMergeSequence<T>( ordering, Sequences.simple((List<Sequence<T>>) (List) seqs) ); }
@Override public <OutType> OutType accumulate(OutType initValue, Accumulator<OutType, T> accumulator) { Yielder<OutType> yielder = null; try { yielder = toYielder(initValue, YieldingAccumulators.fromAccumulator(accumulator)); return yielder.get(); } finally { CloseQuietly.close(yielder); } }
return makeYielder(pQueue, oldDudeAtCrosswalk, initValue, accumulator);
@Test public void testLazinessAccumulation() { final ArrayList<Sequence<Integer>> sequences = makeSyncedSequences(); OrderedMergeSequence<Integer> seq = new OrderedMergeSequence<Integer>( Ordering.natural(), Sequences.simple(sequences) ); SequenceTestHelper.testAccumulation("", seq, Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); }
@Test public void testLazinessYielder() throws Exception { final ArrayList<Sequence<Integer>> sequences = makeSyncedSequences(); OrderedMergeSequence<Integer> seq = new OrderedMergeSequence<Integer>( Ordering.natural(), Sequences.simple(sequences) ); SequenceTestHelper.testYield("", seq, Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); }
@Test public void testMergeMerge() throws Exception { final Sequence<Integer> seq1 = makeUnorderedMergedSequence( Ordering.natural(), Collections.singletonList(TestSequence.create(1)) ); final OrderedMergeSequence<Integer> finalMerged = new OrderedMergeSequence<Integer>( Ordering.natural(), Sequences.simple( Collections.singletonList(seq1) ) ); SequenceTestHelper.testAll(finalMerged, Collections.singletonList(1)); }
@Test public void testHierarchicalMerge() throws Exception { final Sequence<Integer> seq1 = makeUnorderedMergedSequence( Ordering.natural(), Collections.singletonList(TestSequence.create(1)) ); final Sequence<Integer> seq2 = makeUnorderedMergedSequence( Ordering.natural(), Collections.singletonList(TestSequence.create(1)) ); final OrderedMergeSequence<Integer> finalMerged = new OrderedMergeSequence<Integer>( Ordering.natural(), Sequences.simple( Lists.newArrayList(seq1, seq2) ) ); SequenceTestHelper.testAll(finalMerged, Arrays.asList(1, 1)); }