diff options
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java | 40 |
1 files changed, 40 insertions, 0 deletions
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<PrimitiveValue> arguments + ) throws IOException, InterruptedException { + JavaFrontend frontend = new JavaFrontend(); + List<ClassNode> classNodes = frontend.readSourceDirectory(directory, directory); + + Project project = JavaProject.of(classNodes); + Interpreter interpreter = new Interpreter(project); + List<InterpreterValue> argumentValues = ImmutableList.copyOf(transform(arguments, InterpreterValues::value)); + + return interpreter.run(type, methodName, argumentValues) + .toPrimitiveValue().get(); + } +} |
