diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-11-14 17:05:04 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-11-14 17:05:04 +0000 |
| commit | 196321f77a224909bcda8bed834a9fee4265a8df (patch) | |
| tree | a86fb18b7a4d0a2d66d099f2db5cf1207880b09b /src/test/java | |
| parent | 5338a361c6fd8c42e8bd47a637c21c128b122418 (diff) | |
Support assignments with operations
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java | 1 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 26 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java index fa6322f..f17f42b 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -60,7 +60,6 @@ public class JavaToPythonTests { } @Test - @Ignore("WIP") public void whileFactorial() throws Exception { assertEquals( value(720), 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 3f06f49..6f116cc 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 @@ -354,6 +354,32 @@ public class JavaReaderTests { } @Test + public void canReadCompoundAssignmentOperations() { + canReadCompoundAssignmentOperation("+=", Operator.ADD); + canReadCompoundAssignmentOperation("-=", Operator.SUBTRACT); + canReadCompoundAssignmentOperation("*=", Operator.MULTIPLY); + canReadCompoundAssignmentOperation("/=", Operator.DIVIDE); + canReadCompoundAssignmentOperation("%=", Operator.MOD); + } + + private void canReadCompoundAssignmentOperation(String symbol, Operator operator) { + ClassNode classNode = readClass( + "public void go(int value) {" + + " value " + symbol + " 2;" + + "}"); + + MethodNode method = classNode.getMethods().get(0); + FormalArgumentNode argument = method.getArguments().get(0); + ExpressionStatementNode statement = (ExpressionStatementNode) + classNode.getMethods().get(0).getBody().get(0); + assertEquals( + assign( + reference(argument), + integerOperation(operator.getMethodName(), reference(argument), literal(2))), + statement.getExpression()); + } + + @Test public void canReadPrefixDecrement() { ClassNode classNode = readClass( "public void go(int value) {" + |
