summaryrefslogtreecommitdiff
path: root/src/test/java/com/seaofnodes/simple/Chapter11Test.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/Chapter11Test.java')
-rw-r--r--src/test/java/com/seaofnodes/simple/Chapter11Test.java45
1 files changed, 16 insertions, 29 deletions
diff --git a/src/test/java/com/seaofnodes/simple/Chapter11Test.java b/src/test/java/com/seaofnodes/simple/Chapter11Test.java
index 63cd511a..5f9f9cac 100644
--- a/src/test/java/com/seaofnodes/simple/Chapter11Test.java
+++ b/src/test/java/com/seaofnodes/simple/Chapter11Test.java
@@ -291,7 +291,7 @@ else {
}
}
""");
- StopNode stop = parser.parse().iterate(false);
+ StopNode stop = parser.parse().iterate();
assertEquals("Stop[ return 9; return 0; return 0; return 0; ]", stop.toString());
}
@@ -346,7 +346,9 @@ if (arg) v.f=1;
return i;
""");
StopNode stop = parser.parse().iterate();
- assertEquals("return .f;", stop.toString());
+ assertEquals("return 2;", stop.toString());
+ assertEquals(2L, Evaluator.evaluate(stop, 0));
+ assertEquals(2L, Evaluator.evaluate(stop, 1));
}
@Test
@@ -355,6 +357,7 @@ return i;
"""
struct S { int f; }
S v = new S;
+v.f = arg;
S t = new S;
int i = 0;
if (arg) {
@@ -366,7 +369,7 @@ if (arg) {
return i;
""");
StopNode stop = parser.parse().iterate();
- assertEquals("return Phi(Region34,.f,0);", stop.toString());
+ assertEquals("return Phi(Region40,.f,0);", stop.toString());
}
@Test
@@ -385,7 +388,7 @@ if (v1) {
return v0;
""");
StopNode stop = parser.parse().iterate();
- assertEquals("return new S;", stop.toString());
+ assertEquals("return S;", stop.toString());
}
@@ -395,6 +398,7 @@ return v0;
"""
struct S { int f; }
S v = new S;
+v.f = arg;
S t = new S;
int i = v.f;
if (arg+1) arg= 0;
@@ -402,7 +406,7 @@ while (arg) v.f = 2;
return i;
""");
StopNode stop = parser.parse().iterate();
- assertEquals("return .f;", stop.toString());
+ assertEquals("return arg;", stop.toString());
}
@Test
@@ -419,7 +423,7 @@ while(1) {
return v;
""");
StopNode stop = parser.parse().iterate();
- assertEquals("return new S;", stop.toString());
+ assertEquals("return S;", stop.toString());
}
@Test
@@ -451,8 +455,8 @@ while (arg) {
}
return i;
""");
- StopNode stop = parser.parse().iterate(false);
- assertEquals("return .f;", stop.toString());
+ StopNode stop = parser.parse().iterate();
+ assertEquals("return 0;", stop.toString());
}
@Test
@@ -471,8 +475,8 @@ while(arg) {
}
return arg;
""");
- StopNode stop = parser.parse().iterate(false);
- assertEquals("return Phi(Loop15,arg,Phi(Region37,.f,0));", stop.toString());
+ StopNode stop = parser.parse().iterate();
+ assertEquals("return Phi(Loop17,arg,Phi(Region42,.f,0));", stop.toString());
}
@Test
@@ -489,8 +493,8 @@ if (arg) {
}
return v;
""");
- StopNode stop = parser.parse().iterate(false);
- assertEquals("return new S;", stop.toString());
+ StopNode stop = parser.parse().iterate();
+ assertEquals("return S;", stop.toString());
}
@Test
@@ -511,21 +515,4 @@ return v;
StopNode stop = parser.parse().iterate();
//assertEquals("return new S;", stop.toString());
}
-
- @Test
- public void testSplit() {
- Parser parser = new Parser(
- """
-struct S { int f; }
-S s = new S;
-if( arg==0 ) s.f = 1;
-else if (arg == 1) s.f = 1;
-return s.f;
-""");
- StopNode stop = parser.parse().iterate();
- assertEquals("return Phi(Region37,1,Phi(Region35,1,0));", stop.toString());
- assertEquals(1L, Evaluator.evaluate(stop, 0));
- assertEquals(1L, Evaluator.evaluate(stop, 1));
- assertEquals(0L, Evaluator.evaluate(stop, 2));
- }
}