def test_explain_binary(_, op): left = "_ {op} 1".format(op=op) sym = eval(left, {'_': _}) assert explain(sym) == left right = "1 {op} _".format(op=op) sym = eval(right, {'_': _}) assert explain(sym) == right
def test_explain_unary(_, code): sym = eval(code, {'_': _}) assert explain(sym) == code
def test_explain_failures(_, expr): sym = eval(expr, {'_': _}) assert explain(sym) != expr
def test_source_attr(_): sym = _.source assert isinstance(sym, Symbolic) assert explain(sym) == "_.source"
def test_explain_other(_, expr): sym = eval(expr, {'_': _}) assert explain(sym) == expr