/** * Reduces the underlying stream. Reduced value is supplied as a Future of optional, as no empty value is supplied. */ public CompletableFuture<Optional<T>> reduce(BinaryOperator<T> combiner) { return CompletableFutureUtil.reduce(combiner, completableFuture); }
/** * Reduces the underlying stream. Reduced value is supplied as a Future of optional, as no empty value is supplied. */ public CompletableFuture<Optional<T>> reduce(BinaryOperator<T> combiner) { return CompletableFutureUtil.reduce(combiner, completableFuture); }
/** * educes the underlying stream. Reduced value is supplied as a Future, as an empty value is specified. */ public CompletableFuture<T> reduce(T emptyAccumulator, BinaryOperator<T> combiner) { return CompletableFutureUtil.reduce(combiner, completableFuture, emptyAccumulator); }
/** * Reduces the underlying stream. Reduced value is supplied as a Future of optional, as no empty value is supplied. */ public CompletableFuture<Optional<T>> reduce(BinaryOperator<T> combiner) { return CompletableFutureUtil.reduce(combiner, completableFuture); }
/** * educes the underlying stream. Reduced value is supplied as a Future, as an empty value is specified. */ public CompletableFuture<T> reduce(T emptyAccumulator, BinaryOperator<T> combiner) { return CompletableFutureUtil.reduce(combiner, completableFuture, emptyAccumulator); }
/** * educes the underlying stream. Reduced value is supplied as a Future, as an empty value is specified. */ public CompletableFuture<T> reduce(T emptyAccumulator, BinaryOperator<T> combiner) { return CompletableFutureUtil.reduce(combiner, completableFuture, emptyAccumulator); }
@Test void reduceShouldReturnIdentityAccumulatorWhenNoValue() { long identityAccumulator = 0L; assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFuture.completedFuture(Stream.of()), identityAccumulator) .join()) .isEqualTo(identityAccumulator); }
@Test void reduceShouldWorkWithIdentityAccumulator() { assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFuture.completedFuture(Stream.of(1L, 2L,3L)), 0L) .join()) .isEqualTo(6L); }
@Test void reduceShouldWork() { assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFuture.completedFuture(Stream.of( 1L, 2L, 3L))) .join()) .contains(6L); }
@Test void reduceShouldReturnEmptyWhenNoValue() { assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFuture.completedFuture(Stream.<Long>of())) .join()) .isEmpty(); }
@Test public void reduceShouldReturnIdentityAccumulatorWhenNoValue() { long identityAccumulator = 0L; assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFutureUtil.<Long>allOfArray(), identityAccumulator) .join()) .isEqualTo(identityAccumulator); }
@Test public void reduceShouldWorkWithIdentityAccumulator() { assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFutureUtil.allOfArray( CompletableFuture.completedFuture(1L), CompletableFuture.completedFuture(2L), CompletableFuture.completedFuture(3L) ), 0L) .join()) .isEqualTo(6L); }
@Test public void reduceShouldWork() { assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFutureUtil.allOfArray( CompletableFuture.completedFuture(1L), CompletableFuture.completedFuture(2L), CompletableFuture.completedFuture(3L) )) .join()) .contains(6L); }
@Test public void reduceShouldReturnEmptyWhenNoValue() { assertThat( CompletableFutureUtil.reduce( (i, j) -> i + j, CompletableFutureUtil.<Long>allOfArray()) .join()) .isEmpty(); }