InventoryImprovements.java

1
package com.takenoko.inventory;
2
3
import com.takenoko.layers.tile.ImprovementType;
4
import java.util.ArrayList;
5
import java.util.List;
6
7
/**
8
 * InventoryImprovements contains the improvements picked by the player after getting Cloudy weather
9
 * InventoryImprovements is an attribute in Inventory
10
 */
11
public class InventoryImprovements extends ArrayList<ImprovementType> {
12
    public InventoryImprovements() {
13
        super();
14
    }
15
16
    public InventoryImprovements(List<ImprovementType> inventoryImprovements) {
17
        this.addAll(inventoryImprovements);
18
    }
19
20
    /**
21
     * @return copy of the stash of improvement stored by the bot
22
     */
23
    public InventoryImprovements copy() {
24 1 1. copy : replaced return value with null for com/takenoko/inventory/InventoryImprovements::copy → KILLED
        return new InventoryImprovements(this);
25
    }
26
27
    /**
28
     * @param pickedImprovement store the chosen improvement in the inventory
29
     */
30
    public void store(ImprovementType pickedImprovement) {
31
        super.add(pickedImprovement);
32
    }
33
34
    /**
35
     * @param toUse remove used improvement from list or throw exception if not possessed
36
     */
37
    public void use(ImprovementType toUse) {
38 1 1. use : negated conditional → KILLED
        if (!contains(toUse)) {
39
            throw new IllegalArgumentException(
40
                    "You do not possess any improvements of type: " + toUse);
41
        }
42
        super.remove(toUse);
43
    }
44
45
    public boolean hasImprovement(ImprovementType improvementType) {
46 2 1. hasImprovement : replaced boolean return with false for com/takenoko/inventory/InventoryImprovements::hasImprovement → KILLED
2. hasImprovement : replaced boolean return with true for com/takenoko/inventory/InventoryImprovements::hasImprovement → KILLED
        return contains(improvementType);
47
    }
48
49
    public int getImprovementCount(ImprovementType improvementType) {
50 1 1. getImprovementCount : replaced int return with 0 for com/takenoko/inventory/InventoryImprovements::getImprovementCount → TIMED_OUT
        return Math.toIntExact(
51 2 1. lambda$getImprovementCount$0 : negated conditional → TIMED_OUT
2. lambda$getImprovementCount$0 : replaced boolean return with true for com/takenoko/inventory/InventoryImprovements::lambda$getImprovementCount$0 → TIMED_OUT
                this.stream().filter(improvement -> improvement == improvementType).count());
52
    }
53
}

Mutations

24

1.1
Location : copy
Killed by : com.takenoko.inventory.InventoryImprovementsTest.[engine:junit-jupiter]/[class:com.takenoko.inventory.InventoryImprovementsTest]/[nested-class:TestCopy]/[method:copy_shouldReturnCopyOfObject()]
replaced return value with null for com/takenoko/inventory/InventoryImprovements::copy → KILLED

38

1.1
Location : use
Killed by : com.takenoko.inventory.InventoryImprovementsTest.[engine:junit-jupiter]/[class:com.takenoko.inventory.InventoryImprovementsTest]/[nested-class:TestUse]/[method:use_shouldRemoveTheImprovementFromListIfIn()]
negated conditional → KILLED

46

1.1
Location : hasImprovement
Killed by : com.takenoko.inventory.InventoryImprovementsTest.[engine:junit-jupiter]/[class:com.takenoko.inventory.InventoryImprovementsTest]/[nested-class:TestHasImprovement]/[method:hasImprovement_shouldReturnTrueIfImprovementIsInList()]
replaced boolean return with false for com/takenoko/inventory/InventoryImprovements::hasImprovement → KILLED

2.2
Location : hasImprovement
Killed by : com.takenoko.inventory.InventoryImprovementsTest.[engine:junit-jupiter]/[class:com.takenoko.inventory.InventoryImprovementsTest]/[nested-class:TestHasImprovement]/[method:hasImprovement_shouldReturnFalseIfImprovementIsNotInList()]
replaced boolean return with true for com/takenoko/inventory/InventoryImprovements::hasImprovement → KILLED

50

1.1
Location : getImprovementCount
Killed by : none
replaced int return with 0 for com/takenoko/inventory/InventoryImprovements::getImprovementCount → TIMED_OUT

51

1.1
Location : lambda$getImprovementCount$0
Killed by : none
negated conditional → TIMED_OUT

2.2
Location : lambda$getImprovementCount$0
Killed by : none
replaced boolean return with true for com/takenoko/inventory/InventoryImprovements::lambda$getImprovementCount$0 → TIMED_OUT

Active mutators

Tests examined


Report generated by PIT 1.8.0