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)