def testblock(self): f = Var('f') foo = Var('foo') eq_( eval( block( foo, let([(f, lamda((), exit_block(foo, 1)))], mul(2, block(foo, f()))))), 1)
def testblock3(self): a = Var('a') eq_( eval( block(a, 1, if_(0, continue_block(a), begin(exit_block(a, 2), 3)))), 2)
def test_unwind_protect_loop(self): from util import a, i eq_(eval(let([(i,3)], block(a, assign(i, sub(i, 1)), if_(eq(i, 0), exit_block(a, 1), unwind_protect(continue_block(a), prin(i)))), i)), 0)
def testloop(self): from util import a, i eq_( eval( let([(i, 3)], block(a, assign(i, sub(i, 1)), if_(eq(i, 0), exit_block(a, 1), continue_block(a))), i)), 0)
def testloop(self): from util import a, i eq_(eval(let([(i,3)], block(a, assign(i, sub(i, 1)), if_(eq(i, 0), exit_block(a, 1), continue_block(a))), i)), 0)
def test_unwind_protect_loop(self): from util import a, i eq_( eval( let([(i, 3)], block( a, assign(i, sub(i, 1)), if_(eq(i, 0), exit_block(a, 1), unwind_protect(continue_block(a), prin(i)))), i)), 0)
def test_unwind_protect2(self): foo = Var('foo') eq_( eval( block(foo, unwind_protect(exit_block(foo, 1), prin(2), prin(3)))), 1)
def testblock2(self): a = Var('a') eq_(eval(block(a, exit_block(a, 2), 3)), 2)
def test_unwind_protect2(self): foo = Var('foo') eq_(eval(block(foo, unwind_protect(exit_block(foo, 1), prin(2), prin(3)))), 1)
def testblock3(self): a = Var('a') eq_(eval(block(a, 1, if_(0, continue_block(a), begin(exit_block(a, 2), 3)))), 2)
def testblock(self): f = Var('f') foo = Var('foo') eq_(eval(block(foo, let([(f, lamda((), exit_block(foo,1)))], mul(2, block(foo, f()))))), 1)