Skip to content

Commit 6bd5582

Browse files
committed
Add tests repeated indices
1 parent 8d81541 commit 6bd5582

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

test/operators.jl

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,43 @@ module TestOperators
218218
end
219219
end
220220

221+
@testset "Finite MPOHamiltonian repeated indices" begin
222+
X = randn(ComplexF64, ℂ^2, ℂ^2)
223+
X += X'
224+
Y = randn(ComplexF64, ℂ^2, ℂ^2)
225+
Y += Y'
226+
L = 4
227+
chain = fill(space(X, 1), 4)
228+
229+
H1 = FiniteMPOHamiltonian(chain, (1,) => (X * X * Y * Y))
230+
H2 = FiniteMPOHamiltonian(chain, (1, 1, 1, 1) => (X X Y Y))
231+
@test convert(TensorMap, H1) convert(TensorMap, H2)
232+
233+
H1 = FiniteMPOHamiltonian(chain, (1, 2) => ((X * Y) (X * Y)))
234+
H2 = FiniteMPOHamiltonian(chain, (1, 2, 1, 2) => (X X Y Y))
235+
@test convert(TensorMap, H1) convert(TensorMap, H2)
236+
237+
H1 = FiniteMPOHamiltonian(chain, (1, 2) => ((X * X * Y) Y))
238+
H2 = FiniteMPOHamiltonian(chain, (1, 1, 1, 2) => (X X Y Y))
239+
@test convert(TensorMap, H1) convert(TensorMap, H2)
240+
241+
H1 = FiniteMPOHamiltonian(chain, (1, 2) => ((X * Y * Y) X))
242+
H2 = FiniteMPOHamiltonian(chain, (1, 2, 1, 1) => (X X Y Y))
243+
@test convert(TensorMap, H1) convert(TensorMap, H2)
244+
245+
H1 = FiniteMPOHamiltonian(chain, (1, 2, 3) => FiniteMPO((X * X) Y Y))
246+
H2 = FiniteMPOHamiltonian(chain, (1, 1, 2, 3) => FiniteMPO(X X Y Y))
247+
@test convert(TensorMap, H1) convert(TensorMap, H2)
248+
249+
H1 = FiniteMPOHamiltonian(chain, (1, 2, 3) => FiniteMPO((Y * Y) X X))
250+
H2 = FiniteMPOHamiltonian(chain, (2, 3, 1, 1) => FiniteMPO(X X Y Y))
251+
@test convert(TensorMap, H1) convert(TensorMap, H2)
252+
253+
H1 = FiniteMPOHamiltonian(chain, (1, 2, 3) => FiniteMPO(X (X * Y) Y))
254+
H2 = FiniteMPOHamiltonian(chain, (1, 2, 2, 3) => FiniteMPO(X X Y Y))
255+
@test convert(TensorMap, H1) convert(TensorMap, H2)
256+
end
257+
221258
@testset "InfiniteMPOHamiltonian $(sectortype(pspace))" for (pspace, Dspace) in zip(pspaces, vspaces)
222259
# generate a 1-2-3 body interaction
223260
operators = ntuple(3) do i

0 commit comments

Comments
 (0)