diff options
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)); } |
