diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java
index 5494b44f4615351a610fc7b0b649d30b4b2d0a40..5e70913e765aca941760514e8a861ff2b5100293 100644
--- a/test/swen90006/machine/PartitioningTests.java
+++ b/test/swen90006/machine/PartitioningTests.java
@@ -8,83 +8,132 @@ import java.nio.file.Files;
 import java.nio.file.FileSystems;
 
 import org.junit.*;
+
+import com.sun.xml.internal.ws.util.StringUtils;
+
 import static org.junit.Assert.*;
 
-public class PartitioningTests
-{
-  //Any method annotated with "@Before" will be executed before each test,
-  //allowing the tester to set up some shared resources.
-  @Before public void setUp()
-  {
-  }
-
-  //Any method annotated with "@After" will be executed after each test,
-  //allowing the tester to release any shared resources used in the setup.
-  @After public void tearDown()
-  {
-  }
-
-  //Any method annotation with "@Test" is executed as a test.
-  @Test public void aTest()
-  {
-    //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);
-  }
-
-  @Test public void anotherTest()
-  {
-    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"));
-  }
-
-  //Test test opens a file and executes the machine
-  @Test public void aFileOpenTest()
-  {
-    final List<String> lines = readInstructions("examples/array.s");
-    Machine m = new Machine();
-    assertEquals(m.execute(lines), 45);
-  }
-  
-  //To test an exception, specify the expected exception after the @Test
-  @Test(expected = java.io.IOException.class) 
-    public void anExceptionTest()
-    throws Throwable
-  {
-    throw new java.io.IOException();
-  }
-
-  //This test should fail.
-  //To provide additional feedback when a test fails, an error message
-  //can be included
-  @Test public void aFailedTest()
-  {
-    //include a message for better feedback
-    final int expected = 2;
-    final int actual = 1 + 2;
-    assertEquals("Some failure message", expected, actual);
-  }
-
-  //Read in a file containing a program and convert into a list of
-  //string instructions
-  private List<String> readInstructions(String file)
-  {
-    Charset charset = Charset.forName("UTF-8");
-    List<String> lines = null;
-    try {
-      lines = Files.readAllLines(FileSystems.getDefault().getPath(file), charset);
-    }
-    catch (Exception e){
-      System.err.println("Invalid input file! (stacktrace follows)");
-      e.printStackTrace(System.err);
-      System.exit(1);
-    }
-    return lines;
-  }
+public class PartitioningTests {
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC1() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("add R-1 R0");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC2() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("sub R32 R0");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC3() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("mov R0 -65536");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC4() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("ldr R0 R1 65536");
+			machine.execute(instruction);
+		}
+
+		@Test
+		public void EC5() {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("ret R0");
+			assertEquals(machine.execute(instruction), 0);
+		}
+
+		@Test(expected = NoReturnValueException.class)
+		public void EC6() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("jmp -1");
+			machine.execute(instruction);
+		}
+		
+		@Test(expected = InvalidInstructionException.class)
+		public void EC7() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("div R-1 R0 R1");
+			instruction.add("ret R0");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC8() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("str R32 1 R0");
+			instruction.add("ret R0");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC9() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("jz R0 -65536");
+			instruction.add("ret R0");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC10() throws Throwable {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("mov R0 65536");
+			instruction.add("jz R0 1");
+			instruction.add("ret R0");
+			machine.execute(instruction);
+		}
+ 
+		@Test
+		public void EC11() {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("mov R0 -65535");
+			instruction.add("mov R31 65535");
+			instruction.add("mul R1 R0 R31");
+			instruction.add("ret R0");
+			assertEquals(machine.execute(instruction), -65535);
+		}
+
+		@Test(expected = NoReturnValueException.class)
+		public void EC12() {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("mov R0 -65535");
+			instruction.add("mov R31 65535");
+			instruction.add("jmp 2");
+			machine.execute(instruction);
+		}
+
+		@Test(expected = InvalidInstructionException.class)
+		public void EC13() {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			instruction.add("");
+			instruction.add("abc");
+			machine.execute(instruction);
+		}
+		
+		@Test(expected = NoReturnValueException.class)
+		public void EC14() {
+			Machine machine = new Machine();
+			List<String> instruction = new ArrayList<>();
+			machine.execute(instruction);
+		}
 }