def test_if_assign1(self): x = il.Var('x') y = il.Var('y') exp = il.begin(il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), x)) result = optimize(exp) expect = il.begin(il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), 1)) eq_(result, expect) eq_(result.statements[0]._removed, il.unknown) eq_(result.statements[0].removed(), True)
def test_if_assign7(self): x = il.Var('x') y = il.Var('y') exp = il.begin(il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), il.Assign(x, il.Integer(3))), il.Assign(y, il.add(x, il.Integer(3))), il.Prin(y), ) result = optimize(exp) expect = il.begin(il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), il.Assign(x, il.Integer(3))), il.Assign(y, il.add(x, il.Integer(3))), il.Prin(y), ) eq_(result, expect) eq_(result.statements[0].removed(), True) eq_(result.statements[1].then.removed(), False)
def test_if_assign7(self): x = il.Var('x') y = il.Var('y') exp = il.begin( il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), il.Assign(x, il.Integer(3))), il.Assign(y, il.add(x, il.Integer(3))), il.Prin(y), ) result = optimize(exp) expect = il.begin( il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), il.Assign(x, il.Integer(3))), il.Assign(y, il.add(x, il.Integer(3))), il.Prin(y), ) eq_(result, expect) eq_(result.statements[0].removed(), True) eq_(result.statements[1].then.removed(), False)
def test_if_assign3(self): x = il.Var('x') y = il.Var('y') exp = il.begin(il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), il.Assign(x, il.Integer(3))), il.Assign(x, il.Integer(4))) result = optimize(exp) expect = exp eq_(result, expect) eq_(result.statements[0].removed(), True) eq_(result.statements[1].then.removed(), True) eq_(result.statements[1].else_._removed, True) eq_(result.statements[1].else_.removed(), True)
def test_if_assign3(self): x = il.Var('x') y = il.Var('y') exp = il.begin( il.Assign(x, il.Integer(1)), il.if_(y, il.Assign(x, il.Integer(2)), il.Assign(x, il.Integer(3))), il.Assign(x, il.Integer(4))) result = optimize(exp) expect = exp eq_(result, expect) eq_(result.statements[0].removed(), True) eq_(result.statements[1].then.removed(), True) eq_(result.statements[1].else_._removed, True) eq_(result.statements[1].else_.removed(), True)
def test_if_4(self): eq_(optimize(il.if_(1, 2, 3)), il.Integer(2)) eq_(optimize(il.if_(0, 2, 3)), il.Integer(3))
def test_if_3(self): x = il.Var('x') result = optimize(il.if_(x, il.if_(x, 2, 3), il.if_(x, 4, 5))) expect = il.if_(x, 2, 5) eq_(result, expect)
def test_if_2(self): x = il.Var('x') result = optimize(il.if_(x, 2, il.if_(x, 3, 4))) expect = il.if_(x, 2, 4) eq_(result, expect)