summaryrefslogtreecommitdiff
path: root/chapter01/src/test/java
diff options
context:
space:
mode:
authordibyendumajumdar <mobile@majumdar.org.uk>2023-09-18 22:24:12 +0100
committerdibyendumajumdar <mobile@majumdar.org.uk>2023-09-18 22:24:12 +0100
commit1372c413329221aca0837134747d7ba45ac0501b (patch)
tree2a556716871a7a2a2de5ce4cead51cb6e03cf329 /chapter01/src/test/java
parent5166e178bda699d574bd9dfbd1718e86bc9c95f9 (diff)
downloadSimple-1372c413329221aca0837134747d7ba45ac0501b.tar.gz
Simple-1372c413329221aca0837134747d7ba45ac0501b.zip
Chapter 01 implementation
Diffstat (limited to 'chapter01/src/test/java')
-rw-r--r--chapter01/src/test/java/com/seaofnodes/simple/ParserTest.java24
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();
+ }
+ }
}
}