

def test_equality_rewrite_diff_static(self):
    'Test an equality rewrite with different static values'
    l = ast.Literal('foo')
    s = ast.Literal('"test"')
    s.static = True
    s.static_val = 'test'
    s1 = ast.Literal('"other"')
    s1.static = True
    s1.static_val = 'other'
    cmp1 = ast.CompareOperator('=', l, s)
    cmp2 = ast.CompareOperator('=', l, s1)
    or1 = ast.LogicalOperator('or', cmp1, cmp2)
    name = merge.node_name(cmp1, True)
    r = compare.equality_rewrite(ast.dup(or1), name, cmp1, True)
    assert isinstance(r.left, ast.Constant)
    assert (r.left.value == True)
    assert isinstance(r.right, ast.Constant)
    assert (r.right.value == False)
    name = merge.node_name(cmp1, True)
    r = compare.equality_rewrite(ast.dup(or1), name, cmp1, False)
    assert isinstance(r.left, ast.Constant)
    assert (r.left.value == False)
    assert ASTPattern(cmp2).matches(r.right)
    name = merge.node_name(cmp2, True)
    r = compare.equality_rewrite(ast.dup(or1), name, cmp2, True)
    assert isinstance(r.left, ast.Constant)
    assert (r.left.value == False)
    assert isinstance(r.right, ast.Constant)
    assert (r.right.value == True)
    name = merge.node_name(cmp2, True)
    r = compare.equality_rewrite(ast.dup(or1), name, cmp2, False)
    assert ASTPattern(cmp1).matches(r.left)
    assert isinstance(r.right, ast.Constant)
    assert (r.right.value == False)

dataset/ETHPy150Open armon/pypred/tests/unit/test_compare.py TestCompare.test_equality_rewrite_diff_static/original