|
1
|
|
package com.pivovarit.collectors; |
|
2
|
|
|
|
3
|
|
import java.util.Set; |
|
4
|
|
import java.util.concurrent.CompletableFuture; |
|
5
|
|
import java.util.concurrent.Executor; |
|
6
|
|
import java.util.function.BiConsumer; |
|
7
|
|
import java.util.function.BinaryOperator; |
|
8
|
|
import java.util.function.Function; |
|
9
|
|
import java.util.function.Supplier; |
|
10
|
|
import java.util.stream.Collector; |
|
11
|
|
import java.util.stream.Stream; |
|
12
|
|
|
|
13
|
|
record AsyncCollector<T, R, RR>(Function<? super T, ? extends R> mapper, Function<Stream<R>, RR> processor, Executor executor) |
|
14
|
|
implements Collector<T, Stream.Builder<T>, CompletableFuture<RR>> { |
|
15
|
|
|
|
16
|
|
@Override |
|
17
|
|
public Supplier<Stream.Builder<T>> supplier() { |
|
18
|
1
1. supplier : replaced return value with null for com/pivovarit/collectors/AsyncCollector::supplier → KILLED
|
return Stream::builder; |
|
19
|
|
} |
|
20
|
|
|
|
21
|
|
@Override |
|
22
|
|
public BiConsumer<Stream.Builder<T>, T> accumulator() { |
|
23
|
1
1. accumulator : replaced return value with null for com/pivovarit/collectors/AsyncCollector::accumulator → KILLED
|
return Stream.Builder::add; |
|
24
|
|
} |
|
25
|
|
|
|
26
|
|
@Override |
|
27
|
|
public BinaryOperator<Stream.Builder<T>> combiner() { |
|
28
|
1
1. combiner : replaced return value with null for com/pivovarit/collectors/AsyncCollector::combiner → SURVIVED
|
return (left, right) -> { |
|
29
|
1
1. lambda$combiner$0 : removed call to java/util/stream/Stream::forEach → NO_COVERAGE
|
right.build().forEach(left::add); |
|
30
|
1
1. lambda$combiner$0 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$combiner$0 → NO_COVERAGE
|
return left; |
|
31
|
|
}; |
|
32
|
|
} |
|
33
|
|
|
|
34
|
|
@Override |
|
35
|
|
public Function<Stream.Builder<T>, CompletableFuture<RR>> finisher() { |
|
36
|
1
1. finisher : replaced return value with null for com/pivovarit/collectors/AsyncCollector::finisher → KILLED
|
return acc -> { |
|
37
|
|
try { |
|
38
|
2
1. lambda$finisher$1 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$1 → KILLED
2. lambda$finisher$0 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED
|
return CompletableFuture.supplyAsync(() -> processor.apply(acc.build().map(mapper)), executor); |
|
39
|
|
} catch (Exception e) { |
|
40
|
1
1. lambda$finisher$0 : replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED
|
return CompletableFuture.failedFuture(e); |
|
41
|
|
} |
|
42
|
|
}; |
|
43
|
|
} |
|
44
|
|
|
|
45
|
|
@Override |
|
46
|
|
public Set<Characteristics> characteristics() { |
|
47
|
|
return Set.of(); |
|
48
|
|
} |
|
49
|
|
} |
| | Mutations |
| 18 |
|
1.1 Location : supplier Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#3] replaced return value with null for com/pivovarit/collectors/AsyncCollector::supplier → KILLED
|
| 23 |
|
1.1 Location : accumulator Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#3] replaced return value with null for com/pivovarit/collectors/AsyncCollector::accumulator → KILLED
|
| 28 |
|
1.1 Location : combiner Killed by : none replaced return value with null for com/pivovarit/collectors/AsyncCollector::combiner → SURVIVED
Covering tests
Covered by tests:
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#3]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#3]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#4]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#2]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#2]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#4]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#5]
- com.pivovarit.collectors.test.RejectedExecutionHandlingTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.RejectedExecutionHandlingTest]/[test-factory:shouldRejectInvalidRejectedExecutionHandlerWhenParallelismOneFactory()]/[dynamic-test:#2]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessEmptyWithMaxParallelism()]/[dynamic-test:#1]
- com.pivovarit.collectors.test.NonBlockingTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.NonBlockingTest]/[test-factory:shouldNotBlockTheCallingThread()]/[dynamic-test:#4]
- com.pivovarit.collectors.test.NonBlockingTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.NonBlockingTest]/[test-factory:shouldNotBlockTheCallingThread()]/[dynamic-test:#6]
- com.pivovarit.collectors.test.ExecutorPollutionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.ExecutorPollutionTest]/[test-factory:shouldNotPolluteExecutorFactory()]/[dynamic-test:#6]
- com.pivovarit.collectors.test.ExecutorPollutionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.ExecutorPollutionTest]/[test-factory:shouldNotPolluteExecutorFactory()]/[dynamic-test:#5]
- com.pivovarit.collectors.test.RejectedExecutionHandlingTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.RejectedExecutionHandlingTest]/[test-factory:shouldRejectInvalidRejectedExecutionHandlerWhenParallelismOneFactory()]/[dynamic-test:#1]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#5]
- com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#1]
- com.pivovarit.collectors.test.ExecutorPollutionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.ExecutorPollutionTest]/[test-factory:shouldNotPolluteExecutorFactory()]/[dynamic-test:#2]
- com.pivovarit.collectors.test.ExecutorPollutionTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.ExecutorPollutionTest]/[test-factory:shouldNotPolluteExecutorFactory()]/[dynamic-test:#1]
|
| 29 |
|
1.1 Location : lambda$combiner$0 Killed by : none removed call to java/util/stream/Stream::forEach → NO_COVERAGE
|
| 30 |
|
1.1 Location : lambda$combiner$0 Killed by : none replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$combiner$0 → NO_COVERAGE
|
| 36 |
|
1.1 Location : finisher Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#3] replaced return value with null for com/pivovarit/collectors/AsyncCollector::finisher → KILLED
|
| 38 |
|
1.1 Location : lambda$finisher$1 Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#3] replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$1 → KILLED
2.2 Location : lambda$finisher$0 Killed by : com.pivovarit.collectors.test.BasicParallelismTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.BasicParallelismTest]/[test-factory:shouldProcessAllElementsWithMaxParallelism()]/[dynamic-test:#3] replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED
|
| 40 |
|
1.1 Location : lambda$finisher$0 Killed by : com.pivovarit.collectors.test.RejectedExecutionHandlingTest.[engine:junit-jupiter]/[class:com.pivovarit.collectors.test.RejectedExecutionHandlingTest]/[test-factory:shouldRejectInvalidRejectedExecutionHandlerWhenParallelismOneFactory()]/[dynamic-test:#2] replaced return value with null for com/pivovarit/collectors/AsyncCollector::lambda$finisher$0 → KILLED
|