diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java index 86217ede14dae720d529a7da1efc26410100565a..1e4efeb68b337ce0fb816f4811e7f026895fd67a 100644 --- a/test/swen90006/machine/PartitioningTests.java +++ b/test/swen90006/machine/PartitioningTests.java @@ -72,7 +72,7 @@ public class PartitioningTests } - @Test public void EC1TestCase() + @Test public void TC1TestCase() { List<String> list = new ArrayList<String>(); list.add("RET R1"); @@ -81,137 +81,169 @@ public class PartitioningTests assertEquals(machine.execute(list), actual); } - @Test(expected = NoReturnValueException.class) - public void EC2ExceptionTest() + @Test(expected = InvalidInstructionException.class) + public void TC2ExceptionTest() { List<String> list = new ArrayList<String>(); - list.add("ADD R1 R2 R3"); + list.add("RET R-2"); Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC3ExceptionTest() + public void TC3ExceptionTest() { List<String> list = new ArrayList<String>(); - list.add("CMP R1 R2"); + list.add("RET R33"); Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC4ExceptionTest() + public void TC4ExceptionTest() { List<String> list = new ArrayList<String>(); - list.add("ADD R1 R2 R-1"); + list.add("ADD R3 R2 R-2"); Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC5ExceptionTest() + public void TC5ExceptionTest() { List<String> list = new ArrayList<String>(); - list.add("CMP R32 R2 R3"); + list.add("LDR R1 R2 -66666"); Machine machine = new Machine(); machine.execute(list); } - @Test public void EC6TestCase() + @Test(expected = NoReturnValueException.class) + public void TC6ExceptionTest() { 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"); + list.add("STR R1 10 R2"); Machine machine = new Machine(); - int actual = 5; - assertEquals(machine.execute(list), actual); + machine.execute(list); } - @Test public void EC7TestCase() + @Test(expected = InvalidInstructionException.class) + public void TC7ExceptionTest() { 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"); + list.add("LDR R1 R2 66666"); Machine machine = new Machine(); - int actual = 3; - assertEquals(machine.execute(list), actual); + machine.execute(list); } - @Test(expected = NoReturnValueException.class) - public void EC8ExceptionTest() + @Test(expected = InvalidInstructionException.class) + public void TC8ExceptionTest() { List<String> list = new ArrayList<String>(); - list.add("MOV R1 2"); - list.add("MOV R2 3"); - list.add("ADD R3 R1 R2"); + list.add("SUB R1 R2 R33"); Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC9ExceptionTest() + public void TC9ExceptionTest() { 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() + public void TC10ExceptionTest() { 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"); + list.add("MOV R1 1"); + list.add("MOV R2 2"); + list.add("DIV R33 R2 R1"); + list.add("RET R33"); Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC11ExceptionTest() + public void TC11ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 1"); + list.add("JZ R1 -66666"); + list.add("RET R1"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test public void TC12TestCase() { List<String> list = new ArrayList<String>(); - list.add("MOV R1 6"); - list.add("MOV R2 66666"); - list.add("ADD R3 R1 R2"); + list.add("MOV R1 1"); + list.add("MOV R2 2"); + list.add("MUL R3 R1 R2"); list.add("RET R3"); Machine machine = new Machine(); + int actual = 2; + assertEquals(machine.execute(list), actual); + } + + @Test public void TC13TestCase() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 1"); + list.add("MOV R2 2"); + list.add("MUL R3 R1 R2"); + list.add("RET R1"); + list.add("RET R3"); + Machine machine = new Machine(); + int actual = 1; + assertEquals(machine.execute(list), actual); + } + + @Test(expected = NoReturnValueException.class) + public void TC14ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 1"); + list.add("MOV R2 2"); + list.add("MUL R3 R1 R2"); + Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC12ExceptionTest() + public void TC15ExceptionTest() { 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"); + list.add("MOV R1 1"); + list.add("JZ R1 66666"); + list.add("RET R1"); Machine machine = new Machine(); machine.execute(list); } @Test(expected = InvalidInstructionException.class) - public void EC13ExceptionTest() + public void TC16ExceptionTest() { 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"); + list.add("MOV R-1 -1"); + list.add("RET R-1"); + Machine machine = new Machine(); + machine.execute(list); + } + + @Test(expected = InvalidInstructionException.class) + public void TC17ExceptionTest() + { + List<String> list = new ArrayList<String>(); + list.add("MOV R1 1"); + list.add("CMP R1 R2"); + list.add("RET R1"); 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)