Skip to content

Commit

Permalink
Merge 206290d into b4aefc2
Browse files Browse the repository at this point in the history
  • Loading branch information
nalimilan committed Oct 16, 2019
2 parents b4aefc2 + 206290d commit 1413217
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
6 changes: 5 additions & 1 deletion src/array.jl
Expand Up @@ -793,4 +793,8 @@ Base.deleteat!(A::CategoricalArray, inds) = (deleteat!(A.refs, inds); A)

Base.Broadcast.broadcasted(::typeof(ismissing), A::CategoricalArray{T}) where {T} =
T >: Missing ? Base.Broadcast.broadcasted(==, A.refs, 0) :
Base.Broadcast.broadcasted(_ -> false, A)
Base.Broadcast.broadcasted(_ -> false, A.refs)

Base.Broadcast.broadcasted(::typeof(!ismissing), A::CategoricalArray{T}) where {T} =
T >: Missing ? Base.Broadcast.broadcasted(>, A.refs, 0) :
Base.Broadcast.broadcasted(_ -> true, A.refs)
7 changes: 6 additions & 1 deletion src/subarray.jl
Expand Up @@ -30,4 +30,9 @@ Base.fill!(A::SubArray{<:Any, <:Any, <:CategoricalArray{>:Missing}}, ::Missing)
Base.Broadcast.broadcasted(::typeof(ismissing),
A::SubArray{<:Any, <:Any, <:CategoricalArray{T}}) where {T} =
T >: Missing ? Base.Broadcast.broadcasted(==, refs(A), 0) :
Base.Broadcast.broadcasted(_ -> false, A)
Base.Broadcast.broadcasted(_ -> false, refs(A))

Base.Broadcast.broadcasted(::typeof(!ismissing),
A::SubArray{<:Any, <:Any, <:CategoricalArray{T}}) where {T} =
T >: Missing ? Base.Broadcast.broadcasted(>, refs(A), 0) :
Base.Broadcast.broadcasted(_ -> true, refs(A))
4 changes: 4 additions & 0 deletions test/13_arraycommon.jl
Expand Up @@ -1212,10 +1212,14 @@ end
x = categorical([1, missing, 3, 4, missing])
@test ismissing.(x) == [false, true, false, false, true]
@test ismissing.(view(x, 2:4)) == [true, false, false]
@test (!ismissing).(x) == [true, false, true, true, false]
@test (!ismissing).(view(x, 2:4)) == [false, true, true]

x = categorical([1, 0, 3, 4, 0])
@test ismissing.(x) == [false, false, false, false, false]
@test ismissing.(view(x, 2:4)) == [false, false, false]
@test (!ismissing).(x) == [true, true, true, true, true]
@test (!ismissing).(view(x, 2:4)) == [true, true, true]
end

end

0 comments on commit 1413217

Please sign in to comment.