diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 63e4c92..a2d49a1 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -4,6 +4,19 @@
+
+
+
diff --git a/src/main/application/LispMain.java b/src/main/application/LispMain.java
index 16640e5..119f88d 100644
--- a/src/main/application/LispMain.java
+++ b/src/main/application/LispMain.java
@@ -1,8 +1,14 @@
package application;
-import static com.googlecode.lanterna.terminal.IOSafeTerminalAdapter.createRuntimeExceptionConvertingAdapter;
-import static java.text.MessageFormat.format;
-import static terminal.LispTerminal.END_OF_SEGMENT;
+import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
+import com.googlecode.lanterna.terminal.IOSafeTerminal;
+import com.googlecode.lanterna.terminal.Terminal;
+import interpreter.LispInterpreter;
+import interpreter.LispInterpreterBuilder;
+import interpreter.LispInterpreterBuilderImpl;
+import stream.UncheckedIOException;
+import terminal.LispTerminal;
+import terminal.TerminalConfiguration;
import java.io.IOException;
import java.io.PipedInputStream;
@@ -10,16 +16,9 @@ import java.io.PipedOutputStream;
import java.io.PrintStream;
import java.util.function.Function;
-import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
-import com.googlecode.lanterna.terminal.IOSafeTerminal;
-import com.googlecode.lanterna.terminal.Terminal;
-
-import interpreter.LispInterpreter;
-import interpreter.LispInterpreterBuilder;
-import interpreter.LispInterpreterBuilderImpl;
-import stream.UncheckedIOException;
-import terminal.LispTerminal;
-import terminal.TerminalConfiguration;
+import static com.googlecode.lanterna.terminal.IOSafeTerminalAdapter.createRuntimeExceptionConvertingAdapter;
+import static java.text.MessageFormat.format;
+import static terminal.LispTerminal.END_OF_SEGMENT;
public class LispMain {
diff --git a/src/main/environment/RuntimeEnvironment.java b/src/main/environment/RuntimeEnvironment.java
index ce0a2aa..a728b64 100644
--- a/src/main/environment/RuntimeEnvironment.java
+++ b/src/main/environment/RuntimeEnvironment.java
@@ -1,11 +1,11 @@
package environment;
+import error.ErrorManager;
+
import java.io.InputStream;
import java.io.PrintStream;
import java.util.function.Function;
-import error.ErrorManager;
-
public class RuntimeEnvironment {
private static RuntimeEnvironment uniqueInstance = new RuntimeEnvironment();
diff --git a/src/main/error/CriticalLineColumnException.java b/src/main/error/CriticalLineColumnException.java
index 7cd9cbb..def6e1e 100644
--- a/src/main/error/CriticalLineColumnException.java
+++ b/src/main/error/CriticalLineColumnException.java
@@ -1,10 +1,10 @@
package error;
-import static error.ErrorManager.Severity.CRITICAL;
-
import error.ErrorManager.Severity;
import file.FilePosition;
+import static error.ErrorManager.Severity.CRITICAL;
+
public abstract class CriticalLineColumnException extends LineColumnException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/error/CriticalLispException.java b/src/main/error/CriticalLispException.java
index 0c06a03..7707f25 100644
--- a/src/main/error/CriticalLispException.java
+++ b/src/main/error/CriticalLispException.java
@@ -1,9 +1,9 @@
package error;
-import static error.ErrorManager.Severity.CRITICAL;
-
import error.ErrorManager.Severity;
+import static error.ErrorManager.Severity.CRITICAL;
+
public abstract class CriticalLispException extends LispException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/error/ErrorManager.java b/src/main/error/ErrorManager.java
index 9bf41e2..8875809 100644
--- a/src/main/error/ErrorManager.java
+++ b/src/main/error/ErrorManager.java
@@ -1,13 +1,13 @@
package error;
+import environment.RuntimeEnvironment;
+
+import java.io.PrintStream;
+
import static error.ErrorManager.Severity.CRITICAL;
import static error.ErrorManager.Severity.WARNING;
import static java.text.MessageFormat.format;
-import java.io.PrintStream;
-
-import environment.RuntimeEnvironment;
-
/**
* Prints error messages and potentially terminates the application.
*/
diff --git a/src/main/error/LineColumnException.java b/src/main/error/LineColumnException.java
index a559d9e..f02779f 100644
--- a/src/main/error/LineColumnException.java
+++ b/src/main/error/LineColumnException.java
@@ -1,9 +1,9 @@
package error;
-import static java.text.MessageFormat.format;
-
import file.FilePosition;
+import static java.text.MessageFormat.format;
+
public abstract class LineColumnException extends LispException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/error/LispException.java b/src/main/error/LispException.java
index 7d09171..22089af 100644
--- a/src/main/error/LispException.java
+++ b/src/main/error/LispException.java
@@ -1,9 +1,9 @@
package error;
-import static error.ErrorManager.Severity.ERROR;
-
import error.ErrorManager.Severity;
+import static error.ErrorManager.Severity.ERROR;
+
public abstract class LispException extends RuntimeException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/error/LispWarning.java b/src/main/error/LispWarning.java
index 7670a53..a0799a0 100644
--- a/src/main/error/LispWarning.java
+++ b/src/main/error/LispWarning.java
@@ -1,9 +1,9 @@
package error;
-import static error.ErrorManager.Severity.WARNING;
-
import error.ErrorManager.Severity;
+import static error.ErrorManager.Severity.WARNING;
+
public abstract class LispWarning extends LispException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/function/ArgumentValidator.java b/src/main/function/ArgumentValidator.java
index e0492f8..dc0db05 100644
--- a/src/main/function/ArgumentValidator.java
+++ b/src/main/function/ArgumentValidator.java
@@ -1,15 +1,15 @@
package function;
-import static function.builtin.cons.LENGTH.getLength;
-import static java.text.MessageFormat.format;
-
-import java.math.BigInteger;
-
import error.LispException;
import sexpression.Cons;
import sexpression.DisplayName;
import sexpression.SExpression;
+import java.math.BigInteger;
+
+import static function.builtin.cons.LENGTH.getLength;
+import static java.text.MessageFormat.format;
+
public class ArgumentValidator {
private Class extends SExpression> firstArgumentType;
diff --git a/src/main/function/UserDefinedFunction.java b/src/main/function/UserDefinedFunction.java
index 64bbb72..6ed4569 100644
--- a/src/main/function/UserDefinedFunction.java
+++ b/src/main/function/UserDefinedFunction.java
@@ -1,12 +1,5 @@
package function;
-import static function.builtin.EVAL.eval;
-import static java.text.MessageFormat.format;
-import static recursion.TailCalls.done;
-import static sexpression.Nil.NIL;
-
-import java.util.ArrayList;
-
import error.LispException;
import recursion.TailCall;
import recursion.TailCalls;
@@ -16,6 +9,13 @@ import sexpression.Symbol;
import table.ExecutionContext;
import table.SymbolTable;
+import java.util.ArrayList;
+
+import static function.builtin.EVAL.eval;
+import static java.text.MessageFormat.format;
+import static recursion.TailCalls.done;
+import static sexpression.Nil.NIL;
+
public class UserDefinedFunction extends LispFunction {
private static final String KEYWORD_REST = "&REST";
diff --git a/src/main/function/builtin/APPLY.java b/src/main/function/builtin/APPLY.java
index 3dbeb62..6637542 100644
--- a/src/main/function/builtin/APPLY.java
+++ b/src/main/function/builtin/APPLY.java
@@ -1,15 +1,15 @@
package function.builtin;
-import static function.builtin.EVAL.applyFunction;
-import static function.builtin.EVAL.lookupFunctionOrLambda;
-import static table.FunctionTable.lookupFunction;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.EVAL.applyFunction;
+import static function.builtin.EVAL.lookupFunctionOrLambda;
+import static table.FunctionTable.lookupFunction;
+
@FunctionNames({ "APPLY" })
public class APPLY extends LispFunction {
diff --git a/src/main/function/builtin/BackquoteEvaluator.java b/src/main/function/builtin/BackquoteEvaluator.java
index 67a7b86..462640b 100644
--- a/src/main/function/builtin/BackquoteEvaluator.java
+++ b/src/main/function/builtin/BackquoteEvaluator.java
@@ -1,8 +1,5 @@
package function.builtin;
-import static function.builtin.EVAL.eval;
-import static sexpression.Nil.NIL;
-
import error.LispException;
import function.ArgumentValidator;
import sexpression.AtSignExpression;
@@ -11,6 +8,9 @@ import sexpression.CommaExpression;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+import static sexpression.Nil.NIL;
+
class BackquoteEvaluator {
private ArgumentValidator listValidator;
diff --git a/src/main/function/builtin/EVAL.java b/src/main/function/builtin/EVAL.java
index efbe839..fb56914 100644
--- a/src/main/function/builtin/EVAL.java
+++ b/src/main/function/builtin/EVAL.java
@@ -1,13 +1,5 @@
package function.builtin;
-import static function.builtin.cons.LIST.makeList;
-import static function.builtin.special.LAMBDA.createFunction;
-import static function.builtin.special.LAMBDA.isLambdaExpression;
-import static java.text.MessageFormat.format;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-import static table.FunctionTable.lookupFunction;
-
import error.LispException;
import function.ArgumentValidator;
import function.FunctionNames;
@@ -20,6 +12,14 @@ import sexpression.SExpression;
import sexpression.Symbol;
import table.ExecutionContext;
+import static function.builtin.cons.LIST.makeList;
+import static function.builtin.special.LAMBDA.createFunction;
+import static function.builtin.special.LAMBDA.isLambdaExpression;
+import static java.text.MessageFormat.format;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+import static table.FunctionTable.lookupFunction;
+
@FunctionNames({ "EVAL" })
public class EVAL extends LispFunction {
diff --git a/src/main/function/builtin/EXIT.java b/src/main/function/builtin/EXIT.java
index aabda51..5b91760 100644
--- a/src/main/function/builtin/EXIT.java
+++ b/src/main/function/builtin/EXIT.java
@@ -1,7 +1,5 @@
package function.builtin;
-import static sexpression.Nil.NIL;
-
import environment.RuntimeEnvironment;
import function.ArgumentValidator;
import function.FunctionNames;
@@ -9,6 +7,8 @@ import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+
@FunctionNames({ "EXIT" })
public class EXIT extends LispFunction {
diff --git a/src/main/function/builtin/FUNCALL.java b/src/main/function/builtin/FUNCALL.java
index 30e6685..c21194a 100644
--- a/src/main/function/builtin/FUNCALL.java
+++ b/src/main/function/builtin/FUNCALL.java
@@ -1,14 +1,14 @@
package function.builtin;
-import static function.builtin.APPLY.apply;
-import static function.builtin.cons.LIST.makeList;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.APPLY.apply;
+import static function.builtin.cons.LIST.makeList;
+
@FunctionNames({ "FUNCALL", "CALL" })
public class FUNCALL extends LispFunction {
diff --git a/src/main/function/builtin/GENSYM.java b/src/main/function/builtin/GENSYM.java
index 7708426..a07d74d 100644
--- a/src/main/function/builtin/GENSYM.java
+++ b/src/main/function/builtin/GENSYM.java
@@ -1,7 +1,5 @@
package function.builtin;
-import java.math.BigInteger;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
@@ -9,6 +7,8 @@ import sexpression.Cons;
import sexpression.SExpression;
import sexpression.Symbol;
+import java.math.BigInteger;
+
@FunctionNames({ "GENSYM" })
public class GENSYM extends LispFunction {
diff --git a/src/main/function/builtin/LOAD.java b/src/main/function/builtin/LOAD.java
index 29993db..3892be9 100644
--- a/src/main/function/builtin/LOAD.java
+++ b/src/main/function/builtin/LOAD.java
@@ -1,15 +1,5 @@
package function.builtin;
-import static function.builtin.EVAL.eval;
-import static java.text.MessageFormat.format;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-import static util.Path.getPathPrefix;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.util.Stack;
-
import environment.RuntimeEnvironment;
import error.LispException;
import error.LispWarning;
@@ -21,6 +11,16 @@ import sexpression.Cons;
import sexpression.LispString;
import sexpression.SExpression;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.Stack;
+
+import static function.builtin.EVAL.eval;
+import static java.text.MessageFormat.format;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+import static util.Path.getPathPrefix;
+
@FunctionNames({ "LOAD" })
public class LOAD extends LispFunction {
diff --git a/src/main/function/builtin/SET.java b/src/main/function/builtin/SET.java
index 0d3e90b..ee70249 100644
--- a/src/main/function/builtin/SET.java
+++ b/src/main/function/builtin/SET.java
@@ -1,7 +1,5 @@
package function.builtin;
-import static table.FunctionTable.lookupFunction;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
@@ -11,6 +9,8 @@ import sexpression.Symbol;
import table.ExecutionContext;
import table.SymbolTable;
+import static table.FunctionTable.lookupFunction;
+
@FunctionNames({ "SET" })
public class SET extends LispFunction {
diff --git a/src/main/function/builtin/SYMBOL_FUNCTION.java b/src/main/function/builtin/SYMBOL_FUNCTION.java
index 022c211..8f847c2 100644
--- a/src/main/function/builtin/SYMBOL_FUNCTION.java
+++ b/src/main/function/builtin/SYMBOL_FUNCTION.java
@@ -1,8 +1,5 @@
package function.builtin;
-import static java.text.MessageFormat.format;
-import static table.FunctionTable.lookupFunction;
-
import error.LispException;
import function.ArgumentValidator;
import function.FunctionNames;
@@ -13,6 +10,9 @@ import sexpression.Cons;
import sexpression.SExpression;
import sexpression.Symbol;
+import static java.text.MessageFormat.format;
+import static table.FunctionTable.lookupFunction;
+
@FunctionNames({ "SYMBOL-FUNCTION" })
public class SYMBOL_FUNCTION extends LispFunction {
diff --git a/src/main/function/builtin/cons/APPEND.java b/src/main/function/builtin/cons/APPEND.java
index 3ffd146..cc7b29c 100644
--- a/src/main/function/builtin/cons/APPEND.java
+++ b/src/main/function/builtin/cons/APPEND.java
@@ -1,13 +1,13 @@
package function.builtin.cons;
-import static sexpression.Nil.NIL;
-import static table.FunctionTable.lookupFunction;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
+import static sexpression.Nil.NIL;
+import static table.FunctionTable.lookupFunction;
+
@FunctionNames({ "APPEND" })
public class APPEND extends LispFunction {
diff --git a/src/main/function/builtin/cons/LENGTH.java b/src/main/function/builtin/cons/LENGTH.java
index 9a1088a..34a75bf 100644
--- a/src/main/function/builtin/cons/LENGTH.java
+++ b/src/main/function/builtin/cons/LENGTH.java
@@ -1,12 +1,5 @@
package function.builtin.cons;
-import static function.builtin.cons.LIST.makeList;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static table.FunctionTable.lookupFunction;
-
-import java.math.BigInteger;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
@@ -14,6 +7,13 @@ import recursion.TailCall;
import sexpression.Cons;
import sexpression.LispNumber;
+import java.math.BigInteger;
+
+import static function.builtin.cons.LIST.makeList;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static table.FunctionTable.lookupFunction;
+
@FunctionNames({ "LENGTH" })
public class LENGTH extends LispFunction {
diff --git a/src/main/function/builtin/cons/LIST.java b/src/main/function/builtin/cons/LIST.java
index f45d4f3..8a07cb4 100644
--- a/src/main/function/builtin/cons/LIST.java
+++ b/src/main/function/builtin/cons/LIST.java
@@ -1,13 +1,13 @@
package function.builtin.cons;
-import static sexpression.Nil.NIL;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+
@FunctionNames({ "LIST" })
public class LIST extends LispFunction {
diff --git a/src/main/function/builtin/math/DIVIDE.java b/src/main/function/builtin/math/DIVIDE.java
index ea1bbf2..7c63391 100644
--- a/src/main/function/builtin/math/DIVIDE.java
+++ b/src/main/function/builtin/math/DIVIDE.java
@@ -1,7 +1,5 @@
package function.builtin.math;
-import java.math.BigInteger;
-
import error.LispException;
import function.ArgumentValidator;
import function.FunctionNames;
@@ -9,6 +7,8 @@ import function.LispFunction;
import sexpression.Cons;
import sexpression.LispNumber;
+import java.math.BigInteger;
+
@FunctionNames({ "/" })
public class DIVIDE extends LispFunction {
diff --git a/src/main/function/builtin/math/MINUS.java b/src/main/function/builtin/math/MINUS.java
index c1c5270..44e655f 100644
--- a/src/main/function/builtin/math/MINUS.java
+++ b/src/main/function/builtin/math/MINUS.java
@@ -1,13 +1,13 @@
package function.builtin.math;
-import java.math.BigInteger;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.LispNumber;
+import java.math.BigInteger;
+
@FunctionNames({ "-" })
public class MINUS extends LispFunction {
diff --git a/src/main/function/builtin/math/MULTIPLY.java b/src/main/function/builtin/math/MULTIPLY.java
index f61018a..236cfa5 100644
--- a/src/main/function/builtin/math/MULTIPLY.java
+++ b/src/main/function/builtin/math/MULTIPLY.java
@@ -1,13 +1,13 @@
package function.builtin.math;
-import static sexpression.LispNumber.ONE;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.LispNumber;
+import static sexpression.LispNumber.ONE;
+
@FunctionNames({ "*" })
public class MULTIPLY extends LispFunction {
diff --git a/src/main/function/builtin/math/MathFunction.java b/src/main/function/builtin/math/MathFunction.java
index 2cbc075..fcd8500 100644
--- a/src/main/function/builtin/math/MathFunction.java
+++ b/src/main/function/builtin/math/MathFunction.java
@@ -1,16 +1,16 @@
package function.builtin.math;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-
-import java.util.function.BiFunction;
-import java.util.function.Function;
-
import recursion.TailCall;
import sexpression.Cons;
import sexpression.LispNumber;
import sexpression.SExpression;
+import java.util.function.BiFunction;
+import java.util.function.Function;
+
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+
class MathFunction {
Function singleValueOperation;
diff --git a/src/main/function/builtin/math/PLUS.java b/src/main/function/builtin/math/PLUS.java
index 2dd3e3c..785b8af 100644
--- a/src/main/function/builtin/math/PLUS.java
+++ b/src/main/function/builtin/math/PLUS.java
@@ -1,13 +1,13 @@
package function.builtin.math;
-import static sexpression.LispNumber.ZERO;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.LispNumber;
+import static sexpression.LispNumber.ZERO;
+
@FunctionNames({ "+" })
public class PLUS extends LispFunction {
diff --git a/src/main/function/builtin/predicate/ATOM.java b/src/main/function/builtin/predicate/ATOM.java
index 11259a3..a8301a6 100644
--- a/src/main/function/builtin/predicate/ATOM.java
+++ b/src/main/function/builtin/predicate/ATOM.java
@@ -1,14 +1,14 @@
package function.builtin.predicate;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "ATOM", "ATOM?" })
public class ATOM extends LispFunction {
diff --git a/src/main/function/builtin/predicate/EQ.java b/src/main/function/builtin/predicate/EQ.java
index 489be54..2dac67b 100644
--- a/src/main/function/builtin/predicate/EQ.java
+++ b/src/main/function/builtin/predicate/EQ.java
@@ -1,14 +1,14 @@
package function.builtin.predicate;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "EQ", "EQ?" })
public class EQ extends LispFunction {
diff --git a/src/main/function/builtin/predicate/EQUAL.java b/src/main/function/builtin/predicate/EQUAL.java
index 52fce66..92e77ce 100644
--- a/src/main/function/builtin/predicate/EQUAL.java
+++ b/src/main/function/builtin/predicate/EQUAL.java
@@ -1,14 +1,14 @@
package function.builtin.predicate;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "EQUAL", "EQUAL?" })
public class EQUAL extends LispFunction {
diff --git a/src/main/function/builtin/predicate/GENSYM_EQUAL.java b/src/main/function/builtin/predicate/GENSYM_EQUAL.java
index 075a6a2..9964ee9 100644
--- a/src/main/function/builtin/predicate/GENSYM_EQUAL.java
+++ b/src/main/function/builtin/predicate/GENSYM_EQUAL.java
@@ -1,8 +1,10 @@
package function.builtin.predicate;
-import static function.builtin.GENSYM.GENSYM_PREFIX;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
+import function.ArgumentValidator;
+import function.FunctionNames;
+import function.LispFunction;
+import sexpression.Cons;
+import sexpression.SExpression;
import java.util.HashMap;
import java.util.Map;
@@ -10,11 +12,9 @@ import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import function.ArgumentValidator;
-import function.FunctionNames;
-import function.LispFunction;
-import sexpression.Cons;
-import sexpression.SExpression;
+import static function.builtin.GENSYM.GENSYM_PREFIX;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
@FunctionNames({ "GENSYM-EQUAL", "GENSYM-EQUAL?" })
public class GENSYM_EQUAL extends LispFunction {
diff --git a/src/main/function/builtin/predicate/LISTP.java b/src/main/function/builtin/predicate/LISTP.java
index 7f42a61..e8d0d06 100644
--- a/src/main/function/builtin/predicate/LISTP.java
+++ b/src/main/function/builtin/predicate/LISTP.java
@@ -1,14 +1,14 @@
package function.builtin.predicate;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "LISTP", "LIST?" })
public class LISTP extends LispFunction {
diff --git a/src/main/function/builtin/predicate/NULL.java b/src/main/function/builtin/predicate/NULL.java
index 1ad1e9b..216cd8c 100644
--- a/src/main/function/builtin/predicate/NULL.java
+++ b/src/main/function/builtin/predicate/NULL.java
@@ -1,14 +1,14 @@
package function.builtin.predicate;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "NULL", "NULL?" })
public class NULL extends LispFunction {
diff --git a/src/main/function/builtin/predicate/NUMERIC_EQUAL.java b/src/main/function/builtin/predicate/NUMERIC_EQUAL.java
index 6ad23b0..7e11f8f 100644
--- a/src/main/function/builtin/predicate/NUMERIC_EQUAL.java
+++ b/src/main/function/builtin/predicate/NUMERIC_EQUAL.java
@@ -1,10 +1,5 @@
package function.builtin.predicate;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
@@ -13,6 +8,11 @@ import sexpression.Cons;
import sexpression.LispNumber;
import sexpression.SExpression;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "=" })
public class NUMERIC_EQUAL extends LispFunction {
diff --git a/src/main/function/builtin/predicate/NUMERIC_GREATER.java b/src/main/function/builtin/predicate/NUMERIC_GREATER.java
index af253d4..e3dc795 100644
--- a/src/main/function/builtin/predicate/NUMERIC_GREATER.java
+++ b/src/main/function/builtin/predicate/NUMERIC_GREATER.java
@@ -1,10 +1,5 @@
package function.builtin.predicate;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
@@ -13,6 +8,11 @@ import sexpression.Cons;
import sexpression.LispNumber;
import sexpression.SExpression;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ ">" })
public class NUMERIC_GREATER extends LispFunction {
diff --git a/src/main/function/builtin/predicate/NUMERIC_LESS.java b/src/main/function/builtin/predicate/NUMERIC_LESS.java
index 4311c4b..ac5d8c7 100644
--- a/src/main/function/builtin/predicate/NUMERIC_LESS.java
+++ b/src/main/function/builtin/predicate/NUMERIC_LESS.java
@@ -1,10 +1,5 @@
package function.builtin.predicate;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispFunction;
@@ -13,6 +8,11 @@ import sexpression.Cons;
import sexpression.LispNumber;
import sexpression.SExpression;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "<" })
public class NUMERIC_LESS extends LispFunction {
diff --git a/src/main/function/builtin/special/AND.java b/src/main/function/builtin/special/AND.java
index 1930562..160e431 100644
--- a/src/main/function/builtin/special/AND.java
+++ b/src/main/function/builtin/special/AND.java
@@ -1,10 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -12,6 +7,11 @@ import recursion.TailCall;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "AND" })
public class AND extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/CASE.java b/src/main/function/builtin/special/CASE.java
index 6de951e..8cce375 100644
--- a/src/main/function/builtin/special/CASE.java
+++ b/src/main/function/builtin/special/CASE.java
@@ -1,12 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static function.builtin.predicate.EQUAL.isEqual;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -15,6 +8,13 @@ import sexpression.Cons;
import sexpression.Nil;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+import static function.builtin.predicate.EQUAL.isEqual;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+
@FunctionNames({ "CASE" })
public class CASE extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/COND.java b/src/main/function/builtin/special/COND.java
index 31878ed..c769a9d 100644
--- a/src/main/function/builtin/special/COND.java
+++ b/src/main/function/builtin/special/COND.java
@@ -1,10 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -13,6 +8,11 @@ import sexpression.Cons;
import sexpression.Nil;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+
@FunctionNames({ "COND" })
public class COND extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/Define.java b/src/main/function/builtin/special/Define.java
index eb065d9..22f300c 100644
--- a/src/main/function/builtin/special/Define.java
+++ b/src/main/function/builtin/special/Define.java
@@ -1,10 +1,5 @@
package function.builtin.special;
-import static function.builtin.cons.LIST.makeList;
-import static java.text.MessageFormat.format;
-import static table.FunctionTable.defineFunction;
-import static table.FunctionTable.isAlreadyDefined;
-
import environment.RuntimeEnvironment;
import error.LispWarning;
import function.ArgumentValidator;
@@ -14,6 +9,11 @@ import sexpression.Cons;
import sexpression.SExpression;
import sexpression.Symbol;
+import static function.builtin.cons.LIST.makeList;
+import static java.text.MessageFormat.format;
+import static table.FunctionTable.defineFunction;
+import static table.FunctionTable.isAlreadyDefined;
+
public abstract class Define extends LispSpecialFunction {
private ArgumentValidator argumentValidator;
diff --git a/src/main/function/builtin/special/IF.java b/src/main/function/builtin/special/IF.java
index 6a58076..09f29a5 100644
--- a/src/main/function/builtin/special/IF.java
+++ b/src/main/function/builtin/special/IF.java
@@ -1,13 +1,13 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+
@FunctionNames({ "IF" })
public class IF extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/LAMBDA.java b/src/main/function/builtin/special/LAMBDA.java
index a5ad2db..f4f70a3 100644
--- a/src/main/function/builtin/special/LAMBDA.java
+++ b/src/main/function/builtin/special/LAMBDA.java
@@ -1,7 +1,5 @@
package function.builtin.special;
-import static function.builtin.cons.LIST.makeList;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -11,6 +9,8 @@ import sexpression.LambdaExpression;
import sexpression.SExpression;
import sexpression.Symbol;
+import static function.builtin.cons.LIST.makeList;
+
@FunctionNames({ "LAMBDA", "Λ" })
public class LAMBDA extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/LET.java b/src/main/function/builtin/special/LET.java
index ee0e752..73112d5 100644
--- a/src/main/function/builtin/special/LET.java
+++ b/src/main/function/builtin/special/LET.java
@@ -1,8 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static sexpression.Nil.NIL;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -12,6 +9,9 @@ import sexpression.Symbol;
import table.ExecutionContext;
import table.SymbolTable;
+import static function.builtin.EVAL.eval;
+import static sexpression.Nil.NIL;
+
@FunctionNames({ "LET" })
public class LET extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/OR.java b/src/main/function/builtin/special/OR.java
index 722e084..c18772e 100644
--- a/src/main/function/builtin/special/OR.java
+++ b/src/main/function/builtin/special/OR.java
@@ -1,9 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -11,6 +7,10 @@ import recursion.TailCall;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+
@FunctionNames({ "OR" })
public class OR extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/PROGN.java b/src/main/function/builtin/special/PROGN.java
index d819bff..12f1a47 100644
--- a/src/main/function/builtin/special/PROGN.java
+++ b/src/main/function/builtin/special/PROGN.java
@@ -1,10 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static recursion.TailCalls.done;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -12,6 +7,11 @@ import recursion.TailCall;
import sexpression.Cons;
import sexpression.SExpression;
+import static function.builtin.EVAL.eval;
+import static recursion.TailCalls.done;
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+
@FunctionNames({ "PROGN", "BEGIN" })
public class PROGN extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/RECUR.java b/src/main/function/builtin/special/RECUR.java
index 66ce1f8..f3006d4 100644
--- a/src/main/function/builtin/special/RECUR.java
+++ b/src/main/function/builtin/special/RECUR.java
@@ -1,7 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.evaluateFunctionArgumentList;
-
import error.LispException;
import function.ArgumentValidator;
import function.FunctionNames;
@@ -10,6 +8,8 @@ import sexpression.Cons;
import sexpression.SExpression;
import table.ExecutionContext;
+import static function.builtin.EVAL.evaluateFunctionArgumentList;
+
@FunctionNames({ "RECUR" })
public class RECUR extends LispSpecialFunction {
diff --git a/src/main/function/builtin/special/SETQ.java b/src/main/function/builtin/special/SETQ.java
index 4572ca5..b38340c 100644
--- a/src/main/function/builtin/special/SETQ.java
+++ b/src/main/function/builtin/special/SETQ.java
@@ -1,9 +1,5 @@
package function.builtin.special;
-import static function.builtin.EVAL.eval;
-import static function.builtin.SET.set;
-import static function.builtin.cons.LIST.makeList;
-
import function.ArgumentValidator;
import function.FunctionNames;
import function.LispSpecialFunction;
@@ -11,6 +7,10 @@ import sexpression.Cons;
import sexpression.SExpression;
import sexpression.Symbol;
+import static function.builtin.EVAL.eval;
+import static function.builtin.SET.set;
+import static function.builtin.cons.LIST.makeList;
+
@FunctionNames({ "SETQ" })
public class SETQ extends LispSpecialFunction {
diff --git a/src/main/interpreter/LispInterpreter.java b/src/main/interpreter/LispInterpreter.java
index 1c9fca2..c0f4cdf 100644
--- a/src/main/interpreter/LispInterpreter.java
+++ b/src/main/interpreter/LispInterpreter.java
@@ -1,15 +1,15 @@
package interpreter;
-import static function.builtin.EVAL.eval;
-
-import java.io.InputStream;
-import java.util.List;
-
import environment.RuntimeEnvironment;
import error.LispException;
import parser.LispParser;
import sexpression.SExpression;
+import java.io.InputStream;
+import java.util.List;
+
+import static function.builtin.EVAL.eval;
+
public class LispInterpreter {
protected RuntimeEnvironment environment;
diff --git a/src/main/interpreter/LispInterpreterBuilderImpl.java b/src/main/interpreter/LispInterpreterBuilderImpl.java
index d73ba90..921fb1f 100644
--- a/src/main/interpreter/LispInterpreterBuilderImpl.java
+++ b/src/main/interpreter/LispInterpreterBuilderImpl.java
@@ -1,6 +1,9 @@
package interpreter;
-import static util.Path.getPathPrefix;
+import environment.RuntimeEnvironment;
+import error.CriticalLispException;
+import error.ErrorManager;
+import interpreter.LispInterpreter.LanguageFile;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -10,10 +13,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
-import environment.RuntimeEnvironment;
-import error.CriticalLispException;
-import error.ErrorManager;
-import interpreter.LispInterpreter.LanguageFile;
+import static util.Path.getPathPrefix;
public class LispInterpreterBuilderImpl implements LispInterpreterBuilder {
diff --git a/src/main/parser/LispParser.java b/src/main/parser/LispParser.java
index 160db7d..041584f 100644
--- a/src/main/parser/LispParser.java
+++ b/src/main/parser/LispParser.java
@@ -1,13 +1,13 @@
package parser;
-import java.io.InputStream;
-
import error.LispException;
import scanner.LispScanner;
import sexpression.SExpression;
import token.Eof;
import token.Token;
+import java.io.InputStream;
+
/**
* Converts a stream of bytes into internal representations of Lisp s-expressions.
*/
diff --git a/src/main/recursion/TailCall.java b/src/main/recursion/TailCall.java
index cf21548..0facd50 100644
--- a/src/main/recursion/TailCall.java
+++ b/src/main/recursion/TailCall.java
@@ -16,14 +16,10 @@ public interface TailCall {
}
default T invoke() {
- // @formatter:off
-
return Stream.iterate(this, TailCall::apply)
.filter(TailCall::isComplete)
.findFirst()
.get()
.result();
-
- // @formatter:on
}
}
diff --git a/src/main/scanner/LispCommentRemovingInputStream.java b/src/main/scanner/LispCommentRemovingInputStream.java
index c866076..5155978 100644
--- a/src/main/scanner/LispCommentRemovingInputStream.java
+++ b/src/main/scanner/LispCommentRemovingInputStream.java
@@ -1,15 +1,15 @@
package scanner;
+import stream.SafeInputStream;
+
+import java.io.InputStream;
+
import static util.Characters.BACKSLASH;
import static util.Characters.DOUBLE_QUOTE;
import static util.Characters.EOF;
import static util.Characters.NEWLINE;
import static util.Characters.SEMICOLON;
-import java.io.InputStream;
-
-import stream.SafeInputStream;
-
/**
* Removes Lisp comments from an input stream.
*/
diff --git a/src/main/scanner/LispScanner.java b/src/main/scanner/LispScanner.java
index 1b8a1cc..8d267c3 100644
--- a/src/main/scanner/LispScanner.java
+++ b/src/main/scanner/LispScanner.java
@@ -1,5 +1,16 @@
package scanner;
+import error.LineColumnException;
+import file.FilePosition;
+import file.FilePositionTracker;
+import token.Token;
+import token.TokenFactory;
+import token.TokenFactoryImpl;
+import util.Characters;
+
+import java.io.InputStream;
+import java.util.function.Function;
+
import static java.lang.Character.isDigit;
import static java.lang.Character.isWhitespace;
import static util.Characters.BACKSLASH;
@@ -9,17 +20,6 @@ import static util.Characters.NEWLINE;
import static util.Characters.isLegalIdentifierCharacter;
import static util.Characters.isNumberPrefix;
-import java.io.InputStream;
-import java.util.function.Function;
-
-import error.LineColumnException;
-import file.FilePosition;
-import file.FilePositionTracker;
-import token.Token;
-import token.TokenFactory;
-import token.TokenFactoryImpl;
-import util.Characters;
-
/**
* Converts a stream of bytes into a stream of Lisp tokens.
*/
diff --git a/src/main/sexpression/Cons.java b/src/main/sexpression/Cons.java
index a3652c1..fa2d1b7 100644
--- a/src/main/sexpression/Cons.java
+++ b/src/main/sexpression/Cons.java
@@ -1,10 +1,10 @@
package sexpression;
+import recursion.TailCall;
+
import static recursion.TailCalls.done;
import static recursion.TailCalls.tailCall;
-import recursion.TailCall;
-
@DisplayName("list")
public class Cons extends SExpression {
diff --git a/src/main/sexpression/LispNumber.java b/src/main/sexpression/LispNumber.java
index ebd4c70..696e64b 100644
--- a/src/main/sexpression/LispNumber.java
+++ b/src/main/sexpression/LispNumber.java
@@ -1,10 +1,10 @@
package sexpression;
-import static java.text.MessageFormat.format;
+import error.LispException;
import java.math.BigInteger;
-import error.LispException;
+import static java.text.MessageFormat.format;
@DisplayName("number")
public class LispNumber extends Atom {
diff --git a/src/main/stream/SafeInputStream.java b/src/main/stream/SafeInputStream.java
index ae3c06c..5632f8f 100644
--- a/src/main/stream/SafeInputStream.java
+++ b/src/main/stream/SafeInputStream.java
@@ -1,11 +1,11 @@
package stream;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
public class SafeInputStream {
private InputStreamReader underlyingStream;
diff --git a/src/main/stream/UncheckedIOException.java b/src/main/stream/UncheckedIOException.java
index 196221e..dee1aa6 100644
--- a/src/main/stream/UncheckedIOException.java
+++ b/src/main/stream/UncheckedIOException.java
@@ -1,9 +1,9 @@
package stream;
-import java.io.IOException;
-
import error.CriticalLispException;
+import java.io.IOException;
+
public class UncheckedIOException extends CriticalLispException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/table/ExecutionContext.java b/src/main/table/ExecutionContext.java
index 6a24be7..a20d3df 100644
--- a/src/main/table/ExecutionContext.java
+++ b/src/main/table/ExecutionContext.java
@@ -1,13 +1,13 @@
package table;
-import static sexpression.Nil.NIL;
-
-import java.util.Stack;
-
import function.LispFunction;
import sexpression.Cons;
import sexpression.SExpression;
+import java.util.Stack;
+
+import static sexpression.Nil.NIL;
+
public class ExecutionContext {
private static ExecutionContext uniqueInstance = new ExecutionContext();
diff --git a/src/main/table/FunctionTable.java b/src/main/table/FunctionTable.java
index 4bcabbd..5ee5038 100644
--- a/src/main/table/FunctionTable.java
+++ b/src/main/table/FunctionTable.java
@@ -1,12 +1,5 @@
package table;
-import static java.text.MessageFormat.format;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
import error.CriticalLispException;
import function.FunctionNames;
import function.LispFunction;
@@ -58,6 +51,13 @@ import function.builtin.special.QUOTE;
import function.builtin.special.RECUR;
import function.builtin.special.SETQ;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import static java.text.MessageFormat.format;
+
public class FunctionTable {
private static Set> allBuiltIns = new HashSet<>();
diff --git a/src/main/table/SymbolTable.java b/src/main/table/SymbolTable.java
index f8a5aaf..b04636b 100644
--- a/src/main/table/SymbolTable.java
+++ b/src/main/table/SymbolTable.java
@@ -1,17 +1,17 @@
package table;
-import static function.builtin.cons.APPEND.append;
-import static function.builtin.cons.LIST.makeList;
-import static sexpression.Nil.NIL;
+import sexpression.Cons;
+import sexpression.SExpression;
+import sexpression.Symbol;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
-import sexpression.Cons;
-import sexpression.SExpression;
-import sexpression.Symbol;
+import static function.builtin.cons.APPEND.append;
+import static function.builtin.cons.LIST.makeList;
+import static sexpression.Nil.NIL;
public class SymbolTable {
diff --git a/src/main/terminal/ControlSequenceHandler.java b/src/main/terminal/ControlSequenceHandler.java
index 395ba5a..51e5cd0 100644
--- a/src/main/terminal/ControlSequenceHandler.java
+++ b/src/main/terminal/ControlSequenceHandler.java
@@ -1,12 +1,12 @@
package terminal;
+import stream.SafeInputStream;
+
import static java.lang.Character.isDigit;
import static util.Characters.EOF;
import static util.Characters.LEFT_SQUARE_BRACKET;
import static util.Characters.UNICODE_ESCAPE;
-import stream.SafeInputStream;
-
class ControlSequenceHandler {
public static final boolean isEscape(char c) {
diff --git a/src/main/terminal/ControlSequenceLookup.java b/src/main/terminal/ControlSequenceLookup.java
index ac21133..2cec30a 100644
--- a/src/main/terminal/ControlSequenceLookup.java
+++ b/src/main/terminal/ControlSequenceLookup.java
@@ -1,11 +1,11 @@
package terminal;
-import static terminal.SelectGraphicRendition.SGR_COMMAND;
+import terminal.ControlSequence.NullControlSequence;
import java.util.HashMap;
import java.util.Map;
-import terminal.ControlSequence.NullControlSequence;
+import static terminal.SelectGraphicRendition.SGR_COMMAND;
public class ControlSequenceLookup {
diff --git a/src/main/terminal/LispTerminal.java b/src/main/terminal/LispTerminal.java
index 119314f..77e24e8 100644
--- a/src/main/terminal/LispTerminal.java
+++ b/src/main/terminal/LispTerminal.java
@@ -1,5 +1,17 @@
package terminal;
+import com.googlecode.lanterna.TerminalPosition;
+import com.googlecode.lanterna.TerminalSize;
+import com.googlecode.lanterna.input.KeyStroke;
+import com.googlecode.lanterna.input.KeyType;
+import com.googlecode.lanterna.terminal.IOSafeTerminal;
+import stream.SafeInputStream;
+import stream.SafeOutputStream;
+
+import java.io.ByteArrayInputStream;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
import static com.googlecode.lanterna.input.KeyType.ArrowDown;
import static com.googlecode.lanterna.input.KeyType.ArrowLeft;
import static com.googlecode.lanterna.input.KeyType.ArrowRight;
@@ -12,19 +24,6 @@ import static terminal.ControlSequenceHandler.isEscape;
import static util.Characters.EOF;
import static util.Characters.UNICODE_NULL;
-import java.io.ByteArrayInputStream;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import com.googlecode.lanterna.TerminalPosition;
-import com.googlecode.lanterna.TerminalSize;
-import com.googlecode.lanterna.input.KeyStroke;
-import com.googlecode.lanterna.input.KeyType;
-import com.googlecode.lanterna.terminal.IOSafeTerminal;
-
-import stream.SafeInputStream;
-import stream.SafeOutputStream;
-
public class LispTerminal {
public static final char END_OF_SEGMENT = UNICODE_NULL;
diff --git a/src/main/terminal/TerminalConfiguration.java b/src/main/terminal/TerminalConfiguration.java
index 294a52c..c6173f6 100644
--- a/src/main/terminal/TerminalConfiguration.java
+++ b/src/main/terminal/TerminalConfiguration.java
@@ -1,13 +1,12 @@
package terminal;
+import com.googlecode.lanterna.terminal.IOSafeTerminal;
+import stream.UncheckedIOException;
+
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
-import com.googlecode.lanterna.terminal.IOSafeTerminal;
-
-import stream.UncheckedIOException;
-
public class TerminalConfiguration {
private PipedOutputStream inputWriter;
diff --git a/src/main/token/AtSign.java b/src/main/token/AtSign.java
index 483ad17..0f045d0 100644
--- a/src/main/token/AtSign.java
+++ b/src/main/token/AtSign.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.AtSignExpression;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class AtSign extends Token {
public AtSign(String text, FilePosition position) {
diff --git a/src/main/token/Backquote.java b/src/main/token/Backquote.java
index 5fdb321..427f4e8 100644
--- a/src/main/token/Backquote.java
+++ b/src/main/token/Backquote.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.BackquoteExpression;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class Backquote extends Token {
public Backquote(String text, FilePosition position) {
diff --git a/src/main/token/Comma.java b/src/main/token/Comma.java
index ad90e75..5944e84 100644
--- a/src/main/token/Comma.java
+++ b/src/main/token/Comma.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.CommaExpression;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class Comma extends Token {
public Comma(String text, FilePosition position) {
diff --git a/src/main/token/Eof.java b/src/main/token/Eof.java
index 70d4b09..a308db7 100644
--- a/src/main/token/Eof.java
+++ b/src/main/token/Eof.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import error.LineColumnException;
import file.FilePosition;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class Eof extends Token {
public Eof(String text, FilePosition position) {
diff --git a/src/main/token/Identifier.java b/src/main/token/Identifier.java
index 77c270e..402be86 100644
--- a/src/main/token/Identifier.java
+++ b/src/main/token/Identifier.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.SExpression;
import sexpression.Symbol;
+import java.util.function.Supplier;
+
public class Identifier extends Token {
public Identifier(String text, FilePosition position) {
diff --git a/src/main/token/LeftParenthesis.java b/src/main/token/LeftParenthesis.java
index 409e998..c63a5b6 100644
--- a/src/main/token/LeftParenthesis.java
+++ b/src/main/token/LeftParenthesis.java
@@ -1,10 +1,10 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class LeftParenthesis extends Token {
public LeftParenthesis(String text, FilePosition position) {
diff --git a/src/main/token/Number.java b/src/main/token/Number.java
index e4f29aa..8c78eb1 100644
--- a/src/main/token/Number.java
+++ b/src/main/token/Number.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.LispNumber;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class Number extends Token {
public Number(String text, FilePosition position) {
diff --git a/src/main/token/QuoteMark.java b/src/main/token/QuoteMark.java
index 10a0f1b..b3b706c 100644
--- a/src/main/token/QuoteMark.java
+++ b/src/main/token/QuoteMark.java
@@ -1,14 +1,14 @@
package token;
-import static sexpression.Nil.NIL;
-
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.Cons;
import sexpression.SExpression;
import sexpression.Symbol;
+import java.util.function.Supplier;
+
+import static sexpression.Nil.NIL;
+
public class QuoteMark extends Token {
public QuoteMark(String text, FilePosition position) {
diff --git a/src/main/token/QuotedString.java b/src/main/token/QuotedString.java
index 17f281c..153f5dd 100644
--- a/src/main/token/QuotedString.java
+++ b/src/main/token/QuotedString.java
@@ -1,11 +1,11 @@
package token;
-import java.util.function.Supplier;
-
import file.FilePosition;
import sexpression.LispString;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
public class QuotedString extends Token {
public QuotedString(String text, FilePosition position) {
diff --git a/src/main/token/RightParenthesis.java b/src/main/token/RightParenthesis.java
index ec30d8e..f702288 100644
--- a/src/main/token/RightParenthesis.java
+++ b/src/main/token/RightParenthesis.java
@@ -1,16 +1,16 @@
package token;
-import static recursion.TailCalls.done;
-import static sexpression.Nil.NIL;
-
-import java.util.function.Supplier;
-
import error.LineColumnException;
import file.FilePosition;
import recursion.TailCall;
import sexpression.Cons;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
+import static recursion.TailCalls.done;
+import static sexpression.Nil.NIL;
+
public class RightParenthesis extends Token {
public RightParenthesis(String text, FilePosition position) {
diff --git a/src/main/token/Token.java b/src/main/token/Token.java
index c23b777..ba316ef 100644
--- a/src/main/token/Token.java
+++ b/src/main/token/Token.java
@@ -1,15 +1,15 @@
package token;
-import static recursion.TailCalls.tailCall;
-import static sexpression.Nil.NIL;
-
-import java.util.function.Supplier;
-
import file.FilePosition;
import recursion.TailCall;
import sexpression.Cons;
import sexpression.SExpression;
+import java.util.function.Supplier;
+
+import static recursion.TailCalls.tailCall;
+import static sexpression.Nil.NIL;
+
public abstract class Token {
private String text;
diff --git a/src/main/token/TokenFactory.java b/src/main/token/TokenFactory.java
index cf3cbc4..5910b52 100644
--- a/src/main/token/TokenFactory.java
+++ b/src/main/token/TokenFactory.java
@@ -1,11 +1,11 @@
package token;
-import static java.text.MessageFormat.format;
-
import error.CriticalLineColumnException;
import error.LineColumnException;
import file.FilePosition;
+import static java.text.MessageFormat.format;
+
public interface TokenFactory {
Token createToken(String text, FilePosition position);
diff --git a/src/main/token/TokenFactoryImpl.java b/src/main/token/TokenFactoryImpl.java
index 25adace..93a47ea 100644
--- a/src/main/token/TokenFactoryImpl.java
+++ b/src/main/token/TokenFactoryImpl.java
@@ -1,5 +1,7 @@
package token;
+import file.FilePosition;
+
import static java.lang.Character.isDigit;
import static util.Characters.AT_SIGN;
import static util.Characters.BACKQUOTE;
@@ -11,8 +13,6 @@ import static util.Characters.SINGLE_QUOTE;
import static util.Characters.isLegalIdentifierCharacter;
import static util.Characters.isNumberPrefix;
-import file.FilePosition;
-
public class TokenFactoryImpl implements TokenFactory {
@Override
diff --git a/src/test/acceptance/AcceptanceTest.java b/src/test/acceptance/AcceptanceTest.java
index 52abf41..854d208 100644
--- a/src/test/acceptance/AcceptanceTest.java
+++ b/src/test/acceptance/AcceptanceTest.java
@@ -1,8 +1,7 @@
package acceptance;
-import org.junit.runner.RunWith;
-
import fitnesse.junit.FitNesseRunner;
+import org.junit.runner.RunWith;
@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("TranscendentalLisp")
diff --git a/src/test/acceptance/fixture/LispInterpreterFixture.java b/src/test/acceptance/fixture/LispInterpreterFixture.java
index f084f1f..5c2597d 100644
--- a/src/test/acceptance/fixture/LispInterpreterFixture.java
+++ b/src/test/acceptance/fixture/LispInterpreterFixture.java
@@ -1,8 +1,10 @@
package acceptance.fixture;
-import static application.LispMain.LANGUAGE_FILE_NAMES;
-import static table.FunctionTable.resetFunctionTable;
-import static util.Path.getPathPrefix;
+import environment.RuntimeEnvironment;
+import interpreter.LispInterpreter;
+import interpreter.LispInterpreterBuilder;
+import interpreter.LispInterpreterBuilderImpl;
+import table.ExecutionContext;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -10,11 +12,9 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
-import environment.RuntimeEnvironment;
-import interpreter.LispInterpreter;
-import interpreter.LispInterpreterBuilder;
-import interpreter.LispInterpreterBuilderImpl;
-import table.ExecutionContext;
+import static application.LispMain.LANGUAGE_FILE_NAMES;
+import static table.FunctionTable.resetFunctionTable;
+import static util.Path.getPathPrefix;
public class LispInterpreterFixture {
diff --git a/src/test/application/MainTest.java b/src/test/application/MainTest.java
index 321aa17..6488e87 100644
--- a/src/test/application/MainTest.java
+++ b/src/test/application/MainTest.java
@@ -1,31 +1,29 @@
package application;
-import static com.googlecode.lanterna.input.KeyType.Enter;
-import static java.text.MessageFormat.format;
-import static application.LispMain.ANSI_GREEN;
-import static application.LispMain.ANSI_PURPLE;
-import static application.LispMain.ANSI_RESET;
-import static application.LispMain.GREETING;
-import static org.junit.Assert.assertEquals;
-
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.util.concurrent.CountDownLatch;
-
+import com.googlecode.lanterna.terminal.virtual.DefaultVirtualTerminal;
+import environment.RuntimeEnvironment;
+import interpreter.LispInterpreterBuilderImpl;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.ExpectedSystemExit;
import org.junit.contrib.java.lang.system.SystemErrRule;
import org.junit.contrib.java.lang.system.SystemOutRule;
-
-import com.googlecode.lanterna.terminal.virtual.DefaultVirtualTerminal;
-
-import environment.RuntimeEnvironment;
-import interpreter.LispInterpreterBuilderImpl;
import terminal.TerminalConfiguration;
import terminal.VirtualTerminalInteractor;
import testutil.SymbolAndFunctionCleaner;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.util.concurrent.CountDownLatch;
+
+import static application.LispMain.ANSI_GREEN;
+import static application.LispMain.ANSI_PURPLE;
+import static application.LispMain.ANSI_RESET;
+import static application.LispMain.GREETING;
+import static com.googlecode.lanterna.input.KeyType.Enter;
+import static java.text.MessageFormat.format;
+import static org.junit.Assert.assertEquals;
+
public class MainTest extends SymbolAndFunctionCleaner {
private RuntimeEnvironment environment;
diff --git a/src/test/environment/RuntimeEnvironmentTest.java b/src/test/environment/RuntimeEnvironmentTest.java
index 099df93..22675af 100644
--- a/src/test/environment/RuntimeEnvironmentTest.java
+++ b/src/test/environment/RuntimeEnvironmentTest.java
@@ -1,19 +1,18 @@
package environment;
+import error.ErrorManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashSet;
+import java.util.Set;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import error.ErrorManager;
-
public class RuntimeEnvironmentTest {
private static final String TERMINATED_SUCCESSFULLY = "TERMINATED_SUCCESSFULLY";
diff --git a/src/test/error/ErrorManagerTest.java b/src/test/error/ErrorManagerTest.java
index 3075765..2793f12 100644
--- a/src/test/error/ErrorManagerTest.java
+++ b/src/test/error/ErrorManagerTest.java
@@ -1,22 +1,21 @@
package error;
-import static error.ErrorManager.Severity.CRITICAL;
-import static error.ErrorManager.Severity.ERROR;
-import static error.ErrorManager.Severity.WARNING;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import environment.RuntimeEnvironment;
+import error.ErrorManager.Severity;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.HashSet;
import java.util.Set;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import environment.RuntimeEnvironment;
-import error.ErrorManager.Severity;
+import static error.ErrorManager.Severity.CRITICAL;
+import static error.ErrorManager.Severity.ERROR;
+import static error.ErrorManager.Severity.WARNING;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
public class ErrorManagerTest {
diff --git a/src/test/file/FilePositionTrackerTest.java b/src/test/file/FilePositionTrackerTest.java
index 715ae16..882705f 100644
--- a/src/test/file/FilePositionTrackerTest.java
+++ b/src/test/file/FilePositionTrackerTest.java
@@ -1,12 +1,12 @@
package file;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Objects;
-
import org.junit.Before;
import org.junit.Test;
+import java.util.Objects;
+
+import static org.junit.Assert.assertTrue;
+
public class FilePositionTrackerTest {
public static final String FILE_NAME = "testFile";
diff --git a/src/test/function/ArgumentValidatorTest.java b/src/test/function/ArgumentValidatorTest.java
index cfb8291..d284caf 100644
--- a/src/test/function/ArgumentValidatorTest.java
+++ b/src/test/function/ArgumentValidatorTest.java
@@ -1,5 +1,17 @@
package function;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.DottedArgumentListException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Before;
+import org.junit.Test;
+import sexpression.Cons;
+import sexpression.LispString;
+import sexpression.Nil;
+import sexpression.SExpression;
+import sexpression.Symbol;
+
import static error.ErrorManager.Severity.ERROR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -7,19 +19,6 @@ import static org.junit.Assert.assertTrue;
import static sexpression.Nil.NIL;
import static sexpression.Symbol.T;
-import org.junit.Before;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.DottedArgumentListException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import sexpression.Cons;
-import sexpression.LispString;
-import sexpression.Nil;
-import sexpression.SExpression;
-import sexpression.Symbol;
-
public class ArgumentValidatorTest {
private ArgumentValidator validator;
diff --git a/src/test/function/LispFunctionTest.java b/src/test/function/LispFunctionTest.java
index 9a516e4..7ca00c0 100644
--- a/src/test/function/LispFunctionTest.java
+++ b/src/test/function/LispFunctionTest.java
@@ -1,12 +1,11 @@
package function;
-import static org.junit.Assert.assertTrue;
-
import org.junit.Test;
-
import sexpression.Cons;
import sexpression.SExpression;
+import static org.junit.Assert.assertTrue;
+
public class LispFunctionTest {
@Test
diff --git a/src/test/function/LispSpecialFunctionTest.java b/src/test/function/LispSpecialFunctionTest.java
index 300c61a..4e064bd 100644
--- a/src/test/function/LispSpecialFunctionTest.java
+++ b/src/test/function/LispSpecialFunctionTest.java
@@ -1,12 +1,11 @@
package function;
-import static org.junit.Assert.assertFalse;
-
import org.junit.Test;
-
import sexpression.Cons;
import sexpression.SExpression;
+import static org.junit.Assert.assertFalse;
+
public class LispSpecialFunctionTest {
@Test
diff --git a/src/test/function/UserDefinedFunctionTest.java b/src/test/function/UserDefinedFunctionTest.java
index 1d35be5..29cd20f 100644
--- a/src/test/function/UserDefinedFunctionTest.java
+++ b/src/test/function/UserDefinedFunctionTest.java
@@ -1,22 +1,21 @@
package function;
+import error.ErrorManager;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import function.UserDefinedFunction.IllegalKeywordRestPositionException;
+import org.junit.Test;
+import sexpression.Cons;
+import sexpression.LispNumber;
+import sexpression.SExpression;
+import sexpression.Symbol;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static sexpression.Nil.NIL;
import static testutil.TestUtilities.assertSExpressionsMatch;
-import org.junit.Test;
-
-import error.ErrorManager;
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import function.UserDefinedFunction.IllegalKeywordRestPositionException;
-import sexpression.Cons;
-import sexpression.LispNumber;
-import sexpression.SExpression;
-import sexpression.Symbol;
-
public class UserDefinedFunctionTest {
private static final String FUNCTION_NAME = "TEST";
diff --git a/src/test/function/builtin/APPLYTest.java b/src/test/function/builtin/APPLYTest.java
index b3e5746..2087c00 100644
--- a/src/test/function/builtin/APPLYTest.java
+++ b/src/test/function/builtin/APPLYTest.java
@@ -1,20 +1,19 @@
package function.builtin;
-import static function.builtin.APPLY.apply;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.EVAL.UndefinedFunctionException;
+import org.junit.Test;
import sexpression.Cons;
import testutil.SymbolAndFunctionCleaner;
+import static function.builtin.APPLY.apply;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class APPLYTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/BackquoteEvaluatorTest.java b/src/test/function/builtin/BackquoteEvaluatorTest.java
index 071a921..1be36b2 100644
--- a/src/test/function/builtin/BackquoteEvaluatorTest.java
+++ b/src/test/function/builtin/BackquoteEvaluatorTest.java
@@ -1,18 +1,11 @@
package function.builtin;
-import static sexpression.Nil.NIL;
-import static sexpression.Symbol.T;
-import static testutil.TestUtilities.assertIsErrorWithMessage;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.makeList;
-
-import org.junit.Test;
-
import function.ArgumentValidator.DottedArgumentListException;
import function.builtin.BackquoteEvaluator.AtSignNotInCommaException;
import function.builtin.BackquoteEvaluator.AtSignNotListException;
import function.builtin.BackquoteEvaluator.NestedAtSignException;
import function.builtin.BackquoteEvaluator.NestedCommaException;
+import org.junit.Test;
import sexpression.AtSignExpression;
import sexpression.BackquoteExpression;
import sexpression.CommaExpression;
@@ -22,6 +15,12 @@ import sexpression.LispString;
import sexpression.SExpression;
import sexpression.Symbol;
+import static sexpression.Nil.NIL;
+import static sexpression.Symbol.T;
+import static testutil.TestUtilities.assertIsErrorWithMessage;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.makeList;
+
public class BackquoteEvaluatorTest {
private BackquoteEvaluator createBackquoteEvaluator(SExpression expression) {
diff --git a/src/test/function/builtin/EVALTest.java b/src/test/function/builtin/EVALTest.java
index 053eb28..ca36fca 100644
--- a/src/test/function/builtin/EVALTest.java
+++ b/src/test/function/builtin/EVALTest.java
@@ -1,16 +1,5 @@
package function.builtin;
-import static function.builtin.EVAL.lookupSymbol;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-import static sexpression.Nil.NIL;
-import static testutil.TestUtilities.assertIsErrorWithMessage;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
@@ -20,8 +9,18 @@ import function.builtin.EVAL.UndefinedSymbolException;
import function.builtin.EVAL.UnmatchedAtSignException;
import function.builtin.EVAL.UnmatchedCommaException;
import function.builtin.special.RECUR.RecurNotInTailPositionException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import static function.builtin.EVAL.lookupSymbol;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+import static sexpression.Nil.NIL;
+import static testutil.TestUtilities.assertIsErrorWithMessage;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class EVALTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/EXITTest.java b/src/test/function/builtin/EXITTest.java
index 30569a5..c9a0965 100644
--- a/src/test/function/builtin/EXITTest.java
+++ b/src/test/function/builtin/EXITTest.java
@@ -1,17 +1,16 @@
package function.builtin;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.evaluateString;
+import environment.RuntimeEnvironment;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
import java.util.HashSet;
import java.util.Set;
-import org.junit.Test;
-
-import environment.RuntimeEnvironment;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.evaluateString;
public class EXITTest extends SymbolAndFunctionCleaner {
diff --git a/src/test/function/builtin/FUNCALLTest.java b/src/test/function/builtin/FUNCALLTest.java
index 9dc4057..5d2d7b1 100644
--- a/src/test/function/builtin/FUNCALLTest.java
+++ b/src/test/function/builtin/FUNCALLTest.java
@@ -1,14 +1,13 @@
package function.builtin;
+import function.ArgumentValidator.TooFewArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class FUNCALLTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/GENSYMTest.java b/src/test/function/builtin/GENSYMTest.java
index b196096..5befff7 100644
--- a/src/test/function/builtin/GENSYMTest.java
+++ b/src/test/function/builtin/GENSYMTest.java
@@ -1,17 +1,16 @@
package function.builtin;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+import token.TokenFactory.BadCharacterException;
+
import static function.builtin.GENSYM.GENSYM_PREFIX;
import static testutil.TestUtilities.assertSExpressionsDoNotMatch;
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertSymbol;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-import token.TokenFactory.BadCharacterException;
-
public class GENSYMTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/LOADTest.java b/src/test/function/builtin/LOADTest.java
index df900da..f8c150f 100644
--- a/src/test/function/builtin/LOADTest.java
+++ b/src/test/function/builtin/LOADTest.java
@@ -1,22 +1,21 @@
package function.builtin;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TypeAssertions.assertNil;
-import static testutil.TypeAssertions.assertT;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.Test;
-
import environment.RuntimeEnvironment;
import error.ErrorManager;
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TypeAssertions.assertNil;
+import static testutil.TypeAssertions.assertT;
+
public class LOADTest extends SymbolAndFunctionCleaner {
private ByteArrayOutputStream outputStream;
diff --git a/src/test/function/builtin/PRINTTest.java b/src/test/function/builtin/PRINTTest.java
index 97d59e1..4587939 100644
--- a/src/test/function/builtin/PRINTTest.java
+++ b/src/test/function/builtin/PRINTTest.java
@@ -1,19 +1,18 @@
package function.builtin;
-import static java.text.MessageFormat.format;
-import static org.junit.Assert.assertEquals;
-import static testutil.TestUtilities.evaluateString;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.Test;
-
import environment.RuntimeEnvironment;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import static java.text.MessageFormat.format;
+import static org.junit.Assert.assertEquals;
+import static testutil.TestUtilities.evaluateString;
+
public class PRINTTest extends SymbolAndFunctionCleaner {
private RuntimeEnvironment environment;
diff --git a/src/test/function/builtin/SETTest.java b/src/test/function/builtin/SETTest.java
index 524b6e5..47fb866 100644
--- a/src/test/function/builtin/SETTest.java
+++ b/src/test/function/builtin/SETTest.java
@@ -1,19 +1,18 @@
package function.builtin;
-import static org.junit.Assert.assertNull;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
import sexpression.LispNumber;
import table.SymbolTable;
import testutil.SymbolAndFunctionCleaner;
+import static org.junit.Assert.assertNull;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class SETTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/SYMBOLSTest.java b/src/test/function/builtin/SYMBOLSTest.java
index 88d87c3..1c47a78 100644
--- a/src/test/function/builtin/SYMBOLSTest.java
+++ b/src/test/function/builtin/SYMBOLSTest.java
@@ -1,13 +1,12 @@
package function.builtin;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class SYMBOLSTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/SYMBOL_FUNCTIONTest.java b/src/test/function/builtin/SYMBOL_FUNCTIONTest.java
index ef53fb4..44d32dd 100644
--- a/src/test/function/builtin/SYMBOL_FUNCTIONTest.java
+++ b/src/test/function/builtin/SYMBOL_FUNCTIONTest.java
@@ -1,5 +1,12 @@
package function.builtin;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import function.builtin.SYMBOL_FUNCTION.UndefinedSymbolFunctionException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static error.ErrorManager.Severity.ERROR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -7,14 +14,6 @@ import static org.junit.Assert.assertTrue;
import static sexpression.Nil.NIL;
import static testutil.TestUtilities.evaluateString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import function.builtin.SYMBOL_FUNCTION.UndefinedSymbolFunctionException;
-import testutil.SymbolAndFunctionCleaner;
-
public class SYMBOL_FUNCTIONTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/cons/APPENDTest.java b/src/test/function/builtin/cons/APPENDTest.java
index 5ed6fa9..5378fec 100644
--- a/src/test/function/builtin/cons/APPENDTest.java
+++ b/src/test/function/builtin/cons/APPENDTest.java
@@ -1,17 +1,16 @@
package function.builtin.cons;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class APPENDTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/cons/CONSTest.java b/src/test/function/builtin/cons/CONSTest.java
index 2299b74..53a7b63 100644
--- a/src/test/function/builtin/cons/CONSTest.java
+++ b/src/test/function/builtin/cons/CONSTest.java
@@ -1,17 +1,16 @@
package function.builtin.cons;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import sexpression.Cons;
+import sexpression.Symbol;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import sexpression.Cons;
-import sexpression.Symbol;
-import testutil.SymbolAndFunctionCleaner;
-
public class CONSTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/cons/FIRSTTest.java b/src/test/function/builtin/cons/FIRSTTest.java
index 89cdeec..c509634 100644
--- a/src/test/function/builtin/cons/FIRSTTest.java
+++ b/src/test/function/builtin/cons/FIRSTTest.java
@@ -1,16 +1,15 @@
package function.builtin.cons;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class FIRSTTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/cons/LENGTHTest.java b/src/test/function/builtin/cons/LENGTHTest.java
index f46ebf7..0668a38 100644
--- a/src/test/function/builtin/cons/LENGTHTest.java
+++ b/src/test/function/builtin/cons/LENGTHTest.java
@@ -1,17 +1,16 @@
package function.builtin.cons;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class LENGTHTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/cons/LISTTest.java b/src/test/function/builtin/cons/LISTTest.java
index 52b6975..b869eee 100644
--- a/src/test/function/builtin/cons/LISTTest.java
+++ b/src/test/function/builtin/cons/LISTTest.java
@@ -1,14 +1,13 @@
package function.builtin.cons;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static function.builtin.cons.LIST.makeList;
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import testutil.SymbolAndFunctionCleaner;
-
public class LISTTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/cons/RESTTest.java b/src/test/function/builtin/cons/RESTTest.java
index 90dcf29..46c70d6 100644
--- a/src/test/function/builtin/cons/RESTTest.java
+++ b/src/test/function/builtin/cons/RESTTest.java
@@ -1,16 +1,15 @@
package function.builtin.cons;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class RESTTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/math/DIVIDETest.java b/src/test/function/builtin/math/DIVIDETest.java
index 087ddc5..f27409a 100644
--- a/src/test/function/builtin/math/DIVIDETest.java
+++ b/src/test/function/builtin/math/DIVIDETest.java
@@ -1,17 +1,16 @@
package function.builtin.math;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.builtin.math.DIVIDE.DivideByZeroException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertIsErrorWithMessage;
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.builtin.math.DIVIDE.DivideByZeroException;
-import testutil.SymbolAndFunctionCleaner;
-
public class DIVIDETest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/math/MINUSTest.java b/src/test/function/builtin/math/MINUSTest.java
index 41a2937..6c350e1 100644
--- a/src/test/function/builtin/math/MINUSTest.java
+++ b/src/test/function/builtin/math/MINUSTest.java
@@ -1,15 +1,14 @@
package function.builtin.math;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
+import org.junit.Test;
import sexpression.LispNumber;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class MINUSTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/math/MODULOTest.java b/src/test/function/builtin/math/MODULOTest.java
index 93f2403..83f4df7 100644
--- a/src/test/function/builtin/math/MODULOTest.java
+++ b/src/test/function/builtin/math/MODULOTest.java
@@ -1,18 +1,17 @@
package function.builtin.math;
-import static testutil.TestUtilities.assertIsErrorWithMessage;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.math.MODULO.ModulusNotPositiveException;
+import org.junit.Test;
import sexpression.LispNumber;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertIsErrorWithMessage;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class MODULOTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/math/MULTIPLYTest.java b/src/test/function/builtin/math/MULTIPLYTest.java
index c32fc6d..d6cd2c9 100644
--- a/src/test/function/builtin/math/MULTIPLYTest.java
+++ b/src/test/function/builtin/math/MULTIPLYTest.java
@@ -1,14 +1,13 @@
package function.builtin.math;
+import function.ArgumentValidator.BadArgumentTypeException;
+import org.junit.Test;
+import sexpression.LispNumber;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import sexpression.LispNumber;
-import testutil.SymbolAndFunctionCleaner;
-
public class MULTIPLYTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/math/PLUSTest.java b/src/test/function/builtin/math/PLUSTest.java
index 47833f1..9e297dc 100644
--- a/src/test/function/builtin/math/PLUSTest.java
+++ b/src/test/function/builtin/math/PLUSTest.java
@@ -1,14 +1,13 @@
package function.builtin.math;
+import function.ArgumentValidator.BadArgumentTypeException;
+import org.junit.Test;
+import sexpression.LispNumber;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import sexpression.LispNumber;
-import testutil.SymbolAndFunctionCleaner;
-
public class PLUSTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/math/REMAINDERTest.java b/src/test/function/builtin/math/REMAINDERTest.java
index d5096ab..0573267 100644
--- a/src/test/function/builtin/math/REMAINDERTest.java
+++ b/src/test/function/builtin/math/REMAINDERTest.java
@@ -1,17 +1,16 @@
package function.builtin.math;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.math.DIVIDE.DivideByZeroException;
+import org.junit.Test;
import sexpression.LispNumber;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class REMAINDERTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/ATOMTest.java b/src/test/function/builtin/predicate/ATOMTest.java
index 3e07bcf..89dd78c 100644
--- a/src/test/function/builtin/predicate/ATOMTest.java
+++ b/src/test/function/builtin/predicate/ATOMTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class ATOMTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/EQTest.java b/src/test/function/builtin/predicate/EQTest.java
index 92b9318..32eca6e 100644
--- a/src/test/function/builtin/predicate/EQTest.java
+++ b/src/test/function/builtin/predicate/EQTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class EQTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/EQUALTest.java b/src/test/function/builtin/predicate/EQUALTest.java
index 7c537d5..59a71e6 100644
--- a/src/test/function/builtin/predicate/EQUALTest.java
+++ b/src/test/function/builtin/predicate/EQUALTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class EQUALTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/GENSYM_EQUALTest.java b/src/test/function/builtin/predicate/GENSYM_EQUALTest.java
index fc85965..154d201 100644
--- a/src/test/function/builtin/predicate/GENSYM_EQUALTest.java
+++ b/src/test/function/builtin/predicate/GENSYM_EQUALTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class GENSYM_EQUALTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/LISTPTest.java b/src/test/function/builtin/predicate/LISTPTest.java
index b06ebaf..16a5f25 100644
--- a/src/test/function/builtin/predicate/LISTPTest.java
+++ b/src/test/function/builtin/predicate/LISTPTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class LISTPTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/NULLTest.java b/src/test/function/builtin/predicate/NULLTest.java
index 29825c9..913dc18 100644
--- a/src/test/function/builtin/predicate/NULLTest.java
+++ b/src/test/function/builtin/predicate/NULLTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class NULLTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/NUMERIC_EQUALTest.java b/src/test/function/builtin/predicate/NUMERIC_EQUALTest.java
index 69a5244..3a71462 100644
--- a/src/test/function/builtin/predicate/NUMERIC_EQUALTest.java
+++ b/src/test/function/builtin/predicate/NUMERIC_EQUALTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class NUMERIC_EQUALTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/NUMERIC_GREATERTest.java b/src/test/function/builtin/predicate/NUMERIC_GREATERTest.java
index 05ddda5..16e38bd 100644
--- a/src/test/function/builtin/predicate/NUMERIC_GREATERTest.java
+++ b/src/test/function/builtin/predicate/NUMERIC_GREATERTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class NUMERIC_GREATERTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/predicate/NUMERIC_LESSTest.java b/src/test/function/builtin/predicate/NUMERIC_LESSTest.java
index 7721ef3..c2147d6 100644
--- a/src/test/function/builtin/predicate/NUMERIC_LESSTest.java
+++ b/src/test/function/builtin/predicate/NUMERIC_LESSTest.java
@@ -1,15 +1,14 @@
package function.builtin.predicate;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class NUMERIC_LESSTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/ANDTest.java b/src/test/function/builtin/special/ANDTest.java
index 42b2034..9d02cc8 100644
--- a/src/test/function/builtin/special/ANDTest.java
+++ b/src/test/function/builtin/special/ANDTest.java
@@ -1,16 +1,15 @@
package function.builtin.special;
+import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
+import sexpression.LispNumber;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.builtin.EVAL.UndefinedSymbolException;
-import sexpression.LispNumber;
-import testutil.SymbolAndFunctionCleaner;
-
public class ANDTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/CASETest.java b/src/test/function/builtin/special/CASETest.java
index 1b0c610..a113d97 100644
--- a/src/test/function/builtin/special/CASETest.java
+++ b/src/test/function/builtin/special/CASETest.java
@@ -1,15 +1,14 @@
package function.builtin.special;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class CASETest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/CONDTest.java b/src/test/function/builtin/special/CONDTest.java
index db0ef3e..fd015c2 100644
--- a/src/test/function/builtin/special/CONDTest.java
+++ b/src/test/function/builtin/special/CONDTest.java
@@ -1,15 +1,14 @@
package function.builtin.special;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.DottedArgumentListException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.DottedArgumentListException;
-import testutil.SymbolAndFunctionCleaner;
-
public class CONDTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/DEFINE_SPECIALTest.java b/src/test/function/builtin/special/DEFINE_SPECIALTest.java
index 11953b5..1453e5f 100644
--- a/src/test/function/builtin/special/DEFINE_SPECIALTest.java
+++ b/src/test/function/builtin/special/DEFINE_SPECIALTest.java
@@ -1,15 +1,5 @@
package function.builtin.special;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.Test;
-
import environment.RuntimeEnvironment;
import error.ErrorManager;
import function.ArgumentValidator.BadArgumentTypeException;
@@ -17,8 +7,17 @@ import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.UserDefinedFunction.IllegalKeywordRestPositionException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class DEFINE_SPECIALTest extends SymbolAndFunctionCleaner {
private ByteArrayOutputStream outputStream;
diff --git a/src/test/function/builtin/special/DEFMACROTest.java b/src/test/function/builtin/special/DEFMACROTest.java
index f62d565..2936242 100644
--- a/src/test/function/builtin/special/DEFMACROTest.java
+++ b/src/test/function/builtin/special/DEFMACROTest.java
@@ -1,15 +1,5 @@
package function.builtin.special;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.Test;
-
import environment.RuntimeEnvironment;
import error.ErrorManager;
import function.ArgumentValidator.BadArgumentTypeException;
@@ -17,8 +7,17 @@ import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.UserDefinedFunction.IllegalKeywordRestPositionException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class DEFMACROTest extends SymbolAndFunctionCleaner {
private ByteArrayOutputStream outputStream;
diff --git a/src/test/function/builtin/special/DEFUNTest.java b/src/test/function/builtin/special/DEFUNTest.java
index 593099d..ed19758 100644
--- a/src/test/function/builtin/special/DEFUNTest.java
+++ b/src/test/function/builtin/special/DEFUNTest.java
@@ -1,15 +1,5 @@
package function.builtin.special;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.Test;
-
import environment.RuntimeEnvironment;
import error.ErrorManager;
import function.ArgumentValidator.BadArgumentTypeException;
@@ -17,8 +7,17 @@ import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.UserDefinedFunction.IllegalKeywordRestPositionException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class DEFUNTest extends SymbolAndFunctionCleaner {
private ByteArrayOutputStream outputStream;
diff --git a/src/test/function/builtin/special/FUSETest.java b/src/test/function/builtin/special/FUSETest.java
index 77803a3..ddd9586 100644
--- a/src/test/function/builtin/special/FUSETest.java
+++ b/src/test/function/builtin/special/FUSETest.java
@@ -1,16 +1,15 @@
package function.builtin.special;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
import sexpression.Symbol;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class FUSETest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/IFTest.java b/src/test/function/builtin/special/IFTest.java
index 478b3d0..6216362 100644
--- a/src/test/function/builtin/special/IFTest.java
+++ b/src/test/function/builtin/special/IFTest.java
@@ -1,16 +1,15 @@
package function.builtin.special;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TypeAssertions.assertNil;
-import static testutil.TypeAssertions.assertT;
-
-import org.junit.Test;
-
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
import testutil.SymbolAndFunctionCleaner;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TypeAssertions.assertNil;
+import static testutil.TypeAssertions.assertT;
+
public class IFTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/LAMBDATest.java b/src/test/function/builtin/special/LAMBDATest.java
index 4cfd4fd..539793d 100644
--- a/src/test/function/builtin/special/LAMBDATest.java
+++ b/src/test/function/builtin/special/LAMBDATest.java
@@ -1,5 +1,16 @@
package function.builtin.special;
+import function.ArgumentValidator.BadArgumentTypeException;
+import function.ArgumentValidator.DottedArgumentListException;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import function.builtin.EVAL.UndefinedFunctionException;
+import org.junit.Test;
+import sexpression.Cons;
+import sexpression.LispNumber;
+import sexpression.Symbol;
+import testutil.SymbolAndFunctionCleaner;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static sexpression.LispNumber.ONE;
@@ -9,18 +20,6 @@ import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.BadArgumentTypeException;
-import function.ArgumentValidator.DottedArgumentListException;
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import function.builtin.EVAL.UndefinedFunctionException;
-import sexpression.Cons;
-import sexpression.LispNumber;
-import sexpression.Symbol;
-import testutil.SymbolAndFunctionCleaner;
-
public class LAMBDATest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/LETTest.java b/src/test/function/builtin/special/LETTest.java
index 728b6c6..234f50f 100644
--- a/src/test/function/builtin/special/LETTest.java
+++ b/src/test/function/builtin/special/LETTest.java
@@ -1,20 +1,19 @@
package function.builtin.special;
-import static sexpression.Nil.NIL;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
import sexpression.Cons;
import sexpression.LispNumber;
import testutil.SymbolAndFunctionCleaner;
+import static sexpression.Nil.NIL;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class LETTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/LET_STARTest.java b/src/test/function/builtin/special/LET_STARTest.java
index d6bf683..df7074c 100644
--- a/src/test/function/builtin/special/LET_STARTest.java
+++ b/src/test/function/builtin/special/LET_STARTest.java
@@ -1,20 +1,19 @@
package function.builtin.special;
-import static sexpression.Nil.NIL;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.DottedArgumentListException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
import sexpression.Cons;
import sexpression.LispNumber;
import testutil.SymbolAndFunctionCleaner;
+import static sexpression.Nil.NIL;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class LET_STARTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/ORTest.java b/src/test/function/builtin/special/ORTest.java
index 33beb92..3c19a19 100644
--- a/src/test/function/builtin/special/ORTest.java
+++ b/src/test/function/builtin/special/ORTest.java
@@ -1,16 +1,15 @@
package function.builtin.special;
+import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
+import sexpression.LispNumber;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TypeAssertions.assertNil;
import static testutil.TypeAssertions.assertT;
-import org.junit.Test;
-
-import function.builtin.EVAL.UndefinedSymbolException;
-import sexpression.LispNumber;
-import testutil.SymbolAndFunctionCleaner;
-
public class ORTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/PROGNTest.java b/src/test/function/builtin/special/PROGNTest.java
index 3ba03e5..ff02fc7 100644
--- a/src/test/function/builtin/special/PROGNTest.java
+++ b/src/test/function/builtin/special/PROGNTest.java
@@ -1,14 +1,13 @@
package function.builtin.special;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
import static testutil.TypeAssertions.assertNil;
-import org.junit.Test;
-
-import testutil.SymbolAndFunctionCleaner;
-
public class PROGNTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/QUOTETest.java b/src/test/function/builtin/special/QUOTETest.java
index 7acbf40..9092414 100644
--- a/src/test/function/builtin/special/QUOTETest.java
+++ b/src/test/function/builtin/special/QUOTETest.java
@@ -1,15 +1,14 @@
package function.builtin.special;
+import function.ArgumentValidator.TooFewArgumentsException;
+import function.ArgumentValidator.TooManyArgumentsException;
+import org.junit.Test;
+import testutil.SymbolAndFunctionCleaner;
+
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.evaluateString;
import static testutil.TestUtilities.parseString;
-import org.junit.Test;
-
-import function.ArgumentValidator.TooFewArgumentsException;
-import function.ArgumentValidator.TooManyArgumentsException;
-import testutil.SymbolAndFunctionCleaner;
-
public class QUOTETest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/function/builtin/special/RECURTest.java b/src/test/function/builtin/special/RECURTest.java
index cd7fd5d..56bb983 100644
--- a/src/test/function/builtin/special/RECURTest.java
+++ b/src/test/function/builtin/special/RECURTest.java
@@ -1,21 +1,20 @@
package function.builtin.special;
-import static org.junit.Assert.fail;
-import static testutil.TestUtilities.assertIsErrorWithMessage;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-import static testutil.TestUtilities.parseString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.special.RECUR.NestedRecurException;
import function.builtin.special.RECUR.RecurNotInTailPositionException;
import function.builtin.special.RECUR.RecurOutsideOfFunctionException;
+import org.junit.Test;
import sexpression.SExpression;
import testutil.SymbolAndFunctionCleaner;
+import static org.junit.Assert.fail;
+import static testutil.TestUtilities.assertIsErrorWithMessage;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+import static testutil.TestUtilities.parseString;
+
public class RECURTest extends SymbolAndFunctionCleaner {
@Test(expected = RecurOutsideOfFunctionException.class)
diff --git a/src/test/function/builtin/special/SETQTest.java b/src/test/function/builtin/special/SETQTest.java
index f09f243..c018a0b 100644
--- a/src/test/function/builtin/special/SETQTest.java
+++ b/src/test/function/builtin/special/SETQTest.java
@@ -1,19 +1,18 @@
package function.builtin.special;
-import static org.junit.Assert.assertNull;
-import static testutil.TestUtilities.assertSExpressionsMatch;
-import static testutil.TestUtilities.evaluateString;
-
-import org.junit.Test;
-
import function.ArgumentValidator.BadArgumentTypeException;
import function.ArgumentValidator.TooFewArgumentsException;
import function.ArgumentValidator.TooManyArgumentsException;
import function.builtin.EVAL.UndefinedSymbolException;
+import org.junit.Test;
import sexpression.LispNumber;
import table.SymbolTable;
import testutil.SymbolAndFunctionCleaner;
+import static org.junit.Assert.assertNull;
+import static testutil.TestUtilities.assertSExpressionsMatch;
+import static testutil.TestUtilities.evaluateString;
+
public class SETQTest extends SymbolAndFunctionCleaner {
@Test
diff --git a/src/test/interpreter/LispInterpreterTest.java b/src/test/interpreter/LispInterpreterTest.java
index 9a69064..e1aee0e 100644
--- a/src/test/interpreter/LispInterpreterTest.java
+++ b/src/test/interpreter/LispInterpreterTest.java
@@ -1,5 +1,16 @@
package interpreter;
+import environment.RuntimeEnvironment;
+import interpreter.LispInterpreterBuilderImpl.InterpreterAlreadyBuiltException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.HashSet;
+import java.util.Set;
+
import static error.ErrorManager.Severity.CRITICAL;
import static interpreter.InteractiveLispInterpreter.PROMPT;
import static java.text.MessageFormat.format;
@@ -9,18 +20,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static testutil.TestUtilities.createInputStreamFromString;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import environment.RuntimeEnvironment;
-import interpreter.LispInterpreterBuilderImpl.InterpreterAlreadyBuiltException;
-
public class LispInterpreterTest {
private static final String TERMINATED = "terminated";
diff --git a/src/test/parser/LispParserTest.java b/src/test/parser/LispParserTest.java
index ec47957..13f15b0 100644
--- a/src/test/parser/LispParserTest.java
+++ b/src/test/parser/LispParserTest.java
@@ -1,5 +1,15 @@
package parser;
+import error.LispException;
+import org.junit.Test;
+import scanner.LispScanner.UnterminatedStringException;
+import stream.UncheckedIOException;
+import token.Eof.EofEncounteredException;
+import token.RightParenthesis.StartsWithRightParenthesisException;
+import token.TokenFactory.BadCharacterException;
+
+import java.io.InputStream;
+
import static error.ErrorManager.Severity.ERROR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -17,17 +27,6 @@ import static testutil.TypeAssertions.assertNumber;
import static testutil.TypeAssertions.assertString;
import static testutil.TypeAssertions.assertSymbol;
-import java.io.InputStream;
-
-import org.junit.Test;
-
-import error.LispException;
-import scanner.LispScanner.UnterminatedStringException;
-import stream.UncheckedIOException;
-import token.Eof.EofEncounteredException;
-import token.RightParenthesis.StartsWithRightParenthesisException;
-import token.TokenFactory.BadCharacterException;
-
public class LispParserTest {
private LispParser createLispParser(String input) {
diff --git a/src/test/recursion/TailCallTest.java b/src/test/recursion/TailCallTest.java
index b3a9466..f8dd401 100644
--- a/src/test/recursion/TailCallTest.java
+++ b/src/test/recursion/TailCallTest.java
@@ -1,9 +1,9 @@
package recursion;
-import static recursion.TailCalls.done;
-
import org.junit.Test;
+import static recursion.TailCalls.done;
+
public class TailCallTest {
@Test(expected = UnsupportedOperationException.class)
diff --git a/src/test/scanner/LispCommentRemovingInputStreamTest.java b/src/test/scanner/LispCommentRemovingInputStreamTest.java
index 60150cb..ae986f4 100644
--- a/src/test/scanner/LispCommentRemovingInputStreamTest.java
+++ b/src/test/scanner/LispCommentRemovingInputStreamTest.java
@@ -1,5 +1,11 @@
package scanner;
+import org.junit.Test;
+import scanner.LispInputStream.MaximumUnreadsExceededException;
+import stream.UncheckedIOException;
+
+import java.io.InputStream;
+
import static error.ErrorManager.Severity.CRITICAL;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -7,13 +13,6 @@ import static org.junit.Assert.assertTrue;
import static testutil.TestUtilities.createIOExceptionThrowingInputStream;
import static testutil.TestUtilities.createInputStreamFromString;
-import java.io.InputStream;
-
-import org.junit.Test;
-
-import scanner.LispInputStream.MaximumUnreadsExceededException;
-import stream.UncheckedIOException;
-
public class LispCommentRemovingInputStreamTest {
private String getLispCommentRemovingInputStreamResult(String inputString) {
diff --git a/src/test/scanner/LispScannerLineColumnTest.java b/src/test/scanner/LispScannerLineColumnTest.java
index 0bba8dd..201ba9d 100644
--- a/src/test/scanner/LispScannerLineColumnTest.java
+++ b/src/test/scanner/LispScannerLineColumnTest.java
@@ -1,14 +1,13 @@
package scanner;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.createInputStreamFromString;
+import file.FilePosition;
+import org.junit.Test;
+import token.Token;
import java.io.InputStream;
-import org.junit.Test;
-
-import file.FilePosition;
-import token.Token;
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.createInputStreamFromString;
public class LispScannerLineColumnTest {
diff --git a/src/test/scanner/LispScannerTextTest.java b/src/test/scanner/LispScannerTextTest.java
index 11c9344..9694d43 100644
--- a/src/test/scanner/LispScannerTextTest.java
+++ b/src/test/scanner/LispScannerTextTest.java
@@ -1,13 +1,12 @@
package scanner;
-import static org.junit.Assert.assertEquals;
-import static testutil.TestUtilities.createInputStreamFromString;
+import file.FilePosition;
+import org.junit.Test;
import java.io.InputStream;
-import org.junit.Test;
-
-import file.FilePosition;
+import static org.junit.Assert.assertEquals;
+import static testutil.TestUtilities.createInputStreamFromString;
public class LispScannerTextTest {
diff --git a/src/test/scanner/LispScannerTypeTest.java b/src/test/scanner/LispScannerTypeTest.java
index 4365913..7a5fe62 100644
--- a/src/test/scanner/LispScannerTypeTest.java
+++ b/src/test/scanner/LispScannerTypeTest.java
@@ -1,18 +1,7 @@
package scanner;
-import static error.ErrorManager.Severity.ERROR;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static testutil.TestUtilities.createInputStreamFromString;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
import org.junit.Before;
import org.junit.Test;
-
import scanner.LispScanner.UnterminatedStringException;
import token.AtSign;
import token.Backquote;
@@ -27,6 +16,16 @@ import token.RightParenthesis;
import token.Token;
import token.TokenFactory.BadCharacterException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static error.ErrorManager.Severity.ERROR;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static testutil.TestUtilities.createInputStreamFromString;
+
public class LispScannerTypeTest {
private List> expectedTypes;
diff --git a/src/test/sexpression/SExpressionTest.java b/src/test/sexpression/SExpressionTest.java
index 8d08874..da9dfc8 100644
--- a/src/test/sexpression/SExpressionTest.java
+++ b/src/test/sexpression/SExpressionTest.java
@@ -1,5 +1,12 @@
package sexpression;
+import function.UserDefinedFunction;
+import org.junit.Test;
+import sexpression.LispNumber.InvalidNumberException;
+
+import java.math.BigInteger;
+import java.util.Locale;
+
import static error.ErrorManager.Severity.ERROR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -8,14 +15,6 @@ import static sexpression.Nil.NIL;
import static testutil.TestUtilities.assertSExpressionsMatch;
import static testutil.TestUtilities.makeList;
-import java.math.BigInteger;
-import java.util.Locale;
-
-import org.junit.Test;
-
-import function.UserDefinedFunction;
-import sexpression.LispNumber.InvalidNumberException;
-
public class SExpressionTest {
private void assertSExpressionMatchesString(String expected, SExpression sExpression) {
diff --git a/src/test/stream/SafeInputStreamTest.java b/src/test/stream/SafeInputStreamTest.java
index e20c378..ded9b5f 100644
--- a/src/test/stream/SafeInputStreamTest.java
+++ b/src/test/stream/SafeInputStreamTest.java
@@ -1,12 +1,12 @@
package stream;
+import org.junit.Before;
+import org.junit.Test;
+
import static org.junit.Assert.assertEquals;
import static testutil.TestUtilities.createIOExceptionThrowingInputStream;
import static testutil.TestUtilities.createInputStreamFromString;
-import org.junit.Before;
-import org.junit.Test;
-
public class SafeInputStreamTest {
SafeInputStream safe;
diff --git a/src/test/stream/SafeOutputStreamTest.java b/src/test/stream/SafeOutputStreamTest.java
index c181691..0348cbf 100644
--- a/src/test/stream/SafeOutputStreamTest.java
+++ b/src/test/stream/SafeOutputStreamTest.java
@@ -1,13 +1,13 @@
package stream;
-import static org.junit.Assert.assertEquals;
-import static testutil.TestUtilities.createIOExceptionThrowingOutputStream;
-
-import java.io.ByteArrayOutputStream;
-
import org.junit.Before;
import org.junit.Test;
+import java.io.ByteArrayOutputStream;
+
+import static org.junit.Assert.assertEquals;
+import static testutil.TestUtilities.createIOExceptionThrowingOutputStream;
+
public class SafeOutputStreamTest {
SafeOutputStream safe;
diff --git a/src/test/table/ExecutionContextTest.java b/src/test/table/ExecutionContextTest.java
index 068dbe4..ec950b4 100644
--- a/src/test/table/ExecutionContextTest.java
+++ b/src/test/table/ExecutionContextTest.java
@@ -1,5 +1,9 @@
package table;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue;
@@ -7,10 +11,6 @@ import static org.junit.Assert.assertThat;
import static sexpression.Nil.NIL;
import static sexpression.Symbol.T;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
public class ExecutionContextTest {
private ExecutionContext executionContext;
diff --git a/src/test/table/FunctionTableTest.java b/src/test/table/FunctionTableTest.java
index ec1aec0..a02facb 100644
--- a/src/test/table/FunctionTableTest.java
+++ b/src/test/table/FunctionTableTest.java
@@ -1,5 +1,18 @@
package table;
+import error.ErrorManager;
+import function.FunctionNames;
+import function.LispFunction;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import sexpression.Cons;
+import sexpression.SExpression;
+import table.FunctionTable.LispFunctionInstantiationException;
+
+import java.util.HashSet;
+import java.util.Set;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -12,20 +25,6 @@ import static table.FunctionTable.isAlreadyDefined;
import static table.FunctionTable.lookupFunction;
import static table.FunctionTable.resetFunctionTable;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import error.ErrorManager;
-import function.FunctionNames;
-import function.LispFunction;
-import sexpression.Cons;
-import sexpression.SExpression;
-import table.FunctionTable.LispFunctionInstantiationException;
-
public class FunctionTableTest {
@FunctionNames({ "GOOD" })
diff --git a/src/test/table/SymbolTableTest.java b/src/test/table/SymbolTableTest.java
index 444585a..21da004 100644
--- a/src/test/table/SymbolTableTest.java
+++ b/src/test/table/SymbolTableTest.java
@@ -1,14 +1,14 @@
package table;
+import org.junit.Before;
+import org.junit.Test;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static sexpression.Nil.NIL;
import static sexpression.Symbol.T;
-import org.junit.Before;
-import org.junit.Test;
-
public class SymbolTableTest {
private SymbolTable symbolTable;
diff --git a/src/test/terminal/ControlSequenceHandlerTest.java b/src/test/terminal/ControlSequenceHandlerTest.java
index ec40094..fc157d2 100644
--- a/src/test/terminal/ControlSequenceHandlerTest.java
+++ b/src/test/terminal/ControlSequenceHandlerTest.java
@@ -1,5 +1,12 @@
package terminal;
+import org.junit.Before;
+import org.junit.Test;
+import stream.SafeInputStream;
+import terminal.ControlSequence.NullControlSequence;
+import testutil.TestUtilities;
+import util.Characters;
+
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
@@ -10,14 +17,6 @@ import static terminal.SelectGraphicRendition.RED;
import static terminal.SelectGraphicRendition.RESET;
import static terminal.SelectGraphicRendition.YELLOW;
-import org.junit.Before;
-import org.junit.Test;
-
-import stream.SafeInputStream;
-import terminal.ControlSequence.NullControlSequence;
-import testutil.TestUtilities;
-import util.Characters;
-
public class ControlSequenceHandlerTest {
private ControlSequenceHandler handler;
diff --git a/src/test/terminal/ControlSequenceTest.java b/src/test/terminal/ControlSequenceTest.java
index d24a195..c6580a2 100644
--- a/src/test/terminal/ControlSequenceTest.java
+++ b/src/test/terminal/ControlSequenceTest.java
@@ -1,5 +1,15 @@
package terminal;
+import com.googlecode.lanterna.TextColor;
+import com.googlecode.lanterna.terminal.virtual.DefaultVirtualTerminal;
+import com.googlecode.lanterna.terminal.virtual.VirtualTerminal;
+import org.junit.Before;
+import org.junit.Test;
+import terminal.ControlSequence.NullControlSequence;
+
+import java.util.HashSet;
+import java.util.Set;
+
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.isEmptyString;
@@ -10,18 +20,6 @@ import static terminal.SelectGraphicRendition.RED;
import static terminal.SelectGraphicRendition.RESET;
import static terminal.SelectGraphicRendition.YELLOW;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.googlecode.lanterna.TextColor;
-import com.googlecode.lanterna.terminal.virtual.DefaultVirtualTerminal;
-import com.googlecode.lanterna.terminal.virtual.VirtualTerminal;
-
-import terminal.ControlSequence.NullControlSequence;
-
public class ControlSequenceTest {
private Set indicatorSet;
diff --git a/src/test/terminal/LispTerminalTest.java b/src/test/terminal/LispTerminalTest.java
index d4c3d5d..6e1df95 100644
--- a/src/test/terminal/LispTerminalTest.java
+++ b/src/test/terminal/LispTerminalTest.java
@@ -1,5 +1,9 @@
package terminal;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
import static com.googlecode.lanterna.input.KeyType.ArrowDown;
import static com.googlecode.lanterna.input.KeyType.ArrowLeft;
import static com.googlecode.lanterna.input.KeyType.ArrowRight;
@@ -10,10 +14,6 @@ import static com.googlecode.lanterna.input.KeyType.Enter;
import static com.googlecode.lanterna.input.KeyType.Escape;
import static terminal.LispTerminal.END_OF_SEGMENT;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
public class LispTerminalTest {
private VirtualTerminalInteractor terminal;
diff --git a/src/test/terminal/TerminalConfigurationTest.java b/src/test/terminal/TerminalConfigurationTest.java
index 6909c05..729d9fd 100644
--- a/src/test/terminal/TerminalConfigurationTest.java
+++ b/src/test/terminal/TerminalConfigurationTest.java
@@ -1,14 +1,13 @@
package terminal;
+import org.junit.Before;
+import org.junit.Test;
+import stream.UncheckedIOException;
+
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
-import org.junit.Before;
-import org.junit.Test;
-
-import stream.UncheckedIOException;
-
public class TerminalConfigurationTest {
TerminalConfiguration configuration;
diff --git a/src/test/terminal/TerminalHistoryTest.java b/src/test/terminal/TerminalHistoryTest.java
index dae6410..cebbeaf 100644
--- a/src/test/terminal/TerminalHistoryTest.java
+++ b/src/test/terminal/TerminalHistoryTest.java
@@ -1,12 +1,12 @@
package terminal;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
public class TerminalHistoryTest {
private TerminalHistory history;
diff --git a/src/test/terminal/VirtualTerminalInteractor.java b/src/test/terminal/VirtualTerminalInteractor.java
index f605cd5..498842e 100644
--- a/src/test/terminal/VirtualTerminalInteractor.java
+++ b/src/test/terminal/VirtualTerminalInteractor.java
@@ -1,23 +1,22 @@
package terminal;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-import static terminal.LispTerminal.END_OF_SEGMENT;
-
-import java.io.IOException;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.input.KeyStroke;
import com.googlecode.lanterna.input.KeyType;
import com.googlecode.lanterna.terminal.virtual.DefaultVirtualTerminal;
import com.googlecode.lanterna.terminal.virtual.VirtualTerminal;
-
import stream.UncheckedIOException;
+import java.io.IOException;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import static terminal.LispTerminal.END_OF_SEGMENT;
+
public class VirtualTerminalInteractor {
private PipedOutputStream inputWriter;
diff --git a/src/test/testutil/SymbolAndFunctionCleaner.java b/src/test/testutil/SymbolAndFunctionCleaner.java
index e04e4cf..cd96210 100644
--- a/src/test/testutil/SymbolAndFunctionCleaner.java
+++ b/src/test/testutil/SymbolAndFunctionCleaner.java
@@ -1,12 +1,11 @@
package testutil;
-import static table.FunctionTable.resetFunctionTable;
-
import org.junit.After;
import org.junit.Before;
-
import table.ExecutionContext;
+import static table.FunctionTable.resetFunctionTable;
+
public abstract class SymbolAndFunctionCleaner {
protected ExecutionContext executionContext;
diff --git a/src/test/testutil/TestUtilities.java b/src/test/testutil/TestUtilities.java
index 8ba750a..c7a9edf 100644
--- a/src/test/testutil/TestUtilities.java
+++ b/src/test/testutil/TestUtilities.java
@@ -1,5 +1,16 @@
package testutil;
+import error.LispException;
+import parser.LispParser;
+import sexpression.Cons;
+import sexpression.SExpression;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Arrays;
+
import static error.ErrorManager.Severity.ERROR;
import static function.builtin.EVAL.eval;
import static org.hamcrest.Matchers.is;
@@ -8,17 +19,6 @@ import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertThat;
import static sexpression.Nil.NIL;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-
-import error.LispException;
-import parser.LispParser;
-import sexpression.Cons;
-import sexpression.SExpression;
-
public final class TestUtilities {
public static InputStream createInputStreamFromString(String string) {
diff --git a/src/test/testutil/TypeAssertions.java b/src/test/testutil/TypeAssertions.java
index 3dc5bf9..09975ab 100644
--- a/src/test/testutil/TypeAssertions.java
+++ b/src/test/testutil/TypeAssertions.java
@@ -1,12 +1,12 @@
package testutil;
+import sexpression.SExpression;
+
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static sexpression.Nil.NIL;
import static sexpression.Symbol.T;
-import sexpression.SExpression;
-
public final class TypeAssertions {
public static void assertList(SExpression sExpression) {
diff --git a/src/test/token/TokenFactoryTest.java b/src/test/token/TokenFactoryTest.java
index b7bd7fe..e7a742f 100644
--- a/src/test/token/TokenFactoryTest.java
+++ b/src/test/token/TokenFactoryTest.java
@@ -1,5 +1,11 @@
package token;
+import file.FilePosition;
+import org.junit.Before;
+import org.junit.Test;
+import token.TokenFactory.BadCharacterException;
+import token.TokenFactory.EmptyTokenTextException;
+
import static error.ErrorManager.Severity.CRITICAL;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.instanceOf;
@@ -7,13 +13,6 @@ import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.junit.Assert.assertThat;
-import org.junit.Before;
-import org.junit.Test;
-
-import file.FilePosition;
-import token.TokenFactory.BadCharacterException;
-import token.TokenFactory.EmptyTokenTextException;
-
public class TokenFactoryTest {
private TokenFactory tokenFactory;
diff --git a/src/test/util/CharactersTest.java b/src/test/util/CharactersTest.java
index fd5338a..a0c4907 100644
--- a/src/test/util/CharactersTest.java
+++ b/src/test/util/CharactersTest.java
@@ -1,12 +1,12 @@
package util;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
+import org.junit.Test;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
-import org.junit.Test;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
public class CharactersTest {
diff --git a/src/test/util/PathTest.java b/src/test/util/PathTest.java
index 5b16a5c..64ee966 100644
--- a/src/test/util/PathTest.java
+++ b/src/test/util/PathTest.java
@@ -1,12 +1,12 @@
package util;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
+import org.junit.Test;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
-import org.junit.Test;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
public class PathTest {