diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-11-21 13:40:52 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-11-21 13:40:52 +0000 |
| commit | fa0e5ad5e621fb6a65ecc70a357bb20c14b0e796 (patch) | |
| tree | ec94c60ec657174c3598c6421772fb73d998bbc2 /src/test/java/org/zwobble/couscous/tests | |
| parent | 9f294b76b8b7e5c7eb9bc0a3dff82ba083a4d783 (diff) | |
Support simple for-loops
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java | 11 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 16 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java index f17f42b..8c6c3b1 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -69,6 +69,17 @@ public class JavaToPythonTests { "factorial", asList(value(6)))); } + + @Test + public void forFactorial() throws Exception { + assertEquals( + value(720), + execTestProgram( + "for-factorial", + TypeName.of("com.example.ForFactorial"), + "factorial", + asList(value(6)))); + } private PrimitiveValue execTestProgram( String directoryName, 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 ad8bcbb..9d21ed2 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 @@ -24,6 +24,7 @@ import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FieldDeclarationNode.field; 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.*; import static org.zwobble.couscous.ast.ReturnNode.returns; import static org.zwobble.couscous.ast.StaticMethodCallNode.boxBoolean; @@ -504,6 +505,21 @@ public class JavaReaderTests { asList(returns(literal(1)))), readStatement("int", "while (true) { return 1; }")); } + + @Test + public void canReadForLoops() { + List<StatementNode> statements = readStatements("int", "for (int x = 0; true; ++x) { return 1; }"); + LocalVariableDeclarationNode declaration = (LocalVariableDeclarationNode) statements.get(0); + assertEquals( + asList( + localVariableDeclaration(declaration.getDeclaration(), literal(0)), + whileLoop( + literal(true), + asList( + returns(literal(1)), + expressionStatement(assign(declaration, integerAdd(reference(declaration), literal(1))))))), + statements); + } @Test public void canDeclareConstructor() { |
