Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
 def test_no_pass(self):
     "Should do nothing"
     assert None == optimizer.optimize(None, max_pass=0, min_change=1)
Exemple #4
0
 def test_no_pass(self):
     "Should do nothing"
     assert None == optimizer.optimize(None, max_pass=0, min_change=1)