def test_min_change(self): t = ast.Constant(True) f = ast.Constant(False) left = ast.LogicalOperator('or', t, f) right = ast.LogicalOperator('and', t, f) r = ast.LogicalOperator('or', left, right) # First pass will only replace the left and right # with constants, but will not cause 3 changes. r = optimizer.optimize(r, max_pass=10, min_change=3) assert isinstance(r, ast.LogicalOperator) assert isinstance(r.left, ast.Constant) assert r.left.value == True assert isinstance(r.right, ast.Constant) assert r.right.value == False
def test_no_pass(self): "Should do nothing" assert None == optimizer.optimize(None, max_pass=0, min_change=1)