|
1
|
|
package com.pivovarit.gatherers; |
|
2
|
|
|
|
3
|
|
import java.util.Objects; |
|
4
|
|
import java.util.function.Function; |
|
5
|
|
import java.util.function.Supplier; |
|
6
|
|
import java.util.stream.Gatherer; |
|
7
|
|
|
|
8
|
|
record DistinctUntilChangedGatherer<T, U>( |
|
9
|
|
Function<? super T, ? extends U> keyExtractor) implements Gatherer<T, DistinctUntilChangedGatherer.State<U>, T> { |
|
10
|
|
|
|
11
|
|
DistinctUntilChangedGatherer { |
|
12
|
|
Objects.requireNonNull(keyExtractor, "keyExtractor can't be null"); |
|
13
|
|
} |
|
14
|
|
|
|
15
|
|
@Override |
|
16
|
|
public Supplier<State<U>> initializer() { |
|
17
|
1
1. initializer : replaced return value with null for com/pivovarit/gatherers/DistinctUntilChangedGatherer::initializer → KILLED
|
return State::new; |
|
18
|
|
} |
|
19
|
|
|
|
20
|
|
@Override |
|
21
|
|
public Integrator<State<U>, T, T> integrator() { |
|
22
|
1
1. integrator : replaced return value with null for com/pivovarit/gatherers/DistinctUntilChangedGatherer::integrator → KILLED
|
return (state, element, downstream) -> { |
|
23
|
|
U key = keyExtractor.apply(element); |
|
24
|
2
1. lambda$integrator$0 : negated conditional → KILLED
2. lambda$integrator$0 : negated conditional → KILLED
|
if (!state.hasValue || !Objects.equals(state.value, key)) { |
|
25
|
|
state.value = key; |
|
26
|
|
state.hasValue = true; |
|
27
|
2
1. lambda$integrator$0 : replaced boolean return with true for com/pivovarit/gatherers/DistinctUntilChangedGatherer::lambda$integrator$0 → SURVIVED
2. lambda$integrator$0 : replaced boolean return with false for com/pivovarit/gatherers/DistinctUntilChangedGatherer::lambda$integrator$0 → KILLED
|
return downstream.push(element); |
|
28
|
|
} |
|
29
|
1
1. lambda$integrator$0 : replaced boolean return with false for com/pivovarit/gatherers/DistinctUntilChangedGatherer::lambda$integrator$0 → KILLED
|
return true; |
|
30
|
|
}; |
|
31
|
|
} |
|
32
|
|
|
|
33
|
|
static class State<U> { |
|
34
|
|
U value; |
|
35
|
|
boolean hasValue; |
|
36
|
|
} |
|
37
|
|
} |
| | Mutations |
| 17 |
|
1.1 Location : initializer Killed by : com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedEmptyStream()] replaced return value with null for com/pivovarit/gatherers/DistinctUntilChangedGatherer::initializer → KILLED
|
| 22 |
|
1.1 Location : integrator Killed by : com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedMapper()] replaced return value with null for com/pivovarit/gatherers/DistinctUntilChangedGatherer::integrator → KILLED
|
| 24 |
|
1.1 Location : lambda$integrator$0 Killed by : com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedMapper()] negated conditional → KILLED
2.2 Location : lambda$integrator$0 Killed by : com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedMapper()] negated conditional → KILLED
|
| 27 |
|
1.1 Location : lambda$integrator$0 Killed by : com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedMapper()] replaced boolean return with false for com/pivovarit/gatherers/DistinctUntilChangedGatherer::lambda$integrator$0 → KILLED
2.2 Location : lambda$integrator$0 Killed by : none replaced boolean return with true for com/pivovarit/gatherers/DistinctUntilChangedGatherer::lambda$integrator$0 → SURVIVED
Covering tests
Covered by tests:
- com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedMapper()]
- com.pivovarit.gatherers.blackbox.DistinctUntilChangedTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedTest]/[method:shouldDistinctUntilChanged()]
|
| 29 |
|
1.1 Location : lambda$integrator$0 Killed by : com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest.[engine:junit-jupiter]/[class:com.pivovarit.gatherers.blackbox.DistinctUntilChangedMapperTest]/[method:shouldDistinctUntilChangedMapper()] replaced boolean return with false for com/pivovarit/gatherers/DistinctUntilChangedGatherer::lambda$integrator$0 → KILLED
|