|
1
|
|
package com.github.dakusui.symfonion.utils; |
|
2
|
|
|
|
3
|
|
|
|
4
|
|
import com.github.dakusui.symfonion.compat.exceptions.FractionFormatException; |
|
5
|
|
|
|
6
|
|
import java.io.Serial; |
|
7
|
|
import java.io.Serializable; |
|
8
|
|
import java.util.regex.Matcher; |
|
9
|
|
import java.util.regex.Pattern; |
|
10
|
|
|
|
11
|
|
import static com.github.dakusui.symfonion.compat.exceptions.CompatExceptionThrower.throwFractionFormatException; |
|
12
|
|
import static com.github.valid8j.classic.Requires.requireArgument; |
|
13
|
|
import static com.github.valid8j.pcond.forms.Predicates.isEqualTo; |
|
14
|
|
import static com.github.valid8j.pcond.forms.Predicates.not; |
|
15
|
|
|
|
16
|
|
|
|
17
|
|
/** |
|
18
|
|
* A class to implement simple Fraction functions |
|
19
|
|
* there is basically a constructor (which reduces) |
|
20
|
|
* |
|
21
|
|
* @param numerator A numerator of a fraction |
|
22
|
|
* @param denominator A denominator of a fraction |
|
23
|
|
*/ |
|
24
|
|
public record Fraction(int numerator, int denominator) implements Cloneable, Serializable { |
|
25
|
|
/** |
|
26
|
|
* A regular expression that matches a fraction. |
|
27
|
|
*/ |
|
28
|
|
public static final Pattern FRACTION_PATTERN = Pattern.compile("([0-9]+)/([1-9][0-9]*)"); |
|
29
|
|
@Serial |
|
30
|
|
private static final long serialVersionUID = 9185757132113L; |
|
31
|
|
|
|
32
|
|
/* some useful constant fractions */ |
|
33
|
|
public static final Fraction ZERO = new Fraction(0, 1); |
|
34
|
|
public static final Fraction ONE = new Fraction(1, 1); |
|
35
|
|
|
|
36
|
|
/** |
|
37
|
|
* Creates an object of this class. |
|
38
|
|
* |
|
39
|
|
* @param numerator A numerator |
|
40
|
|
* @param denominator A denominator |
|
41
|
|
*/ |
|
42
|
|
public Fraction(int numerator, int denominator) { |
|
43
|
|
requireArgument(denominator, not(isEqualTo(0))); |
|
44
|
|
int n = numerator; |
|
45
|
|
int d = denominator; |
|
46
|
|
int gcd; |
|
47
|
|
|
|
48
|
|
while (true) { |
|
49
|
|
gcd = this.gcd(n, d); |
|
50
|
|
if (gcd == 1) |
|
51
|
|
break; |
|
52
|
|
n /= gcd; |
|
53
|
|
d /= gcd; |
|
54
|
|
} |
|
55
|
|
this.numerator = n; |
|
56
|
|
this.denominator = d; |
|
57
|
|
} |
|
58
|
|
|
|
59
|
|
/** |
|
60
|
|
* Parses a given string `str` and creates a `Fraction` object |
|
61
|
|
* The str must match with a regular expression: |
|
62
|
|
* |
|
63
|
|
* - `([0-9]+)/([1-9][0-9]*)` |
|
64
|
|
* |
|
65
|
|
* If it doesn't, A `FractionFormatException` will be thrown. |
|
66
|
|
* |
|
67
|
|
* @param str A string containing a fraction. |
|
68
|
|
* @return A `Fraction` object. |
|
69
|
|
* @see FractionFormatException |
|
70
|
|
*/ |
|
71
|
|
public static Fraction parseFraction(String str) throws FractionFormatException { |
|
72
|
1
1. parseFraction : negated conditional → KILLED
|
if (str == null) { |
|
73
|
|
return null; |
|
74
|
|
} |
|
75
|
|
Matcher m = FRACTION_PATTERN.matcher(str); |
|
76
|
1
1. parseFraction : negated conditional → KILLED
|
if (!m.matches()) { |
|
77
|
|
throw throwFractionFormatException(str); |
|
78
|
|
} |
|
79
|
1
1. parseFraction : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::parseFraction → SURVIVED
|
return new Fraction( |
|
80
|
|
Integer.parseInt(m.group(1)), |
|
81
|
|
Integer.parseInt(m.group(2)) |
|
82
|
|
); |
|
83
|
|
} |
|
84
|
|
|
|
85
|
|
/** |
|
86
|
|
* Creates a clone of this object |
|
87
|
|
* |
|
88
|
|
* @return A cloned object. |
|
89
|
|
*/ |
|
90
|
|
@Override |
|
91
|
|
public Fraction clone() { |
|
92
|
|
Fraction ret; |
|
93
|
|
try { |
|
94
|
|
ret = (Fraction) super.clone(); |
|
95
|
|
} catch (CloneNotSupportedException e) { |
|
96
|
|
throw new AssertionError(e); |
|
97
|
|
} |
|
98
|
1
1. clone : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::clone → KILLED
|
return ret; |
|
99
|
|
} |
|
100
|
|
|
|
101
|
|
private int gcd(int a, int b) { |
|
102
|
|
int t; |
|
103
|
|
|
|
104
|
1
1. gcd : negated conditional → KILLED
|
while (b != 0) { |
|
105
|
|
t = a; |
|
106
|
|
a = b; |
|
107
|
1
1. gcd : Replaced integer modulus with multiplication → TIMED_OUT
|
b = t % a; |
|
108
|
|
} |
|
109
|
1
1. gcd : replaced int return with 0 for com/github/dakusui/symfonion/utils/Fraction::gcd → KILLED
|
return (a); |
|
110
|
|
} |
|
111
|
|
|
|
112
|
|
/** |
|
113
|
|
* Returns a double representation of this object. |
|
114
|
|
* |
|
115
|
|
* @return value of this objet in `double`. |
|
116
|
|
*/ |
|
117
|
|
public double doubleValue() { |
|
118
|
3
1. doubleValue : Replaced double multiplication with division → KILLED
2. doubleValue : Replaced double division with multiplication → KILLED
3. doubleValue : replaced double return with 0.0d for com/github/dakusui/symfonion/utils/Fraction::doubleValue → KILLED
|
return (1.0 * this.numerator() / this.denominator()); |
|
119
|
|
} |
|
120
|
|
|
|
121
|
|
/** |
|
122
|
|
* Returns a whole portion of this fraction. |
|
123
|
|
* |
|
124
|
|
* @return A whole portion of this fraction. |
|
125
|
|
*/ |
|
126
|
|
public int wholePortion() { |
|
127
|
1
1. wholePortion : replaced int return with 0 for com/github/dakusui/symfonion/utils/Fraction::wholePortion → KILLED
|
return (int) this.doubleValue(); |
|
128
|
|
} |
|
129
|
|
|
|
130
|
|
/** |
|
131
|
|
* Returns a fraction portion of this fraction. |
|
132
|
|
* |
|
133
|
|
* @return A fraction portion of this fraction. |
|
134
|
|
*/ |
|
135
|
|
public Fraction fractionPortion() { |
|
136
|
|
Fraction f = new Fraction(this.wholePortion(), 1); |
|
137
|
1
1. fractionPortion : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::fractionPortion → KILLED
|
return subtract(this, f); |
|
138
|
|
} |
|
139
|
|
|
|
140
|
|
@Override |
|
141
|
|
public boolean equals(Object anotherObject) { |
|
142
|
1
1. equals : negated conditional → KILLED
|
if (!(anotherObject instanceof Fraction another)) |
|
143
|
1
1. equals : replaced boolean return with true for com/github/dakusui/symfonion/utils/Fraction::equals → KILLED
|
return false; |
|
144
|
3
1. equals : negated conditional → KILLED
2. equals : replaced boolean return with true for com/github/dakusui/symfonion/utils/Fraction::equals → KILLED
3. equals : negated conditional → KILLED
|
return this.denominator == another.denominator && this.numerator == another.numerator; |
|
145
|
|
} |
|
146
|
|
|
|
147
|
|
@Override |
|
148
|
|
public String toString() { |
|
149
|
1
1. toString : replaced return value with "" for com/github/dakusui/symfonion/utils/Fraction::toString → KILLED
|
return (this.numerator() + "/" + this.denominator()); |
|
150
|
|
} |
|
151
|
|
|
|
152
|
|
/** |
|
153
|
|
* Returns the addition of `f1` and `f2`. |
|
154
|
|
* |
|
155
|
|
* @param f1 A first fraction |
|
156
|
|
* @param f2 A second fraction |
|
157
|
|
* @return Result of the addition. |
|
158
|
|
*/ |
|
159
|
|
public static Fraction add(Fraction f1, Fraction f2) { |
|
160
|
|
int n, |
|
161
|
|
d; |
|
162
|
|
|
|
163
|
3
1. add : Replaced integer multiplication with division → KILLED
2. add : Replaced integer multiplication with division → KILLED
3. add : Replaced integer addition with subtraction → KILLED
|
n = f1.numerator * f2.denominator + f2.numerator * f1.denominator; |
|
164
|
1
1. add : Replaced integer multiplication with division → KILLED
|
d = f1.denominator * f2.denominator; |
|
165
|
1
1. add : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::add → KILLED
|
return new Fraction(n, d); |
|
166
|
|
} |
|
167
|
|
|
|
168
|
|
/** |
|
169
|
|
* Returns the subtraction of `f1` and `f2 |
|
170
|
|
* |
|
171
|
|
* @param f1 A fraction |
|
172
|
|
* @param f2 A fraction to be subtracted from `f1`. |
|
173
|
|
* @return Result of the subtraction |
|
174
|
|
*/ |
|
175
|
|
public static Fraction subtract(Fraction f1, Fraction f2) { |
|
176
|
|
int n, |
|
177
|
|
d; |
|
178
|
|
|
|
179
|
3
1. subtract : Replaced integer subtraction with addition → KILLED
2. subtract : Replaced integer multiplication with division → KILLED
3. subtract : Replaced integer multiplication with division → KILLED
|
n = f1.numerator * f2.denominator - f2.numerator * f1.denominator; |
|
180
|
1
1. subtract : Replaced integer multiplication with division → KILLED
|
d = f1.denominator * f2.denominator; |
|
181
|
1
1. subtract : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::subtract → KILLED
|
return new Fraction(n, d); |
|
182
|
|
} |
|
183
|
|
|
|
184
|
|
|
|
185
|
|
/** |
|
186
|
|
* Multiplies two fractions. |
|
187
|
|
* |
|
188
|
|
* @param f1 A fraction. |
|
189
|
|
* @param f2 Another fraction. |
|
190
|
|
* @return A multiplied result. |
|
191
|
|
*/ |
|
192
|
|
public static Fraction multi(Fraction f1, Fraction f2) { |
|
193
|
3
1. multi : Replaced integer multiplication with division → KILLED
2. multi : Replaced integer multiplication with division → KILLED
3. multi : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::multi → KILLED
|
return new Fraction(f1.numerator * f2.numerator, f1.denominator * f2.denominator); |
|
194
|
|
} |
|
195
|
|
|
|
196
|
|
/** |
|
197
|
|
* Divides `f1` by `f2`. |
|
198
|
|
* |
|
199
|
|
* @param f1 A fraction to be divided. |
|
200
|
|
* @param f2 A divisor. |
|
201
|
|
* @return Result of the division. |
|
202
|
|
*/ |
|
203
|
|
public static Fraction div(Fraction f1, Fraction f2) { |
|
204
|
3
1. div : Replaced integer multiplication with division → KILLED
2. div : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::div → KILLED
3. div : Replaced integer multiplication with division → KILLED
|
return new Fraction(f1.numerator * f2.denominator, f1.denominator * f2.numerator); |
|
205
|
|
} |
|
206
|
|
|
|
207
|
|
/** |
|
208
|
|
* Returns the comparison result. |
|
209
|
|
* |
|
210
|
|
* @param f1 A fraction. |
|
211
|
|
* @param f2 A fraction to be compared with `f1`. |
|
212
|
|
* @return negative - `f1` is little than `f2`/ 0 - `f1` and `f2` are equal/ positive - `f1`is greater than `f2`. |
|
213
|
|
*/ |
|
214
|
|
public static int compare(Fraction f1, Fraction f2) { |
|
215
|
|
Fraction sub = subtract(f1, f2); |
|
216
|
2
1. compare : Replaced integer multiplication with division → KILLED
2. compare : replaced int return with 0 for com/github/dakusui/symfonion/utils/Fraction::compare → KILLED
|
return sub.numerator * sub.denominator; |
|
217
|
|
} |
|
218
|
|
|
|
219
|
|
/** |
|
220
|
|
* Returns a greater one from `f1`and `f2`. |
|
221
|
|
* When `f1` and `f2`, either of them may be returned. |
|
222
|
|
* |
|
223
|
|
* @param f1 A fraction |
|
224
|
|
* @param f2 Another fraction |
|
225
|
|
* @return Greater one of `f1` and `f2`. |
|
226
|
|
*/ |
|
227
|
|
public static Fraction max(Fraction f1, Fraction f2) { |
|
228
|
3
1. max : changed conditional boundary → SURVIVED
2. max : negated conditional → KILLED
3. max : Replaced double subtraction with addition → KILLED
|
if (f1.doubleValue() - f2.doubleValue() >= 0) |
|
229
|
1
1. max : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::max → KILLED
|
return f1; |
|
230
|
|
else |
|
231
|
1
1. max : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::max → KILLED
|
return f2; |
|
232
|
|
} |
|
233
|
|
|
|
234
|
|
/** |
|
235
|
|
* Returns a non-greater fraction from `f1` and `f2`. |
|
236
|
|
* |
|
237
|
|
* @param f1 A fraction |
|
238
|
|
* @param f2 Another fraction |
|
239
|
|
* @return A non-greater fraction. |
|
240
|
|
*/ |
|
241
|
|
public static Fraction min(Fraction f1, Fraction f2) { |
|
242
|
3
1. min : changed conditional boundary → SURVIVED
2. min : Replaced double subtraction with addition → KILLED
3. min : negated conditional → KILLED
|
if (f1.doubleValue() - f2.doubleValue() <= 0) |
|
243
|
1
1. min : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::min → KILLED
|
return f1; |
|
244
|
|
else |
|
245
|
1
1. min : replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::min → KILLED
|
return f2; |
|
246
|
|
} |
|
247
|
|
|
|
248
|
|
public boolean isNegative() { |
|
249
|
4
1. isNegative : Replaced float multiplication with division → SURVIVED
2. isNegative : negated conditional → TIMED_OUT
3. isNegative : replaced boolean return with true for com/github/dakusui/symfonion/utils/Fraction::isNegative → TIMED_OUT
4. isNegative : changed conditional boundary → KILLED
|
return Math.signum(this.numerator) * Math.signum(this.denominator) < 0; |
|
250
|
|
} |
|
251
|
|
} |
| | Mutations |
| 72 |
|
1.1 Location : parseFraction Killed by : com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalFraction()] negated conditional → KILLED
|
| 76 |
|
1.1 Location : parseFraction Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#2] negated conditional → KILLED
|
| 79 |
|
1.1 Location : parseFraction Killed by : none replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::parseFraction → SURVIVED
Covering tests
Covered by tests:
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#2]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#3]
- com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:missingSection_groove()]
- com.github.dakusui.symfonion.tests.ReferenceErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.ReferenceErrorTest]/[method:missingNoteMap()]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#4]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#8]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#10]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#9]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#11]
- com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalNoteLength_02()]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#12]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[method:pickupNotation_noteOnAtCorrectTick()]
- com.github.dakusui.symfonion.tests.ReferenceErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.ReferenceErrorTest]/[method:missingNote()]
- com.github.dakusui.symfonion.tests.ReferenceErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.ReferenceErrorTest]/[method:missingGroove()]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#7]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#6]
- com.github.dakusui.symfonion.tests.InvalidJsonErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidJsonErrorTest]/[method:missingSection_parts()]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#5]
- com.github.dakusui.symfonion.tests.InvalidDataErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.InvalidDataErrorTest]/[method:illegalNoteLength_03()]
- com.github.dakusui.symfonion.tests.cli.subcommands.CompatCompileTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.cli.subcommands.CompatCompileTest]/[method:test()]
- com.github.dakusui.symfonion.tests.ReferenceErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.ReferenceErrorTest]/[method:missingPart()]
|
| 98 |
|
1.1 Location : clone Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A01()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::clone → KILLED
|
| 104 |
|
1.1 Location : gcd Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_3()] negated conditional → KILLED
|
| 107 |
|
1.1 Location : gcd Killed by : none Replaced integer modulus with multiplication → TIMED_OUT
|
| 109 |
|
1.1 Location : gcd Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_2()] replaced int return with 0 for com/github/dakusui/symfonion/utils/Fraction::gcd → KILLED
|
| 118 |
|
1.1 Location : doubleValue Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_fractionPortion_91()] Replaced double multiplication with division → KILLED
2.2 Location : doubleValue Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_fractionPortion_91()] Replaced double division with multiplication → KILLED
3.3 Location : doubleValue Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_fractionPortion_91()] replaced double return with 0.0d for com/github/dakusui/symfonion/utils/Fraction::doubleValue → KILLED
|
| 127 |
|
1.1 Location : wholePortion Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_fractionPortion_91()] replaced int return with 0 for com/github/dakusui/symfonion/utils/Fraction::wholePortion → KILLED
|
| 137 |
|
1.1 Location : fractionPortion Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_fractionPortion_91()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::fractionPortion → KILLED
|
| 142 |
|
1.1 Location : equals Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_4()] negated conditional → KILLED
|
| 143 |
|
1.1 Location : equals Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_4()] replaced boolean return with true for com/github/dakusui/symfonion/utils/Fraction::equals → KILLED
|
| 144 |
|
1.1 Location : equals Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_1()] negated conditional → KILLED
2.2 Location : equals Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_3()] replaced boolean return with true for com/github/dakusui/symfonion/utils/Fraction::equals → KILLED
3.3 Location : equals Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_equals_3()] negated conditional → KILLED
|
| 149 |
|
1.1 Location : toString Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_toString()] replaced return value with "" for com/github/dakusui/symfonion/utils/Fraction::toString → KILLED
|
| 163 |
|
1.1 Location : add Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B04()] Replaced integer multiplication with division → KILLED
2.2 Location : add Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B04()] Replaced integer multiplication with division → KILLED
3.3 Location : add Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A01()] Replaced integer addition with subtraction → KILLED
|
| 164 |
|
1.1 Location : add Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A01()] Replaced integer multiplication with division → KILLED
|
| 165 |
|
1.1 Location : add Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A01()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::add → KILLED
|
| 179 |
|
1.1 Location : subtract Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_compare_02()] Replaced integer subtraction with addition → KILLED
2.2 Location : subtract Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_compare_03()] Replaced integer multiplication with division → KILLED
3.3 Location : subtract Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_compare_02()] Replaced integer multiplication with division → KILLED
|
| 180 |
|
1.1 Location : subtract Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A05()] Replaced integer multiplication with division → KILLED
|
| 181 |
|
1.1 Location : subtract Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_compare_02()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::subtract → KILLED
|
| 193 |
|
1.1 Location : multi Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_multiply_01()] Replaced integer multiplication with division → KILLED
2.2 Location : multi Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_multiply_01()] Replaced integer multiplication with division → KILLED
3.3 Location : multi Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_multiply_01()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::multi → KILLED
|
| 204 |
|
1.1 Location : div Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B02()] Replaced integer multiplication with division → KILLED
2.2 Location : div Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B02()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::div → KILLED
3.3 Location : div Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#4] Replaced integer multiplication with division → KILLED
|
| 216 |
|
1.1 Location : compare Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_compare_02()] Replaced integer multiplication with division → KILLED
2.2 Location : compare Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_compare_02()] replaced int return with 0 for com/github/dakusui/symfonion/utils/Fraction::compare → KILLED
|
| 228 |
|
1.1 Location : max Killed by : none changed conditional boundary → SURVIVED
Covering tests
Covered by tests:
- com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_max_2()]
- com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_max_1()]
2.2 Location : max Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_max_2()] negated conditional → KILLED
3.3 Location : max Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_max_1()] Replaced double subtraction with addition → KILLED
|
| 229 |
|
1.1 Location : max Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_max_2()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::max → KILLED
|
| 231 |
|
1.1 Location : max Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_max_1()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::max → KILLED
|
| 242 |
|
1.1 Location : min Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_min_1()] Replaced double subtraction with addition → KILLED
2.2 Location : min Killed by : none changed conditional boundary → SURVIVED
Covering tests
Covered by tests:
- com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_min_1()]
- com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_min_2()]
3.3 Location : min Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_min_1()] negated conditional → KILLED
|
| 243 |
|
1.1 Location : min Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_min_1()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::min → KILLED
|
| 245 |
|
1.1 Location : min Killed by : com.github.dakusui.symfonion.tests.core.FractionTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.core.FractionTest]/[method:test_min_2()] replaced return value with null for com/github/dakusui/symfonion/utils/Fraction::min → KILLED
|
| 249 |
|
1.1 Location : isNegative Killed by : com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A01()] changed conditional boundary → KILLED
2.2 Location : isNegative Killed by : none negated conditional → TIMED_OUT
3.3 Location : isNegative Killed by : none replaced boolean return with true for com/github/dakusui/symfonion/utils/Fraction::isNegative → TIMED_OUT
4.4 Location : isNegative Killed by : none Replaced float multiplication with division → SURVIVED
Covering tests
Covered by tests:
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A01()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B01()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A05()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B02()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B06()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B03b()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A02()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B04()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A04()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A03()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B05()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_B03a()]
- com.github.dakusui.symfonion.tests.song.GrooveTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.song.GrooveTest]/[method:test_A06()]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#4]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#8]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#13]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#10]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#9]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#11]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#12]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[method:pickupNotation_noteOnAtCorrectTick()]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#7]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#6]
- com.github.dakusui.symfonion.tests.MidiCompilerTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.MidiCompilerTest]/[test-template:exercise(com.github.dakusui.symfonion.testutils.SymfonionTestCase)]/[test-template-invocation:#5]
- com.github.dakusui.symfonion.tests.cli.subcommands.CompatCompileTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.cli.subcommands.CompatCompileTest]/[method:test()]
- com.github.dakusui.symfonion.tests.ReferenceErrorTest.[engine:junit-jupiter]/[class:com.github.dakusui.symfonion.tests.ReferenceErrorTest]/[method:missingPart()]
|