def test_trim(): f = Function("f") assert trim((f(x) ** 2 + f(x)) / f(x)) == 1 + f(x) assert trim((sin(x) ** 2 + sin(x)) / sin(x)) == 1 + sin(x) assert trim((f(x) + y * f(x)) / f(x)) == 1 + y expr = integrate(1 / (x ** 3 + 1), x) assert trim(together(expr.diff(x))) == 1 / (x ** 3 + 1) assert cancel(together(expr.diff(x))) == 1 / (x ** 3 + 1) expr = together(expr.subs(x, sin(x)).diff(x)) assert trim(expr) == cos(x) / (1 + sin(x) ** 3) assert trim((2 * (1 / n - cos(n * pi) / n)) / pi) == 1 / pi / n * (2 - 2 * cos(pi * n)) assert trim(sin((f(x) ** 2 + f(x)) / f(x))) == sin(1 + f(x)) assert trim(exp(x) * sin(x) / 2 + cos(x) * exp(x)) == exp(x) * (sin(x) + 2 * cos(x)) / 2
def test_trim(): f = Function('f') assert trim((f(x)**2 + f(x)) / f(x)) == 1 + f(x) assert trim((sin(x)**2 + sin(x)) / sin(x)) == 1 + sin(x) assert trim((f(x) + y * f(x)) / f(x)) == 1 + y expr = integrate(1 / (x**3 + 1), x) assert trim(together(expr.diff(x))) == 1 / (x**3 + 1) assert cancel(together(expr.diff(x))) == 1 / (x**3 + 1) expr = together(expr.subs(x, sin(x)).diff(x)) assert trim(expr) == cos(x) / (1 + sin(x)**3) assert trim((2 * (1/n - cos(n * pi)/n))/pi) == \ 1/pi/n*(2 - 2*cos(pi*n)) assert trim(sin((f(x)**2 + f(x)) / f(x))) == sin(1 + f(x)) assert trim(exp(x)*sin(x)/2 + cos(x)*exp(x)) == \ exp(x)*(sin(x) + 2*cos(x))/2
def test_cancel(): assert cancel((x ** 2 - 2) / (x + sqrt(2))) == x - sqrt(2) assert cancel((x ** 2 - y ** 2) / (x - y), x, y) == x + y assert cancel((x ** 2 - y) / (x - y)) == 1 / (x - y) * (x ** 2 - y) assert cancel((x ** 2 - y ** 2) / (x - y), x) == x + y assert cancel((x ** 2 - y ** 2) / (x - y), y) == x + y assert cancel((x ** 2 - y ** 2) / (x - y)) == x + y assert cancel((E * x + 2) / (x - pi) * (x - 1)) == (-2 + x * (2 - E) + E * x ** 2) / (x - pi) assert cancel(Eq((x ** 3 - 1) / (x - 1), sin(x))) == Eq(1 + x + x ** 2, sin(x)) assert cancel((x ** 2 - 1) / (x - 1) == (x ** 2 + 1) / (x - I), x) == (1 + x == I + x) assert cancel((x ** 2 - 1) / (x - 1) + (x ** 2 + 1) / (x - I), x) == 1 + I + 2 * x assert cancel((x ** 2 - 1) / (x - 1) + (x ** 2 + 1) / (x - I), y) in [ 1 / (1 - x) * (1 - x ** 2) + 1 / (x - I) * (1 + x ** 2), -1 / (1 - x) * (-1 + x ** 2) + 1 / (x - I) * (1 + x ** 2), 1 / (-1 + x) * (-1 + x ** 2) + 1 / (x - I) * (1 + x ** 2), ]
def test_cancel(): assert cancel((x**2 - 2) / (x + sqrt(2))) == x - sqrt(2) assert cancel((x**2 - y**2) / (x - y), x, y) == x + y assert cancel((x**2 - y) / (x - y)) == 1 / (x - y) * (x**2 - y) assert cancel((x**2 - y**2) / (x - y), x) == x + y assert cancel((x**2 - y**2) / (x - y), y) == x + y assert cancel((x**2 - y**2) / (x - y)) == x + y assert cancel((E * x + 2) / (x - pi) * (x - 1)) == (-2 + x * (2 - E) + E * x**2) / (x - pi) assert cancel(Eq((x**3 - 1) / (x - 1), sin(x))) == Eq(1 + x + x**2, sin(x)) assert cancel((x**2 - 1) / (x - 1) == (x**2 + 1) / (x - I), x) == (1 + x == I + x) assert cancel((x**2 - 1) / (x - 1) + (x**2 + 1) / (x - I), x) == 1 + I + 2 * x assert cancel((x**2 - 1) / (x - 1) + (x**2 + 1) / (x - I), y) in [ 1 / (1 - x) * (1 - x**2) + 1 / (x - I) * (1 + x**2), -1 / (1 - x) * (-1 + x**2) + 1 / (x - I) * (1 + x**2), 1 / (-1 + x) * (-1 + x**2) + 1 / (x - I) * (1 + x**2), ]