def test_rewrite1(): e = exp(x) assert rewrite(e, mrv(e, x), x, m) == (1/m, -x) e = exp(x**2) assert rewrite(e, mrv(e, x), x, m) == (1/m, -x**2) e = exp(x+1/x) assert rewrite(e, mrv(e, x), x, m) == (1/m, -x-1/x) e = 1/exp(-x+exp(-x))-exp(x) assert rewrite(e, mrv(e, x), x, m) == (1/(m*exp(m))-1/m, -x)
def test_rewrite3(): e = exp(-x+1/x**2)-exp(x+1/x) #both of these are correct and should be equivalent: assert rewrite(e, mrv(e, x), x, m) in [(-1/m + m*exp(1/x+1/x**2), -x-1/x), (m - 1/m*exp(1/x + x**(-2)), x**(-2) - x)]
def test_rewrite2(): e = exp(x)*log(log(exp(x))) assert mrv(e, x) == set([exp(x)]) assert rewrite(e, mrv(e, x), x, m) == (1/m*log(x), -x)