diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-31 13:42:14 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-31 13:42:14 +0000 |
| commit | eff6ead0d0089fae070c6dbb7c937353632322c1 (patch) | |
| tree | f90ad6ebd4a6c25b234c8a116911c2f36dc0a551 /src/test/java/org/zwobble | |
| parent | c69e902235ea6a197c197c786c88f2bd15f10de3 (diff) | |
Support int inequality
Diffstat (limited to 'src/test/java/org/zwobble')
4 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java index 89a06af..63ac1a9 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java @@ -22,6 +22,7 @@ import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; +import static org.zwobble.couscous.ast.MethodCallNode.not; import static org.zwobble.couscous.ast.ReturnNode.returns; import static org.zwobble.couscous.ast.StaticMethodCallNode.staticMethodCall; import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional; @@ -40,6 +41,16 @@ public abstract class BackendEvalTests { } @Test + public void canEvaluateOperationsOnBooleans() { + assertEquals( + value(true), + evalExpression(not(literal(false)))); + assertEquals( + value(false), + evalExpression(not(literal(true)))); + } + + @Test public void canEvaluateOperationsOnIntegers() { assertEquals( value(3), diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java index 2568e55..29a5e2a 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -26,6 +26,8 @@ public class JavaToPythonTests { public void canUseOperatorsOnPrimitives() { assertEquals(value(3), evalExpression("1 + 2")); assertEquals(value(false), evalExpression("1 > 2")); + assertEquals(value(true), evalExpression("1 == 1")); + assertEquals(value(false), evalExpression("1 != 1")); } private PrimitiveValue evalExpression(String expressionSource) { diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java index 24b2e9a..f8956e5 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonSerializerTests.java @@ -18,6 +18,7 @@ import static org.zwobble.couscous.backends.python.ast.PythonImportAliasNode.pyt import static org.zwobble.couscous.backends.python.ast.PythonImportNode.pythonImport; import static org.zwobble.couscous.backends.python.ast.PythonIntegerLiteralNode.pythonIntegerLiteral; import static org.zwobble.couscous.backends.python.ast.PythonModuleNode.pythonModule; +import static org.zwobble.couscous.backends.python.ast.PythonNotNode.pythonNot; import static org.zwobble.couscous.backends.python.ast.PythonPassNode.PASS; import static org.zwobble.couscous.backends.python.ast.PythonReturnNode.pythonReturn; import static org.zwobble.couscous.backends.python.ast.PythonStringLiteralNode.pythonStringLiteral; @@ -69,6 +70,11 @@ public class PythonSerializerTests { } @Test + public void notOperationIsSerializedUsingParenthesisedSubExpression() { + assertEquals("not (x)", serialize(pythonNot(pythonVariableReference("x")))); + } + + @Test public void returnKeywordIsUsedForReturns() { String output = serialize(pythonReturn(pythonIntegerLiteral(42))); assertEquals("return 42\n", output); 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 9c75e90..c4e3791 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 @@ -31,6 +31,7 @@ import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FieldDeclarationNode.field; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; +import static org.zwobble.couscous.ast.MethodCallNode.not; import static org.zwobble.couscous.ast.StaticMethodCallNode.staticMethodCall; import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional; import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference; @@ -165,6 +166,9 @@ public class JavaReaderTests { methodCall(literal(1), "equals", asList(literal(2)), BooleanValue.REF), readExpression("1 == 2")); assertEquals( + not(methodCall(literal(1), "equals", asList(literal(2)), BooleanValue.REF)), + readExpression("1 != 2")); + assertEquals( methodCall(literal(1), "greaterThan", asList(literal(2)), BooleanValue.REF), readExpression("1 > 2")); assertEquals( |
