# UpdatePlayer.java

1

    package re.forestier.edu.rpg;

2

3

    import java.util.HashMap;

4

    import java.util.Random;

5

6

    public class UpdatePlayer {

7

8

        private final static String[] objectList = {"Lookout Ring : Prevents surprise attacks","Scroll of Stupidity : INT-2 when applied to an enemy", "Draupnir : Increases XP gained by 100%", "Magic Charm : Magic +10 for 5 rounds", "Rune Staff of Curse : May burn your ennemies... Or yourself. Who knows?", "Combat Edge : Well, that's an edge", "Holy Elixir : Recover your HP"

9

        };

10

11

        public static HashMap<String, HashMap<Integer, HashMap<String, Integer>>> abilitiesPerTypeAndLevel() {

12

            HashMap<String, HashMap<Integer, HashMap<String, Integer>>> abilitiesPerTypeAndLevel = new HashMap<>();

13

14

            HashMap<Integer, HashMap<String, Integer>> adventurerMap = new HashMap<>();

15

            HashMap<String, Integer> adventurerLevel1 = new HashMap<>();

16

            adventurerLevel1.put("INT", 1);

17

            adventurerLevel1.put("DEF", 1);

18

            adventurerLevel1.put("ATK", 3);

19

            adventurerLevel1.put("CHA", 2);

20

            adventurerMap.put(1, adventurerLevel1);

21

22

            HashMap<String, Integer> adventurerLevel2 = new HashMap<>();

23

            adventurerLevel1.put("INT", 2);

24

            adventurerLevel1.put("CHA", 3);

25

            adventurerMap.put(2, adventurerLevel2);

26

27

            HashMap<String, Integer> adventurerLevel3 = new HashMap<>();

28

            adventurerLevel3.put("ATK", 5);

29

            adventurerLevel3.put("ALC", 1);

30

            adventurerMap.put(3, adventurerLevel3);

31

32

            HashMap<String, Integer> adventurerLevel4 = new HashMap<>();

33

            adventurerLevel4.put("DEF", 3);

34

            adventurerMap.put(4, adventurerLevel4);

35

36

            HashMap<String, Integer> adventurerLevel5 = new HashMap<>();

37

            adventurerLevel5.put("VIS", 1);

38

            adventurerLevel5.put("DEF", 4);

39

            adventurerMap.put(5, adventurerLevel5);

40

41

            abilitiesPerTypeAndLevel.put("ADVENTURER", adventurerMap);

42

43

44

            HashMap<Integer, HashMap<String, Integer>> archerMap = new HashMap<>();

45

            HashMap<String, Integer> archerLevel1 = new HashMap<>();

46

            archerLevel1.put("INT", 1);

47

            archerLevel1.put("ATK", 3);

48

            archerLevel1.put("CHA", 1);

49

            archerLevel1.put("VIS", 3);

50

            archerMap.put(1, archerLevel1);

51

52

            HashMap<String, Integer> archerLevel2 = new HashMap<>();

53

            archerLevel2.put("DEF", 1);

54

            archerLevel2.put("CHA", 2);

55

            archerMap.put(2, archerLevel2);

56

57

            HashMap<String, Integer> archerLevel3 = new HashMap<>();

58

            archerLevel3.put("ATK", 3);

59

            archerMap.put(3, archerLevel3);

60

61

            HashMap<String, Integer> archerLevel4 = new HashMap<>();

62

            archerLevel4.put("DEF", 2);

63

            archerMap.put(4, archerLevel4);

64

65

            HashMap<String, Integer> archerLevel5 = new HashMap<>();

66

            archerLevel5.put("ATK", 4);

67

            archerMap.put(5, archerLevel5);

68

69

            abilitiesPerTypeAndLevel.put("ARCHER", archerMap);

70

71

72

            HashMap<Integer, HashMap<String, Integer>> dwarf = new HashMap<>();

73

            HashMap<String, Integer> dwarfLevel1 = new HashMap<>();

74

            dwarfLevel1.put("ALC", 4);

75

            dwarfLevel1.put("INT", 1);

76

            dwarfLevel1.put("ATK", 3);

77

            dwarf.put(1, dwarfLevel1);

78

79

            HashMap<String, Integer> dwarfLevel2 = new HashMap<>();

80

            dwarfLevel2.put("DEF", 1);

81

            dwarfLevel2.put("ALC", 5);

82

            dwarf.put(2, dwarfLevel2);

83

84

            HashMap<String, Integer> dwarfLevel3 = new HashMap<>();

85

            dwarfLevel3.put("ATK", 4);

86

            dwarf.put(3, dwarfLevel3);

87

88

            HashMap<String, Integer> dwarfLevel4 = new HashMap<>();

89

            dwarfLevel4.put("DEF", 2);

90

            dwarf.put(4, dwarfLevel4);

91

92

            HashMap<String, Integer> dwarfLevel5 = new HashMap<>();

93

            dwarfLevel5.put("CHA", 1);

94

            dwarf.put(5, dwarfLevel5);

95

96

            abilitiesPerTypeAndLevel.put("DWARF", dwarf);

97

98

1 1. abilitiesPerTypeAndLevel : replaced return value with null for re/forestier/edu/rpg/UpdatePlayer::abilitiesPerTypeAndLevel → KILLED

            return abilitiesPerTypeAndLevel;

99

        }

100

101

        public static boolean addXp(player player, int xp) {

102

            int currentLevel = player.retrieveLevel();

103

1 1. addXp : Replaced integer addition with subtraction → KILLED

            player.xp += xp;

104

            int newLevel = player.retrieveLevel();

105

106

1 1. addXp : negated conditional → KILLED

            if (newLevel != currentLevel) {

107

                // Player leveled-up!

108

                // Give a random object

109

                ;

110

                Random random = new Random();

111

2 1. addXp : Replaced integer subtraction with addition → SURVIVED
2. addXp : Replaced integer addition with subtraction → SURVIVED

                player.inventory.add(objectList[random.nextInt(objectList.length - 0) + 0]);

112

113

                // Add/upgrade abilities to player

114

                HashMap<String, Integer> abilities = abilitiesPerTypeAndLevel().get(player.getAvatarClass()).get(newLevel);

115

1 1. addXp : removed call to java/util/HashMap::forEach → KILLED

                abilities.forEach((ability, level) -> {

116

                    player.abilities.put(ability, abilities.get(ability));

117

                });

118

1 1. addXp : replaced boolean return with false for re/forestier/edu/rpg/UpdatePlayer::addXp → KILLED

                return true;

119

            }

120

1 1. addXp : replaced boolean return with true for re/forestier/edu/rpg/UpdatePlayer::addXp → KILLED

            return false;

121

        }

122

123

124

125

        // majFinDeTour met à jour les points de vie

126

        public static void majFinDeTour(player player) {

127

1 1. majFinDeTour : negated conditional → KILLED

            if(player.currenthealthpoints == 0) {

128

1 1. majFinDeTour : removed call to java/io/PrintStream::println → KILLED

                System.out.println("Le joueur est KO !");

129

                return;

130

            }

131

132

3 1. majFinDeTour : changed conditional boundary → KILLED
2. majFinDeTour : Replaced integer division with multiplication → KILLED
3. majFinDeTour : negated conditional → KILLED

            if(player.currenthealthpoints < player.healthpoints/2) {

133

1 1. majFinDeTour : negated conditional → KILLED

                if(!player.getAvatarClass().equals("ADVENTURER")) {

134

1 1. majFinDeTour : negated conditional → KILLED

                    if(player.getAvatarClass().equals("DWARF")) {

135

1 1. majFinDeTour : negated conditional → KILLED

                        if(player.inventory.contains("Holy Elixir")) {

136

1 1. majFinDeTour : Replaced integer addition with subtraction → KILLED

                            player.currenthealthpoints+=1;

137

                        }

138

1 1. majFinDeTour : Replaced integer addition with subtraction → KILLED

                        player.currenthealthpoints+=1;

139

1 1. majFinDeTour : negated conditional → KILLED

                    } else if(player.getAvatarClass().equals("ADVENTURER")) {

140

1 1. majFinDeTour : Replaced integer addition with subtraction → NO_COVERAGE

                        player.currenthealthpoints+=2;

141

                    }

142

143

144

1 1. majFinDeTour : negated conditional → KILLED

                    if(player.getAvatarClass().equals("ARCHER")) {

145

1 1. majFinDeTour : Replaced integer addition with subtraction → KILLED

                        player.currenthealthpoints+=1;

146

1 1. majFinDeTour : negated conditional → KILLED

                        if(player.inventory.contains("Magic Bow")) {

147

3 1. majFinDeTour : Replaced integer subtraction with addition → KILLED
2. majFinDeTour : Replaced integer division with multiplication → KILLED
3. majFinDeTour : Replaced integer addition with subtraction → KILLED

                            player.currenthealthpoints+=player.currenthealthpoints/8-1;

148

                        }

149

                    }

150

                } else {

151

1 1. majFinDeTour : Replaced integer addition with subtraction → KILLED

                    player.currenthealthpoints+=2;

152

2 1. majFinDeTour : changed conditional boundary → KILLED
2. majFinDeTour : negated conditional → KILLED

                    if(player.retrieveLevel() < 3) {

153

1 1. majFinDeTour : Replaced integer subtraction with addition → KILLED

                        player.currenthealthpoints-=1;

154

                    }

155

                }

156

3 1. majFinDeTour : changed conditional boundary → SURVIVED
2. majFinDeTour : Replaced integer division with multiplication → SURVIVED
3. majFinDeTour : negated conditional → SURVIVED

            } else if(player.currenthealthpoints >= player.healthpoints/2){

157

2 1. majFinDeTour : changed conditional boundary → SURVIVED
2. majFinDeTour : negated conditional → KILLED

                if(player.currenthealthpoints >= player.healthpoints) {

158

                    player.currenthealthpoints = player.healthpoints;

159

                    return;

160

                }

161

            }

162

163

164

2 1. majFinDeTour : changed conditional boundary → SURVIVED
2. majFinDeTour : negated conditional → KILLED

            if(player.currenthealthpoints >= player.healthpoints) {

165

                player.currenthealthpoints = player.healthpoints;

166

            }

167

        }

168

169

170

    }

## Mutations

98 |  | 1.1 Location : abilitiesPerTypeAndLevel Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testPlayerName()] replaced return value with null for re/forestier/edu/rpg/UpdatePlayer::abilitiesPerTypeAndLevel → KILLED
103 |  | 1.1 Location : addXp Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRetrieveLevel()] Replaced integer addition with subtraction → KILLED
106 |  | 1.1 Location : addXp Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRetrieveLevel()] negated conditional → KILLED
111 |  | 1.1 Location : addXp Killed by : none Replaced integer subtraction with addition → SURVIVED 2.2 Location : addXp Killed by : none Replaced integer addition with subtraction → SURVIVED
115 |  | 1.1 Location : addXp Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRetrieveLevel()] removed call to java/util/HashMap::forEach → KILLED
118 |  | 1.1 Location : addXp Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRetrieveLevel()] replaced boolean return with false for re/forestier/edu/rpg/UpdatePlayer::addXp → KILLED
120 |  | 1.1 Location : addXp Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRetrieveLevel()] replaced boolean return with true for re/forestier/edu/rpg/UpdatePlayer::addXp → KILLED
127 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
128 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] removed call to java/io/PrintStream::println → KILLED

132

1.1
Location : majFinDeTour
Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] changed conditional boundary → KILLED

2.2
Location : majFinDeTour
Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer division with multiplication → KILLED

3.3
Location : majFinDeTour
Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED

133 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
134 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
135 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
136 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer addition with subtraction → KILLED
138 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer addition with subtraction → KILLED
139 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
140 |  | 1.1 Location : majFinDeTour Killed by : none Replaced integer addition with subtraction → NO_COVERAGE
144 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
145 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer addition with subtraction → KILLED
146 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED

147

1.1
Location : majFinDeTour
Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer subtraction with addition → KILLED

2.2
Location : majFinDeTour
Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer division with multiplication → KILLED

3.3
Location : majFinDeTour
Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer addition with subtraction → KILLED

151 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer addition with subtraction → KILLED
152 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] changed conditional boundary → KILLED 2.2 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED
153 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] Replaced integer subtraction with addition → KILLED
156 |  | 1.1 Location : majFinDeTour Killed by : none changed conditional boundary → SURVIVED 2.2 Location : majFinDeTour Killed by : none Replaced integer division with multiplication → SURVIVED 3.3 Location : majFinDeTour Killed by : none negated conditional → SURVIVED
157 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED 2.2 Location : majFinDeTour Killed by : none changed conditional boundary → SURVIVED
164 |  | 1.1 Location : majFinDeTour Killed by : re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] negated conditional → KILLED 2.2 Location : majFinDeTour Killed by : none changed conditional boundary → SURVIVED

## Active mutators

- CONDITIONALS_BOUNDARY
- EMPTY_RETURNS
- FALSE_RETURNS
- INCREMENTS
- INVERT_NEGS
- MATH
- NEGATE_CONDITIONALS
- NULL_RETURNS
- PRIMITIVE_RETURNS
- TRUE_RETURNS
- VOID_METHOD_CALLS

## Tests examined

- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testMajFinTour()] (0 ms)
- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRetrieveLevel()] (0 ms)
- re.forestier.edu.GlobalTest.[engine:junit-jupiter]/[class:re.forestier.edu.GlobalTest]/[method:testAffichageBase()] (135 ms)
- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testPlayerName()] (0 ms)
- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testAddMoney()] (0 ms)
- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testPlayerConstructor()] (0 ms)
- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testAfficage()] (0 ms)
- re.forestier.edu.UnitTests.[engine:junit-jupiter]/[class:re.forestier.edu.UnitTests]/[method:testRemoveMoney()] (1 ms)

Report generated by PIT 1.15.0