12345678910111213141516171819202122232425262728293031 |
- from sympy.tensor.tensor import (Tensor, TensorIndexType, TensorSymmetry,
- tensor_indices, TensorHead, TensorElement)
- from sympy.tensor import Array
- from sympy.core.symbol import Symbol
- def test_tensor_element():
- L = TensorIndexType("L")
- i, j, k, l, m, n = tensor_indices("i j k l m n", L)
- A = TensorHead("A", [L, L], TensorSymmetry.no_symmetry(2))
- a = A(i, j)
- assert isinstance(TensorElement(a, {}), Tensor)
- assert isinstance(TensorElement(a, {k: 1}), Tensor)
- te1 = TensorElement(a, {Symbol("i"): 1})
- assert te1.free == [(j, 0)]
- assert te1.get_free_indices() == [j]
- assert te1.dum == []
- te2 = TensorElement(a, {i: 1})
- assert te2.free == [(j, 0)]
- assert te2.get_free_indices() == [j]
- assert te2.dum == []
- assert te1 == te2
- array = Array([[1, 2], [3, 4]])
- assert te1.replace_with_arrays({A(i, j): array}, [j]) == array[1, :]
|