diff --git a/test/swen90006/machine/BoundaryTests.java b/test/swen90006/machine/BoundaryTests.java index 61ce1ca647f325fbf452047408c1e22d9befcb99..5f156a7700aaca9166a71e71120f91b396719939 100644 --- a/test/swen90006/machine/BoundaryTests.java +++ b/test/swen90006/machine/BoundaryTests.java @@ -25,25 +25,236 @@ public class BoundaryTests } //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 -1"); + 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 65536"); + 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 R32"); + 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 R0"); + 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 65535"); + list.add("ret R1"); + Machine m = new Machine(); + assertEquals(m.execute(list), 65535); + } + + @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 65536"); + list.add("ret R1"); + Machine m = new Machine(); + m.execute(list); + } + + + @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 3"); + list.add("ret R1"); + Machine m = new Machine(); + m.execute(list); + } + + @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 0"); + 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 1"); + 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 1"); + list.add("ldr R0 R1 65536"); + 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 65536"); + 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 R32 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 R32"); + 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 65536"); + 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 0"); + list.add("mov R2 65535"); + list.add("add R0 R1 R2"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 65535); + } + + @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 R32"); + 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 65535"); + list.add("mov R2 1"); + list.add("div R0 R1 R2"); + list.add("ret R0"); + Machine m = new Machine(); + assertEquals(m.execute(list), 65535); + } + + @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 1"); + 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 test opens a file and executes the machine @Test public void aFileOpenTest() {