diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java index 5494b44f4615351a610fc7b0b649d30b4b2d0a40..86217ede14dae720d529a7da1efc26410100565a 100644 --- a/test/swen90006/machine/PartitioningTests.java +++ b/test/swen90006/machine/PartitioningTests.java @@ -71,6 +71,147 @@ public class PartitioningTests assertEquals("Some failure message", expected, actual); } + + @Test public void EC1TestCase() + { + List<String> list = new ArrayList<String>(); + list.add("RET R1"); + Machine machine = new Machine(); + int actual = 0; + assertEquals(machine.execute(list), actual); + } + + @Test(expected = NoReturnValueException.class) + public void EC2ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("ADD R1 R2 R3"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC3ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("CMP R1 R2"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC4ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("ADD R1 R2 R-1"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC5ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("CMP R32 R2 R3"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test public void EC6TestCase() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 2"); + list.add("MOV R2 3"); + list.add("ADD R3 R1 R2"); + list.add("RET R3"); + Machine machine = new Machine(); + int actual = 5; + assertEquals(machine.execute(list), actual); + } + + @Test public void EC7TestCase() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 2"); + list.add("MOV R2 3"); + list.add("ADD R3 R1 R2"); + list.add("RET R2"); + list.add("RET R3"); + Machine machine = new Machine(); + int actual = 3; + assertEquals(machine.execute(list), actual); + } + + @Test(expected = NoReturnValueException.class) + public void EC8ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 2"); + list.add("MOV R2 3"); + list.add("ADD R3 R1 R2"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC9ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 2"); + list.add("MOV R2 3"); + list.add("CMP R1 R2"); + list.add("ADD R3 R1 R2"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC10ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 6"); + list.add("MOV R2 -66666"); + list.add("ADD R3 R1 R2"); + list.add("RET R3"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC11ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 6"); + list.add("MOV R2 66666"); + list.add("ADD R3 R1 R2"); + list.add("RET R3"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC12ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 6"); + list.add("MOV R-2 7"); + list.add("ADD R3 R1 R-2"); + list.add("RET R3"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void EC13ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 6"); + list.add("MOV R38 7"); + list.add("ADD R3 R1 R38"); + list.add("RET R3"); + Machine machine = new Machine(); + machine.execute(list); + } //Read in a file containing a program and convert into a list of //string instructions private List<String> readInstructions(String file)