MOS6502ALU.java

1
package com.rox.cpu.mos6502;
2
3
public class MOS6502ALU {
4
    private final int[] BIT = {
5
            0b0000_0001,
6
            0b0000_0010,
7
            0b0000_0100,
8
            0b0000_1000,
9
            0b0001_0000,
10
            0b0010_0000,
11
            0b0100_0000,
12
            0b1000_0000
13
    };
14
15
    private final MOS6502Environment environment;
16
17
    public MOS6502ALU(final MOS6502Environment environment){
18
        this.environment = environment;
19
    }
20
21
    public int adc(final int b){
22
        int a = environment.getA();
23 3 1. adc : negated conditional → KILLED
2. adc : Replaced integer addition with subtraction → KILLED
3. adc : Replaced integer addition with subtraction → KILLED
        int result = a + b + (environment.getCarry()?1:0);
24
25 7 1. adc : negated conditional → KILLED
2. adc : Replaced bitwise AND with OR → KILLED
3. adc : Replaced bitwise AND with OR → KILLED
4. adc : Replaced XOR with AND → KILLED
5. adc : Replaced XOR with AND → KILLED
6. adc : removed call to com/rox/cpu/mos6502/MOS6502Environment::setV → KILLED
7. adc : Replaced XOR with AND → KILLED
        environment.setV((~(a ^ b) & (a ^ result) & BIT[7]) != 0); //matching signs result in mismatched sign
26 3 1. adc : changed conditional boundary → KILLED
2. adc : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
3. adc : negated conditional → KILLED
        environment.setCarry(result > 0xFF); //result is > 255
27 2 1. adc : removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED
2. adc : Replaced bitwise AND with OR → KILLED
        environment.setA(result & 0xFF);
28 2 1. adc : Replaced bitwise AND with OR → SURVIVED
2. adc : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::adc → SURVIVED
        return (result & 0xFF);
29
    }
30
31
    public int and(int b) {
32
        int a = environment.getA();
33 1 1. and : Replaced bitwise AND with OR → KILLED
        int result = a & b;
34
35 2 1. and : Replaced bitwise AND with OR → KILLED
2. and : removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED
        environment.setA(result & 0xFF);
36 2 1. and : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::and → SURVIVED
2. and : Replaced bitwise AND with OR → SURVIVED
        return (result & 0xFF);
37
    }
38
39
    public int ora(int b) {
40
        int a = environment.getA();
41 1 1. ora : Replaced bitwise OR with AND → KILLED
        int result = a | b;
42
43 2 1. ora : removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED
2. ora : Replaced bitwise AND with OR → KILLED
        environment.setA(result & 0xFF);
44 2 1. ora : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::ora → SURVIVED
2. ora : Replaced bitwise AND with OR → SURVIVED
        return (result & 0xFF);
45
    }
46
47
    public int eor(int b) {
48
        int a = environment.getA();
49 1 1. eor : Replaced XOR with AND → KILLED
        int result = a ^ b;
50
51 2 1. eor : removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED
2. eor : Replaced bitwise AND with OR → KILLED
        environment.setA(result & 0xFF);
52 2 1. eor : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::eor → SURVIVED
2. eor : Replaced bitwise AND with OR → SURVIVED
        return (result & 0xFF);
53
    }
54
55
    public int sbc(int b) {
56 3 1. sbc : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::sbc → SURVIVED
2. sbc : Replaced bitwise AND with OR → KILLED
3. sbc : Replaced XOR with AND → KILLED
        return adc(~b & 0xFF);
57
    }
58
59
    public void cmp(int operand) {
60 1 1. cmp : Replaced integer subtraction with addition → KILLED
        int result = environment.getA() - operand;
61
62 3 1. cmp : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
2. cmp : negated conditional → KILLED
3. cmp : changed conditional boundary → KILLED
        environment.setCarry(result >= 0);
63 2 1. cmp : removed call to com/rox/cpu/mos6502/MOS6502ALU::setStaticFlags → KILLED
2. cmp : Replaced bitwise AND with OR → KILLED
        setStaticFlags(result & 0xFF);
64
    }
65
66
    public void cpx(int operand) {
67 1 1. cpx : Replaced integer subtraction with addition → KILLED
        int result = environment.getX() - operand;
68
69 3 1. cpx : changed conditional boundary → KILLED
2. cpx : negated conditional → KILLED
3. cpx : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
        environment.setCarry(result >= 0);
70 2 1. cpx : removed call to com/rox/cpu/mos6502/MOS6502ALU::setStaticFlags → KILLED
2. cpx : Replaced bitwise AND with OR → KILLED
        setStaticFlags(result & 0xFF);
71
    }
72
73
    public void cpy(int operand) {
74 1 1. cpy : Replaced integer subtraction with addition → KILLED
        int result = environment.getY() - operand;
75
76 3 1. cpy : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
2. cpy : negated conditional → KILLED
3. cpy : changed conditional boundary → KILLED
        environment.setCarry(result >= 0);
77 2 1. cpy : Replaced bitwise AND with OR → KILLED
2. cpy : removed call to com/rox/cpu/mos6502/MOS6502ALU::setStaticFlags → KILLED
        setStaticFlags(result & 0xFF);
78
    }
79
80
    public void bit(final int operand) {
81 3 1. bit : removed call to com/rox/cpu/mos6502/MOS6502Environment::setN → KILLED
2. bit : negated conditional → KILLED
3. bit : Replaced bitwise AND with OR → KILLED
        environment.setN((operand & BIT[7]) != 0);
82 3 1. bit : Replaced bitwise AND with OR → KILLED
2. bit : removed call to com/rox/cpu/mos6502/MOS6502Environment::setV → KILLED
3. bit : negated conditional → KILLED
        environment.setV((operand & BIT[6]) != 0);
83 3 1. bit : removed call to com/rox/cpu/mos6502/MOS6502Environment::setZ → KILLED
2. bit : Replaced bitwise AND with OR → KILLED
3. bit : negated conditional → KILLED
        environment.setZ((environment.getA() & operand) == 0);
84
    }
85
86
    public int asl(final int operand) {
87 3 1. asl : Replaced bitwise AND with OR → KILLED
2. asl : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
3. asl : negated conditional → KILLED
        environment.setCarry((operand & BIT[7]) != 0);
88 3 1. asl : Replaced Shift Left with Shift Right → KILLED
2. asl : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::asl → KILLED
3. asl : Replaced bitwise AND with OR → KILLED
        return (operand << 1) & 0xFF;
89
    }
90
91
    public int lsr(final int operand) {
92 3 1. lsr : negated conditional → KILLED
2. lsr : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
3. lsr : Replaced bitwise AND with OR → KILLED
        environment.setCarry((operand & BIT[0]) != 0);
93 3 1. lsr : Replaced bitwise AND with OR → KILLED
2. lsr : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::lsr → KILLED
3. lsr : Replaced Shift Right with Shift Left → KILLED
        return (operand >> 1) & 0xFF;
94
    }
95
96
    public int rol(final int operand) {
97
        final boolean oldCarry = environment.getCarry();
98
99 3 1. rol : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
2. rol : Replaced bitwise AND with OR → KILLED
3. rol : negated conditional → KILLED
        environment.setCarry((operand & BIT[7]) != 0);
100 2 1. rol : Replaced Shift Left with Shift Right → KILLED
2. rol : Replaced bitwise AND with OR → KILLED
        int result = (operand << 1) & 0xFF;
101 1 1. rol : negated conditional → KILLED
        if (oldCarry) {
102 1 1. rol : Replaced bitwise OR with AND → KILLED
            result |= BIT[0];
103
        }
104 1 1. rol : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::rol → KILLED
        return result;
105
    }
106
107
    public int ror(final int operand) {
108
        final boolean oldCarry = environment.getCarry();
109
110 3 1. ror : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
2. ror : Replaced bitwise AND with OR → KILLED
3. ror : negated conditional → KILLED
        environment.setCarry((operand & BIT[0]) != 0);
111 2 1. ror : Replaced bitwise AND with OR → KILLED
2. ror : Replaced Shift Right with Shift Left → KILLED
        int result = (operand >> 1) & 0xFF;
112 1 1. ror : negated conditional → KILLED
        if (oldCarry) {
113 1 1. ror : Replaced bitwise OR with AND → KILLED
            result |= BIT[7];
114
        }
115 1 1. ror : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::ror → KILLED
        return result;
116
    }
117
118
    public void setStaticFlags(final int basedOn) {
119 3 1. setStaticFlags : Replaced bitwise AND with OR → KILLED
2. setStaticFlags : removed call to com/rox/cpu/mos6502/MOS6502Environment::setN → KILLED
3. setStaticFlags : negated conditional → KILLED
        environment.setN((basedOn & BIT[7]) != 0); //bit 7 is set
120 2 1. setStaticFlags : removed call to com/rox/cpu/mos6502/MOS6502Environment::setZ → KILLED
2. setStaticFlags : negated conditional → KILLED
        environment.setZ(basedOn == 0); //result is zero
121
    }
122
}

Mutations

23

1.1
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
negated conditional → KILLED

2.2
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#6]
Replaced integer addition with subtraction → KILLED

3.3
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
Replaced integer addition with subtraction → KILLED

25

1.1
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
negated conditional → KILLED

2.2
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
Replaced bitwise AND with OR → KILLED

3.3
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
Replaced bitwise AND with OR → KILLED

4.4
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#12]
Replaced XOR with AND → KILLED

5.5
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#6]
Replaced XOR with AND → KILLED

6.6
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#12]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setV → KILLED

7.7
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
Replaced XOR with AND → KILLED

26

1.1
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testSBC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#14]
changed conditional boundary → KILLED

2.2
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

3.3
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
negated conditional → KILLED

27

1.1
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED

2.2
Location : adc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testADC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#16]
Replaced bitwise AND with OR → KILLED

28

1.1
Location : adc
Killed by : none
Replaced bitwise AND with OR → SURVIVED
Covering tests

2.2
Location : adc
Killed by : none
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::adc → SURVIVED Covering tests

33

1.1
Location : and
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testAND(int, int, int, boolean, boolean)]/[test-template-invocation:#8]
Replaced bitwise AND with OR → KILLED

35

1.1
Location : and
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testAND(int, int, int, boolean, boolean)]/[test-template-invocation:#8]
Replaced bitwise AND with OR → KILLED

2.2
Location : and
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testAND(int, int, int, boolean, boolean)]/[test-template-invocation:#8]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED

36

1.1
Location : and
Killed by : none
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::and → SURVIVED
Covering tests

2.2
Location : and
Killed by : none
Replaced bitwise AND with OR → SURVIVED Covering tests

41

1.1
Location : ora
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testORA(int, int, int, boolean, boolean)]/[test-template-invocation:#13]
Replaced bitwise OR with AND → KILLED

43

1.1
Location : ora
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testORA(int, int, int, boolean, boolean)]/[test-template-invocation:#13]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED

2.2
Location : ora
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testORA(int, int, int, boolean, boolean)]/[test-template-invocation:#13]
Replaced bitwise AND with OR → KILLED

44

1.1
Location : ora
Killed by : none
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::ora → SURVIVED
Covering tests

2.2
Location : ora
Killed by : none
Replaced bitwise AND with OR → SURVIVED Covering tests

49

1.1
Location : eor
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
Replaced XOR with AND → KILLED

51

1.1
Location : eor
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setA → KILLED

2.2
Location : eor
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
Replaced bitwise AND with OR → KILLED

52

1.1
Location : eor
Killed by : none
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::eor → SURVIVED
Covering tests

2.2
Location : eor
Killed by : none
Replaced bitwise AND with OR → SURVIVED Covering tests

56

1.1
Location : sbc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testSBC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
Replaced bitwise AND with OR → KILLED

2.2
Location : sbc
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testSBC(int, int, boolean, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
Replaced XOR with AND → KILLED

3.3
Location : sbc
Killed by : none
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::sbc → SURVIVED
Covering tests

60

1.1
Location : cmp
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCMP(int, int, boolean, boolean, boolean)]/[test-template-invocation:#8]
Replaced integer subtraction with addition → KILLED

62

1.1
Location : cmp
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCMP(int, int, boolean, boolean, boolean)]/[test-template-invocation:#8]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

2.2
Location : cmp
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCMP(int, int, boolean, boolean, boolean)]/[test-template-invocation:#8]
negated conditional → KILLED

3.3
Location : cmp
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCMP(int, int, boolean, boolean, boolean)]/[test-template-invocation:#6]
changed conditional boundary → KILLED

63

1.1
Location : cmp
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCMP(int, int, boolean, boolean, boolean)]/[test-template-invocation:#4]
removed call to com/rox/cpu/mos6502/MOS6502ALU::setStaticFlags → KILLED

2.2
Location : cmp
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCMP(int, int, boolean, boolean, boolean)]/[test-template-invocation:#8]
Replaced bitwise AND with OR → KILLED

67

1.1
Location : cpx
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#11]
Replaced integer subtraction with addition → KILLED

69

1.1
Location : cpx
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
changed conditional boundary → KILLED

2.2
Location : cpx
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#11]
negated conditional → KILLED

3.3
Location : cpx
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

70

1.1
Location : cpx
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#12]
removed call to com/rox/cpu/mos6502/MOS6502ALU::setStaticFlags → KILLED

2.2
Location : cpx
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#11]
Replaced bitwise AND with OR → KILLED

74

1.1
Location : cpy
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#10]
Replaced integer subtraction with addition → KILLED

76

1.1
Location : cpy
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#3]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

2.2
Location : cpy
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#10]
negated conditional → KILLED

3.3
Location : cpy
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
changed conditional boundary → KILLED

77

1.1
Location : cpy
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#11]
Replaced bitwise AND with OR → KILLED

2.2
Location : cpy
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#10]
removed call to com/rox/cpu/mos6502/MOS6502ALU::setStaticFlags → KILLED

81

1.1
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setN → KILLED

2.2
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
negated conditional → KILLED

3.3
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#3]
Replaced bitwise AND with OR → KILLED

82

1.1
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#3]
Replaced bitwise AND with OR → KILLED

2.2
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setV → KILLED

3.3
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
negated conditional → KILLED

83

1.1
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setZ → KILLED

2.2
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
Replaced bitwise AND with OR → KILLED

3.3
Location : bit
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#2]
negated conditional → KILLED

87

1.1
Location : asl
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#2]
Replaced bitwise AND with OR → KILLED

2.2
Location : asl
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#4]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

3.3
Location : asl
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#2]
negated conditional → KILLED

88

1.1
Location : asl
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#2]
Replaced Shift Left with Shift Right → KILLED

2.2
Location : asl
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#2]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::asl → KILLED

3.3
Location : asl
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#2]
Replaced bitwise AND with OR → KILLED

92

1.1
Location : lsr
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testLSR(int, int, boolean)]/[test-template-invocation:#3]
negated conditional → KILLED

2.2
Location : lsr
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testLSR(int, int, boolean)]/[test-template-invocation:#3]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

3.3
Location : lsr
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testLSR(int, int, boolean)]/[test-template-invocation:#1]
Replaced bitwise AND with OR → KILLED

93

1.1
Location : lsr
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testLSR(int, int, boolean)]/[test-template-invocation:#3]
Replaced bitwise AND with OR → KILLED

2.2
Location : lsr
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testLSR(int, int, boolean)]/[test-template-invocation:#3]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::lsr → KILLED

3.3
Location : lsr
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testLSR(int, int, boolean)]/[test-template-invocation:#3]
Replaced Shift Right with Shift Left → KILLED

99

1.1
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#5]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

2.2
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#5]
Replaced bitwise AND with OR → KILLED

3.3
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#4]
negated conditional → KILLED

100

1.1
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#4]
Replaced Shift Left with Shift Right → KILLED

2.2
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#4]
Replaced bitwise AND with OR → KILLED

101

1.1
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#4]
negated conditional → KILLED

102

1.1
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#4]
Replaced bitwise OR with AND → KILLED

104

1.1
Location : rol
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROL(int, boolean, int, boolean)]/[test-template-invocation:#4]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::rol → KILLED

110

1.1
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

2.2
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
Replaced bitwise AND with OR → KILLED

3.3
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
negated conditional → KILLED

111

1.1
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
Replaced bitwise AND with OR → KILLED

2.2
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
Replaced Shift Right with Shift Left → KILLED

112

1.1
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
negated conditional → KILLED

113

1.1
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
Replaced bitwise OR with AND → KILLED

115

1.1
Location : ror
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#3]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502ALU::ror → KILLED

119

1.1
Location : setStaticFlags
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
Replaced bitwise AND with OR → KILLED

2.2
Location : setStaticFlags
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#7]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setN → KILLED

3.3
Location : setStaticFlags
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
negated conditional → KILLED

120

1.1
Location : setStaticFlags
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#5]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setZ → KILLED

2.2
Location : setStaticFlags
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
negated conditional → KILLED

Active mutators

Tests examined


Report generated by PIT 1.22.1