From 1448733a03e965d5cb9261a3519370ff5b34122d Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 5 Oct 2015 17:21:55 +0100 Subject: Support ternary conditionals in Python backend --- .../zwobble/couscous/tests/BackendEvalTests.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java (limited to 'src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java') diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java new file mode 100644 index 0000000..c4a3538 --- /dev/null +++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java @@ -0,0 +1,28 @@ +package org.zwobble.couscous.tests; + +import org.junit.Test; +import org.zwobble.couscous.ast.ExpressionNode; +import org.zwobble.couscous.ast.TernaryConditionalNode; +import org.zwobble.couscous.values.PrimitiveValue; + +import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.LiteralNode.literal; +import static org.zwobble.couscous.values.PrimitiveValues.value; + +import lombok.val; + +public abstract class BackendEvalTests { + @Test + public void whenConditionIsTrueThenValueOfConditionalTernaryIsTrueBranch() { + val result = evalExpression(new TernaryConditionalNode(literal(true), literal("T"), literal("F"))); + assertEquals(value("T"), result); + } + + @Test + public void whenConditionIsFalseThenValueOfConditionalTernaryIsFalseBranch() { + val result = evalExpression(new TernaryConditionalNode(literal(false), literal("T"), literal("F"))); + assertEquals(value("F"), result); + } + + protected abstract PrimitiveValue evalExpression(ExpressionNode expression); +} -- cgit v1.2.3