def test_rewrite(): assert rewrite(Integer(1), x, m) == (1, None) e = exp(x) assert rewrite(e, x, m) == (1/m, -x) e = exp(x**2) assert rewrite(e, x, m) == (1/m, -x**2) e = exp(x + 1/x) assert rewrite(e, x, m) == (1/m, -x - 1/x) e = 1/exp(-x + exp(-x)) - exp(x) assert rewrite(e, x, m) == (Add(-1/m, 1/(m*exp(m)), evaluate=False), -x) e = exp(x)*log(log(exp(x))) assert mrv(e, x) == {exp(x)} assert rewrite(e, x, m) == (1/m*log(x), -x) e = exp(-x + 1/x**2) - exp(x + 1/x) assert rewrite(e, x, m) == (Add(m, Mul(-1, exp(1/x + x**(-2))/m, evaluate=False), evaluate=False), -x + 1/x**2)