From a34b03537f1ee6e7f3d4ee88bf5dd4f93d1bf7e4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 27 Jan 2018 18:42:03 +0000 Subject: Read integer negation --- .../frontends/java/ExpressionReadingTests.java | 53 ++++++++++++++-------- 1 file changed, 35 insertions(+), 18 deletions(-) (limited to 'src/test/java/org/zwobble') diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java index 4aa015e..a337943 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java @@ -521,6 +521,41 @@ public class ExpressionReadingTests { statement.getExpression()); } + @Test + public void canReadPrefixDecrement() { + ClassNode classNode = readClass( + "public void go(int value) {" + + " --value;" + + "}"); + + MethodNode method = classNode.getMethods().get(0); + FormalArgumentNode argument = method.getArguments().get(0); + ExpressionStatementNode statement = (ExpressionStatementNode) + classNode.getMethods().get(0).getBody().get().get(0); + assertEquals( + assign( + reference(argument), + integerSubtract(reference(argument), literal(1))), + statement.getExpression()); + } + + @Test + public void canReadIntegerNegation() { + ClassNode classNode = readClass( + "public int go(int value) {" + + " return -value;" + + "}"); + + MethodNode method = classNode.getMethods().get(0); + FormalArgumentNode argument = method.getArguments().get(0); + ReturnNode statement = (ReturnNode) + classNode.getMethods().get(0).getBody().get().get(0); + assertEquals( + integerNegation(reference(argument)), + statement.getValue() + ); + } + @Test public void canReadCompoundAssignmentOperations() { canReadCompoundAssignmentOperation("+=", Operator.ADD); @@ -584,22 +619,4 @@ public class ExpressionReadingTests { boxInt(integerAdd(unboxInt(reference(left)), reference(right)))), statement.getExpression()); } - - @Test - public void canReadPrefixDecrement() { - ClassNode classNode = readClass( - "public void go(int value) {" + - " --value;" + - "}"); - - MethodNode method = classNode.getMethods().get(0); - FormalArgumentNode argument = method.getArguments().get(0); - ExpressionStatementNode statement = (ExpressionStatementNode) - classNode.getMethods().get(0).getBody().get().get(0); - assertEquals( - assign( - reference(argument), - integerSubtract(reference(argument), literal(1))), - statement.getExpression()); - } } -- cgit v1.2.3