diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-09-29 20:32:35 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-09-29 20:32:35 +0100 |
| commit | 4e031ada69e27d9aa518ef00ebf532328ba23e79 (patch) | |
| tree | 193146bf3810dc0fea20fc53854bd5b306dfb1bd /src/test | |
| parent | fec7b703498ff1ed0b0d31ed602e0ba9459985f1 (diff) | |
Create separate evaluator tests
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java | 25 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java | 15 |
2 files changed, 27 insertions, 13 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 new file mode 100644 index 0000000..075d9b3 --- /dev/null +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java @@ -0,0 +1,25 @@ +package org.zwobble.couscous.tests.interpreter; + +import org.junit.Test; +import org.zwobble.couscous.ast.FormalArgumentNode; +import org.zwobble.couscous.interpreter.Environment; +import org.zwobble.couscous.values.StringValue; + +import com.google.common.collect.ImmutableMap; + +import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.Assignment.assign; +import static org.zwobble.couscous.ast.LiteralNode.literal; +import static org.zwobble.couscous.interpreter.Evaluator.eval; + +import lombok.val; + +public class EvaluatorTests { + @Test + public void valueOfAssignmentExpressionIsNewValue() { + val arg = new FormalArgumentNode(42, "x"); + val environment = new Environment(ImmutableMap.of(arg.getId(), new StringValue("[initial value]"))); + val result = eval(environment, assign(arg, literal("[updated value]"))); + assertEquals(new StringValue("[updated value]"), result); + } +} diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java index d3bc21c..54abd8a 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java @@ -31,7 +31,7 @@ public class InterpreterTests { @Test public void canReturnLiteralValue() { val method = staticMethod("hello") - .statement(new ReturnNode(LiteralNode.of("hello, world!"))); + .statement(new ReturnNode(LiteralNode.literal("hello, world!"))); val result = runMethod(method); assertEquals(new StringValue("hello, world!"), result); @@ -63,7 +63,7 @@ public class InterpreterTests { val arg = new FormalArgumentNode(42, "x"); val method = staticMethod("hello") .argument(arg) - .statement(new ExpressionStatementNode(new Assignment(reference(arg), LiteralNode.of("[updated value]")))) + .statement(new ExpressionStatementNode(new Assignment(reference(arg), LiteralNode.literal("[updated value]")))) .statement(new ReturnNode(reference(arg))); val result = runMethod(method, new StringValue("[initial value]")); @@ -71,17 +71,6 @@ public class InterpreterTests { } @Test - public void valueOfAssignmentExpressionIsNewValue() { - val arg = new FormalArgumentNode(42, "x"); - val method = staticMethod("hello") - .argument(arg) - .statement(new ReturnNode(new Assignment(reference(arg), LiteralNode.of("[updated value]")))); - val result = runMethod(method, new StringValue("[initial value]")); - - assertEquals(new StringValue("[updated value]"), result); - } - - @Test public void methodWithNoStatementsReturnsUnit() { val method = staticMethod("hello"); val result = runMethod(method); |
