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