summaryrefslogtreecommitdiff
path: root/src/test/java/com/seaofnodes/simple/Chapter11Test.java
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-09-12 11:13:31 -0700
committerCliff Click <cliffc@acm.org>2024-10-23 17:51:09 -0700
commit67dc6202dee2ce983778ba3143cc3f00196aeb7c (patch)
treee1622c3cd33e3761b1fb5aa55de51765c93f3de3 /src/test/java/com/seaofnodes/simple/Chapter11Test.java
parentcb6d02efd0eca71076e458b890571385f0bf64a4 (diff)
downloadSimple-linear-chapter15.tar.gz
Simple-linear-chapter15.zip
Chapter 15: Arrayslinear-chapter15
Co-authored-by: XmiliaH <xmilia.hermit@gmail.com> Co-authored-by: Thalia Archibald <thalia@archibald.dev> Co-authored-by: Robert Obkircher <robert.obkircher@gmail.com>
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));
- }
}