aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-05 17:21:55 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-05 17:21:55 +0100
commit1448733a03e965d5cb9261a3519370ff5b34122d (patch)
treeb79a987f1f1591e431393ba4eee45a37310820a1 /src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
parent1c2195e727aaed3afe604eb602b105d7fa1f917d (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.java28
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);
+}