def test_expr_and(data): x, y = atom('x'), atom('y') expr = x & y vals = {f'{i}': data.draw(st.booleans()) for i in expr.inputs} assert (x(vals) and y(vals)) == expr(vals)
def test_expr_implies(data): x, y = atom('x'), atom('y') expr = x.implies(y) vals = {f'{i}': data.draw(st.booleans()) for i in expr.inputs} assert ((not x(vals)) or y(vals)) == expr(vals)
def test_expr_invert(data): x = atom('x') expr = ~x vals = {f'{i}': data.draw(st.booleans()) for i in expr.inputs} assert x(vals) == (not expr(vals))
def test_expr_and2(data): x = atom('x') expr = x & x vals = {f'{i}': data.draw(st.booleans()) for i in expr.inputs} assert x(vals) == expr(vals)