def test_equality_rewrite_diff_static(self):
        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)

        # Rewrite foo = "test" as True
        # Left should be True, right should be False
        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

        # Rewrite foo = "test" as False
        # Left should be False, right should be same
        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)

        # Rewrite foo = "other" as True
        # Left should be False, right should be True
        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

        # Rewrite foo = "other" as False
        # Left should be same, right should be False
        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
Test an equality rewrite with different static values
dataset/ETHPy150Open armon/pypred/tests/unit/test_compare.py/TestCompare.test_equality_rewrite_diff_static