diff options
| author | Cliff Click <cliffc@acm.org> | 2024-10-19 15:17:37 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-10-21 08:52:01 -0700 |
| commit | 06bd4d37d2331c048829bc34e56a562fca8b8e07 (patch) | |
| tree | 6505fa2ff58a1f566ce4f81af416f789a2c55a24 /chapter16/src | |
| parent | ac74cbc6182d3bea00a0130edb38f026cdd5874d (diff) | |
| download | Simple-06bd4d37d2331c048829bc34e56a562fca8b8e07.tar.gz Simple-06bd4d37d2331c048829bc34e56a562fca8b8e07.zip | |
ch 16 README
Diffstat (limited to 'chapter16/src')
| -rw-r--r-- | chapter16/src/test/java/com/seaofnodes/simple/Chapter16Test.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/chapter16/src/test/java/com/seaofnodes/simple/Chapter16Test.java b/chapter16/src/test/java/com/seaofnodes/simple/Chapter16Test.java index 7cd1604b..c4f9795f 100644 --- a/chapter16/src/test/java/com/seaofnodes/simple/Chapter16Test.java +++ b/chapter16/src/test/java/com/seaofnodes/simple/Chapter16Test.java @@ -173,4 +173,24 @@ return next.i; assertEquals(2L, Evaluator.evaluate(stop, 11)); } + @Test + public void testSquare() { + Parser parser = new Parser( +""" +struct Square { + flt !side = arg; + flt diag = arg*arg/2; + while( 1 ) { + flt next = (side/diag + diag)/2; + if( next == diag ) break; + diag = next; + } +}; +return new Square; +"""); + StopNode stop = parser.parse().iterate(); + assertEquals("return Square;", stop.toString()); + assertEquals("Obj<Square>{side=3.0,diag=1.7320508075688772}", Evaluator.evaluate(stop, 3).toString()); + assertEquals("Obj<Square>{side=4.0,diag=2.0}", Evaluator.evaluate(stop, 4).toString()); + } } |
