diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java index 5494b44f4615351a610fc7b0b649d30b4b2d0a40..b8fbdb92515f3146220b73670815bf8036647505 100644 --- a/test/swen90006/machine/PartitioningTests.java +++ b/test/swen90006/machine/PartitioningTests.java @@ -25,27 +25,238 @@ public class PartitioningTests } //Any method annotation with "@Test" is executed as a test. - @Test public void aTest() + + + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void ec3Test() { //the assertEquals method used to check whether two values are //equal, using the equals method - final int expected = 2; - final int actual = 1 + 1; - assertEquals(expected, actual); + List<String> list = new ArrayList<String>(); + list.add("jmp 10"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); } - @Test public void anotherTest() + @Test public void ec4Test() { - List<String> list = new ArrayList<String>(); - list.add("a"); - list.add("b"); - - //the assertTrue method is used to check whether something holds. - assertTrue(list.contains("a")); + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("jmp 1"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 0); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec5Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("jmp 66666"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec6Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("ret R40"); + Machine m = new Machine(); + m.execute(list); + } + + @Test public void ec7Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("ret R20"); + Machine m = new Machine(); + assertEquals(m.execute(list), 0); } + + @Test public void ec8Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 5"); + list.add("ret R1"); + Machine m = new Machine(); + assertEquals(m.execute(list), 5); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec9Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 66666"); + list.add("ret R1"); + Machine m = new Machine(); + m.execute(list); + } + - //Test test opens a file and executes the machine - @Test public void aFileOpenTest() + @Test(expected = swen90006.machine.NoReturnValueException.class) + public void ec11Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("jz R1 10"); + list.add("ret R1"); + Machine m = new Machine(); + assertEquals(m.execute(list),NoReturnValueException); + } + + @Test public void ec12Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("jz R1 1"); + list.add("ret R1"); + Machine m = new Machine(); + assertEquals(m.execute(list), 0); + } + + @Test public void ec13Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R0 5"); + list.add("ldr R0 R1 0"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 0); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec14Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R0 5"); + list.add("ldr R0 R1 66666"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec15Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 66666"); + list.add("ldr R0 R1 0"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec16Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("ldr R0 R40 0"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec17Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("str R0 0 R40"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec18Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 66666"); + list.add("str R1 0 R0"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test public void ec20Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 10"); + list.add("mov R2 20"); + list.add("add R0 R1 R2"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 30); + } + + @Test(expected = swen90006.machine.InvalidInstructionException.class) + public void ec21Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("add R0 R1 R40"); + list.add("ret R0"); + Machine m = new Machine(); + m.execute(list); + } + + @Test public void ec22Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 10"); + list.add("mov R2 5"); + list.add("div R0 R1 R2"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 2); + } + + @Test public void ec23Test() + { + //the assertEquals method used to check whether two values are + //equal, using the equals method + List<String> list = new ArrayList<String>(); + list.add("mov R1 10"); + list.add("mov R2 0"); + list.add("div R0 R1 R2"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 0); + } + + @Test public void aFileOpenTest() { final List<String> lines = readInstructions("examples/array.s"); Machine m = new Machine();