aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 11:36:25 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 11:36:25 +0000
commit4e4f98062c07afdeef14d4031ca69668649e5873 (patch)
tree6415aea98dc33ab50c490fbb3f812412f6dad8f0 /src/test/java
parentc588167505864bece6cbb2dc68814f7d967d9a6a (diff)
Introduce InterfaceNode
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java2
-rw-r--r--src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java3
-rw-r--r--src/test/java/org/zwobble/couscous/tests/MethodRunner.java4
-rw-r--r--src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java1
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java3
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java4
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java4
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java22
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java3
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java13
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java2
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java2
13 files changed, 34 insertions, 36 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
index 9914093..2544c4a 100644
--- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
@@ -249,6 +249,6 @@ public abstract class BackendEvalTests {
}
protected abstract PrimitiveValue evalExpression(
- List<ClassNode> classes,
+ List<TypeNode> classes,
ExpressionNode expression);
}
diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java
index 5a6ada1..9fa9625 100644
--- a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java
@@ -3,6 +3,7 @@ package org.zwobble.couscous.tests;
import com.google.common.collect.ImmutableList;
import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.TypeName;
+import org.zwobble.couscous.ast.TypeNode;
import org.zwobble.couscous.frontends.java.JavaFrontend;
import org.zwobble.couscous.interpreter.Interpreter;
import org.zwobble.couscous.interpreter.JavaProject;
@@ -28,7 +29,7 @@ public class JavaToInterpreterTests extends CompilerTests {
TypeName returnType
) throws IOException, InterruptedException {
JavaFrontend frontend = new JavaFrontend();
- List<ClassNode> classNodes = frontend.readSourceDirectory(list(directory), directory);
+ List<TypeNode> classNodes = frontend.readSourceDirectory(list(directory), directory);
Project project = JavaProject.of(classNodes);
Interpreter interpreter = new Interpreter(project);
diff --git a/src/test/java/org/zwobble/couscous/tests/MethodRunner.java b/src/test/java/org/zwobble/couscous/tests/MethodRunner.java
index 54ae4b5..8fde77f 100644
--- a/src/test/java/org/zwobble/couscous/tests/MethodRunner.java
+++ b/src/test/java/org/zwobble/couscous/tests/MethodRunner.java
@@ -11,12 +11,12 @@ import static org.zwobble.couscous.util.ExtraLists.list;
public interface MethodRunner {
PrimitiveValue runMethod(
- List<ClassNode> classNodes,
+ List<TypeNode> classNodes,
TypeName className,
String methodName,
List<PrimitiveValue> arguments, TypeName returnType);
- default PrimitiveValue evalExpression(List<ClassNode> classes, ExpressionNode expression) {
+ default PrimitiveValue evalExpression(List<TypeNode> classes, ExpressionNode expression) {
ClassNode programNode = ClassNode.builder("Program")
.method(MethodNode.staticMethod("run")
.returns(expression.getType())
diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
index ce8ab87..e30f1ef 100644
--- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
@@ -51,6 +51,7 @@ public class ValueObjectTests {
{FormalArgumentNode.class},
{IfStatementNode.class},
{InstanceReceiver.class},
+ {InterfaceNode.class},
{LiteralNode.class},
{LocalVariableDeclarationNode.class},
{MethodCallNode.class},
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java
index ddbee66..995a9d2 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java
@@ -2,6 +2,7 @@ package org.zwobble.couscous.tests.backends.csharp;
import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.ExpressionNode;
+import org.zwobble.couscous.ast.TypeNode;
import org.zwobble.couscous.tests.BackendEvalTests;
import org.zwobble.couscous.values.PrimitiveValue;
@@ -9,7 +10,7 @@ import java.util.List;
public class CsharpCompilerEvalTests extends BackendEvalTests {
@Override
- protected PrimitiveValue evalExpression(List<ClassNode> classes, ExpressionNode expression) {
+ protected PrimitiveValue evalExpression(List<TypeNode> classes, ExpressionNode expression) {
return new CsharpMethodRunner().evalExpression(classes, expression);
}
}
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java
index 88cce22..4e05266 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java
@@ -4,10 +4,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterators;
import org.hamcrest.Matchers;
import org.zwobble.couscous.Backend;
-import org.zwobble.couscous.ast.ClassNode;
-import org.zwobble.couscous.ast.LiteralNode;
-import org.zwobble.couscous.ast.MethodSignature;
-import org.zwobble.couscous.ast.TypeName;
+import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.backends.Names;
import org.zwobble.couscous.backends.csharp.CsharpBackend;
import org.zwobble.couscous.backends.csharp.CsharpSerializer;
@@ -36,7 +33,7 @@ public class CsharpMethodRunner implements MethodRunner {
private static final String NAMESPACE = "Couscous";
@Override
- public PrimitiveValue runMethod(List<ClassNode> classNodes, TypeName className, String methodName, List<PrimitiveValue> arguments, TypeName returnType) {
+ public PrimitiveValue runMethod(List<TypeNode> classNodes, TypeName className, String methodName, List<PrimitiveValue> arguments, TypeName returnType) {
try {
Path directoryPath = Files.createTempDirectory(null);
Backend compiler = new CsharpBackend(directoryPath, NAMESPACE);
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java
index e4ff1cb..d87bbb7 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.tests.backends.python;
-import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.ExpressionNode;
+import org.zwobble.couscous.ast.TypeNode;
import org.zwobble.couscous.tests.BackendEvalTests;
import org.zwobble.couscous.values.PrimitiveValue;
@@ -9,7 +9,7 @@ import java.util.List;
public class PythonCompilerEvalTests extends BackendEvalTests {
@Override
- protected PrimitiveValue evalExpression(List<ClassNode> classes, ExpressionNode expression) {
+ protected PrimitiveValue evalExpression(List<TypeNode> classes, ExpressionNode expression) {
return new PythonMethodRunner().evalExpression(classes, expression);
}
} \ No newline at end of file
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java
index a4a57d1..2b0d2ce 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java
@@ -2,9 +2,9 @@ package org.zwobble.couscous.tests.backends.python;
import com.google.common.base.Joiner;
import org.hamcrest.Matchers;
-import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.MethodSignature;
import org.zwobble.couscous.ast.TypeName;
+import org.zwobble.couscous.ast.TypeNode;
import org.zwobble.couscous.backends.Names;
import org.zwobble.couscous.backends.python.PythonBackend;
import org.zwobble.couscous.backends.python.PythonCodeGenerator;
@@ -28,7 +28,7 @@ import static org.zwobble.couscous.values.PrimitiveValues.value;
public class PythonMethodRunner implements MethodRunner {
@Override
- public PrimitiveValue runMethod(List<ClassNode> classNodes, TypeName className, String methodName, List<PrimitiveValue> arguments, TypeName returnType) {
+ public PrimitiveValue runMethod(List<TypeNode> classNodes, TypeName className, String methodName, List<PrimitiveValue> arguments, TypeName returnType) {
try {
Path directoryPath = Files.createTempDirectory(null);
PythonBackend compiler = new PythonBackend(directoryPath, "couscous");
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java
index e11b2a1..952bf9d 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java
@@ -4,55 +4,55 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.zwobble.couscous.tests.frontends.java.JavaReading.generateMethodSource;
-import static org.zwobble.couscous.tests.frontends.java.JavaReading.readClasses;
+import static org.zwobble.couscous.tests.frontends.java.JavaReading.readTypes;
public class InnerTypeReadingTests {
@Test
public void lambdaWithNoArgumentsAndExpressionBodyIsReadAsAnonymousClassCreation() {
assertEquals(
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Supplier<Integer> supplier = new java.util.function.Supplier<Integer>() {\n" +
" public Integer get() {\n" +
" return 42;\n" +
" }\n" +
"};")),
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Supplier<Integer> supplier = () -> 42;")));
}
@Test
public void lambdaWithNoArgumentsAndBlockBodyIsReadAsAnonymousClassCreation() {
assertEquals(
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Supplier<Integer> supplier = () -> 42;")),
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Supplier<Integer> supplier = () -> { return 42; };")));
}
@Test
public void lambdaWithInferredArgumentsAndBlockBodyIsReadAsAnonymousClassCreation() {
assertEquals(
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Function<Integer, Integer> function = x -> x;")),
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Function<Integer, Integer> function = (Integer x) -> x;")));
}
@Test
public void expressionMethodReferenceWithStaticReceiverIsReadAsLambda() {
assertEquals(
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Function<String, Integer> function = arg0 -> Integer.parseInt(arg0);")),
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"java.util.function.Function<String, Integer> function = Integer::parseInt;")));
}
@Test
public void expressionMethodReferenceWithInstanceReceiverIsReadAsLambda() {
assertEquals(
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"Integer x = 0; java.util.function.Supplier<String> function = () -> x.toString();")),
- readClasses(generateMethodSource("void",
+ readTypes(generateMethodSource("void",
"Integer x = 0; java.util.function.Supplier<String> function = x::toString;")));
}
}
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
index 442e5fa..dc5965a 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
@@ -18,7 +18,8 @@ import static org.zwobble.couscous.ast.IfStatementNode.ifStatement;
import static org.zwobble.couscous.ast.LiteralNode.literal;
import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
-import static org.zwobble.couscous.ast.Operations.*;
+import static org.zwobble.couscous.ast.Operations.boxInt;
+import static org.zwobble.couscous.ast.Operations.integerAdd;
import static org.zwobble.couscous.ast.ReturnNode.returns;
import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference;
import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion;
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java
index 5c37dbf..408694c 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java
@@ -1,9 +1,6 @@
package org.zwobble.couscous.tests.frontends.java;
-import org.zwobble.couscous.ast.ClassNode;
-import org.zwobble.couscous.ast.ExpressionNode;
-import org.zwobble.couscous.ast.ReturnNode;
-import org.zwobble.couscous.ast.StatementNode;
+import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.frontends.java.JavaReader;
import java.nio.file.Files;
@@ -51,17 +48,17 @@ public class JavaReading {
}
static ClassNode readClass(String classBody) {
- List<ClassNode> classes = readClasses(classBody);
+ List<TypeNode> classes = readTypes(classBody);
assertThat(classes, hasSize(1));
- return classes.get(0);
+ return (ClassNode)classes.get(0);
}
- static List<ClassNode> readClasses(String classBody) {
+ static List<TypeNode> readTypes(String classBody) {
String javaClass = generateClassSource(classBody);
return readSource("com/example/Example.java", javaClass);
}
- private static List<ClassNode> readSource(String path, String contents) {
+ static List<TypeNode> readSource(String path, String contents) {
try {
Path directoryPath = Files.createTempDirectory(null);
try {
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
index b2b572d..fde8646 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
@@ -236,7 +236,7 @@ public class EvaluatorTests extends BackendEvalTests {
@Override
protected PrimitiveValue evalExpression(
- List<ClassNode> classes,
+ List<TypeNode> classes,
ExpressionNode expression) {
Environment environment = new Environment(
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java
index 499d18c..c8dd2fb 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java
@@ -105,7 +105,7 @@ public class InterpreterMethodTests extends BackendMethodTests {
return new MethodRunner() {
@Override
public PrimitiveValue runMethod(
- List<ClassNode> classNodes,
+ List<TypeNode> classNodes,
TypeName className,
String methodName,
List<PrimitiveValue> arguments,