aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/zwobble/couscous/values/PrimitiveValues.java4
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java8
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java4
3 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java b/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java
index f6420f0..0c11224 100644
--- a/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java
+++ b/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java
@@ -2,6 +2,8 @@ package org.zwobble.couscous.values;
public class PrimitiveValues {
public static final PrimitiveValue UNIT = UnitValue.UNIT;
+ public static final PrimitiveValue TRUE = new BooleanValue(true);
+ public static final PrimitiveValue FALSE = new BooleanValue(false);
public static PrimitiveValue value(String value) {
return new StringValue(value);
@@ -12,6 +14,6 @@ public class PrimitiveValues {
}
public static PrimitiveValue value(boolean value) {
- return new BooleanValue(value);
+ return value ? TRUE : FALSE;
}
}
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
index c4a3538..4eb925a 100644
--- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
@@ -13,6 +13,14 @@ import lombok.val;
public abstract class BackendEvalTests {
@Test
+ public void canEvaluateLiterals() {
+ assertEquals(value("hello"), evalExpression(literal("hello")));
+ assertEquals(value(true), evalExpression(literal(true)));
+ assertEquals(value(false), evalExpression(literal(false)));
+ assertEquals(value(42), evalExpression(literal(42)));
+ }
+
+ @Test
public void whenConditionIsTrueThenValueOfConditionalTernaryIsTrueBranch() {
val result = evalExpression(new TernaryConditionalNode(literal(true), literal("T"), literal("F")));
assertEquals(value("T"), result);
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java
index fb0e880..549fb51 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonMethodRunner.java
@@ -67,6 +67,10 @@ public class PythonMethodRunner implements MethodRunner {
return PrimitiveValues.UNIT;
} else if (output.startsWith("'")) {
return value(output.substring(1, output.length() - 1));
+ } else if (output.equals("True")) {
+ return value(true);
+ } else if (output.equals("False")) {
+ return value(false);
} else {
return value(parseInt(output));
}