From 292834a886ff6a2263ad9878500edec35efb5d60 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 31 Oct 2015 10:40:17 +0000 Subject: Read some infix operators for int --- .../zwobble/couscous/tests/JavaToPythonTests.java | 8 ++++++ .../tests/frontends/java/JavaReaderTests.java | 32 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java index 74b0ae4..b1101ec 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -3,6 +3,7 @@ package org.zwobble.couscous.tests; import java.nio.file.Files; import java.util.List; +import org.junit.Ignore; import org.junit.Test; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.TypeName; @@ -21,6 +22,13 @@ public class JavaToPythonTests { assertEquals(value(42), evalExpression("42")); } + @Test + @Ignore("WIP") + public void canUseOperatorsOnPrimitives() { + assertEquals(value(3), evalExpression("1 + 2")); + assertEquals(value(false), evalExpression("1 > 2")); + } + private PrimitiveValue evalExpression(String expressionSource) { try { final java.lang.String javaClass = "package com.example;" + "public class Example {" + " public static Object main() {" + " return " + expressionSource + ";" + " }" + "}"; 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 d01830f..ecb4d2a 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 @@ -143,6 +143,38 @@ public class JavaReaderTests { readExpression("new String(\"_\", 42)")); } + @Test + public void canUseOperatorsOnIntegers() { + assertEquals( + methodCall(literal(1), "add", asList(literal(2)), IntegerValue.REF), + readExpression("1 + 2")); + assertEquals( + methodCall(literal(1), "subtract", asList(literal(2)), IntegerValue.REF), + readExpression("1 - 2")); + assertEquals( + methodCall(literal(1), "multiply", asList(literal(2)), IntegerValue.REF), + readExpression("1 * 2")); + assertEquals( + methodCall(literal(1), "divide", asList(literal(2)), IntegerValue.REF), + readExpression("1 / 2")); + assertEquals( + methodCall(literal(1), "mod", asList(literal(2)), IntegerValue.REF), + readExpression("1 % 2")); + + assertEquals( + methodCall(literal(1), "greaterThan", asList(literal(2)), BooleanValue.REF), + readExpression("1 > 2")); + assertEquals( + methodCall(literal(1), "greaterThanOrEqual", asList(literal(2)), BooleanValue.REF), + readExpression("1 >= 2")); + assertEquals( + methodCall(literal(1), "lessThan", asList(literal(2)), BooleanValue.REF), + readExpression("1 < 2")); + assertEquals( + methodCall(literal(1), "lessThanOrEqual", asList(literal(2)), BooleanValue.REF), + readExpression("1 <= 2")); + } + @Test public void canReadTernaryConditionals() { assertEquals( -- cgit v1.2.3