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