diff options
| author | dibyendumajumdar <mobile@majumdar.org.uk> | 2023-09-18 22:24:12 +0100 |
|---|---|---|
| committer | dibyendumajumdar <mobile@majumdar.org.uk> | 2023-09-18 22:24:12 +0100 |
| commit | 1372c413329221aca0837134747d7ba45ac0501b (patch) | |
| tree | 2a556716871a7a2a2de5ce4cead51cb6e03cf329 /chapter01/src/test | |
| parent | 5166e178bda699d574bd9dfbd1718e86bc9c95f9 (diff) | |
| download | Simple-1372c413329221aca0837134747d7ba45ac0501b.tar.gz Simple-1372c413329221aca0837134747d7ba45ac0501b.zip | |
Chapter 01 implementation
Diffstat (limited to 'chapter01/src/test')
| -rw-r--r-- | chapter01/src/test/java/com/seaofnodes/simple/ParserTest.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/chapter01/src/test/java/com/seaofnodes/simple/ParserTest.java b/chapter01/src/test/java/com/seaofnodes/simple/ParserTest.java index 9f4a9a2e..ad420ece 100644 --- a/chapter01/src/test/java/com/seaofnodes/simple/ParserTest.java +++ b/chapter01/src/test/java/com/seaofnodes/simple/ParserTest.java @@ -1,6 +1,9 @@ package com.seaofnodes.simple; +import com.seaofnodes.simple.node.ConstantNode; import com.seaofnodes.simple.node.Node; +import com.seaofnodes.simple.node.ReturnNode; +import com.seaofnodes.simple.node.StartNode; import org.junit.Assert; import org.junit.Test; @@ -9,7 +12,26 @@ public class ParserTest { @Test public void testSimpleProgram() { Parser parser = new Parser(); - Node startNode = parser.parse("return 1;"); + StartNode startNode = parser.parse("return 1;"); Assert.assertNotNull(startNode); + Assert.assertTrue(startNode.isControl()); + Assert.assertEquals(2, startNode.numOutputs()); + for (int i = 0; i < startNode.numOutputs(); i++) { + Node out = startNode.out(i); + if (out instanceof ReturnNode) { + Assert.assertEquals(2, out.numInputs()); + Assert.assertEquals(startNode, out.in(0)); + Assert.assertTrue(out.isControl()); + Assert.assertTrue(out.in(1) instanceof ConstantNode); + } + else if (out instanceof ConstantNode cn) { + Assert.assertEquals(1, cn._value); + Assert.assertEquals(1, cn.numInputs()); + Assert.assertEquals(startNode, cn.in(0)); + } + else { + throw new IllegalStateException(); + } + } } } |
