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()
   {