GardenerPathfinding.java

1
package com.takenoko.bot.utils.pathfinding.gardener;
2
3
import com.takenoko.engine.Board;
4
import com.takenoko.engine.BotState;
5
import com.takenoko.objective.MultipleGardenerObjective;
6
import com.takenoko.objective.Objective;
7
import com.takenoko.objective.SingleGardenerObjective;
8
import com.takenoko.vector.PositionVector;
9
import java.util.List;
10
import java.util.Map;
11
import java.util.stream.Collectors;
12
import java.util.stream.Stream;
13
import org.apache.commons.lang3.tuple.Pair;
14
import org.jetbrains.annotations.NotNull;
15
16
public class GardenerPathfinding {
17
18
    private GardenerPathfinding() {}
19
20
    @NotNull
21
    public static Map<Objective, List<PositionVector>> getGardenerMoves(
22
            Board board, BotState botState) {
23 1 1. getGardenerMoves : replaced return value with Collections.emptyMap for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::getGardenerMoves → TIMED_OUT
        return Stream.concat(
24
                        // SimpleGardenerObjective Moves
25
                        botState.getNotAchievedObjectives().stream()
26 2 1. lambda$getGardenerMoves$0 : negated conditional → KILLED
2. lambda$getGardenerMoves$0 : replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$0 → KILLED
                                .filter(v -> (v.getClass() == SingleGardenerObjective.class))
27
                                .distinct()
28
                                .map(
29
                                        v ->
30 1 1. lambda$getGardenerMoves$2 : replaced return value with null for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$2 → KILLED
                                                Pair.of(
31
                                                        v,
32
                                                        ((SingleGardenerObjective) v)
33
                                                                        .getPositionsToComplete(
34
                                                                                board)
35
                                                                        .stream()
36
                                                                        .filter(
37
                                                                                v1 ->
38 2 1. lambda$getGardenerMoves$1 : replaced boolean return with false for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$1 → SURVIVED
2. lambda$getGardenerMoves$1 : replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$1 → SURVIVED
                                                                                        board.getGardenerPossibleMoves()
39
                                                                                                .contains(
40
                                                                                                        v1))
41
                                                                        .toList())),
42
                        // MultipleGardenerObjective Moves
43
                        botState.getNotAchievedObjectives().stream()
44 2 1. lambda$getGardenerMoves$3 : negated conditional → KILLED
2. lambda$getGardenerMoves$3 : replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$3 → KILLED
                                .filter(v -> (v.getClass() == MultipleGardenerObjective.class))
45
                                .map(
46
                                        v ->
47 1 1. lambda$getGardenerMoves$5 : replaced return value with null for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$5 → TIMED_OUT
                                                Pair.of(
48
                                                        v,
49
                                                        ((MultipleGardenerObjective) v)
50
                                                                        .getPositionsToComplete(
51
                                                                                board)
52
                                                                        .stream()
53
                                                                        .filter(
54
                                                                                v1 ->
55 2 1. lambda$getGardenerMoves$4 : replaced boolean return with false for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$4 → NO_COVERAGE
2. lambda$getGardenerMoves$4 : replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$4 → NO_COVERAGE
                                                                                        board.getGardenerPossibleMoves()
56
                                                                                                .contains(
57
                                                                                                        v1))
58
                                                                        .toList())))
59
                .collect(Collectors.toMap(Pair::getLeft, Pair::getRight));
60
    }
61
}

Mutations

23

1.1
Location : getGardenerMoves
Killed by : none
replaced return value with Collections.emptyMap for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::getGardenerMoves → TIMED_OUT

26

1.1
Location : lambda$getGardenerMoves$0
Killed by : com.takenoko.bot.utils.HistoryAnalysisTest.[engine:junit-jupiter]/[class:com.takenoko.bot.utils.HistoryAnalysisTest]/[nested-class:IntegrationTest]/[method:test1()]
negated conditional → KILLED

2.2
Location : lambda$getGardenerMoves$0
Killed by : com.takenoko.bot.utils.HistoryAnalysisTest.[engine:junit-jupiter]/[class:com.takenoko.bot.utils.HistoryAnalysisTest]/[nested-class:IntegrationTest]/[method:test1()]
replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$0 → KILLED

30

1.1
Location : lambda$getGardenerMoves$2
Killed by : com.takenoko.bot.utils.HistoryAnalysisTest.[engine:junit-jupiter]/[class:com.takenoko.bot.utils.HistoryAnalysisTest]/[nested-class:IntegrationTest]/[method:test1()]
replaced return value with null for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$2 → KILLED

38

1.1
Location : lambda$getGardenerMoves$1
Killed by : none
replaced boolean return with false for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$1 → SURVIVED

2.2
Location : lambda$getGardenerMoves$1
Killed by : none
replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$1 → SURVIVED

44

1.1
Location : lambda$getGardenerMoves$3
Killed by : com.takenoko.bot.utils.HistoryAnalysisTest.[engine:junit-jupiter]/[class:com.takenoko.bot.utils.HistoryAnalysisTest]/[nested-class:IntegrationTest]/[method:test1()]
negated conditional → KILLED

2.2
Location : lambda$getGardenerMoves$3
Killed by : com.takenoko.bot.utils.HistoryAnalysisTest.[engine:junit-jupiter]/[class:com.takenoko.bot.utils.HistoryAnalysisTest]/[nested-class:IntegrationTest]/[method:test1()]
replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$3 → KILLED

47

1.1
Location : lambda$getGardenerMoves$5
Killed by : none
replaced return value with null for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$5 → TIMED_OUT

55

1.1
Location : lambda$getGardenerMoves$4
Killed by : none
replaced boolean return with false for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$4 → NO_COVERAGE

2.2
Location : lambda$getGardenerMoves$4
Killed by : none
replaced boolean return with true for com/takenoko/bot/utils/pathfinding/gardener/GardenerPathfinding::lambda$getGardenerMoves$4 → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.8.0