From 09ca25fb12badf156fbad1c91ae0e3703105f753 Mon Sep 17 00:00:00 2001 From: Junhan Yang <junhany@student.unimelb.edu.au> Date: Fri, 31 Aug 2018 19:12:02 +1000 Subject: [PATCH] Task 6 mutant modifications --- classes/swen90006/machine/Machine.class | Bin 4003 -> 4003 bytes .../mutant-5/swen90006/machine/Machine.java | 2 +- src/swen90006/machine/Machine.java | 30 +++++++++--------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/classes/swen90006/machine/Machine.class b/classes/swen90006/machine/Machine.class index bc67cdff3d66160515599de443f4aea563326bac..e8ad0e469a8f1238f60c863da1415d3ab8a51b74 100644 GIT binary patch delta 1801 zcmZ21zgWKh)W2Q(7#J8#7>=?t6mT(EF%)t#FftS|GcYnRfLO&KqJ)`&;s1Xw1`&o* zc7`%822O@T5T_hORB$m=GE}iMRC6&fGSq;GTIT=%85p@4>KN)lL<2iRBS>Kr2SYOl zLko!6%E8da!O+gdAX3lJ0TSrsVCdpt=mzQT0TI0%41FNFpMzlnh@Qy7FbPCY=3tn@ z!7vrXoCYGMb1=*R(K9(1W`XG091L?f80K;^%ww3(&ai-s!HA)dgJB_vUIZc*b1^Jo zSjx_@jElj7p^%+n`Nn^b7}*Qh85-FcswY2ZS}ViIAX!|VnrCTXU|^=7o0y!DnU|{X z3!yhpVcx*FIe}G^sh*L+ih+SakU^5cn!$#Fk-?UMfq{uZjzN;a4vDYGAjx2l#8+mJ zWN<*@t1?J3I3n@Y86+8;koX!5k_^sBd~F6v1{V-t18SizgCv71NC3*$XOLuYL*g4u zHsH_~WMPnG@MZ9TJCl8K0f(_PlNR$<24*cGmOWfs8CbOh6hJf^Sa9+_4mln+X{{{` zY%+Qva`FofB~$@1PBZ}*P9+I8S-n{dY|9zMKzfk1*Kz7-u*vAjCJ3=F0Vz-cDFE^3 zfOv4_tRUgZmpJvc*`)PkP!xmsaK&JCAQ7;79WEV4w#kuPie4P7ix{|fGjK+3XW-he z&Ag3)TcBt@k_gK-1|DB#JDnX2ymreOc&%7qYPDpyGw{o<VPIs?V$f$WV&I#6giDK& zbMkvGX?b4T<qSN2aFsIK83bfNDw!DA8MqkuCTnu5GICD#=T?%3*t?N|fq{`Bih+TF zg@K8SogoFxVr1Z)Jb_!nQ*a>zr!*)O;O<0G&x53%fq@~DA&Y^TA%uZ}xtD>3fs28G z*^}9p*-m>WgV5xU+@kfuObiDYM66gPS+_BW3W*7cZ)1=Uk_1yAK_RJa4ANF?l5EUI zV6ON!2AP=*BC;$Ac3P2J7?@cSwlXj;|G&D0iBXbONEWJiA95&y^a{y=_1Q|Y?PEs@ zPA$oLHWs7p4Dx2|T9Rz6U>1j#BpVx;#i=FAF3KUwxt&2_Ia40k7)2b$5M_$eawZM1 zDar^_>QP)nlrbvH86Sa-QAHR-x+!YQ8Rtl{G1nUjse_G?*OG+W4i8vR;uK}qTLZRE z1FQ}+2;th$Lr~KU5rSIF8TG)XXrr1^4^8SwwnL23G{Y7VI?EYefQ``w8)GQRwvP>; z-$AB;B5^x|-g1U@V4eD4oqCdN`&j2QaM#0g1;qQBX6&+}>?n!rZ!lP&0a%|WF*a^t zU=wB6o5jE_E6R~zx150;ExG<>+{9qGo53h@JA<LIkjXX%Q&8$R-Ns<Hjlmr5Ab2c* ibT9vNZa0HP<aP$j$%g!H%$y7sldJd@IhfZlfB^u4pjdGL delta 1799 zcmZ21zgWKh)W2Q(7#J9g8IE!>STPiEGFUPcGBYqTFo0M^AflL=f#LsuE(T$S5_X1C zE(Q*U0uZMRM3i$eR4`PsGgNUgSTa<Dh#Kbq{}~v$8EP5oKtw$|Ljy=*BL_nh2SYQ6 z*}}ol%E8bEVzzVDGYB(ua4>XoFm!=*cY}x?4u)P3-N(Vu527b<FiZr|lQ<YAb1+N+ zF{grvX&emGLG%m`hM6FG76-#@4u(0L409Rgu`|r)VlZSV;9yt)q8EaQMO+Mv8J4g! zEahS_XDDE2SjNt<eB-}IjO@$U85-CbswO{YTDy4z^9DvK$>Q?VJWB%u12g^H#N>?3 zyi|Q(2)#LuRhy~alEI3BfkBW#lEIq6hJlg6mVtqRi9wb@lEDs%ufQP5V2{LCVvuBT zK;o+~NHRDg@zoe48Jv*#>I{+$&PaSM21y1N5MKjop$>y2gDXe?%GYC%WN<^`>rXb| z&=+K8kYw;>@PIp$ZE^vJu{5I=^Hv5XEg|MTTw57fv;-7DG%Hwe@;(kZ9#(0sEexzO zdLVN03l1ez0WnTA0T)gs307IXSqyB;8N@((khRxw>S(aa=*cDsu`K~9Pys0b@#lbe zaOEr@;mMac^|e{0^<+>KgZOa8V09o7uzDRX9Y)s4kz9&i?5v9zxOX#fL~du`+^@~N zje$#`Xg-n%%QgmXUuHX<9Sl5n%NcmBSYT?kWVbW$$*y5wWYA*JXE0*moqU8#i;-jU zdoF2t9^2&%JbrMMGTRyWWk4#K7}y!O7<eaZa;q|OO!ntil84y4k%57Mks*qKfq{jA ziHn^f1<Yb(;FvstTf$RdAp@s0C=}rCL{ZO!q@IC+A(J7CftewMfq}V~frWvKfq~hR z*_PQ(dnbe7<d58<^+HSx2N;B{SS4AvF^C9>3W;rF5EqgFQy@Vh$!!c$R&0`N%tm0Y z*fs{~nG7PbED3g6ky{v;SQ54}FfISTx`l~Rl2u3ss(2rAD1!6~$%6ISO0w-^M+#0Y z$$B;xqwNfGX6#y$Y^-1whn6H88<@qZCCV<!A<DU(L4G+?9@rQK9L5l3isEu64X`On z2vh1&Ttk#G%F7uafsIi?7(==#s>>PYNU|~48wsg_jgi-qgxd}eSWw~=W!GB+woV<a z4l@Yh+R#H#!weCEn#&pWz@})Sno<u<>PWUjjL|T|77^OZ8D4;m(E%G{D9N^u4WHjZ zrhp=GJA>|WhIL?_dSIP;l5G1}=QD8E!*d11`x<8KvZCxLiR*7LSf4&vpC>UkZed^* zW!Ia<z%47vkzlu+fgLTm{$<?6V6dCPFmgMCp^=dBHU<+=>NnZOV7iUL4DKL!EP!+` g|8s6PgL&k328+pt{BFz~4Ca%o_!T*r)-Zqp0Iru?JOBUy diff --git a/mutants/mutant-5/swen90006/machine/Machine.java b/mutants/mutant-5/swen90006/machine/Machine.java index 27c8d4f..b2fa4d1 100644 --- a/mutants/mutant-5/swen90006/machine/Machine.java +++ b/mutants/mutant-5/swen90006/machine/Machine.java @@ -82,7 +82,7 @@ public class Machine private void do_load(int dest, int src, int offs) { // Relational Operator Replacement - if (regs[src] + offs => MAX_ADDR){ + if (regs[src] + offs >= MAX_ADDR){ /* no op */ }else if(regs[src] + offs < 0){ /* no op */ diff --git a/src/swen90006/machine/Machine.java b/src/swen90006/machine/Machine.java index 9bf5731..1e17b30 100644 --- a/src/swen90006/machine/Machine.java +++ b/src/swen90006/machine/Machine.java @@ -3,7 +3,7 @@ package swen90006.machine; import java.util.Arrays; import java.util.List; -public class Machine +public class Machine { /** arithmetic instructions each take three registers as arguments with the * destination register appearing first @@ -12,13 +12,13 @@ public class Machine /** add rd rs1 rs2 =~ rd = rs1 + rs2 */ public static final String INSTRUCTION_ADD = "add"; - /** sub rd rs1 rs2 =~ rd = rs1 - rs2 */ + /** sub rd rs1 rs2 =~ rd = rs1 - rs2 */ public static final String INSTRUCTION_SUBTRACT = "sub"; - /** mul rd rs1 rs2 =~ rd = rs1 * rs2 */ + /** mul rd rs1 rs2 =~ rd = rs1 * rs2 */ public static final String INSTRUCTION_MULT = "mul"; - /** div rd rs1 rs2 =~ rd = rs1 / rs2 */ + /** div rd rs1 rs2 =~ rd = rs1 / rs2 */ public static final String INSTRUCTION_DIVIDE = "div"; /** ret rs =~ return rs */ @@ -38,17 +38,17 @@ public class Machine /** jz ra offs =~ if (ra == 0) pc = pc + offs else pc = pc + 1 */ public static final String INSTRUCTION_JZ = "jz"; - + public static final int NUM_REGS = 32; public static final int MAX_REG = (NUM_REGS - 1); public static final int MEMORY_SIZE = 65536; /* 4 x as much memory as a 64 */ public static final int MAX_ADDR = MEMORY_SIZE-1; - + private int[] memory; private int[] regs; private int count = 0; /* counts number of instructions executed so far */ - + public Machine() { memory = new int[MEMORY_SIZE]; @@ -60,17 +60,17 @@ public class Machine { regs[dest] = regs[src1] + regs[src2]; } - + private void do_sub(int dest, int src1, int src2) { regs[dest] = regs[src1] - regs[src2]; } - + private void do_mult(int dest, int src1, int src2) { regs[dest] = regs[src1] * regs[src2]; } - + private void do_div(int dest, int src1, int src2) { if (regs[src2] == 0){ @@ -152,16 +152,16 @@ public class Machine throw new InvalidInstructionException(); } } - + /** Execute an assembly program. * - * @param prog is the program to execute as an iterable collection of strings, + * @param prog is the program to execute as an iterable collection of strings, * each of which is a single instruction. * @return the program's return value. - * @throws Exception when program has unrecognised or + * @throws Exception when program has unrecognised or * invalid instructions, or when it returns no result when it finishes */ - int execute(List<String> instructions) + int execute(List<String> instructions) throws InvalidInstructionException, NoReturnValueException { @@ -180,7 +180,7 @@ public class Machine break; } String inst = instructions.get(pc); - /* strip leading and trailing whitespace */ + /* strip leading and trailing whitespace */ inst = inst.toLowerCase().replaceAll("^\\s+","").replaceAll("\\s+$",""); /* strip out any comments */ String[] toks = inst.split(";"); -- GitLab