package testutil; import static function.builtin.EVAL.eval; import static org.junit.Assert.*; import java.io.*; import parser.LispParser; import sexpression.SExpression; public final class TestUtilities { public static InputStream createInputStreamFromString(String string) { return new ByteArrayInputStream(string.getBytes()); } public static InputStream createIOExceptionThrowingInputStream() { return new InputStream() { public int read() throws IOException { throw new IOException("test IOException"); } }; } public static SExpression evaluateString(String input) { return eval(parseString(input)); } public static SExpression parseString(String input) { InputStream stringInputStream = TestUtilities.createInputStreamFromString(input); return new LispParser(stringInputStream, "testFile").getNextSExpression(); } public static void assertSExpressionsMatch(SExpression one, SExpression two) { assertEquals(one.toString(), two.toString()); } public static void assertSExpressionsDoNotMatch(SExpression one, SExpression two) { assertNotEquals(one.toString(), two.toString()); } }