YatzyModUtils.java

1
package io.github.mathieusoysal.yatzy_mod;
2
3
import java.util.Collection;
4
import java.util.Collections;
5
import java.util.List;
6
import java.util.stream.IntStream;
7
8
import io.github.mathieusoysal.Dices;
9
10
/**
11
 * The {@code YatzyModUtils} class provides utility methods for Yatzy game score
12
 * calculations.
13
 * 
14
 * @author MathieuSoysal
15
 * @see Dices
16
 */
17
class YatzyModUtils {
18
19
        private YatzyModUtils() {
20
        }
21
22
        /**
23
         * Filters and sums the dice values that match a given number.
24
         *
25
         * @param diceNumber  The number to match.
26
         * @param diceResults The set of dice to filter and sum.
27
         * @return The sum of dice values that match the given number.
28
         */
29
        static int filterAndSum(int diceNumber, Dices diceResults) {
30 1 1. filterAndSum : replaced int return with 0 for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::filterAndSum → KILLED
                return diceResults.getDicesIntStream()
31 2 1. lambda$filterAndSum$0 : negated conditional → KILLED
2. lambda$filterAndSum$0 : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::lambda$filterAndSum$0 → KILLED
                                .filter(d -> d == diceNumber)
32
                                .sum();
33
        }
34
35
        /**
36
         * Checks if the dice values match a specified list when sorted.
37
         *
38
         * @param dices      The set of dice to check.
39
         * @param toBeEquals The list of values to compare with the sorted dice values.
40
         * @return {@code true} if the dice values match the specified list when sorted,
41
         *         {@code false} otherwise.
42
         */
43
        static boolean isItEqualsWhenDicesIsSorted(Dices dices, List<Integer> toBeEquals) {
44 2 1. isItEqualsWhenDicesIsSorted : replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::isItEqualsWhenDicesIsSorted → KILLED
2. isItEqualsWhenDicesIsSorted : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::isItEqualsWhenDicesIsSorted → KILLED
                return dices.getDicesIntStream()
45
                                .sorted().boxed().toList()
46
                                .equals(toBeEquals);
47
        }
48
49
        /**
50
         * Filters the dice values that occur at least a specified frequency.
51
         *
52
         * @param frequency The minimum frequency for dice values.
53
         * @param dices     The set of dice to filter.
54
         * @return An {@code IntStream} containing the filtered dice values.
55
         */
56
        static IntStream filterByFrequency(int frequency, Dices dices) {
57
                Collection<Integer> diceCollection = dices.getDicesIntStream()
58
                                .boxed().toList();
59 1 1. filterByFrequency : replaced return value with null for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::filterByFrequency → KILLED
                return dices.getDicesIntStream()
60 3 1. lambda$filterByFrequency$1 : changed conditional boundary → KILLED
2. lambda$filterByFrequency$1 : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::lambda$filterByFrequency$1 → KILLED
3. lambda$filterByFrequency$1 : negated conditional → KILLED
                                .filter(v -> Collections.frequency(diceCollection, v) >= frequency);
61
        }
62
63
        /**
64
         * Checks if the dice values contain at least one value with an exact frequency.
65
         *
66
         * @param frequency The exact frequency to check.
67
         * @param dices     The set of dice to check.
68
         * @return {@code true} if the dice values contain at least one value with the
69
         *         exact frequency, {@code false} otherwise.
70
         */
71
        static boolean containsExactFrequencyDice(int frequency, Dices dices) {
72
                Collection<Integer> diceCollection = dices.getDicesIntStream()
73
                                .boxed().toList();
74 2 1. containsExactFrequencyDice : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::containsExactFrequencyDice → KILLED
2. containsExactFrequencyDice : replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::containsExactFrequencyDice → KILLED
                return dices.getDicesIntStream()
75 2 1. lambda$containsExactFrequencyDice$2 : replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::lambda$containsExactFrequencyDice$2 → KILLED
2. lambda$containsExactFrequencyDice$2 : negated conditional → KILLED
                                .anyMatch(v -> Collections.frequency(diceCollection, v) == frequency);
76
        }
77
}

Mutations

30

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

31

1.1
Location : lambda$filterAndSum$0
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fours(int, int, int, int, int, int)]/[test-template-invocation:#1]
negated conditional → KILLED

2.2
Location : lambda$filterAndSum$0
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_fours(int, int, int, int, int, int)]/[test-template-invocation:#1]
replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::lambda$filterAndSum$0 → KILLED

44

1.1
Location : isItEqualsWhenDicesIsSorted
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_largeStraight(int, int, int, int, int, int)]/[test-template-invocation:#2]
replaced boolean return with false for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::isItEqualsWhenDicesIsSorted → KILLED

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

59

1.1
Location : filterByFrequency
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_threeOfAKind(int, int, int, int, int, int)]/[test-template-invocation:#3]
replaced return value with null for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::filterByFrequency → KILLED

60

1.1
Location : lambda$filterByFrequency$1
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_threeOfAKind(int, int, int, int, int, int)]/[test-template-invocation:#2]
changed conditional boundary → KILLED

2.2
Location : lambda$filterByFrequency$1
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_threeOfAKind(int, int, int, int, int, int)]/[test-template-invocation:#4]
replaced boolean return with true for io/github/mathieusoysal/yatzy_mod/YatzyModUtils::lambda$filterByFrequency$1 → KILLED

3.3
Location : lambda$filterByFrequency$1
Killed by : io.github.mathieusoysal.YatzyTest.[engine:junit-jupiter]/[class:io.github.mathieusoysal.YatzyTest]/[test-template:test_threeOfAKind(int, int, int, int, int, int)]/[test-template-invocation:#3]
negated conditional → KILLED

74

1.1
Location : containsExactFrequencyDice
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/YatzyModUtils::containsExactFrequencyDice → KILLED

2.2
Location : containsExactFrequencyDice
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/YatzyModUtils::containsExactFrequencyDice → KILLED

75

1.1
Location : lambda$containsExactFrequencyDice$2
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/YatzyModUtils::lambda$containsExactFrequencyDice$2 → KILLED

2.2
Location : lambda$containsExactFrequencyDice$2
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

Active mutators

Tests examined


Report generated by PIT 1.15.0