aboutsummaryrefslogtreecommitdiffgithub
diff options
context:
space:
mode:
authorAustin Adams <git@austinjadams.com>2018-09-07 00:25:49 -0400
committerAustin Adams <git@austinjadams.com>2018-09-07 00:25:49 -0400
commitc2a24054c3a879ace9f06907604709844ddf7f72 (patch)
tree66ba426b3182bce6c0bd1ecef1e84df91ca124e2
parent48c98aaccbad6b0e22d94519903435332a33a78f (diff)
downloadcircuitsim-grader-template-c2a24054c3a879ace9f06907604709844ddf7f72.tar.gz
circuitsim-grader-template-c2a24054c3a879ace9f06907604709844ddf7f72.tar.xz
Update docs/
-rw-r--r--docs/allclasses-frame.html5
-rw-r--r--docs/allclasses-noframe.html5
-rw-r--r--docs/constant-values.html4
-rw-r--r--docs/deprecated-list.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/BasePin.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/InputPin.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/MockRegister.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/OutputPin.html8
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/Restrictor.html420
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/Subcircuit.html8
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html92
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/package-frame.html5
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/package-summary.html11
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/api/package-tree.html5
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/extension/BasesConverter.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/extension/CircuitSimExtension.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/extension/package-frame.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/extension/package-summary.html4
-rw-r--r--docs/edu/gatech/cs2110/circuitsim/extension/package-tree.html4
-rw-r--r--docs/help-doc.html4
-rw-r--r--docs/index-all.html35
-rw-r--r--docs/index.html2
-rw-r--r--docs/member-search-index.js2
-rw-r--r--docs/overview-frame.html4
-rw-r--r--docs/overview-summary.html4
-rw-r--r--docs/overview-tree.html5
-rw-r--r--docs/type-search-index.js2
29 files changed, 553 insertions, 112 deletions
diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html
index b4181fa..e994237 100644
--- a/docs/allclasses-frame.html
+++ b/docs/allclasses-frame.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>All Classes (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
@@ -27,6 +27,7 @@
<li><a href="edu/gatech/cs2110/circuitsim/api/InputPin.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">InputPin</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">MockRegister</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">OutputPin</a></li>
+<li><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">Restrictor</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">Subcircuit</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html" title="annotation in edu.gatech.cs2110.circuitsim.api" target="classFrame">SubcircuitPin</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html" title="annotation in edu.gatech.cs2110.circuitsim.api" target="classFrame">SubcircuitRegister</a></li>
diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html
index f0be783..df86efb 100644
--- a/docs/allclasses-noframe.html
+++ b/docs/allclasses-noframe.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>All Classes (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
@@ -27,6 +27,7 @@
<li><a href="edu/gatech/cs2110/circuitsim/api/InputPin.html" title="class in edu.gatech.cs2110.circuitsim.api">InputPin</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api">MockRegister</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api">OutputPin</a></li>
+<li><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html" title="annotation in edu.gatech.cs2110.circuitsim.api">SubcircuitPin</a></li>
<li><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html" title="annotation in edu.gatech.cs2110.circuitsim.api">SubcircuitRegister</a></li>
diff --git a/docs/constant-values.html b/docs/constant-values.html
index 4deb5ee..5fc91bd 100644
--- a/docs/constant-values.html
+++ b/docs/constant-values.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Constant Field Values (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html
index eb8ff69..8f1b811 100644
--- a/docs/deprecated-list.html
+++ b/docs/deprecated-list.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Deprecated List (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/BasePin.html b/docs/edu/gatech/cs2110/circuitsim/api/BasePin.html
index 362c90b..0030978 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/BasePin.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/BasePin.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>BasePin (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/InputPin.html b/docs/edu/gatech/cs2110/circuitsim/api/InputPin.html
index bcdbfb7..057c8d3 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/InputPin.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/InputPin.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>InputPin (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/MockRegister.html b/docs/edu/gatech/cs2110/circuitsim/api/MockRegister.html
index cd2160d..43f68c0 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/MockRegister.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/MockRegister.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>MockRegister (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/OutputPin.html b/docs/edu/gatech/cs2110/circuitsim/api/OutputPin.html
index 4e4fae0..28b2be1 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/OutputPin.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/OutputPin.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>OutputPin (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -61,7 +61,7 @@ var pathtoroot = "../../../../../";loadScripts(document, 'script');</script>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/gatech/cs2110/circuitsim/api/OutputPin.html" target="_top">Frames</a></li>
@@ -353,7 +353,7 @@ extends <a href="../../../../../edu/gatech/cs2110/circuitsim/api/BasePin.html" t
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/gatech/cs2110/circuitsim/api/OutputPin.html" target="_top">Frames</a></li>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/Restrictor.html b/docs/edu/gatech/cs2110/circuitsim/api/Restrictor.html
new file mode 100644
index 0000000..bbccb8e
--- /dev/null
+++ b/docs/edu/gatech/cs2110/circuitsim/api/Restrictor.html
@@ -0,0 +1,420 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
+<title>Restrictor (CircuitSim Autograder API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="dc.created" content="2018-09-07">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-1.10.2.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Restrictor (CircuitSim Autograder API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?edu/gatech/cs2110/circuitsim/api/Restrictor.html" target="_top">Frames</a></li>
+<li><a href="Restrictor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="../../../../../edu/gatech/cs2110/circuitsim/api/package-summary.html">edu.gatech.cs2110.circuitsim.api</a></div>
+<h2 title="Class Restrictor" class="title">Class Restrictor</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>edu.gatech.cs2110.circuitsim.api.Restrictor</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Restrictor</span>
+extends <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Validates a subcircuit by checking for issues such as banned
+ components. Example:
+ <pre>
+ @DisplayName("Toy ALU")
+ @ExtendWith(CircuitSimExtension.class)
+ @SubcircuitTest(file="toy-alu.sim", subcircuit="ALU",
+ restrictors={ToyALUTests.BannedGates.class})
+ public class ToyALUTests {
+ public static class BannedGates extends Restrictor {
+ @Override
+ public void validate(Subcircuit subcircuit) throws AssertionError {
+ blacklistComponents(subcircuit, "XOR");
+ }
+ }
+
+ // ...
+ }
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#restrictors()"><code>SubcircuitTest.restrictors()</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html#%3Cinit%3E()">Restrictor</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html#blacklistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)">blacklistComponents</a></span>&#8203;(<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a>&nbsp;subcircuit,
+ <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;componentNames)</code></th>
+<td class="colLast">
+<div class="block">Fail the whole test if the subcircuit contains any of these components
+ or component categories.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html#validate(edu.gatech.cs2110.circuitsim.api.Subcircuit)">validate</a></span>&#8203;(<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a>&nbsp;subcircuit)</code></th>
+<td class="colLast">
+<div class="block">Validates this subcircuit, throwing an <code>AssertionError</code> if
+ any issues are found.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html#whitelistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)">whitelistComponents</a></span>&#8203;(<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a>&nbsp;subcircuit,
+ <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;componentNames)</code></th>
+<td class="colLast">
+<div class="block">Fail the whole test if the subcircuit contains any components other than
+ these components or categories.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Restrictor</h4>
+<pre>public&nbsp;Restrictor()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a id="validate(edu.gatech.cs2110.circuitsim.api.Subcircuit)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validate</h4>
+<pre>public abstract&nbsp;void&nbsp;validate&#8203;(<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a>&nbsp;subcircuit)
+ throws <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink">AssertionError</a></pre>
+<div class="block">Validates this subcircuit, throwing an <code>AssertionError</code> if
+ any issues are found. (The subcircuit name will automatically be
+ included in the exception, so don't worry about that.) Subclasses
+ should override this method with one that calls the protected
+ helper methods in this class as needed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>subcircuit</code> - the subcircuit to validate</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink">AssertionError</a></code> - on validation error. Do not worry about
+ including the subcircuit name</dd>
+</dl>
+</li>
+</ul>
+<a id="whitelistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>whitelistComponents</h4>
+<pre>protected&nbsp;void&nbsp;whitelistComponents&#8203;(<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a>&nbsp;subcircuit,
+ <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;componentNames)
+ throws <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink">AssertionError</a></pre>
+<div class="block">Fail the whole test if the subcircuit contains any components other than
+ these components or categories.
+ <p>
+ Automatically includes Input Pins, Output Pins, Constants,
+ Tunnels, Probes, and Text. But other components will be allowed only if
+ you specify them here, including other Wiring components. Please
+ consider starting off with <code>"Wiring", "Text"</code>, or you will
+ risk frustrating students.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>subcircuit</code> - Subcircuit to validate</dd>
+<dd><code>componentNames</code> - component names or category names to whitelist</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink">AssertionError</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="blacklistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>blacklistComponents</h4>
+<pre>protected&nbsp;void&nbsp;blacklistComponents&#8203;(<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a>&nbsp;subcircuit,
+ <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;componentNames)
+ throws <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink">AssertionError</a></pre>
+<div class="block">Fail the whole test if the subcircuit contains any of these components
+ or component categories.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>subcircuit</code> - Subcircuit to validate</dd>
+<dd><code>componentNames</code> - component names or category names to blacklist</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink">AssertionError</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?edu/gatech/cs2110/circuitsim/api/Restrictor.html" target="_top">Frames</a></li>
+<li><a href="Restrictor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+</footer>
+</body>
+</html>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/Subcircuit.html b/docs/edu/gatech/cs2110/circuitsim/api/Subcircuit.html
index 96dfc68..465bbbf 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/Subcircuit.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/Subcircuit.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Subcircuit (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -60,7 +60,7 @@ var pathtoroot = "../../../../../";loadScripts(document, 'script');</script>
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html" title="annotation in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
@@ -548,7 +548,7 @@ extends <a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.htm
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html" title="annotation in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html b/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html
index 20695ba..d702f09 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitPin.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>SubcircuitPin (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html b/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html
index e72a78c..7b1035e 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitRegister.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>SubcircuitRegister (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html b/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html
index 0a2dc58..61f22ec 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>SubcircuitTest (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -182,26 +182,18 @@ public @interface <span class="memberNameLabel">SubcircuitTest</span></pre>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]</code></td>
-<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#blacklistedComponents()">blacklistedComponents</a></span></code></th>
-<td class="colLast">
-<div class="block">Fail the whole test if the subcircuit contains any of these components
- or component categories.</div>
-</td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#resetSimulationBetween()">resetSimulationBetween</a></span></code></th>
<td class="colLast">
<div class="block">Reset simulation between tests.</div>
</td>
</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]</code></td>
-<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#whitelistedComponents()">whitelistedComponents</a></span></code></th>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#restrictors()">restrictors</a></span></code></th>
<td class="colLast">
-<div class="block">Fail the whole test if the subcircuit contains any components other than
- these components or categories.</div>
+<div class="block">Validate the subcircuit with these <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><code>Restrictor</code></a>s before
+ running any tests.</div>
</td>
</tr>
</table>
@@ -265,51 +257,45 @@ public @interface <span class="memberNameLabel">SubcircuitTest</span></pre>
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<section role="region">
<ul class="blockList">
-<li class="blockList"><a id="blacklistedComponents()">
+<li class="blockList"><a id="restrictors()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>blacklistedComponents</h4>
-<pre><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;blacklistedComponents</pre>
-<div class="block">Fail the whole test if the subcircuit contains any of these components
- or component categories.
- Mutually exclusive with <a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#whitelistedComponents()"><code>whitelistedComponents()</code></a>.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>list of banned component names or component category names</dd>
-</dl>
-<dl>
-<dt>Default:</dt>
-<dd>{}</dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</section>
-<section role="region">
-<ul class="blockList">
-<li class="blockList"><a id="whitelistedComponents()">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>whitelistedComponents</h4>
-<pre><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;whitelistedComponents</pre>
-<div class="block">Fail the whole test if the subcircuit contains any components other than
- these components or categories.
- Mutually exclusive with <a href="../../../../../edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#blacklistedComponents()"><code>blacklistedComponents()</code></a>.
+<h4>restrictors</h4>
+<pre><a href="https://docs.oracle.com/javase/10/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a>&gt;[]&nbsp;restrictors</pre>
+<div class="block">Validate the subcircuit with these <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><code>Restrictor</code></a>s before
+ running any tests. Useful for checking for banned gates.
<p>
- Automatically includes Input Pins, Output Pins, Constants, and
- Tunnels. always allowed. But other components will be allowed
- only if you specify them here, including other Wiring components.
- Please consider starting off with <code>
- whitelistedComponents={"Wiring"}</code>, or you will risk frustrating
- students.</div>
+ The idiom is to subclass <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><code>Restrictor</code></a> inside your test
+ class and then call <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><code>Restrictor</code></a> methods as needed inside
+ its <code>validate()</code>, such as
+ <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html#whitelistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)"><code>Restrictor.whitelistComponents()</code></a> or
+ <a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html#blacklistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)"><code>Restrictor.blacklistComponents()</code></a>
+ as follows:
+ <pre>
+ @DisplayName("Toy ALU")
+ @ExtendWith(CircuitSimExtension.class)
+ @SubcircuitTest(file="toy-alu.sim", subcircuit="ALU",
+ restrictors={ToyALUTests.BannedGates.class})
+ public class ToyALUTests {
+ public static class BannedGates extends Restrictor {
+ @Override
+ public void validate(Subcircuit subcircuit) throws AssertionError {
+ blacklistComponents(subcircuit, "XOR");
+ }
+ }
+
+ // ...
+ }
+ </pre>
+
+ The default is an empty array, so to perform no validation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
-<dd>list of required component names or component category names</dd>
+<dd>restrictor classes to use to validate the subcircuit</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><code>Restrictor</code></a></dd>
</dl>
<dl>
<dt>Default:</dt>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/package-frame.html b/docs/edu/gatech/cs2110/circuitsim/api/package-frame.html
index dc9a97a..e26f9a6 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/package-frame.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/package-frame.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>edu.gatech.cs2110.circuitsim.api (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -28,6 +28,7 @@
<li><a href="InputPin.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">InputPin</a></li>
<li><a href="MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">MockRegister</a></li>
<li><a href="OutputPin.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">OutputPin</a></li>
+<li><a href="Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">Restrictor</a></li>
<li><a href="Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api" target="classFrame">Subcircuit</a></li>
</ul>
</section>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/package-summary.html b/docs/edu/gatech/cs2110/circuitsim/api/package-summary.html
index 8525162..f94b66b 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/package-summary.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/package-summary.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>edu.gatech.cs2110.circuitsim.api (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -152,6 +152,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr class="altColor">
+<th class="colFirst" scope="row"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a></th>
+<td class="colLast">
+<div class="block">Validates a subcircuit by checking for issues such as banned
+ components.</div>
+</td>
+</tr>
+<tr class="rowColor">
<th class="colFirst" scope="row"><a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api">Subcircuit</a></th>
<td class="colLast">
<div class="block">Represents and wraps the subcircuit to test.</div>
diff --git a/docs/edu/gatech/cs2110/circuitsim/api/package-tree.html b/docs/edu/gatech/cs2110/circuitsim/api/package-tree.html
index a3919d9..c107f89 100644
--- a/docs/edu/gatech/cs2110/circuitsim/api/package-tree.html
+++ b/docs/edu/gatech/cs2110/circuitsim/api/package-tree.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>edu.gatech.cs2110.circuitsim.api Class Hierarchy (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -118,6 +118,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</ul>
</li>
<li class="circle">edu.gatech.cs2110.circuitsim.api.<a href="../../../../../edu/gatech/cs2110/circuitsim/api/MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">MockRegister</span></a></li>
+<li class="circle">edu.gatech.cs2110.circuitsim.api.<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Restrictor</span></a></li>
<li class="circle">edu.gatech.cs2110.circuitsim.api.<a href="../../../../../edu/gatech/cs2110/circuitsim/api/Subcircuit.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Subcircuit</span></a></li>
</ul>
</li>
diff --git a/docs/edu/gatech/cs2110/circuitsim/extension/BasesConverter.html b/docs/edu/gatech/cs2110/circuitsim/extension/BasesConverter.html
index d1f3dae..b5ea6ed 100644
--- a/docs/edu/gatech/cs2110/circuitsim/extension/BasesConverter.html
+++ b/docs/edu/gatech/cs2110/circuitsim/extension/BasesConverter.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>BasesConverter (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/extension/CircuitSimExtension.html b/docs/edu/gatech/cs2110/circuitsim/extension/CircuitSimExtension.html
index ebb9ff6..d2f5ed2 100644
--- a/docs/edu/gatech/cs2110/circuitsim/extension/CircuitSimExtension.html
+++ b/docs/edu/gatech/cs2110/circuitsim/extension/CircuitSimExtension.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>CircuitSimExtension (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/extension/package-frame.html b/docs/edu/gatech/cs2110/circuitsim/extension/package-frame.html
index df1d295..5599e08 100644
--- a/docs/edu/gatech/cs2110/circuitsim/extension/package-frame.html
+++ b/docs/edu/gatech/cs2110/circuitsim/extension/package-frame.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>edu.gatech.cs2110.circuitsim.extension (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/extension/package-summary.html b/docs/edu/gatech/cs2110/circuitsim/extension/package-summary.html
index aab1978..b31c27c 100644
--- a/docs/edu/gatech/cs2110/circuitsim/extension/package-summary.html
+++ b/docs/edu/gatech/cs2110/circuitsim/extension/package-summary.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>edu.gatech.cs2110.circuitsim.extension (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/edu/gatech/cs2110/circuitsim/extension/package-tree.html b/docs/edu/gatech/cs2110/circuitsim/extension/package-tree.html
index de23c08..0e71e70 100644
--- a/docs/edu/gatech/cs2110/circuitsim/extension/package-tree.html
+++ b/docs/edu/gatech/cs2110/circuitsim/extension/package-tree.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>edu.gatech.cs2110.circuitsim.extension Class Hierarchy (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
diff --git a/docs/help-doc.html b/docs/help-doc.html
index 9fe9a14..af3931a 100644
--- a/docs/help-doc.html
+++ b/docs/help-doc.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>API Help (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
diff --git a/docs/index-all.html b/docs/index-all.html
index 993ff39..745658a 100644
--- a/docs/index-all.html
+++ b/docs/index-all.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Index (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
@@ -98,7 +98,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</nav>
</header>
<main role="main">
-<div class="contentContainer"><a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a id="I:B">
+<div class="contentContainer"><a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a id="I:B">
<!-- -->
</a>
<h2 class="title">B</h2>
@@ -130,7 +130,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<dd>
<div class="block">Desired bitsize of a matching register.</div>
</dd>
-<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#blacklistedComponents()">blacklistedComponents()</a></span> - Method in annotation type edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html" title="annotation in edu.gatech.cs2110.circuitsim.api">SubcircuitTest</a></dt>
+<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html#blacklistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)">blacklistComponents(Subcircuit, String...)</a></span> - Method in class edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a></dt>
<dd>
<div class="block">Fail the whole test if the subcircuit contains any of these components
or component categories.</div>
@@ -352,6 +352,18 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<dd>
<div class="block">Reset simulation between tests.</div>
</dd>
+<dt><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Restrictor</span></a> - Class in <a href="edu/gatech/cs2110/circuitsim/api/package-summary.html">edu.gatech.cs2110.circuitsim.api</a></dt>
+<dd>
+<div class="block">Validates a subcircuit by checking for issues such as banned
+ components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html#%3Cinit%3E()">Restrictor()</a></span> - Constructor for class edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#restrictors()">restrictors()</a></span> - Method in annotation type edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html" title="annotation in edu.gatech.cs2110.circuitsim.api">SubcircuitTest</a></dt>
+<dd>
+<div class="block">Validate the subcircuit with these <a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><code>Restrictor</code></a>s before
+ running any tests.</div>
+</dd>
</dl>
<a id="I:S">
<!-- -->
@@ -393,18 +405,29 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<code>.sim</code> file path and subcircuit name.</div>
</dd>
</dl>
+<a id="I:V">
+<!-- -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html#validate(edu.gatech.cs2110.circuitsim.api.Subcircuit)">validate(Subcircuit)</a></span> - Method in class edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a></dt>
+<dd>
+<div class="block">Validates this subcircuit, throwing an <code>AssertionError</code> if
+ any issues are found.</div>
+</dd>
+</dl>
<a id="I:W">
<!-- -->
</a>
<h2 class="title">W</h2>
<dl>
-<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html#whitelistedComponents()">whitelistedComponents()</a></span> - Method in annotation type edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/SubcircuitTest.html" title="annotation in edu.gatech.cs2110.circuitsim.api">SubcircuitTest</a></dt>
+<dt><span class="memberNameLink"><a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html#whitelistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)">whitelistComponents(Subcircuit, String...)</a></span> - Method in class edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api">Restrictor</a></dt>
<dd>
<div class="block">Fail the whole test if the subcircuit contains any components other than
these components or categories.</div>
</dd>
</dl>
-<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
+<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
diff --git a/docs/index.html b/docs/index.html
index 6dc0c0d..6412fda 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2,7 +2,7 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>CircuitSim Autograder API</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
diff --git a/docs/member-search-index.js b/docs/member-search-index.js
index b0bc4cf..8cf0e6e 100644
--- a/docs/member-search-index.js
+++ b/docs/member-search-index.js
@@ -1 +1 @@
-memberSearchIndex = [{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"BasePin(Pin, Subcircuit)","url":"<init>(com.ra4king.circuitsim.simulator.components.wiring.Pin,edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"BasesConverter","l":"BasesConverter()"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"CircuitSimExtension","l":"beforeAll(ExtensionContext)","url":"beforeAll(org.junit.jupiter.api.extension.ExtensionContext)"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"CircuitSimExtension","l":"beforeEach(ExtensionContext)","url":"beforeEach(org.junit.jupiter.api.extension.ExtensionContext)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitPin","l":"bits()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitRegister","l":"bits()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"blacklistedComponents()"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"CircuitSimExtension","l":"CircuitSimExtension()"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"BasesConverter","l":"convert(Object, Class<?>)","url":"convert(java.lang.Object,java.lang.Class)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"file()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"fromPath(String, String)","url":"fromPath(java.lang.String,java.lang.String)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"OutputPin","l":"get()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuitBoard()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuitSim()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuitState()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getClk()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getD()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getEn()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getName()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"getPin()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getQ()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getRst()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"OutputPin","l":"getSext()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getSimulator()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"getSubcircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getSubcircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"InputPin","l":"InputPin(Pin, Subcircuit)","url":"<init>(com.ra4king.circuitsim.simulator.components.wiring.Pin,edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitPin","l":"label()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"lookupComponents(Collection<String>, boolean)","url":"lookupComponents(java.util.Collection,boolean)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"lookupPin(String, boolean, int)","url":"lookupPin(java.lang.String,boolean,int)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"mockOnlyRegister(int)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitRegister","l":"onlyRegister()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"OutputPin","l":"OutputPin(Pin, Subcircuit)","url":"<init>(com.ra4king.circuitsim.simulator.components.wiring.Pin,edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"pin"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"resetSimulation()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"resetSimulationBetween()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"InputPin","l":"set(int)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"subcircuit"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"subcircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"whitelistedComponents()"}] \ No newline at end of file
+memberSearchIndex = [{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"BasePin(Pin, Subcircuit)","url":"<init>(com.ra4king.circuitsim.simulator.components.wiring.Pin,edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"BasesConverter","l":"BasesConverter()"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"CircuitSimExtension","l":"beforeAll(ExtensionContext)","url":"beforeAll(org.junit.jupiter.api.extension.ExtensionContext)"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"CircuitSimExtension","l":"beforeEach(ExtensionContext)","url":"beforeEach(org.junit.jupiter.api.extension.ExtensionContext)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitPin","l":"bits()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitRegister","l":"bits()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Restrictor","l":"blacklistComponents(Subcircuit, String...)","url":"blacklistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"CircuitSimExtension","l":"CircuitSimExtension()"},{"p":"edu.gatech.cs2110.circuitsim.extension","c":"BasesConverter","l":"convert(Object, Class<?>)","url":"convert(java.lang.Object,java.lang.Class)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"file()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"fromPath(String, String)","url":"fromPath(java.lang.String,java.lang.String)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"OutputPin","l":"get()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuitBoard()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuitSim()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getCircuitState()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getClk()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getD()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getEn()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getName()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"getPin()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getQ()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getRst()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"OutputPin","l":"getSext()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"getSimulator()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"getSubcircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"MockRegister","l":"getSubcircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"InputPin","l":"InputPin(Pin, Subcircuit)","url":"<init>(com.ra4king.circuitsim.simulator.components.wiring.Pin,edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitPin","l":"label()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"lookupComponents(Collection<String>, boolean)","url":"lookupComponents(java.util.Collection,boolean)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"lookupPin(String, boolean, int)","url":"lookupPin(java.lang.String,boolean,int)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"mockOnlyRegister(int)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitRegister","l":"onlyRegister()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"OutputPin","l":"OutputPin(Pin, Subcircuit)","url":"<init>(com.ra4king.circuitsim.simulator.components.wiring.Pin,edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"pin"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Subcircuit","l":"resetSimulation()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"resetSimulationBetween()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Restrictor","l":"Restrictor()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"restrictors()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"InputPin","l":"set(int)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"BasePin","l":"subcircuit"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"SubcircuitTest","l":"subcircuit()"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Restrictor","l":"validate(Subcircuit)","url":"validate(edu.gatech.cs2110.circuitsim.api.Subcircuit)"},{"p":"edu.gatech.cs2110.circuitsim.api","c":"Restrictor","l":"whitelistComponents(Subcircuit, String...)","url":"whitelistComponents(edu.gatech.cs2110.circuitsim.api.Subcircuit,java.lang.String...)"}] \ No newline at end of file
diff --git a/docs/overview-frame.html b/docs/overview-frame.html
index 13a6fbd..8d21955 100644
--- a/docs/overview-frame.html
+++ b/docs/overview-frame.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Overview List (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
diff --git a/docs/overview-summary.html b/docs/overview-summary.html
index f86ed4a..20e0e97 100644
--- a/docs/overview-summary.html
+++ b/docs/overview-summary.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Overview (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
diff --git a/docs/overview-tree.html b/docs/overview-tree.html
index 419036d..8321cc1 100644
--- a/docs/overview-tree.html
+++ b/docs/overview-tree.html
@@ -2,10 +2,10 @@
<!-- NewPage -->
<html lang="en">
<head>
-<!-- Generated by javadoc (10.0.1) on Thu Sep 06 13:45:30 EDT 2018 -->
+<!-- Generated by javadoc (10.0.1) on Fri Sep 07 00:25:39 EDT 2018 -->
<title>Class Hierarchy (CircuitSim Autograder API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="dc.created" content="2018-09-06">
+<meta name="dc.created" content="2018-09-07">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
@@ -120,6 +120,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</li>
<li class="circle">edu.gatech.cs2110.circuitsim.extension.<a href="edu/gatech/cs2110/circuitsim/extension/CircuitSimExtension.html" title="class in edu.gatech.cs2110.circuitsim.extension"><span class="typeNameLink">CircuitSimExtension</span></a> (implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension)</li>
<li class="circle">edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/MockRegister.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">MockRegister</span></a></li>
+<li class="circle">edu.gatech.cs2110.circuitsim.api.<a href="edu/gatech/cs2110/circuitsim/api/Restrictor.html" title="class in edu.gatech.cs2110.circuitsim.api"><span class="typeNameLink">Restrictor</span></a></li>
<li class="circle">org.junit.jupiter.params.converter.SimpleArgumentConverter (implements org.junit.jupiter.params.converter.ArgumentConverter)
<ul>
<li class="circle">edu.gatech.cs2110.circuitsim.extension.<a href="edu/gatech/cs2110/circuitsim/extension/BasesConverter.html" title="class in edu.gatech.cs2110.circuitsim.extension"><span class="typeNameLink">BasesConverter</span></a></li>
diff --git a/docs/type-search-index.js b/docs/type-search-index.js
index a14271c..8bcc7ee 100644
--- a/docs/type-search-index.js
+++ b/docs/type-search-index.js
@@ -1 +1 @@
-typeSearchIndex = [{"p":"edu.gatech.cs2110.circuitsim.api","l":"BasePin"},{"p":"edu.gatech.cs2110.circuitsim.extension","l":"BasesConverter"},{"p":"edu.gatech.cs2110.circuitsim.extension","l":"CircuitSimExtension"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"InputPin"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"MockRegister"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"OutputPin"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"Subcircuit"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"SubcircuitPin"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"SubcircuitRegister"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"SubcircuitTest"}] \ No newline at end of file
+typeSearchIndex = [{"p":"edu.gatech.cs2110.circuitsim.api","l":"BasePin"},{"p":"edu.gatech.cs2110.circuitsim.extension","l":"BasesConverter"},{"p":"edu.gatech.cs2110.circuitsim.extension","l":"CircuitSimExtension"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"InputPin"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"MockRegister"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"OutputPin"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"Restrictor"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"Subcircuit"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"SubcircuitPin"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"SubcircuitRegister"},{"p":"edu.gatech.cs2110.circuitsim.api","l":"SubcircuitTest"}] \ No newline at end of file