YMFullHouse.java

1
package io.github.mathieusoysal.yatzy_mod;
2
3
import io.github.mathieusoysal.Dices;
4
5
/**
6
 * The {@code YMFullHouse} class represents the "Full House" category in the
7
 * Yatzy game.
8
 * 
9
 * <p>
10
 * In the "Full House" category, the player scores the sum of all dice if there
11
 * are two dice of one kind and three dice of another kind. Otherwise, the score
12
 * is zero.
13
 * </p>
14
 *
15
 * @author MathieuSoysal
16
 * @see YatzyModInterface
17
 * @see YatzyModUtils
18
 */
19
class YMFullHouse implements YatzyModInterface {
20
21
    /**
22
     * Calculates the score for the "Full House" category based on the sum of all
23
     * dice if the criteria are met.
24
     * To qualify as a Full House, there must be two dice of one kind and three dice
25
     * of another kind.
26
     *
27
     * @param dices The set of dice to calculate the score for.
28
     * @return The calculated score, which is the sum of all dice if it's a Full
29
     *         House, or zero if not.
30
     * @see YatzyModUtils#containsExactFrequencyDice(int, Dices)
31
     */
32
    @Override
33
    public int calculateScore(Dices dices) {
34 2 1. calculateScore : negated conditional → KILLED
2. calculateScore : negated conditional → KILLED
        if (containsTriplet(dices) && containsPair(dices))
35 1 1. calculateScore : replaced int return with 0 for io/github/mathieusoysal/yatzy_mod/YMFullHouse::calculateScore → KILLED
            return dices.getDicesIntStream().sum();
36
        else
37
            return 0;
38
    }
39
40
    /**
41
     * Checks if the given set of dice contains a pair of dice with the same value.
42
     *
43
     * @param dices The set of dice to check.
44
     * @return True if a pair is present; otherwise, false.
45
     * @see YatzyModUtils#containsExactFrequencyDice(int, Dices)
46
     */
47
    private boolean containsPair(Dices dices) {
48 2 1. containsPair : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsPair → KILLED
2. containsPair : replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsPair → KILLED
        return YatzyModUtils.containsExactFrequencyDice(2, dices);
49
    }
50
51
    /**
52
     * Checks if the given set of dice contains three dice with the same value.
53
     *
54
     * @param dices The set of dice to check.
55
     * @return True if a triplet is present; otherwise, false.
56
     * @see YatzyModUtils#containsExactFrequencyDice(int, Dices)
57
     */
58
    private boolean containsTriplet(Dices dices) {
59 2 1. containsTriplet : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsTriplet → KILLED
2. containsTriplet : replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsTriplet → KILLED
        return YatzyModUtils.containsExactFrequencyDice(3, dices);
60
    }
61
}

Mutations

34

1.1
Location : calculateScore
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#3]
negated conditional → KILLED

2.2
Location : calculateScore
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#4]
negated conditional → KILLED

35

1.1
Location : calculateScore
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#3]
replaced int return with 0 for io/github/mathieusoysal/yatzy_mod/YMFullHouse::calculateScore → KILLED

48

1.1
Location : containsPair
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#6]
replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsPair → KILLED

2.2
Location : containsPair
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#3]
replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsPair → KILLED

59

1.1
Location : containsTriplet
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#4]
replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsTriplet → KILLED

2.2
Location : containsTriplet
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fullHouse(int, int, int, int, int, int)]/[test-template-invocation:#3]
replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YMFullHouse::containsTriplet → KILLED

Active mutators

Tests examined


Report generated by PIT 1.15.0