aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-31 10:40:17 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-31 10:40:17 +0000
commit292834a886ff6a2263ad9878500edec35efb5d60 (patch)
treeaf419dca5aafac35b4d2e660c4c338f074fa497e /src/test/java/org
parent12c91d0c9fc8b9e400aae47058ae41d92602f6eb (diff)
Read some infix operators for int
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java8
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java32
2 files changed, 40 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 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
@@ -144,6 +144,38 @@ public class JavaReaderTests {
}
@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(
ternaryConditional(literal(true), literal(1), literal(2)),