diff --git a/examples/EC18.s b/examples/EC18.s index 7c5ea9bf6e651c501be2f86824b953295a8ecc0a..36c2bf3fcb6c323a8e5f8a51f5003a37beb60c8d 100644 --- a/examples/EC18.s +++ b/examples/EC18.s @@ -1,7 +1,7 @@ MOV R1 0 MOV R2 2 MOV R3 1 - JZ R1 3 + JZ R1 4 SUB R0 R2 R3 ADD R4 R2 R3 RET R4 diff --git a/test/swen90006/machine/BoundaryTests.java b/test/swen90006/machine/BoundaryTests.java index 77ad3e3b29bbeb0c2c4773a6038d236e654b13cd..8d55d193ccbea0c76c2e46d78f00457abb87f125 100644 --- a/test/swen90006/machine/BoundaryTests.java +++ b/test/swen90006/machine/BoundaryTests.java @@ -209,7 +209,37 @@ public class BoundaryTests assertEquals(m.execute(lines), 5); } + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void EC18() + { + final List<String> lines = readInstructions("examples/EC18.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC19() + { + final List<String> lines = readInstructions("examples/EC19.s"); + Machine m = new Machine(); + m.execute(lines); + } + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC20() + { + final List<String> lines = readInstructions("examples/EC20.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void EC21() + { + final List<String> lines = readInstructions("examples/EC21.s"); + Machine m = new Machine(); + m.execute(lines); + } //To test an exception, specify the expected exception after the @Test /* @Test(expected = java.io.IOException.class) public void anExceptionTest() diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java index aad359dadaab3853f9af4f5fc835d3b3af271455..676b17f21266f61f8f01b615574c8c4da40b25e5 100644 --- a/test/swen90006/machine/PartitioningTests.java +++ b/test/swen90006/machine/PartitioningTests.java @@ -52,6 +52,194 @@ public class PartitioningTests assertEquals(m.execute(lines), 45); } + @Test public void EC1() + { + final List<String> lines = readInstructions("examples/EC1.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 1); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC2() + { + final List<String> lines = readInstructions("examples/EC2.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test public void EC31() + { + final List<String> lines = readInstructions("examples/EC3-1.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 3); + } + + @Test public void EC32() + { + final List<String> lines = readInstructions("examples/EC3-2.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 3); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC4() + { + final List<String> lines = readInstructions("examples/EC4.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC5() + { + final List<String> lines = readInstructions("examples/EC5.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC6() + { + final List<String> lines = readInstructions("examples/EC6.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test public void EC71() + { + final List<String> lines = readInstructions("examples/EC7-1.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), -65533); + } + + @Test public void EC72() + { + final List<String> lines = readInstructions("examples/EC7-2.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 65537); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC8() + { + final List<String> lines = readInstructions("examples/EC8.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC9() + { + final List<String> lines = readInstructions("examples/EC9.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC10() + { + final List<String> lines = readInstructions("examples/EC10.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test public void EC11() + { + final List<String> lines = readInstructions("examples/EC11.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 0); + } + + @Test public void EC121() + { + final List<String> lines = readInstructions("examples/EC12-1.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 3); + } + + @Test public void EC122() + { + final List<String> lines = readInstructions("examples/EC12-2.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 3); + } + + @Test public void EC13() + { + final List<String> lines = readInstructions("examples/EC13.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 0); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC14() + { + final List<String> lines = readInstructions("examples/EC14.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC15() + { + final List<String> lines = readInstructions("examples/EC15.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void EC16() + { + final List<String> lines = readInstructions("examples/EC16.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test public void EC171() + { + final List<String> lines = readInstructions("examples/EC17-1.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 3); + } + + @Test public void EC172() + { + final List<String> lines = readInstructions("examples/EC17-2.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 5); + } + + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void EC18() + { + final List<String> lines = readInstructions("examples/EC18.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC19() + { + final List<String> lines = readInstructions("examples/EC19.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void EC20() + { + final List<String> lines = readInstructions("examples/EC20.s"); + Machine m = new Machine(); + m.execute(lines); + } + + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void EC21() + { + final List<String> lines = readInstructions("examples/EC21.s"); + Machine m = new Machine(); + m.execute(lines); + } //To test an exception, specify the expected exception after the @Test /*@Test(expected = java.io.IOException.class) public void anExceptionTest()