Skip to content

Commit 4a7742b

Browse files
authored
Merge pull request #70 from JuliaArrays/gs/axis-functions
Let axistrait and checkaxis take Axis arguments
2 parents 0c91a4c + dade49b commit 4a7742b

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/core.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,11 @@ immutable Categorical <: AxisTrait end
426426
immutable Unsupported <: AxisTrait end
427427

428428
axistrait(::Any) = Unsupported
429+
axistrait(ax::Axis) = axistrait(ax.val)
429430
axistrait{T<:Union{Number, Dates.AbstractTime}}(::AbstractVector{T}) = Dimensional
430431
axistrait{T<:Union{Symbol, AbstractString}}(::AbstractVector{T}) = Categorical
431432

433+
checkaxis(ax::Axis) = checkaxis(ax.val)
432434
checkaxis(ax) = checkaxis(axistrait(ax), ax)
433435
checkaxis(::Type{Unsupported}, ax) = nothing # TODO: warn or error?
434436
# Dimensional axes must be monotonically increasing

test/core.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,14 @@ A = AxisArray(vals, Axis{:Timestamp}(dt-Dates.Hour(2):Dates.Hour(1):dt+Dates.Hou
179179
@test A[:, :A].data == vals[:, 1]
180180
@test A[dt, :].data == vals[3, :]
181181

182+
@test AxisArrays.axistrait(A.axes[1]) == AxisArrays.Dimensional
183+
@test AxisArrays.axistrait(A.axes[1].val) == AxisArrays.Dimensional
184+
@test AxisArrays.axistrait(A.axes[2]) == AxisArrays.Categorical
185+
@test AxisArrays.axistrait(A.axes[2].val) == AxisArrays.Categorical
186+
187+
@test_throws ArgumentError AxisArrays.checkaxis(Axis{:x}(10:-1:1))
188+
@test_throws ArgumentError AxisArrays.checkaxis(10:-1:1)
189+
182190
# Simply run the display method to ensure no stupid errors
183191
show(IOBuffer(),MIME("text/plain"),A)
184192

0 commit comments

Comments
 (0)