Skip to content

Commit 4c19ef0

Browse files
committed
Add tests repeated indices
1 parent 0be13fc commit 4c19ef0

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
@@ -204,6 +204,43 @@ module TestOperators
204204
end
205205
end
206206

207+
@testset "Finite MPOHamiltonian repeated indices" begin
208+
X = randn(ComplexF64, ℂ^2, ℂ^2)
209+
X += X'
210+
Y = randn(ComplexF64, ℂ^2, ℂ^2)
211+
Y += Y'
212+
L = 4
213+
chain = fill(space(X, 1), 4)
214+
215+
H1 = FiniteMPOHamiltonian(chain, (1,) => (X * X * Y * Y))
216+
H2 = FiniteMPOHamiltonian(chain, (1, 1, 1, 1) => (X X Y Y))
217+
@test convert(TensorMap, H1) convert(TensorMap, H2)
218+
219+
H1 = FiniteMPOHamiltonian(chain, (1, 2) => ((X * Y) (X * Y)))
220+
H2 = FiniteMPOHamiltonian(chain, (1, 2, 1, 2) => (X X Y Y))
221+
@test convert(TensorMap, H1) convert(TensorMap, H2)
222+
223+
H1 = FiniteMPOHamiltonian(chain, (1, 2) => ((X * X * Y) Y))
224+
H2 = FiniteMPOHamiltonian(chain, (1, 1, 1, 2) => (X X Y Y))
225+
@test convert(TensorMap, H1) convert(TensorMap, H2)
226+
227+
H1 = FiniteMPOHamiltonian(chain, (1, 2) => ((X * Y * Y) X))
228+
H2 = FiniteMPOHamiltonian(chain, (1, 2, 1, 1) => (X X Y Y))
229+
@test convert(TensorMap, H1) convert(TensorMap, H2)
230+
231+
H1 = FiniteMPOHamiltonian(chain, (1, 2, 3) => FiniteMPO((X * X) Y Y))
232+
H2 = FiniteMPOHamiltonian(chain, (1, 1, 2, 3) => FiniteMPO(X X Y Y))
233+
@test convert(TensorMap, H1) convert(TensorMap, H2)
234+
235+
H1 = FiniteMPOHamiltonian(chain, (1, 2, 3) => FiniteMPO((Y * Y) X X))
236+
H2 = FiniteMPOHamiltonian(chain, (2, 3, 1, 1) => FiniteMPO(X X Y Y))
237+
@test convert(TensorMap, H1) convert(TensorMap, H2)
238+
239+
H1 = FiniteMPOHamiltonian(chain, (1, 2, 3) => FiniteMPO(X (X * Y) Y))
240+
H2 = FiniteMPOHamiltonian(chain, (1, 2, 2, 3) => FiniteMPO(X X Y Y))
241+
@test convert(TensorMap, H1) convert(TensorMap, H2)
242+
end
243+
207244
@testset "InfiniteMPOHamiltonian $(sectortype(pspace))" for (pspace, Dspace) in zip(pspaces, vspaces)
208245
# generate a 1-2-3 body interaction
209246
operators = ntuple(3) do i

0 commit comments

Comments
 (0)