@@ -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