From 4bf64824e44e5101cd54bbe99d22bd8cc38adf24 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 1 Jan 2016 11:15:51 +0000 Subject: Add (ignored) test suite for interpreting Java code --- .../couscous/tests/JavaToInterpreterTests.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java (limited to 'src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java') diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java new file mode 100644 index 0000000..203a088 --- /dev/null +++ b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java @@ -0,0 +1,40 @@ +package org.zwobble.couscous.tests; + +import com.google.common.collect.ImmutableList; +import org.junit.Ignore; +import org.zwobble.couscous.ast.ClassNode; +import org.zwobble.couscous.ast.TypeName; +import org.zwobble.couscous.frontends.java.JavaFrontend; +import org.zwobble.couscous.interpreter.Interpreter; +import org.zwobble.couscous.interpreter.JavaProject; +import org.zwobble.couscous.interpreter.Project; +import org.zwobble.couscous.interpreter.values.InterpreterValue; +import org.zwobble.couscous.interpreter.values.InterpreterValues; +import org.zwobble.couscous.values.PrimitiveValue; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.List; + +import static com.google.common.collect.Iterables.transform; + +@Ignore +public class JavaToInterpreterTests extends CompilerTests { + @Override + protected PrimitiveValue execProgram( + Path directory, + TypeName type, + String methodName, + List arguments + ) throws IOException, InterruptedException { + JavaFrontend frontend = new JavaFrontend(); + List classNodes = frontend.readSourceDirectory(directory, directory); + + Project project = JavaProject.of(classNodes); + Interpreter interpreter = new Interpreter(project); + List argumentValues = ImmutableList.copyOf(transform(arguments, InterpreterValues::value)); + + return interpreter.run(type, methodName, argumentValues) + .toPrimitiveValue().get(); + } +} -- cgit v1.2.3