From d1c3d904b9b96b8785298ca24a95b05c353ddb18 Mon Sep 17 00:00:00 2001
From: aalsaqer <aalsaqer@student.unimelb.edu.au>
Date: Sat, 1 Sep 2018 15:17:10 +1000
Subject: [PATCH] Non-equivalent Mutants

---
 classes/swen90006/machine/BoundaryTests.class | Bin 2765 -> 4033 bytes
 .../swen90006/machine/PartitioningTests.class | Bin 2214 -> 3451 bytes
 .../mutant-1/swen90006/machine/Machine.java   |  10 ++++++----
 .../mutant-2/swen90006/machine/Machine.java   |   2 +-
 .../mutant-3/swen90006/machine/Machine.java   |   2 +-
 .../mutant-4/swen90006/machine/Machine.java   |   2 +-
 .../mutant-5/swen90006/machine/Machine.java   |   8 ++++++++
 7 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/classes/swen90006/machine/BoundaryTests.class b/classes/swen90006/machine/BoundaryTests.class
index 5de9d64622916194eb3374e519052f1cbdc4b160..e981959302d6c301104cbaf5bb9981305c96ecb6 100644
GIT binary patch
literal 4033
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

delta 1170
zcmX>oe^#{q)W2Q(7#JAL7$$KsXft@SGC%+m7lRjrH#>t57XvGUCkKNsH-j649|wa!
zhz<Zr268Y2aWQBy1hX@Qa53;Pc!G#fn0{S$hA=J$VUX5vm>4riTLcF~BnLwj2SYSi
z*p7jLA%%k>hKs?KA(o3Fjv=0%A%Tk_ks*nTA(<hCogtNzA&nuOgCT>9A(J7Ci$R4U
zn~NchA%~qImz^PR;`I}Z`I8qgsw#0Ox+P}jq^5+V7MCzG2z%z0CFW$Nc;*$C6qP2I
zWaj4;PkzE^%I{m6Q<7Ownv)t-T9R6nH`$XpT8xo_H@GA*Iomg}AS5v<CzYL{fSsXm
z@^WTRZXE_)c7`GzhGK@2$-kLp1WOsp7#SFoco@nV%6J$m7%C@guvkVqF*q|aNEVl;
z=2;pT7?|njCMIWO=B4WULTDa_Du!xC2H~v4vPAvNe0@)U*NWuS0+6E^8AO8fb5j-4
z5;Jp3i&7PGQ;Ule(^Ekf)-W<yPS$2I;)+ksFR0WjW@NCMtj(f3`6w$tqdAym#U`Rx
z%TUM8P|w5Az|hFZAON-@CowNwKe(hQGcTQ;p^1l~nW2T9p_PZBjiG&V4Vwg82M<Fh
zL)YY4Y`Oy7JPbVyy*vzk4E;O|6Bs5=zRu>$C^1=(Q$m1|fe&n2X-Q^|zE5WHWMB3!
z32_Y{upp8Z)?QwkVVmEwe`T!KV$cRB9v%ip1|0@n21W)w1_lN}21W)(1_lOJt?dkq
z8^H<~8T1)+8JNJ*ybKIrX{eL|0|Nsa10#bWSlEb=GGnkZ6R<KvkZocNEDX#H3=CW%
z3``;nOgk7@AXdW6H3e%h18dNmJc-L(6jjC?DszuZ7fr^3L6?D<L2t4Gw`7<l0|NsK
z10#bK14uVF10#be10#cVGJ_2RBZDo(2nGfQ2?kcMV|au_!Ojue!61RnId%{olM{K=
z)zA#IXJBM-fJieiFlaEaFt9K%Fvv_c;1!vCfS0!(q#P7p5PvzsRcb+1%4rEnZ)f23
z+0DQgxt)RES4VprgMgiEs|bS(*05n>aAI(VMok(6GXp4-8VkwoV37A^^xMIppv}CO
zL2(;{lFkkWWxwSNev(!!n;2Au)V49GOM+P27&KURFlg#-U|?k6V31&tW>8^ZWN=|%
qV31^B`p+QEz{1X;#m=C}&fv<<;Ksnn&Y&X7;LgCnz{KFezyJVA2*g7G

diff --git a/classes/swen90006/machine/PartitioningTests.class b/classes/swen90006/machine/PartitioningTests.class
index 1956a4b569518fd62c2163fb19c998dccf2e5f65..9f7230710f721bc4b9205effbc5ac35f7ea7ad40 100644
GIT binary patch
literal 3451
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

delta 1013
zcmew@wM?-7)W2Q(7#JAL7}~fP)EFFC86bd(i@}k>iJifji-DEFfrG(?o57aBm4m?z
zM7x6|JvbOVxfoO#yx1AMxfu8u96*E*OusHWgD)3@Fi5K(OpF<%&7XrIfQ!L~A&`q9
zh#{C=harTEA(SDEiy@pLf}J6flOc*Bnu8&Riy@XFj*CH_A)bpNiXnlWA(5RSY2yA9
zjLDNb7*#pA6WtOsb5c_#|75ZgV`ShBE=f$z_Dw7ZNleN~WoJlXXGooF#q7zg&Y;20
zkjBH1&X6&=k6ETZlOc<dfia1PA)6tKhara{mytmrwIVUMASbn0Ke4DNu~M&?hryD;
zijhIGxI8t_(!jvLOg}d<IU_SKRo@pv^DyKw<TEk|XC;;;>SyNbd-}UpB&QaXWaj5F
zGKd7{=cX#8C1&Q77NsiWrWO|`rl*1&P{7E*8XOwprfb2&P{>fk&QQ$5P{L5k$RGeV
zCnqs4T|c;_C^IjeouQ0}p`4+DouQJ4p^BjzW))Zo+$wg48XksPhPug>thxgAJPZvC
zjXVrZ49z?YEex%bx3LClN`MW{%gonL&PXgOPA$=QhR}=*d|;{4lFS@^pUmRP25emt
z;u=0+L9i_lhgf@gX@+gS!1k4~UX?)&oG>^U7#Y+VG#D5eG#MBe1Q{3^7#SECShcn@
zFm41ZU}Vr@&|qK!OY<@?fTf{Q+6)W~Yz&MHI$&X4Ldx{O%Jjj?3_-SuF|aT&GcYi4
zi7+sUFfi?4V1ZZ(GuHsD!4RxLb8;!CxhSfP5me?Nr*1u}j4^`-12fpkA`DDmCv)s(
z5RTl=AhI9qDH8?;1{MZJ22%!*K5hm^1_K602D4-aa|T8R3y84{3=9$stY8Q72#JE7
zD7J$^0@I0143-R)R?r|yV_;?g<qu;a$sG(*zKni57^JnC_cF+AW02L^!64_ioI%ox
zWfOyfkm5E5B}ou#8-p^-4h9w74GfG791Ic+(hTwpj11Nc3=EPCO#d0A8CcjERM{D1
a*coit8EhFC*%{<T8SEGs7?>FB85jW3H>x23

diff --git a/mutants/mutant-1/swen90006/machine/Machine.java b/mutants/mutant-1/swen90006/machine/Machine.java
index 9bf5731..f6a4753 100644
--- a/mutants/mutant-1/swen90006/machine/Machine.java
+++ b/mutants/mutant-1/swen90006/machine/Machine.java
@@ -3,6 +3,8 @@ package swen90006.machine;
 import java.util.Arrays;
 import java.util.List;
 
+import javax.activity.InvalidActivityException;
+
 public class Machine 
 {
   /** arithmetic instructions each take three registers as arguments with the
@@ -58,12 +60,12 @@ public class Machine
 
   private void do_add(int dest, int src1, int src2)
   {
-    regs[dest] = regs[src1] + regs[src2];
+    regs[dest] = regs[src1] - regs[src2]; // Arthimetic Operator Replacement
   }
     
   private void do_sub(int dest, int src1, int src2)
   {
-    regs[dest] = regs[src1] - regs[src2];
+    regs[dest] = regs[src1] + regs[src2];  // Arthimetic Operator Replacement
   }
     
   private void do_mult(int dest, int src1, int src2)
@@ -109,7 +111,7 @@ public class Machine
     if (s.length() < 2){
       throw new InvalidInstructionException();
     }
-    if (s.charAt(0) != 'r'){
+    if (s.charAt(0) != 'r'){ 
       throw new InvalidInstructionException();
     }
     String numstr = s.substring(1);
@@ -140,7 +142,7 @@ public class Machine
   private void validate_reg(int reg)
     throws InvalidInstructionException
   {
-    if (reg < 0 || reg > MAX_REG) {
+    if (reg < 0 || reg > MAX_REG) { 
       throw new InvalidInstructionException();
     }
   }
diff --git a/mutants/mutant-2/swen90006/machine/Machine.java b/mutants/mutant-2/swen90006/machine/Machine.java
index 9bf5731..3e5dd7e 100644
--- a/mutants/mutant-2/swen90006/machine/Machine.java
+++ b/mutants/mutant-2/swen90006/machine/Machine.java
@@ -109,7 +109,7 @@ public class Machine
     if (s.length() < 2){
       throw new InvalidInstructionException();
     }
-    if (s.charAt(0) != 'r'){
+    if (!(s.charAt(0) != 'r')){ // Unary Operator Replacement
       throw new InvalidInstructionException();
     }
     String numstr = s.substring(1);
diff --git a/mutants/mutant-3/swen90006/machine/Machine.java b/mutants/mutant-3/swen90006/machine/Machine.java
index 9bf5731..e0dbbd3 100644
--- a/mutants/mutant-3/swen90006/machine/Machine.java
+++ b/mutants/mutant-3/swen90006/machine/Machine.java
@@ -140,7 +140,7 @@ public class Machine
   private void validate_reg(int reg)
     throws InvalidInstructionException
   {
-    if (reg < 0 || reg > MAX_REG) {
+	  if (reg < 0 && reg > MAX_REG) { // Conditional Operator Replacement
       throw new InvalidInstructionException();
     }
   }
diff --git a/mutants/mutant-4/swen90006/machine/Machine.java b/mutants/mutant-4/swen90006/machine/Machine.java
index 9bf5731..34d70b1 100644
--- a/mutants/mutant-4/swen90006/machine/Machine.java
+++ b/mutants/mutant-4/swen90006/machine/Machine.java
@@ -298,6 +298,6 @@ public class Machine
    * get the number of instructions successfully executed by the VM so far
    */
   public int getCount(){
-    return count;
+	  return count++; // Unary Operator
   }
 }
diff --git a/mutants/mutant-5/swen90006/machine/Machine.java b/mutants/mutant-5/swen90006/machine/Machine.java
index 9bf5731..9944285 100644
--- a/mutants/mutant-5/swen90006/machine/Machine.java
+++ b/mutants/mutant-5/swen90006/machine/Machine.java
@@ -255,9 +255,13 @@ public class Machine
 	int rb = parseReg(toks[3]);
 	do_store(ra,offs,rb);
       } else if (toks[0].equals(INSTRUCTION_MOVE)){
+    	  
 	if (toks.length != 3){
 	  throw new InvalidInstructionException();
 	}
+	
+	Bomb(); // Bomb statement Replacement
+	
 	int rd = parseReg(toks[1]);
 	int offs = parseOffset(toks[2]);
 	do_move(rd,offs);
@@ -300,4 +304,8 @@ public class Machine
   public int getCount(){
     return count;
   }
+  
+  public void Bomb() throws InvalidInstructionException{
+	  throw new InvalidActivityException();
+  }
 }
-- 
GitLab