def test_Bind(self): from sympy.abc import x, y, z m = Symbol ('m', commutative=False) n = Function('n', commutative=False) k = Function('k', commutative=False) assert straighten(Bind(Bind(m,x,n(x)),y,k(y))) == Bind(m,x,Bind(n(x),y,k(y))) assert straighten(Bind(Bind(m,x,n(x)),y,k(x,y))).dummy_eq(Bind(m,z,Bind(n(z),y,k(x,y))), z)
def test_derivative_subs_bug(): x = Symbol("x y") l = Function('l') n = Function('n') e = diff(n(x), x) assert e.subs(n(x), l(x)) != e assert e.subs(n(x), l(x)) == Derivative(l(x), x) assert e.subs(n(x), -l(x)) == Derivative(-l(x), x) assert e.subs(x, y) == Derivative(n(y), y)
def test_Mul(self): from sympy.abc import a, b, c, x, y m = Symbol ('m', commutative=False) n = Function('n', commutative=False) k = Function('k', commutative=False) assert straighten(Bind(a*m, x, b*Bind(c*n(x), y, k(x,y)))) == a*b*c*Bind(m,x,Bind(n(x),y,k(x,y))) assert straighten(Bind(a*Bind(b*m, x, c*n(x)), y, k(y))) == a*b*c*Bind(m,x,Bind(n(x),y,k(y))) assert straighten(Bind(m, x, Bind(n(x), y, a*exp(b*x+c*y)*k(x,y)))) == a*Bind(m, x, exp(b*x)*Bind(n(x), y, exp(c*y)*k(x,y))) a = Function('a') b = Function('b') c = Function('c') assert straighten(Bind(a(x)*m, x, b(x)*Bind(c(x)*n(x), y, k(x,y)))) == a(x)*Bind(m,x,b(x)*c(x)*Bind(n(x),y,k(x,y))) assert straighten(Bind(a(x)*Bind(b(x)*m, x, c(x)*n(x)), y, k(y))) == a(x)*b(x)*Bind(m,x,c(x)*Bind(n(x),y,k(y)))
def test_derivative_linearity(): x = Symbol("x") y = Symbol("y") n = Function('n') assert diff(-n(x), x) == -diff(n(x), x) assert diff(8*n(x), x) == 8*diff(n(x), x) assert diff(8*n(x), x) != 7*diff(n(x), x) assert diff(8*n(x)*x, x) == 8*n(x) + 8*x*diff(n(x), x) assert diff(8*n(x)*y*x, x) == 8*y*n(x) + 8*y*x*diff(n(x), x)
def test_derivative_linearity(): x = Symbol("x") y = Symbol("y") n = Function('n') assert diff(-n(x), x) == -diff(n(x), x) assert diff(8 * n(x), x) == 8 * diff(n(x), x) assert diff(8 * n(x), x) != 7 * diff(n(x), x) assert diff(8 * n(x) * x, x) == 8 * n(x) + 8 * x * diff(n(x), x) assert diff(8 * n(x) * y * x, x) == 8 * y * n(x) + 8 * y * x * diff(n(x), x)
def test_var(self): from sympy.abc import x, y, z m = Function('m', commutative=False) n = Function('n', commutative=False) g = Function('g') assert Expect(Bind(Bind(Lebesgue(3,6), x, m(x)), y, n(y)), Lambda(z, g(z))).dummy_eq(integrate(Expect(m(x), Lambda(y, Expect(n(y), Lambda(z, g(z))))), (x,3,6)))