From ddae1cc45bf360d941243340b3c72600da6a01f5 Mon Sep 17 00:00:00 2001
From: Nelson Chen <nelsonc@planetshakers.com>
Date: Tue, 4 Sep 2018 14:16:28 +1000
Subject: [PATCH] Submission 1

---
 .idea/libraries/lib.xml                       |  10 +
 .idea/misc.xml                                |   6 +
 .idea/modules.xml                             |   9 +
 .idea/workspace.xml                           | 496 ++++++++++++++++++
 Assignment_1.pdf                              | Bin 226841 -> 225427 bytes
 machine.iml                                   |  14 +
 .../mutant-1/swen90006/machine/Machine.java   |   2 +-
 .../mutant-2/swen90006/machine/Machine.java   |   2 +-
 .../mutant-3/swen90006/machine/Machine.java   |   5 +-
 .../mutant-4/swen90006/machine/Machine.java   |   2 +-
 .../mutant-5/swen90006/machine/Machine.java   |   2 +-
 mutants/mutants.iml                           |  15 +
 .../swen90006/machine/BugException.class      | Bin 0 -> 580 bytes
 .../machine/InvalidInstructionException.class | Bin 0 -> 478 bytes
 .../machine/swen90006/machine/Machine.class   | Bin 0 -> 5954 bytes
 .../machine/NoReturnValueException.class      | Bin 0 -> 458 bytes
 .../swen90006/machine/SimpleDriver.class      | Bin 0 -> 2696 bytes
 .../swen90006/machine/BoundaryTests.class     | Bin 0 -> 2914 bytes
 .../swen90006/machine/PartitioningTests.class | Bin 0 -> 9400 bytes
 src/swen90006/machine/BugException.class      | Bin 0 -> 462 bytes
 .../machine/InvalidInstructionException.class | Bin 0 -> 364 bytes
 src/swen90006/machine/Machine.class           | Bin 0 -> 4741 bytes
 .../machine/NoReturnValueException.class      | Bin 0 -> 349 bytes
 src/swen90006/machine/SimpleDriver.class      | Bin 0 -> 2292 bytes
 test/swen90006/machine/BoundaryTests.java     |  11 -
 test/swen90006/machine/PartitioningTests.java | 335 +++++++++++-
 26 files changed, 882 insertions(+), 27 deletions(-)
 create mode 100644 .idea/libraries/lib.xml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/workspace.xml
 create mode 100644 machine.iml
 create mode 100644 mutants/mutants.iml
 create mode 100644 out/production/machine/swen90006/machine/BugException.class
 create mode 100644 out/production/machine/swen90006/machine/InvalidInstructionException.class
 create mode 100644 out/production/machine/swen90006/machine/Machine.class
 create mode 100644 out/production/machine/swen90006/machine/NoReturnValueException.class
 create mode 100644 out/production/machine/swen90006/machine/SimpleDriver.class
 create mode 100644 out/test/machine/swen90006/machine/BoundaryTests.class
 create mode 100644 out/test/machine/swen90006/machine/PartitioningTests.class
 create mode 100644 src/swen90006/machine/BugException.class
 create mode 100644 src/swen90006/machine/InvalidInstructionException.class
 create mode 100644 src/swen90006/machine/Machine.class
 create mode 100644 src/swen90006/machine/NoReturnValueException.class
 create mode 100644 src/swen90006/machine/SimpleDriver.class

diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml
new file mode 100644
index 0000000..b049bfe
--- /dev/null
+++ b/.idea/libraries/lib.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="lib">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/junit-4.11.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..e208459
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..a5303ff
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/machine.iml" filepath="$PROJECT_DIR$/machine.iml" />
+      <module fileurl="file://$PROJECT_DIR$/mutants/mutants.iml" filepath="$PROJECT_DIR$/mutants/mutants.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..aa8cf11
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutomaticModuleUnloader">
+    <loaded-modules>
+      <module name="machine" />
+    </loaded-modules>
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="c67c15ee-7fd0-4d35-aa83-a8cd978b3491" name="Default Changelist" comment="" />
+    <ignored path="$PROJECT_DIR$/out/" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="ErrorTreeViewConfiguration">
+    <option name="hideWarnings" value="true" />
+    <option name="HIDE_WARNINGS" value="true" />
+  </component>
+  <component name="FUSProjectUsageTrigger">
+    <session id="-479481765">
+      <usages-collector id="statistics.lifecycle.project">
+        <counts>
+          <entry key="project.closed" value="6" />
+          <entry key="project.open.time.14" value="2" />
+          <entry key="project.open.time.15" value="1" />
+          <entry key="project.open.time.17" value="2" />
+          <entry key="project.open.time.18" value="1" />
+          <entry key="project.open.time.6" value="1" />
+          <entry key="project.opened" value="7" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.open">
+        <counts>
+          <entry key="java" value="22" />
+          <entry key="s" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.open">
+        <counts>
+          <entry key="JAVA" value="22" />
+          <entry key="PLAIN_TEXT" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.edit">
+        <counts>
+          <entry key="java" value="1787" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.edit">
+        <counts>
+          <entry key="JAVA" value="1787" />
+        </counts>
+      </usages-collector>
+    </session>
+  </component>
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/swen90006/machine/Machine.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-917">
+              <caret line="204" column="10" lean-forward="true" selection-start-line="204" selection-start-column="10" selection-end-line="204" selection-end-column="40" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/mutants/mutant-5/swen90006/machine/SimpleDriver.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="68">
+              <caret line="8" column="7" selection-start-line="8" selection-start-column="7" selection-end-line="8" selection-end-column="7" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/test/swen90006/machine/PartitioningTests.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="373">
+              <caret line="347" column="12" selection-start-line="347" selection-start-column="12" selection-end-line="347" selection-end-column="12" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/examples/array.s">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="255">
+              <caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/mutants/mutant-1/swen90006/machine/Machine.java" />
+        <option value="$PROJECT_DIR$/mutants/mutant-2/swen90006/machine/Machine.java" />
+        <option value="$PROJECT_DIR$/mutants/mutant-3/swen90006/machine/Machine.java" />
+        <option value="$PROJECT_DIR$/mutants/mutant-4/swen90006/machine/Machine.java" />
+        <option value="$PROJECT_DIR$/mutants/mutant-5/swen90006/machine/Machine.java" />
+        <option value="$PROJECT_DIR$/test/swen90006/machine/BoundaryTests.java" />
+        <option value="$PROJECT_DIR$/test/swen90006/machine/PartitioningTests.java" />
+      </list>
+    </option>
+  </component>
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="ProjectFrameBounds" extendedState="7">
+    <option name="x" value="64" />
+    <option name="y" value="204" />
+    <option name="width" value="2800" />
+    <option name="height" value="1920" />
+  </component>
+  <component name="ProjectView">
+    <navigator proportions="" version="1">
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="machine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="machine" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="machine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="machine" type="462c0819:PsiDirectoryNode" />
+              <item name="examples" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="machine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="machine" type="462c0819:PsiDirectoryNode" />
+              <item name="test" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="machine" type="b2602c69:ProjectViewProjectNode" />
+              <item name="machine" type="462c0819:PsiDirectoryNode" />
+              <item name="test" type="462c0819:PsiDirectoryNode" />
+              <item name="machine" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
+      <pane id="Scope" />
+      <pane id="PackagesPane" />
+      <pane id="AndroidView" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="aspect.path.notification.shown" value="true" />
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1536029919652" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/mutants/mutant-1" />
+    <property name="project.structure.last.edited" value="Problems" />
+    <property name="project.structure.proportion" value="0.15" />
+    <property name="project.structure.side.proportion" value="0.2" />
+  </component>
+  <component name="RunDashboard">
+    <option name="ruleStates">
+      <list>
+        <RuleState>
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+        </RuleState>
+        <RuleState>
+          <option name="name" value="StatusDashboardGroupingRule" />
+        </RuleState>
+      </list>
+    </option>
+  </component>
+  <component name="RunManager" selected="JUnit.Partitioning Tests">
+    <configuration name="Mutant-1" type="Application" factoryName="Application">
+      <option name="MAIN_CLASS_NAME" value="swen90006.machine.SimpleDriver" />
+      <module name="machine" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/mutants/mutant-1" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="Source" type="Application" factoryName="Application">
+      <option name="MAIN_CLASS_NAME" value="swen90006.machine.SimpleDriver" />
+      <module name="machine" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application">
+      <option name="MAIN_CLASS_NAME" value="swen90006.machine.SimpleDriver" />
+      <module name="machine" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="Partitioning Tests" type="JUnit" factoryName="JUnit">
+      <module name="machine" />
+      <option name="PACKAGE_NAME" value="swen90006.machine" />
+      <option name="MAIN_CLASS_NAME" value="swen90006.machine.PartitioningTests" />
+      <option name="METHOD_NAME" value="" />
+      <option name="PARAMETERS" value="" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <list>
+      <item itemvalue="Application.Source" />
+      <item itemvalue="Application.Mutant-1" />
+      <item itemvalue="JUnit.Partitioning Tests" />
+    </list>
+  </component>
+  <component name="SvnConfiguration">
+    <configuration />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="c67c15ee-7fd0-4d35-aa83-a8cd978b3491" name="Default Changelist" comment="" />
+      <created>1534939793042</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1534939793042</updated>
+      <workItem from="1534939797088" duration="1042000" />
+      <workItem from="1534950889800" duration="177000" />
+      <workItem from="1535559450731" duration="115000" />
+      <workItem from="1535904663725" duration="218000" />
+      <workItem from="1535962398264" duration="3564000" />
+      <workItem from="1535980042619" duration="1725000" />
+      <workItem from="1536014360577" duration="9982000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TestHistory">
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 10h 49m 18s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 11h 53m 55s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 11h 55m 20s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 12h 07m 29s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 12h 49m 24s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 12h 50m 19s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="Partitioning_Tests - 2018.09.04 at 12h 53m 05s.xml">
+      <configuration name="Partitioning Tests" configurationId="JUnit" />
+    </history-entry>
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="16823000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-6" y="-6" width="1513" height="1013" extended-state="6" />
+    <editor active="true" />
+    <layout>
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2508591" />
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
+      <window_info id="Image Layers" order="2" />
+      <window_info id="Designer" order="3" />
+      <window_info id="UI Designer" order="4" />
+      <window_info id="Capture Tool" order="5" />
+      <window_info id="Favorites" order="6" side_tool="true" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" />
+      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32993197" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="6" />
+      <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Terminal" order="8" />
+      <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
+      <window_info anchor="bottom" id="Version Control" order="10" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Messages" order="11" weight="0.32879817" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
+      <window_info anchor="right" id="Palette" order="3" />
+      <window_info anchor="right" id="Capture Analysis" order="4" />
+      <window_info anchor="right" id="Theme Preview" order="5" />
+      <window_info anchor="right" id="Palette&#9;" order="6" />
+      <window_info anchor="right" id="Database" order="7" />
+      <window_info anchor="right" id="Maven Projects" order="8" />
+    </layout>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="1" />
+  </component>
+  <component name="UnloadedModulesList">
+    <module name="mutants" />
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-1/swen90006/machine/SimpleDriver.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="68">
+          <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-2/swen90006/machine/SimpleDriver.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="68">
+          <caret line="8" column="7" selection-start-line="8" selection-start-column="7" selection-end-line="8" selection-end-column="7" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/swen90006/machine/SimpleDriver.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="68">
+          <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-3/swen90006/machine/Machine.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="272">
+          <caret line="63" column="92" lean-forward="true" selection-start-line="63" selection-start-column="92" selection-end-line="63" selection-end-column="92" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-2/swen90006/machine/Machine.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-510">
+          <caret line="201" column="44" lean-forward="true" selection-start-line="201" selection-start-column="44" selection-end-line="201" selection-end-column="44" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-1/swen90006/machine/Machine.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="69">
+          <caret line="172" column="19" selection-start-line="172" selection-start-column="19" selection-end-line="172" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-5/swen90006/machine/SimpleDriver.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="68">
+          <caret line="8" column="7" selection-start-line="8" selection-start-column="7" selection-end-line="8" selection-end-column="7" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-5/swen90006/machine/Machine.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="341">
+          <caret line="278" column="21" lean-forward="true" selection-start-line="278" selection-start-column="21" selection-end-line="278" selection-end-column="21" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/mutants/mutant-4/swen90006/machine/Machine.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="425">
+          <caret line="172" column="15" selection-start-line="172" selection-start-column="15" selection-end-line="172" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/swen90006/machine/Machine.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-917">
+          <caret line="204" column="10" lean-forward="true" selection-start-line="204" selection-start-column="10" selection-end-line="204" selection-end-column="40" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/swen90006/machine/BoundaryTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="221">
+          <caret line="60" column="3" selection-start-line="60" selection-start-column="3" selection-end-line="60" selection-end-column="3" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/examples/array.s">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="255">
+          <caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/swen90006/machine/PartitioningTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="373">
+          <caret line="347" column="12" selection-start-line="347" selection-start-column="12" selection-end-line="347" selection-end-column="12" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <last-edited>No facets are configured</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.8</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>machine</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+                <option value="0.6" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectJDKs.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>lib</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Assignment_1.pdf b/Assignment_1.pdf
index 4fb53cb99fbf341138490c8411d36a7e910a1f01..a4e8cb592f21f27ed1ea0ab9910beb34cd851441 100644
GIT binary patch
delta 32866
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

delta 34017
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
ISARDy0DPvU4*&oF

diff --git a/machine.iml b/machine.iml
new file mode 100644
index 0000000..3622dbc
--- /dev/null
+++ b/machine.iml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/mutants" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="lib" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/mutants/mutant-1/swen90006/machine/Machine.java b/mutants/mutant-1/swen90006/machine/Machine.java
index 9bf5731..e40898f 100644
--- a/mutants/mutant-1/swen90006/machine/Machine.java
+++ b/mutants/mutant-1/swen90006/machine/Machine.java
@@ -170,7 +170,7 @@ public class Machine
     int pc = 0;
     final int progLength = instructions.size();
     while(true){
-      if (pc < 0 || pc >= progLength){
+      if (pc < 0 && pc >= progLength){
 	/* will cause NoReturnValueException to be thrown
 	 * but that is not a bug and and indeed is what the
 	 * VM is supposed to do if the pc becomes negative,
diff --git a/mutants/mutant-2/swen90006/machine/Machine.java b/mutants/mutant-2/swen90006/machine/Machine.java
index 9bf5731..1cc5adf 100644
--- a/mutants/mutant-2/swen90006/machine/Machine.java
+++ b/mutants/mutant-2/swen90006/machine/Machine.java
@@ -198,7 +198,7 @@ public class Machine
       toks = inst.split("\\s+");
 
       /* check minimum number of tokens */
-      if (toks.length < 2){
+      if (toks.length <= 2){
 	throw new InvalidInstructionException();
       }
 
diff --git a/mutants/mutant-3/swen90006/machine/Machine.java b/mutants/mutant-3/swen90006/machine/Machine.java
index 9bf5731..16301d0 100644
--- a/mutants/mutant-3/swen90006/machine/Machine.java
+++ b/mutants/mutant-3/swen90006/machine/Machine.java
@@ -61,10 +61,7 @@ public class Machine
     regs[dest] = regs[src1] + regs[src2];
   }
     
-  private void do_sub(int dest, int src1, int src2)
-  {
-    regs[dest] = regs[src1] - regs[src2];
-  }
+  private void do_sub(int dest, int src1, int src2){ regs[dest] = regs[src1] / regs[src2]; }
     
   private void do_mult(int dest, int src1, int src2)
   {
diff --git a/mutants/mutant-4/swen90006/machine/Machine.java b/mutants/mutant-4/swen90006/machine/Machine.java
index 9bf5731..de6e17a 100644
--- a/mutants/mutant-4/swen90006/machine/Machine.java
+++ b/mutants/mutant-4/swen90006/machine/Machine.java
@@ -170,7 +170,7 @@ public class Machine
     int pc = 0;
     final int progLength = instructions.size();
     while(true){
-      if (pc < 0 || pc >= progLength){
+      if (pc <= 0 || pc >= progLength){
 	/* will cause NoReturnValueException to be thrown
 	 * but that is not a bug and and indeed is what the
 	 * VM is supposed to do if the pc becomes negative,
diff --git a/mutants/mutant-5/swen90006/machine/Machine.java b/mutants/mutant-5/swen90006/machine/Machine.java
index 9bf5731..2f79a14 100644
--- a/mutants/mutant-5/swen90006/machine/Machine.java
+++ b/mutants/mutant-5/swen90006/machine/Machine.java
@@ -287,7 +287,7 @@ public class Machine
 	throw new InvalidInstructionException();
       }
       count++;
-      pc = pc + 1;
+      pc = pc;
     }
 
     /* got here without returning already... */
diff --git a/mutants/mutants.iml b/mutants/mutants.iml
new file mode 100644
index 0000000..bc0c385
--- /dev/null
+++ b/mutants/mutants.iml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/mutant-1" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/mutant-2" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/mutant-3" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/mutant-4" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/mutant-5" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/out/production/machine/swen90006/machine/BugException.class b/out/production/machine/swen90006/machine/BugException.class
new file mode 100644
index 0000000000000000000000000000000000000000..8744488f1d74f9d9b337ff09a0d4bbca5bba1f54
GIT binary patch
literal 580
zcmX^0Z`VEs1_l!bMRo=eE(S&hQ4R(%5G@WOB)Awj7$n&lq}Umx85!7YGV?M^>=+qD
zHGHxX%M$f-67$magG-7s^U|#~!x$M@obyvs85#I}GV@aXN^_G^i$W5Ua#9%?gnaUo
z6LZ26i!wocs31#8MrJW1gMv?Sd1{`efq{XUer{rNMrK~BzEf$sYejNuK}lwQo;4!_
zb8c}u$Pf%m85y{O^Gl18Q{6H_)(9f&(*vnyWDo~Y$S!p%&CE$jE#hI|WRPKG(1^@0
zRVXRSOixcON=;G7&r4OvPg5w#NL46KO)f3UEU8pTDorm|<l<qFWsu`xkY`W;>EvQ$
zki+k6Mh0Po&2Y~!GB9g^LW(W1pdd9bg^@uQTTo(zF4WD|j0_wl`H%o-WDwEN#87C>
zpvb_^z`+0lj0}tnoD867<Yr)C2w-4lU}9ikkkH!Az!<rmfk}vY8v~2>HU^e$46NH3
z*fugSFfcLjFfcH1fz`1xh%>M;@G>wkh=KVM415gyAY&OM7z7vu89=5Bf%OOj0IcbZ
AzyJUM

literal 0
HcmV?d00001

diff --git a/out/production/machine/swen90006/machine/InvalidInstructionException.class b/out/production/machine/swen90006/machine/InvalidInstructionException.class
new file mode 100644
index 0000000000000000000000000000000000000000..8def40ef75a854a703f27f7530c0c2e98a1bf393
GIT binary patch
literal 478
zcmX^0Z`VEs1_l!b5iSN61_2HRL3Rcqb_QWa1~!|_yv!0iMh0dL%`ip=7U%qwR7M7V
zpUk{eztY^K)S{5Yq?}Yn1|gsP<iwn?#G*_PA1cUFl95@=$e{02T%MX|X<%Srrk|Ub
zoROKAs_&UsmY9>7;+a=mQdF8;l9`|9T9KSu0Ag4(GH{gS2bUCO=A|<-h-hf~WF?j*
z>gOcprRzgPtr;1(g7Zs@l2hF>L6$4vF-;GonTLUufsK(t8jm_g23?X|$;coDG8y8m
zpwhgO%-mGC7Z?;7m>F0YK!AyX5o9?7BLh1F1A{&TBLgD?0|Tqpb_T|c3=9lR3>*v$
z3~XRQW(H0M1_mB5o0Wl!ft!JWfsuiSffuS-7pj?Ah-m|wR(2$<%y6xIU{(A8LY{8Q

literal 0
HcmV?d00001

diff --git a/out/production/machine/swen90006/machine/Machine.class b/out/production/machine/swen90006/machine/Machine.class
new file mode 100644
index 0000000000000000000000000000000000000000..ba73230d86d8d10f13461f66f14f1c84eadaef3a
GIT binary patch
literal 5954
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
CB&$mR

literal 0
HcmV?d00001

diff --git a/out/production/machine/swen90006/machine/NoReturnValueException.class b/out/production/machine/swen90006/machine/NoReturnValueException.class
new file mode 100644
index 0000000000000000000000000000000000000000..5358c5d6f3da8d0d5a23aa31321330ea4cdaca73
GIT binary patch
literal 458
zcmX^0Z`VEs1_l!b5iSN61_2HRL3Rcqb_QWa1~!|_yv!0iMh0dL%`ip=7U%qwR7M7V
zpUk{eztY^K)S{5Yq?}Yn1|gsP<iwn?#G*_PA1cUFl95@=$e`s@T%MX|X<%Srrk|Ub
zoROKAs_&N{lv+|+loytmQ<~~pk(^pkl9``p&B(w}k{?`Bl$n>#$RMJj>64XMmZ+bT
zn3t{(5w&Jy;0n$!ElN&x%LLggjolzUkUky;Rt7dk1~KeP7#TE(brvIo6v#Y?JAz8{
zN-}d1Ze~zqU}j)p00AZjMv#>Zj124y3=H}Vj0}tn3=FJV+Zh-)GB7YOF>o+2Ft9-c
u88{gj7<iy;E(UG}1_nk39tK{hW?iUeW+A2xXj(auv@$cmwDN&f@dE&gi)H=*

literal 0
HcmV?d00001

diff --git a/out/production/machine/swen90006/machine/SimpleDriver.class b/out/production/machine/swen90006/machine/SimpleDriver.class
new file mode 100644
index 0000000000000000000000000000000000000000..bf8aa369bef77b919dcdfba37a083e94f2c4b904
GIT binary patch
literal 2696
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
K3~t~A<qiP#xxv8z

literal 0
HcmV?d00001

diff --git a/out/test/machine/swen90006/machine/BoundaryTests.class b/out/test/machine/swen90006/machine/BoundaryTests.class
new file mode 100644
index 0000000000000000000000000000000000000000..f8761768590cad7fc96ed2b9bbe6159ba6078975
GIT binary patch
literal 2914
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
DU?z$(

literal 0
HcmV?d00001

diff --git a/out/test/machine/swen90006/machine/PartitioningTests.class b/out/test/machine/swen90006/machine/PartitioningTests.class
new file mode 100644
index 0000000000000000000000000000000000000000..ac31da2154ecd529480331ea34bada8ded32eeb8
GIT binary patch
literal 9400
zcmX^0Z`VEs1_l#GXD)^WhLx-g5WvL6u!><dJHr|-23CfZ91Lr@8P+kZ=U~_XqBnvh
zH*qj*=3<Cv*uu`Rm5YIoVI_#z2Gg(0&aj<}K^UZU2M5DW4u)ME47)iP_HZ!l<zU#y
z!LXl$;Q$B2L6B*OxET&J903tW*%^*;FdXM%P+~a2!Eh2ppW<XV&2WZ;;Vc)!IfnBb
z3>QFx7daR%aWGs4F|TkiT;*W6#=&r%gW(29;3kN;#ldi!gW(Pb!(9%BdmIe+L1GWM
z7#=b_;$V2p!SIBG;VB2hGY*F591Jfw7+!KPykh?UpMimyf#Lsu4u;np3~x9X-f}R!
z<6wBt!SI2D;UfpbCk}?s91LGL7`}2aeB)sF&cX15gW)F^!!L&4Tnv90{&F$=WBAX-
z$iT?R&d9{caGH^sgOP=c;T$6?7egc?8yCZAMs{{a4t7RPMg}&U%)HDJJ4Oa(4b3n{
z1{UZ1lvG9rexJ;|RKL>Pq|~C2#H5^5Mg}3D{N%)(u*9NF5FaYYQj(Eb%*deXQ(T^!
zXK7$yV5Xm&n4FQBm#QC-SX7c(l9`{EnU@}tT3k|W&B(x7oLUlEz{nsORGL?knVTAx
zS)7@alj@k4mtT?yQd<nRrzl-Nt28gOMBgbjEx#z$nvsE{BsH<fCBHn6kwMTWA1?2h
zR+3r-GB*)q10w@RYDGb6a!G0mBLkx+BLiDva!F}o4kLpAk{*ysYeoj{#Jv2HjMO3!
zmyv-bC$qQ&q%JG5EK$F-Br`|fC$qT3nvp>a)!UT?sZg)0_@Jt_f$(z@^V0Q$ONuh{
z(yi^R85wvJ-7<4h{R>j_AU3h)Wagz7GcqvdGBQYG2{vCy@L4l5@F(WERwSnufWif$
zmkZ7>W@qGLWDtc|nVGNe=?|B(W@O+AOU%hk$t<aaXk!G2D%iEiu480iE6LAJ%`0YP
z5RQhJgeuLHna9Y$T%20M$iN$1l9-(Bn^*w$JUb&dJ0lM$0Wln7XJ}?*;C9Z>%}vcK
zf!N2InU|7U!N|av$;iMNT#%TY3K8dY%`JeriO0VnwJ5P99~%CQMT`ub`B0%^Mh5nv
zRH$L>zWHSk?aXDMsATs^f$Cu@GGb(44=#an*}ZZLAPU*Msvr!3qSV9`&%EN2qS9ng
zC>Ap^sAypNR1+eE9P5m!@X!T^33BMNq-BEg1AB5tVi7oSq#*k9GV}GJV*1VyIcs)C
zUUo(%P%vbs=Ovbu7Ns&WSP<a^9Epi5IKQ+gITe(m7#YMca+n?{j(Hdo8Isr;`FI%l
z83h;_gh67E6zy14lvoK$){G2{iR_HrJdA>jLW~TINj!|gj6yt&B8;Mp3<9YYiMa(i
zsm1z<Amw_+JPdOf<}xx!V&-sYQsrS3V-$y3gqju^8JHbiTo@UcgF~Gd8JK-TeHa;-
zT|C1W8JL4yLqH<_AhwT75J*i3i1hLeU}RwOisE6EV3cHM<l$kIVwC1#lwp)*WDo%R
z1soxe9LC7NXwAbY$0*Opz^K5(sKBVm&Zxx0sLZIs$RHDvky)&eS*(z#PzK5l3Ymz6
zz{Sp}%EPF}sLsg1z{98k3Iz=1<r$eJsS3rQ<jcj#pa3(?&p!mKi9C#&j9QEgau9V0
zs~|2&hU5<}Mh1<LjMSo3kf@)(0#sNbGfx3jkfJydS!qFHQ3<l7jsjQ&s-26GfjOpF
zn}<=GQHO_7mr<ILK@8#ykmr+f67#a*{*Z!6K>UF!DU0kjq~KBjIhl)*0U@85hwL1f
zJYx_KqaLF^JEH*)qai3X1U>U0VPBM*o>^RyTExZ3AP39&C?;eULt=@GkwFHgDGyxz
zDCDOpBo?KYg36a-E=C3|nEqlb1*E(U3DFRR#5@I9IRdf_)w@BiA;`9JfodXDA&@a(
zCv!0}C<eKPfb0PC6|lPo8sEhVknr^N4@0wn59XV)#GKMpkd0_+P;B(|4<pe=AD19B
z8zs?%P%Q9q2_j^HWN-+Iktq6uLkQ|e3lcBi0CWeU387fv<r_fAfwHKP>J^1%z67cW
zvhfODQG`rq4GnSAwP0uD<zX~pG-hWs;bAmoG-GEp=V7#9v}9+r;$gIAw1Jg(;KB%A
zJMb{tf{GpuSe$3(6_l1Jfa(iH1&v}*6<Si1n4GGRmY<W8UtX-q!)V8-&ckTW=)lA1
z$mqn#pp03{VwCbI<)D93R%&tyifckLit@`rZ8Sy(K5&5vuh<wFgb)IrC6Ef3kwF41
zh^6{sWDr1VYZVu#7L_nE@Fap6u7#zEImL_&tQuZkpmrm3VoC}lgD7&{263CUW)vd>
zM{<5%Nn$3bt-%G+A5v7B%E-W?5e3rBo?4NbTw0RK$RG?g0PbdMO;1J!j!d{?#Waws
zYnUgj85!6!5{vy(D@wo(*(gQ^mOL;=1g0JwQ&1;?TA~FxnI()2>QMW@vXDx}S`%w)
zh`S`;C%-(k$T_h%m5~9}Sg1ynm<g^dE=kR0WMIxOErB;CGV}EViZb&`f=h~06LYO$
z@rEkQ$iP|vQiK+qP)k7J#g+;UeRgnD%Rdc=Qcp$(uA<a}oW$f*$DADOO%F)p1;ziE
zLW~UTnZ@Ad8zTcd)I>%G7v#VLHF<(l3rkb;l2fgbOh6Hb#vQV4j0}R{^amF6%qvMv
zPc33(;3xn!t~~Qf7#Y~p@{9Zub5j`^^pNd?1qZ|`EUDL;kwFq{GDr@T2lYYiCP=gt
zGcs_cr<S;+rX`l<lrS>Lz)}eowbsZv1kD^q2KMySl7PgL3`PcPEUv?nlAu8Vw+N&e
zo)F-oAg2~HGVp*}u#P!7px#(9BZC9f3b-<`X51kFwF{A%7#WyTi;5T-*ue=bCy$YV
zAIt(b??XUk6C;BJ)DqN0X$?wuEU6WsOv9q#sTszg$Pmwv0Pdg*GcbZ0oeYc&$qWn(
z`V5Q=j0_A6tXkU{7&kI7FfcKsFfcH%fdvH_QW+Q+c))B{hBStB1_lO3h75)z1}3m(
zZ7`n!Q=>SNMn<T{OsKJ0U`^SC4UxrTNDkPLT(}_-3@o5NI0GN64XdpP1Cs~?(+&m}
zgnxt>SQr=>R2Y~TR2f(p)EIaf)WN1JKy*Q!$i%?IkjIeEz{tSDz{OC&kk7!x0CRRB
z*v2BbjWrBR3``6R3~IX>SR=PHu=!{UvF~KyU}6Z@7UG04*mp8;F){35;0C#b862`=
z44{DyZ3Yeo9R@)LT?Q!z0|r$FL$GVaASOax!@(fOP|Q%mz{pSvjRlBE83QAltIFZ7
zs(^-rjFu43b_QOb-3)w@+Zp(Mb+orJ2(*eY2tq>z;uc7#m@%+3m^1J*STIO4Sc2UF
z2^ATrJJ=aS87jc;;Ah}vsAQ;OV1l~{B8TasYK9~RW^fuYVqgNNACBD&!jan<ME0Yl
zF$b`XkTk{twXueQfq{jAk)amsPi_WAhC&8LhP-5kItE6DdYEUK<QbS4xEL51zQR2V
zjtO5KAyG&K=m?3y7~(L71dJgGV@Sam(lCY$j3EnS$Uzv|I~n8|8T@p2GAJ-I%w(w3
z-N~TH$Z&u`$%;jiMM!xYg9@_|n5nvrLB)zylGTb$l5L+EJF^*wD2FKfA_h-MHc<{E
zD^49r&TR~8;M6gbfo~Iox{$^;2F>LR%95NyTH6@3p@KSKL9o0on913~!MObYw&nlp
zK`Dv_oTAbgBpDbO+!)vy+!^>8JQ*YyyciT2ycx6@d>D)wd>L#Q{1{vr{2BZh0vN&>
z0vQq*f*3LxLKs>YLK*rQ!Wd>Sgfnbnh+sIt5Xo?wA&TKDLo~w!hFFFd3~>yv8NwMp
zG9)s5VMqeUlN|#a!zKnxh6aX422O?<43P{?49yIz3@r?~3@r?e;9T|<8jI`<@8Id?
z8AB^W2{he+QaMBply3MLKyqaaObl%d3=BRD?Ee@F*csZvsN+9_F#{(%LnoNm&d$)m
z&d|lq(9O=!&B(~W@P|Q-ouNzQ7X#OS237_ZWOWP-zcBJ{4=mv@d}d$*=fW^(!huAq
zuMRX?9d%&Q>Zc2eR6R2mQI=VdXwnBqgN!H((*lTq0a$<=6orN$=Knp2n9%|!&kP23
zhAaj}hHM5+hFk_chCBvKhI|Hlh5`mJh9ZU_h7yKQhEj0oYB8`dXfkLr^fKf#urMex
z7&7!RG=fX0FnE~yL&FqSCa^PrL_i@43O`8(*1rsV;Na@`%b>;1(8Vb5lYt#GF#6$v
z@qmFD92j2M1H%+KFpNNn(-@S(w=tMN)2J!P*9_nQFat6FpFjkF5(5VV149)9J3|eF
zB10{MHbWhQF+)9r9YZ678$&aLCqoO|<Jt_;;A92zxGLP^UT}{)V|W}S0`s^O0}GPJ
z^}*?+3#-p3z<qv%feD;o?Xmk@3(4mQ@0x@B2=T53i246A!n<+|><kPH9SrOYT?~p0
z-3%HGJq*SSeGJwN6Bz6mCW5^RDq9s9q~IR3hkMWh!-F6Zm<Pp?Jotw}g`J`67q)nv
z2=g7|V+Lk$=wFBW4q8tURXRd41iYM^MxdP2kz{2yf)-{mlC1mK7ce-pn6Zhnu`gmU
zmt+-XGZL}{r5vjr4Ay4sqU^I7xJ20n<d-n;fU=FvHU`a&AcpNW2F(^W#^wJ{E@w~x
z8MA~z5+rU13TH@evj;QTmj6#jgnAN#1Oo%ZGzNBt84Uakvlt{8W-}-<%wf=Cn9E?y
zFrUGXVF5!V!$O86hD8kd42v1c7?v>9Gc0A8z_6TQ4#NtDB@8PWmNKkiSj(`4VH?9b
zhP@2y8BQ>4Vz|Jtnc*_SR)%W~+rTmB!NATifkBpG5<@-%J3}Rd6+<6GJ_8#=5<?-h
z6!c?gg_nZY;qiI_8n65eCm1H9m4YBSPz*!lV5Oi21Lr>mD{w9b6?*>|?7-={oAD2W
z5+lb?23{t?pA1}>nR*I5@*^0S8Q2&Y7<!<Q4~bBC30IDkv_U1D3bT=)t`NA=Vv%Io
z$GU*QU6O^_NJw%iB-kCm!EPtX!h#%=tfH)-m}JF_Nk_1HaJ}UOX0k2+--d`WHwHll
z28P`X><oJu6dCq0Xff<(Fk(2sV99Wh!HMAzgD=AohFFGU44Dka844LrFcdMIVyI#`
z%}~p5mZ6p5976}g1%_^hi{Mx>VPIv5g~kdigAqd*I4(eiNIEz!m_eZckBe4lTp&tM
zkO(LSK&7V=13OY70uA&(4AP7ozZkf%hWJ!?h)-u=2Iu}Y*h73e{t#zhz>p3OaVcns
zJA;EQj;IiqWMMS|<t#Q)HX)aV3|yjYLaxxf<p#@J?qKu4G2#JcvMv9ghKP|c22lnE
zhHDJ$3^y1Q8E!IYG2CJ>Vz|v<$#93kiQz7TFT;I?ScZoTnGBB@3K<?V6frzwsAhP<
z(8=(UVIspThDi)>7-liNWthwGo?$7&2Zj|4pBPp%d<Msm9RnLfEQ2jL->@=NGsrVc
z1LqqfhBA0uwZr3T4Lq)vV#F0l1Qu8744gRP>JNh$D3f51u<7s!yA3TLFJh0dJp?1H
z2OMG2&<OJchiWs?5r$MEvWc>R@(~+qK9Xc%1IH@6C_5xp*)e0)3v4MkR=vSYw&njF
z5wQws8UAEoXZX#a$nb|ji{USW5yL+QONRdpPK*o;zKl!^v5YJXnT)Iqg^X+rMU0#b
zO^n<OeT+N|(-?UfrZWmKEMOF3SjQ;Lu#HiKVLPK3!+u6_hC_^!45t{S7|t@vFkE1S
z^wU74V=O}wG?tqfY#C;NV|f8IzS$X!7-qxcdks9kFT&&d6h?f5L}2l)!@!L*zNHyC
zz>)p~M=qU7?MRm)Gt%+pQc!#&B?{ctqz^cz!IAC@W@3qSMr8(eMpXtyMl}X4Ms)@w
zMhyl_Mok7MMlA+kMjeJ&Mm>g1Mtz1tMgxW-Mq`F*MpK4PMl*(qjOGlJ7_Ar<G1@S!
zW3*-1#%RZ|ozanDKcf@FAx0O5Q;e<*XBpiYE--q4vo>m^S2MUkv-TneS#b2zGSbCB
zkuJ^1fh*Ey!6QAGfeBn0wqwufMfh_%>jDNRa88$93aJeJz=3WF%ITo^WEEwF<WE-2
z{OJ!?3XZA(Fq3Wh|87M71lNO%ehlo40St<afec!VK@3KW!3>s+Aq-B8p$xu^;S6Dn
zkqjw}Q4BeZ(G0naaSWx5@eCD=i3|;lNes=5DGY6lso<yp)q`QsyauWV1L1is37*&5
z;d!kABd>u($`}~Iy)Yd0pcw9Ya5g-!DXRzBVD+FJG_V7~!A8A$FbHfOI7WiOOf2;v
zV>SajV=jXtV;+MRV?KisV*!IDV<CeRV-bTdV+lhnV;MsxV>v@1V+BJIV>LrHV=Y4`
zV;#dp#(IWHj7<!)7@Ha9GPW`-Wo%<u!PvpDnz0KULxZRuWCBeSLkIEhLHmEkLLoaC
zLVX$ib})o#Gw)?k+QtyBvx6bRZ#jdc70V`uD52<W3^9@*);5M%mK_Xnx*Hf688{du
z7^E2@86aa3Y7CqV42%;Q*cc}<a4=3`kYJp}Ak8?9L6&hkgDT?;23^LP42F!e!QlZ)
zv9b&z4D%S~gS%nI(A3GmV9c<9p^<@+fsH|zVIjjJ1||j$25oSPWrmMDK}5<Jn87Jl
nl7Z<zgEVvupo^VhF*`#$10y@b5>bYw-~p#)42%rR!K@Vk^w(V6

literal 0
HcmV?d00001

diff --git a/src/swen90006/machine/BugException.class b/src/swen90006/machine/BugException.class
new file mode 100644
index 0000000000000000000000000000000000000000..1dfe8037cec1b56b9177db63e8fbf1d1ae27bc37
GIT binary patch
literal 462
zcmX^0Z`VEs1_l!b8FmJKE(S&h0S*R15G@2Egt-_v7)00^MA;d{7#Y}XGV?M^>=+qD
zHGHxX%M$f-67$magG-7s^U|#~!x$M@obyvs85#I}GV@aXN^_G^i$W5Ua#9%?xPtRb
zi;`2_GC>?cr_yxSisaOSlFa-(J&-|+4B{XP**vGx%$$_eA|3`#2609PjmZ2`g_5Go
z^z_uC)D(sMyi|q!G=-9kRE6Ty<kF(dl1hc7()40QE*=I621y<UDF$hfPA*0Ux#IHF
zJWB%u12g^H#N>?3yi|Q;>lqn@5jMje#mK;{0rC%9VnIP_UJ4_FE;bKigaOpe){G1s
zCHatGVPp`|(8N$^&7jD@&cML{0*nld44e$0z~%<W12Y2?0|SGE)@}yI$n6YFLd@G3
sShTk>uxw*s-Oj+ak%57Mk%5PSfq@IGj+H^2fsKKYftP`Sfr)_+0FB&llmGw#

literal 0
HcmV?d00001

diff --git a/src/swen90006/machine/InvalidInstructionException.class b/src/swen90006/machine/InvalidInstructionException.class
new file mode 100644
index 0000000000000000000000000000000000000000..bb7c4986d45f664b0412fff7699f9f788690bf3a
GIT binary patch
literal 364
zcmX^0Z`VEs1_l!bK`sUs23`&ZK6VCvb_M}P1~!|_yv!0iMh0dL%`ip=7U%qwR7M7V
zpUk{eztY^K)S{5Yq?}Yn29A>a;F6-uymUqe5e-eBti-ZJ{hY+SbbW}ZH6sI8aDHh~
za;jS<NV$S%URh#JW{PKCaY<2Wa!F=>o@+&NY5|C$2hz;Lz{<eJ$RLeJ9V3Hoad~Q<
zrGbHgnSO3!az<uesy<%zQXrEd&I&5cE6L1Fg<Hy?$iU3N!T<tH42&Sl85kMZ85kI3
z85kKD85kH?wYD=bZe(C!U}WH6U|?Va3o<h>GH^0*L6u5Fl`;!4Z9r4V&cMjP&A`CG
H#J~dpYS~ky

literal 0
HcmV?d00001

diff --git a/src/swen90006/machine/Machine.class b/src/swen90006/machine/Machine.class
new file mode 100644
index 0000000000000000000000000000000000000000..94ebb227a2e669dadb90a3bc18be0328060e8a02
GIT binary patch
literal 4741
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
OGU_rgG8BR}6#)PM{@s26

literal 0
HcmV?d00001

diff --git a/src/swen90006/machine/NoReturnValueException.class b/src/swen90006/machine/NoReturnValueException.class
new file mode 100644
index 0000000000000000000000000000000000000000..24939b36bb51d8add3808132e52b2cb67954a9ff
GIT binary patch
literal 349
zcmX^0Z`VEs1_l!bK`sUs23`&ZK6VCvb_M}P1~!|_yv!0iMh0dL%`ip=7U%qwR7M7V
zpUk{eztY^K)S{5Yq?}Yn29A>a;F6-uymUqe5e-eBti-ZJ{hY+SbbW}ZH6sI8aDHh~
za;jS<NV&9Meo$&jX;EHSVoqtQYejNuK}lwQo*qaa4+AR$8zX}lb|s7q8pY+Qd6otS
z24?!XiOCt6d8zuiluCijgSaE8G_NEx7hx5HA_Fr63j+u+F))IxWME`qXJBBEWng4r
zWME)m)!NR$xRHT@fsuiOfq{VyBFMnVz{$V`RVoct$}GgR0Zkz%10w@B0|NsS0}lYb
CQcVm1

literal 0
HcmV?d00001

diff --git a/src/swen90006/machine/SimpleDriver.class b/src/swen90006/machine/SimpleDriver.class
new file mode 100644
index 0000000000000000000000000000000000000000..3fb458aa4c7fafd66c7023411032fc1492a0849d
GIT binary patch
literal 2292
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
CGgUkQ

literal 0
HcmV?d00001

diff --git a/test/swen90006/machine/BoundaryTests.java b/test/swen90006/machine/BoundaryTests.java
index 61ce1ca..ab0fa6e 100644
--- a/test/swen90006/machine/BoundaryTests.java
+++ b/test/swen90006/machine/BoundaryTests.java
@@ -60,17 +60,6 @@ public class BoundaryTests
     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)
diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java
index 5494b44..352e8b0 100644
--- a/test/swen90006/machine/PartitioningTests.java
+++ b/test/swen90006/machine/PartitioningTests.java
@@ -1,6 +1,10 @@
 package swen90006.machine;
 
+import java.util.Arrays;
 import java.util.List;
+
+import javax.print.DocFlavor.STRING;
+
 import java.util.ArrayList;
 import java.nio.charset.Charset;
 import java.nio.file.Path;
@@ -60,15 +64,330 @@ public class PartitioningTests
     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()
+  //Test for valid instructions in any given instructions
+  @Test public void ValidityTest()
   {
-    //include a message for better feedback
-    final int expected = 2;
-    final int actual = 1 + 2;
-    assertEquals("Some failure message", expected, actual);
+    final List<String> lines = readInstructions("examples/array.s");
+    List<String> set = new ArrayList<>();
+
+    set.add("ADD");
+    set.add("SUB");
+    set.add("MUL");
+    set.add("DIV");
+    set.add("RET");
+    set.add("MOV");
+    set.add("LDR");
+    set.add("STR");
+    set.add("JMP");
+    set.add("JZ");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      for (String s : tokens){
+        if (set.contains(s.toLowerCase())){
+          System.out.print("This is a valid instruction\n");
+        } else if (s.equals("")){
+          System.out.print("This is a valid white space\n");
+        } else {
+          System.out.print("This is NOT a valid instruction\n");
+          break;
+        }
+      }
+    }
+    return;
+  }
+
+  //Test for comments
+  @Test public void CommentTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String i : lines){
+      int index = i.indexOf(";");
+
+      if (index == 0 ){
+        System.out.print("This instruction is a comment\n");
+      } else if (index == -1){
+        System.out.print("There is NO comment in this instruction\n");
+      } else {
+        System.out.print("There is part instruction, part comment\n");
+      }
+    }
+  }
+
+  //Test for white spaces
+  @Test public void SpaceTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String i : lines){
+      String s = i.replaceAll("\\s+","");
+      if (s.isEmpty()){
+        System.out.print("This is a blank space\n");
+      } else {
+        System.out.print("This is NOT a blank space\n");
+      }
+    }
+  }
+
+  @Test public void EmptyTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String i : lines){
+      if (i.isEmpty()){
+        System.out.print("There is NO instruction here\n");
+      } else {
+        System.out.print("There is an instruction here\n");
+      }
+    }
+  }
+
+  // Test for operator instructions (ADD, SUB, MUL, DIV)
+  @Test public void OperatorTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    List<String> operators = new ArrayList<>();
+
+    operators.add("ADD");
+    operators.add("SUB");
+    operators.add("MUL");
+    operators.add("DIV");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (operators.contains(tokens[0])){
+        if (tokens.length == 4){
+          for (int i=1; i < 4; i++){
+            int r = Integer.parseInt(tokens[i].replace("R",""));
+
+            if (r < 0 || r > 31 ){
+              System.out.print("Invalid register\n");
+              return;
+            }
+
+            System.out.print("Operator instruction is valid\n");
+          }
+        } else if (tokens.length > 4){
+          System.out.print("Invalid number of arguments\n");
+        }
+      } else {
+        System.out.print("Operators: Instruction is NOT an operator\n");
+        break;
+      }
+    }
+  }
+
+  // Test for RET instruction
+  @Test public void RetTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (tokens.length == 2){
+        if (tokens[0] != "RET"){
+          System.out.print("This is NOT a RET instruction\n");
+        } else{
+          int r = Integer.parseInt(tokens[1].replace("R",""));
+
+          if (r < 0 || r > 31 ){
+            System.out.print("Invalid register\n");
+            return;
+          }
+          System.out.print("RET instruction is valid\n");
+        }
+      } else {
+        System.out.print("RET: Invalid number of arguments\n");
+        break;
+      }
+    }
+  }
+
+  // Test fo MOV instruction
+  @Test public void MovTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (tokens.length == 4){
+        if (tokens[0] != "MOV"){
+          System.out.print("This is NOT a MOV instruction\n");
+        } else{
+          int r = Integer.parseInt(tokens[1].replace("R",""));
+
+          if (r < 0 || r > 31 ){
+            System.out.print("Invalid register\n");
+            return;
+          }
+
+          int val = Integer.parseInt(tokens[2]);
+
+          if (val < -65536 || val > 65535) {
+            System.out.print("Invalid value\n");
+            return;
+          }
+          System.out.print("MOV instruction is valid\n");
+        }
+      } else {
+        System.out.print("MOV: Invalid number of arguments\n");
+        break;
+      }
+    }
+    return;
+  }
+
+  // Test for LDR Instruction
+  @Test public void LdrTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (tokens.length == 4){
+        if (tokens[0] != "LDR"){
+          System.out.print("This is NOT a LDR instruction\n");
+        } else{
+          int r = Integer.parseInt(tokens[1].replace("R", ""));
+
+          if (r < 0 || r > 31 ){
+            System.out.print("Invalid register\n");
+            return;
+          }
+
+          int r2 = Integer.parseInt(tokens[2].replace("R", ""));
+
+          if (r2 < 0 || r2 > 31 ){
+            System.out.print("Invalid register\n");
+            return;
+          }
+
+          int val = Integer.parseInt(tokens[3]);
+
+          if (val < -65536 || val > 65535) {
+            System.out.print("Invalid value\n");
+            return;
+          }
+          System.out.print("LDR instruction is valid\n");
+        }
+      } else {
+        System.out.print("LDR: Invalid number of arguments\n");
+        break;
+      }
+    }
+    return;
+  }
+
+  // Test fo STR instruction
+  @Test public void StrTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (tokens.length == 4){
+        if (tokens[0] != "STR"){
+          System.out.print("This is NOT a LDR instruction\n");
+        } else{
+          int r = Integer.parseInt(tokens[1].replace("R",""));
+
+          if (r < 0 || r > 31 ){
+            System.out.print("Invalid register\n");
+            return;
+          }
+
+          int val = Integer.parseInt(tokens[2]);
+
+          if (val < -65536 || val > 65535) {
+            System.out.print("Invalid value\n");
+            return;
+          }
+
+          int r2 = Integer.parseInt(tokens[3].replace("R",""));
+
+          if (r2 < 0 || r2 > 31 ){
+            System.out.print("Invalid register\n");
+            return;
+          }
+
+          System.out.print("STR instruction is valid\n");
+        }
+      } else {
+        System.out.print("STR: Invalid number of arguments\n");
+        break;
+      }
+    }
+    return;
+  }
+
+  // Test for JMP Instruction
+  @Test public void JmpTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (tokens[0] == "JMP"){
+        if (tokens.length == 2){
+          int val = Integer.parseInt(tokens[1]);
+
+          if (val < -65536 || val > 65535) {
+            System.out.print("Invalid value\n");
+            return;
+          }
+
+          //System.out.print("JMP instruction is valid\n");
+        } else {
+          System.out.print("JMP: Invalid number of arguments\n");
+          break;
+        }
+      }
+    }
+    return;
+  }
+
+  // Test fo JZ Instruction
+  @Test public void JzTest()
+  {
+    final List<String> lines = readInstructions("examples/array.s");
+
+    for (String in : lines){
+      in = in.split(";")[0]; // Remove comments
+      String[] tokens = in.split(" ");
+      if (tokens[0] == "JZ"){
+        if (tokens.length == 3){
+            int r = Integer.parseInt(tokens[1].replace("R",""));
+
+            if (r < 0 || r > 31 ){
+              System.out.print("Invalid register\n");
+              return;
+            }
+
+            int val = Integer.parseInt(tokens[2]);
+
+            if (val < -65536 || val > 65535) {
+              System.out.print("Invalid value\n");
+              return;
+            }
+
+            //System.out.print("JZ instruction is valid\n");
+          } else {
+            System.out.print("JZ: Invalid number of arguments\n");
+            break;
+        }
+      }
+    }
+
+    return;
   }
 
   //Read in a file containing a program and convert into a list of
-- 
GitLab