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 --- .../couscous/tests/interpreter/EvaluatorTests.java | 24 ++++++++-------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'src/test/java/org/zwobble/couscous/tests/interpreter') 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)); @@ -45,20 +48,6 @@ public class EvaluatorTests { assertEquals(new StringInterpreterValue("[updated value]"), result); } - @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, @@ -134,4 +123,9 @@ public class EvaluatorTests { JavaProject.builder().build(), ImmutableMap.of()); } + + @Override + protected PrimitiveValue evalExpression(ExpressionNode expression) { + return eval(emptyEnvironment(), expression).toPrimitiveValue().get(); + } } -- cgit v1.2.3