From 3c42c0a7c1196cc290dbcdc55dcb84379ad523e4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 3 Apr 2016 13:38:53 +0100 Subject: C# backend: Implement for-each loops --- src/test/java/org/zwobble/couscous/tests/CompilerTests.java | 12 ++++++++++++ .../org/zwobble/couscous/tests/JavaToInterpreterTests.java | 7 +++++++ .../java/org/zwobble/couscous/tests/JavaToPythonTests.java | 7 +++++++ .../zwobble/couscous/tests/frontends/java/NodeMatchers.java | 4 ++++ 4 files changed, 30 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java index 0099d26..7a60821 100644 --- a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java @@ -84,6 +84,18 @@ public abstract class CompilerTests { Types.INT)); } + @Test + public void forEach() throws Exception { + assertEquals( + value("abc"), + execTestProgram( + "for-each", + ScalarType.of("com.example.ForEach"), + "value", + list(), + Types.STRING)); + } + @Test public void staticNestedClasses() throws Exception { assertEquals( diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java index 2c8a1e6..209aaa8 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java @@ -1,6 +1,8 @@ package org.zwobble.couscous.tests; import com.google.common.collect.ImmutableList; +import org.junit.Ignore; +import org.junit.Test; import org.zwobble.couscous.ast.TypeNode; import org.zwobble.couscous.frontends.java.JavaFrontend; import org.zwobble.couscous.interpreter.Interpreter; @@ -20,6 +22,11 @@ import static com.google.common.collect.Iterables.transform; import static org.zwobble.couscous.util.ExtraLists.list; public class JavaToInterpreterTests extends CompilerTests { + @Test + @Ignore("WIP") + public void forEach() throws Exception { + } + @Override protected PrimitiveValue execProgram( Path directory, diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java index f482d11..ba2e8b4 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -1,5 +1,7 @@ package org.zwobble.couscous.tests; +import org.junit.Ignore; +import org.junit.Test; import org.zwobble.couscous.CouscousCompiler; import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.backends.python.PythonBackend; @@ -16,6 +18,11 @@ 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 forEach() throws Exception { + } + protected PrimitiveValue execProgram( Path directory, ScalarType type, diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java index 739d664..a1b60e9 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java @@ -10,6 +10,10 @@ import static org.zwobble.couscous.tests.util.ExtraMatchers.hasFeature; import static org.zwobble.couscous.tests.util.ExtraMatchers.isInstance; public class NodeMatchers { + public static Matcher declarationHasValue(Matcher matcher) { + return hasFeature("initial value", node -> node.getInitialValue(), matcher); + } + @SafeVarargs public static Matcher isFieldAccess(Matcher... matchers) { return isInstance(FieldAccessNode.class, allOf(matchers)); -- cgit v1.2.3