test_indexed_integrals.py 1.2 KB

12345678910111213141516171819202122232425
  1. from sympy.sandbox.indexed_integrals import IndexedIntegral
  2. from sympy.core.symbol import symbols
  3. from sympy.functions.elementary.trigonometric import (cos, sin)
  4. from sympy.tensor.indexed import (Idx, IndexedBase)
  5. def test_indexed_integrals():
  6. A = IndexedBase('A')
  7. i, j = symbols('i j', integer=True)
  8. a1, a2 = symbols('a1:3', cls=Idx)
  9. assert isinstance(a1, Idx)
  10. assert IndexedIntegral(1, A[i]).doit() == A[i]
  11. assert IndexedIntegral(A[i], A[i]).doit() == A[i] ** 2 / 2
  12. assert IndexedIntegral(A[j], A[i]).doit() == A[i] * A[j]
  13. assert IndexedIntegral(A[i] * A[j], A[i]).doit() == A[i] ** 2 * A[j] / 2
  14. assert IndexedIntegral(sin(A[i]), A[i]).doit() == -cos(A[i])
  15. assert IndexedIntegral(sin(A[j]), A[i]).doit() == sin(A[j]) * A[i]
  16. assert IndexedIntegral(1, A[a1]).doit() == A[a1]
  17. assert IndexedIntegral(A[a1], A[a1]).doit() == A[a1] ** 2 / 2
  18. assert IndexedIntegral(A[a2], A[a1]).doit() == A[a1] * A[a2]
  19. assert IndexedIntegral(A[a1] * A[a2], A[a1]).doit() == A[a1] ** 2 * A[a2] / 2
  20. assert IndexedIntegral(sin(A[a1]), A[a1]).doit() == -cos(A[a1])
  21. assert IndexedIntegral(sin(A[a2]), A[a1]).doit() == sin(A[a2]) * A[a1]