Skip to content

Commit ac153cd

Browse files
committed
test permutedims!
1 parent 926ed1e commit ac153cd

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

test/test_permutedims.jl

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ end
3131
g2 = gradedrange([U1(0) => 2, U1(1) => 2, U1(3) => 1])
3232
g3 = gradedrange([U1(-1) => 1, U1(0) => 2, U1(1) => 1])
3333
g4 = gradedrange([U1(-1) => 1, U1(0) => 1, U1(1) => 1])
34+
ftaxes1 = FusionTensorAxes((g1, g2), (dual(g3), dual(g4)))
3435

3536
for elt in (Float64, ComplexF64)
36-
ft1 = FusionTensor{elt}(undef, (g1, g2), dual.((g3, g4)))
37+
ft1 = randn(elt, ftaxes1)
3738
@test isnothing(check_sanity(ft1))
3839

3940
# test permutedims interface
@@ -68,8 +69,33 @@ end
6869
@test space_isequal(domain_axis(ft1), domain_axis(ft4))
6970
@test ft4 ft1
7071

72+
# test permutedims! interface
73+
ft2 = randn(elt, axes(ft1))
74+
permutedims!(ft2, ft1, (1, 2), (3, 4))
75+
@test ft2 ft1
76+
@test data_matrix(ft2) !== data_matrix(ft1) # check copy
77+
@test data_matrix(ft2) == data_matrix(ft1) # check copy
78+
79+
ft2 = randn(elt, axes(ft1))
80+
permutedims!(ft2, ft1, ((1, 2), (3, 4)))
81+
@test ft2 ft1
82+
@test data_matrix(ft2) !== data_matrix(ft1) # check copy
83+
@test data_matrix(ft2) == data_matrix(ft1) # check copy
84+
85+
ft2 = randn(elt, axes(ft1))
86+
permutedims!(ft2, ft1, biperm)
87+
@test ft2 ft1
88+
@test data_matrix(ft2) !== data_matrix(ft1) # check copy
89+
@test data_matrix(ft2) == data_matrix(ft1) # check copy
90+
91+
# test clean errors
92+
ft2 = randn(elt, axes(ft1))
7193
@test_throws MethodError permutedims(ft1, (2, 3, 4, 1))
7294
@test_throws ArgumentError permutedims(ft1, (2, 3), (5, 4, 1))
95+
@test_throws MethodError permutedims!(ft2, ft1, (2, 3, 4, 1))
96+
@test_throws ArgumentError permutedims!(ft2, ft1, (2, 3), (5, 4, 1))
97+
@test_throws ArgumentError permutedims!(ft2, ft1, (1, 2, 3), (4,))
98+
@test_throws ArgumentError permutedims!(ft2, ft1, (1, 2), (4, 3))
7399
end
74100
end
75101

0 commit comments

Comments
 (0)