Skip to content

Commit

Permalink
add unit test and style
Browse files Browse the repository at this point in the history
  • Loading branch information
max-vassili3v committed Aug 15, 2024
1 parent 522b0c8 commit e84270d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/oneelement.jl
Original file line number Diff line number Diff line change
Expand Up @@ -427,9 +427,9 @@ function Base.reshape(A::OneElement, shape::Tuple{Vararg{Int}})
end

#permute
_permute(x::Tuple, p::Tuple) = ntuple(i -> x[p[i]], length(x))
_permute(x, p) = ntuple(i -> x[p[i]], length(x))
permutedims(o::OneElementMatrix) = OneElement(o.val, reverse(o.ind), reverse(o.axes))
permutedims(o::OneElementVector) = OneElement(o.val, (1, o.ind[1]), (1, length(o)))
permutedims(o::OneElementVector) = reshape(o, (1, length(o)))
permutedims(o::OneElement, dims) = OneElement(o.val, _permute(o.ind, dims), _permute(o.axes, dims))

# show
Expand Down
17 changes: 9 additions & 8 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2668,14 +2668,15 @@ end
end

@testset "permutedims" begin
v = OneElement(1, (2,3), (2,5))
@test permutedims(v) === OneElement(1, (3,2), (5,2))
w = OneElement(1,3,5)
@test permutedims(w) === OneElement(1, (1,3), (1,5))
x = OneElement(1, (1,2,3), (4,5,6))
@test permutedims(x, (1,2,3)) === x
@test permutedims(x, (3,2,1)) === OneElement(1, (3,2,1), (6,5,4))
@test_throws BoundsError permutedims(x, (2,1))
v = OneElement(1, (2, 3), (2, 5))
@test permutedims(v) === OneElement(1, (3, 2), (5, 2))
w = OneElement(1, 3, 5)
@test permutedims(w) === OneElement(1, (1, 3), (1, 5))
x = OneElement(1, (1, 2, 3), (4, 5, 6))
@test permutedims(x, (1, 2, 3)) === x
@test permutedims(x, (3, 2, 1)) === OneElement(1, (3, 2, 1), (6, 5, 4))
@test permutedims(x, [2, 3, 1]) === OneElement(1, (2, 3, 1), (5, 6, 4))
@test_throws BoundsError permutedims(x, (2, 1))
end
@testset "show" begin
B = OneElement(2, (1, 2), (3, 4))
Expand Down

0 comments on commit e84270d

Please sign in to comment.