diff --git a/stdlib/LinearAlgebra/src/adjtrans.jl b/stdlib/LinearAlgebra/src/adjtrans.jl index 3df9e3e151f25..09f5cfa76cc24 100644 --- a/stdlib/LinearAlgebra/src/adjtrans.jl +++ b/stdlib/LinearAlgebra/src/adjtrans.jl @@ -324,7 +324,7 @@ axes(A::AdjOrTrans) = reverse(axes(A.parent)) length(A::AdjOrTrans) = length(A.parent) size(v::AdjOrTransAbsVec) = (1, length(v.parent)) size(A::AdjOrTransAbsMat) = reverse(size(A.parent)) -axes(v::AdjOrTransAbsVec) = (Base.OneTo(1), axes(v.parent)...) +axes(v::AdjOrTransAbsVec) = (axes(v.parent,2), axes(v.parent)...) axes(A::AdjOrTransAbsMat) = reverse(axes(A.parent)) IndexStyle(::Type{<:AdjOrTransAbsVec}) = IndexLinear() IndexStyle(::Type{<:AdjOrTransAbsMat}) = IndexCartesian() diff --git a/stdlib/LinearAlgebra/test/adjtrans.jl b/stdlib/LinearAlgebra/test/adjtrans.jl index ccd93c97d440e..2c533af37f912 100644 --- a/stdlib/LinearAlgebra/test/adjtrans.jl +++ b/stdlib/LinearAlgebra/test/adjtrans.jl @@ -6,6 +6,9 @@ using Test, LinearAlgebra const BASE_TEST_PATH = joinpath(Sys.BINDIR, "..", "share", "julia", "test") +isdefined(Main, :OffsetArrays) || @eval Main include(joinpath($(BASE_TEST_PATH), "testhelpers", "OffsetArrays.jl")) +using .Main.OffsetArrays + @testset "Adjoint and Transpose inner constructor basics" begin intvec, intmat = [1, 2], [1 2; 3 4] # Adjoint/Transpose eltype must match the type of the Adjoint/Transpose of the input eltype @@ -87,11 +90,15 @@ end @test size(Transpose(intvec)) == (1, length(intvec)) @test size(Transpose(intmat)) == reverse(size(intmat)) end - @testset "indices methods" begin + @testset "axes methods" begin @test axes(Adjoint(intvec)) == (Base.OneTo(1), Base.OneTo(length(intvec))) @test axes(Adjoint(intmat)) == reverse(axes(intmat)) @test axes(Transpose(intvec)) == (Base.OneTo(1), Base.OneTo(length(intvec))) @test axes(Transpose(intmat)) == reverse(axes(intmat)) + + A = OffsetArray([1,2], 2) + @test (@inferred axes(A')[2]) === axes(A,1) + @test (@inferred axes(A')[1]) === axes(A,2) end @testset "IndexStyle methods" begin @test IndexStyle(Adjoint(intvec)) == IndexLinear() diff --git a/test/offsetarray.jl b/test/offsetarray.jl index 7f415c9cc7337..e2924ac0a8ca4 100644 --- a/test/offsetarray.jl +++ b/test/offsetarray.jl @@ -403,7 +403,8 @@ v2 = copy(v) v = OffsetArray(v0, (-3,)) @test lastindex(v) == 1 @test v ≈ v -@test axes(v') === (Base.OneTo(1), OffsetArrays.IdOffsetRange(Base.OneTo(4), -3)) +@test (@inferred axes(v')[1]) === OffsetArrays.IdOffsetRange(Base.OneTo(1)) +@test (@inferred axes(v')[2]) === OffsetArrays.IdOffsetRange(Base.OneTo(4), -3) @test parent(v) == collect(v) rv = reverse(v) @test axes(rv) == axes(v)