@@ -103,4 +103,23 @@ diagspacelist = ((ℂ^4)', ℂ[Z2Irrep](0 => 2, 1 => 3),
103103 @test convert(TensorMap, t5) == permute(convert(TensorMap, t), (((), (2 , 1 ))))
104104 end
105105 end
106+ @timedtestset " Trace, Multiplication and inverse" begin
107+ t1 = DiagonalTensorMap(rand(Float64, reduceddim(V)), V)
108+ t2 = DiagonalTensorMap(rand(ComplexF64, reduceddim(V)), V)
109+ @test tr(TensorMap(t1)) == @constinferred tr(t1)
110+ @test tr(TensorMap(t2)) == @constinferred tr(t2)
111+ @test TensorMap(@constinferred t1 * t2) ≈ TensorMap(t1) * TensorMap(t2)
112+ @test TensorMap(@constinferred t1 \ t2) ≈ TensorMap(t1) \ TensorMap(t2)
113+ @test TensorMap(@constinferred t1 / t2) ≈ TensorMap(t1) / TensorMap(t2)
114+ @test TensorMap(@constinferred inv(t1)) ≈ inv(TensorMap(t1))
115+ @test TensorMap(@constinferred pinv(t1)) ≈ pinv(TensorMap(t1))
116+ @test all(Base. Fix2(isa, DiagonalTensorMap),
117+ (t1 * t2, t1 \ t2, t1 / t2, inv(t1), pinv(t1)))
118+
119+ u = randn(Float64, V * V' * V, V)
120+ @test u * t1 ≈ u * TensorMap(t1)
121+ @test u / t1 ≈ u / TensorMap(t1)
122+ @test t1 * u' ≈ TensorMap(t1) * u'
123+ @test t1 \ u' ≈ TensorMap(t1) \ u'
124+ end
106125end
0 commit comments