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/interpreter | |
| parent | 1c2195e727aaed3afe604eb602b105d7fa1f917d (diff) | |
Support ternary conditionals in Python backend
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/interpreter')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java index 40cdf8f..0a2a947 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java @@ -4,6 +4,7 @@ import org.junit.Test; import org.zwobble.couscous.JavaProject; import org.zwobble.couscous.MapBackedProject; import org.zwobble.couscous.ast.ClassNode; +import org.zwobble.couscous.ast.ExpressionNode; import org.zwobble.couscous.ast.MethodNode; import org.zwobble.couscous.ast.ReturnNode; import org.zwobble.couscous.ast.TernaryConditionalNode; @@ -16,7 +17,9 @@ import org.zwobble.couscous.interpreter.WrongNumberOfArguments; import org.zwobble.couscous.interpreter.values.ConcreteType; import org.zwobble.couscous.interpreter.values.IntegerInterpreterValue; import org.zwobble.couscous.interpreter.values.StringInterpreterValue; +import org.zwobble.couscous.tests.BackendEvalTests; import org.zwobble.couscous.values.IntegerValue; +import org.zwobble.couscous.values.PrimitiveValue; import org.zwobble.couscous.values.StringValue; import com.google.common.collect.ImmutableMap; @@ -34,7 +37,7 @@ import static org.zwobble.couscous.tests.util.ExtraAsserts.assertThrows; import lombok.val; -public class EvaluatorTests { +public class EvaluatorTests extends BackendEvalTests { @Test public void valueOfAssignmentExpressionIsNewValue() { val arg = formalArg(var(42, "x", StringValue.REF)); @@ -46,20 +49,6 @@ public class EvaluatorTests { } @Test - public void whenConditionIsTrueThenValueOfConditionalTernaryIsTrueBranch() { - val result = eval(emptyEnvironment(), - new TernaryConditionalNode(literal(true), literal("T"), literal("F"))); - assertEquals(new StringInterpreterValue("T"), result); - } - - @Test - public void whenConditionIsFalseThenValueOfConditionalTernaryIsFalseBranch() { - val result = eval(emptyEnvironment(), - new TernaryConditionalNode(literal(false), literal("T"), literal("F"))); - assertEquals(new StringInterpreterValue("F"), result); - } - - @Test public void errorIfConditionIsNotBoolean() { val exception = assertThrows(ConditionMustBeBoolean.class, () -> eval(emptyEnvironment(), @@ -134,4 +123,9 @@ public class EvaluatorTests { JavaProject.builder().build(), ImmutableMap.of()); } + + @Override + protected PrimitiveValue evalExpression(ExpressionNode expression) { + return eval(emptyEnvironment(), expression).toPrimitiveValue().get(); + } } |
