Skip to content

Commit

Permalink
Merge pull request #17 from JuliaArrays/teh/travis
Browse files Browse the repository at this point in the history
Update CI scripts for 0.7/1.0
  • Loading branch information
timholy authored Aug 11, 2018
2 parents 926e76a + 09263c7 commit 6dcf489
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 41 deletions.
8 changes: 3 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,15 @@ os:
- linux
- osx
julia:
- 0.6
- 0.7
- 1.0
- nightly
notifications:
email: false
matrix:
allow_failures:
- julia: nightly
# uncomment the following lines to override the default test script
#script:
# - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi
# - julia -e 'Pkg.clone(pwd()); Pkg.build("IndirectArrays"); Pkg.test("IndirectArrays"; coverage=true)'
after_success:
# push coverage results to Codecov
- julia -e 'cd(Pkg.dir("IndirectArrays")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())'
- julia -e 'using Pkg, IndirectArrays; cd(joinpath(pathof(IndirectArrays), "..")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())'
2 changes: 1 addition & 1 deletion REQUIRE
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
julia 0.6
julia 0.7beta
Compat 0.53
40 changes: 24 additions & 16 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
environment:
matrix:
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe"
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe"
- JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe"
- JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe"
- julia_version: 0.7
- julia_version: 1
- julia_version: nightly

platform:
- x86 # 32-bit
- x64 # 64-bit

# # Uncomment the following lines to allow failures on nightly julia
# # (tests will run but not make your overall status red)
# matrix:
# allow_failures:
# - julia_version: latest

branches:
only:
Expand All @@ -17,19 +26,18 @@ notifications:
on_build_status_changed: false

install:
- ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12"
# Download most recent Julia Windows binary
- ps: (new-object net.webclient).DownloadFile(
$env:JULIA_URL,
"C:\projects\julia-binary.exe")
# Run installer silently, output to C:\projects\julia
- C:\projects\julia-binary.exe /S /D=C:\projects\julia
- ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/JuliaCI/Appveyor.jl/version-1/bin/install.ps1"))

build_script:
# Need to convert from shallow to complete for Pkg.clone to work
- IF EXIST .git\shallow (git fetch --unshallow)
- C:\projects\julia\bin\julia -e "versioninfo();
Pkg.clone(pwd(), \"IndirectArrays\"); Pkg.build(\"IndirectArrays\")"
- echo "%JL_BUILD_SCRIPT%"
- C:\julia\bin\julia -e "%JL_BUILD_SCRIPT%"

test_script:
- C:\projects\julia\bin\julia -e "Pkg.test(\"IndirectArrays\")"
- echo "%JL_TEST_SCRIPT%"
- C:\julia\bin\julia -e "%JL_TEST_SCRIPT%"

# # Uncomment to support code coverage upload. Should only be enabled for packages
# # which would have coverage gaps without running on Windows
# on_success:
# - echo "%JL_CODECOV_SCRIPT%"
# - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%"
22 changes: 4 additions & 18 deletions src/IndirectArrays.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ __precompile__(true)

module IndirectArrays

using Compat

export IndirectArray

"""
Expand All @@ -27,31 +25,19 @@ struct IndirectArray{T,N,A<:AbstractArray{<:Integer,N},V<:AbstractVector{T}} <:
end
Base.@propagate_inbounds IndirectArray(index::AbstractArray{<:Integer,N}, values::AbstractVector{T}) where {T,N} =
IndirectArray{T,N,typeof(index),typeof(values)}(index, values)
function (::Type{IndirectArray{T}})(A::AbstractArray) where {T}
function IndirectArray{T}(A::AbstractArray) where {T}
values = unique(A)
index = convert(Array{T}, indexin(A, values))
return IndirectArray(index, values)
end
IndirectArray(A::AbstractArray) = IndirectArray{UInt8}(A)

Base.size(A::IndirectArray) = size(A.index)
Base.indices(A::IndirectArray) = indices(A.index)
Base.axes(A::IndirectArray) = axes(A.index)
Base.IndexStyle(::Type{IndirectArray{T,N,A,V}}) where {T,N,A,V} = IndexStyle(A)

Base.copy(A::IndirectArray) = IndirectArray(copy(A.index), copy(A.values))

if VERSION < v"0.6.3"
# This method is only necessary because of a bug in Julia 0.6.2 and can be removed
# when we no longer support that version
@inline function Base.getindex(A::IndirectArray{<:Any,1}, i::Int)
@boundscheck checkbounds(A.index, i)
@inbounds idx = A.index[i]
@boundscheck checkbounds(A.values, idx)
@inbounds ret = A.values[idx]
ret
end
end

@inline function Base.getindex(A::IndirectArray, i::Int)
@boundscheck checkbounds(A.index, i)
@inbounds idx = A.index[i]
Expand All @@ -70,7 +56,7 @@ end

@inline function Base.setindex!(A::IndirectArray, x, i::Int)
@boundscheck checkbounds(A.index, i)
idx = Compat.findfirst(A.values, x)
idx = findfirst(isequal(x), A.values)
if idx == nothing
push!(A.values, x)
A.index[i] = length(A.values)
Expand All @@ -81,7 +67,7 @@ end
end

@inline function Base.push!(A::IndirectArray{T,1} where T, x)
idx = Compat.findfirst(A.values, x)
idx = findfirst(isequal(x), A.values)
if idx == nothing
push!(A.values, x)
push!(A.index, length(A.values))
Expand Down
2 changes: 1 addition & 1 deletion test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using IndirectArrays, MappedArrays
using Base.Test, FixedPointNumbers, Colors
using Test, FixedPointNumbers, Colors

colors = [RGB(1,0,0) RGB(0,1,0);
RGB(0,0,1) RGB(1,0,0)]
Expand Down

0 comments on commit 6dcf489

Please sign in to comment.