Skip to content

Commit 3c06f1e

Browse files
committed
Add tests
1 parent 3ee9224 commit 3c06f1e

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

test/test_tensoroperations.jl

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using Test: @test, @testset
2+
using TensorOperations: @tensor, ncon
3+
using TensorAlgebra: Matricize
4+
5+
elts = (Float32, Float64, ComplexF32, ComplexF64)
6+
7+
@testset "tensor network examples ($T)" for T in elts
8+
D1, D2, D3 = 30, 40, 20
9+
d1, d2 = 2, 3
10+
A1 = rand(T, D1, d1, D2) .- 1//2
11+
A2 = rand(T, D2, d2, D3) .- 1//2
12+
rhoL = rand(T, D1, D1) .- 1//2
13+
rhoR = rand(T, D3, D3) .- 1//2
14+
H = rand(T, d1, d2, d1, d2) .- 1//2
15+
16+
@tensor HrA12[a, s1, s2, c] :=
17+
rhoL[a, a'] * A1[a', t1, b] * A2[b, t2, c'] * rhoR[c', c] * H[s1, s2, t1, t2]
18+
@tensor backend = Matricize() HrA12′[a, s1, s2, c] :=
19+
rhoL[a, a'] * A1[a', t1, b] * A2[b, t2, c'] * rhoR[c', c] * H[s1, s2, t1, t2]
20+
21+
@test HrA12 HrA12′
22+
@test HrA12 ncon(
23+
[rhoL, H, A2, rhoR, A1],
24+
[[-1, 1], [-2, -3, 4, 5], [2, 5, 3], [3, -4], [1, 4, 2]];
25+
backend=Matricize(),
26+
)
27+
E = @tensor rhoL[a', a] *
28+
A1[a, s, b] *
29+
A2[b, s', c] *
30+
rhoR[c, c'] *
31+
H[t, t', s, s'] *
32+
conj(A1[a', t, b']) *
33+
conj(A2[b', t', c'])
34+
@test E @tensor backend = Matricize() rhoL[a', a] *
35+
A1[a, s, b] *
36+
A2[b, s', c] *
37+
rhoR[c, c'] *
38+
H[t, t', s, s'] *
39+
conj(A1[a', t, b']) *
40+
conj(A2[b', t', c'])
41+
end

0 commit comments

Comments
 (0)