diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-05 17:21:55 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-05 17:21:55 +0100 |
| commit | 1448733a03e965d5cb9261a3519370ff5b34122d (patch) | |
| tree | b79a987f1f1591e431393ba4eee45a37310820a1 /src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java | |
| parent | 1c2195e727aaed3afe604eb602b105d7fa1f917d (diff) | |
Support ternary conditionals in Python backend
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java | 28 |
1 files changed, 28 insertions, 0 deletions
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); +} |
