test_tensor_element.py 908 B

12345678910111213141516171819202122232425262728293031
  1. from sympy.tensor.tensor import (Tensor, TensorIndexType, TensorSymmetry,
  2. tensor_indices, TensorHead, TensorElement)
  3. from sympy.tensor import Array
  4. from sympy.core.symbol import Symbol
  5. def test_tensor_element():
  6. L = TensorIndexType("L")
  7. i, j, k, l, m, n = tensor_indices("i j k l m n", L)
  8. A = TensorHead("A", [L, L], TensorSymmetry.no_symmetry(2))
  9. a = A(i, j)
  10. assert isinstance(TensorElement(a, {}), Tensor)
  11. assert isinstance(TensorElement(a, {k: 1}), Tensor)
  12. te1 = TensorElement(a, {Symbol("i"): 1})
  13. assert te1.free == [(j, 0)]
  14. assert te1.get_free_indices() == [j]
  15. assert te1.dum == []
  16. te2 = TensorElement(a, {i: 1})
  17. assert te2.free == [(j, 0)]
  18. assert te2.get_free_indices() == [j]
  19. assert te2.dum == []
  20. assert te1 == te2
  21. array = Array([[1, 2], [3, 4]])
  22. assert te1.replace_with_arrays({A(i, j): array}, [j]) == array[1, :]