diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-05 18:10:32 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-05 18:10:32 +0100 |
| commit | 27ffd2d94482ccdcd10acbb1111ce0a0ddae6c01 (patch) | |
| tree | 83104ba83bba3ccfd2dbf0bb1f0d9afc1ea076dd /src/test | |
| parent | 9e850b3a09ceebf6140e77982b45abab0c57ad6c (diff) | |
Add types to expression nodes
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java | 8 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java | 25 |
2 files changed, 28 insertions, 5 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java index 68e9761..c6b7ba2 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java @@ -3,8 +3,10 @@ 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.IntegerValue; import org.zwobble.couscous.values.PrimitiveValue; +import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; @@ -35,7 +37,11 @@ public abstract class BackendEvalTests { @Test public void canCallMethodWithNoArgumentsOnBuiltin() { - val result = evalExpression(methodCall(literal("hello"), "length")); + val result = evalExpression(methodCall( + literal("hello"), + "length", + asList(), + IntegerValue.REF)); assertEquals(value(5), result); } 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 766cf3c..fab65ef 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java @@ -24,6 +24,7 @@ import org.zwobble.couscous.values.StringValue; import com.google.common.collect.ImmutableMap; +import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.AssignmentNode.assign; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; @@ -59,7 +60,11 @@ public class EvaluatorTests extends BackendEvalTests { @Test public void canCallMethodWithArgumentsOnBuiltin() { val result = eval(emptyEnvironment(), - methodCall(literal("hello"), "substring", literal(1), literal(4))); + methodCall( + literal("hello"), + "substring", + asList(literal(1), literal(4)), + StringValue.REF)); assertEquals(new StringInterpreterValue("ell"), result); } @@ -67,7 +72,11 @@ public class EvaluatorTests extends BackendEvalTests { public void errorIfMethodDoesNotExist() { val exception = assertThrows(NoSuchMethod.class, () -> eval(emptyEnvironment(), - methodCall(literal("hello"), "size"))); + methodCall( + literal("hello"), + "size", + asList(), + IntegerValue.REF))); assertEquals(new NoSuchMethod("size"), exception); } @@ -75,7 +84,11 @@ public class EvaluatorTests extends BackendEvalTests { public void errorIfWrongNumberOfArgumentsArePassed() { val exception = assertThrows(WrongNumberOfArguments.class, () -> eval(emptyEnvironment(), - methodCall(literal("hello"), "substring", literal(1)))); + methodCall( + literal("hello"), + "substring", + asList(literal(1)), + StringValue.REF))); assertEquals(new WrongNumberOfArguments(2, 1), exception); } @@ -83,7 +96,11 @@ public class EvaluatorTests extends BackendEvalTests { public void errorIfArgumentIsWrongType() { val exception = assertThrows(UnexpectedValueType.class, () -> eval(emptyEnvironment(), - methodCall(literal("hello"), "substring", literal(0), literal("")))); + methodCall( + literal("hello"), + "substring", + asList(literal(0), literal("")), + StringValue.REF))); assertEquals(new UnexpectedValueType(IntegerValue.REF, StringValue.REF), exception); } |
