package org.zwobble.couscous.tests; import org.junit.Ignore; import org.junit.Test; import org.zwobble.couscous.CouscousCompiler; import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.backends.python.PythonBackend; import org.zwobble.couscous.frontends.java.JavaFrontend; import org.zwobble.couscous.tests.backends.python.PythonMethodRunner; import org.zwobble.couscous.values.PrimitiveValue; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import static org.zwobble.couscous.tests.util.ExtraFiles.deleteRecursively; import static org.zwobble.couscous.util.ExtraLists.list; public class JavaToPythonTests extends CompilerTests { @Test @Ignore("WIP") public void canImplementUserDefinedInterface() { } protected PrimitiveValue execProgram( Path directory, TypeName type, String methodName, List arguments, TypeName returnType) throws IOException, InterruptedException { Path directoryPath = Files.createTempDirectory(null); try { CouscousCompiler compiler = new CouscousCompiler( new JavaFrontend(), new PythonBackend(directoryPath, "couscous")); compiler.compileDirectory(list(directory), directory); return PythonMethodRunner.runFunction(directoryPath, type, methodName, arguments, returnType); } finally { deleteRecursively(directoryPath.toFile()); } } }