|
315 | 315 | end
|
316 | 316 | end
|
317 | 317 | end
|
| 318 | + |
| 319 | +@testset "instantiate with axes updated" begin |
| 320 | + f(a; ax = nothing) = Broadcast.Broadcasted{StaticArrays.StaticArrayStyle{ndims(a)}}(+,(a,),ax) |
| 321 | + a = @SArray zeros(2,2,2) |
| 322 | + ax = Base.OneTo(2), Base.OneTo(2), Base.OneTo(2) |
| 323 | + @test @inferred(Broadcast.instantiate(f(a; ax))).axes isa NTuple{3,SOneTo} |
| 324 | + ax = (ax..., Base.OneTo(2)) |
| 325 | + @test @inferred(Broadcast.instantiate(f(a; ax))).axes isa NTuple{4,Base.OneTo} |
| 326 | + ax = setindex(ax, Base.OneTo(1), 4) |
| 327 | + @test @inferred(Broadcast.instantiate(f(a; ax))).axes isa NTuple{4,Base.OneTo} |
| 328 | + a = @SArray zeros(2,1,2) |
| 329 | + ax = Base.OneTo(2), Base.OneTo(2), Base.OneTo(2) |
| 330 | + @test @inferred(Broadcast.instantiate(f(a; ax))).axes isa Tuple{SOneTo,Base.OneTo,SOneTo} |
| 331 | + @test_throws DimensionMismatch Broadcast.instantiate(f(a; ax = ax[1:2])) |
| 332 | + |
| 333 | + a = @SArray zeros(2,2,1) |
| 334 | + ax = Base.OneTo(2), Base.OneTo(2), Base.OneTo(2) |
| 335 | + @test @inferred(Broadcast.instantiate(f(a; ax))).axes isa Tuple{SOneTo,SOneTo,Base.OneTo} |
| 336 | + @test @inferred(Broadcast.instantiate(f(a; ax = ax[1:2]))).axes isa NTuple{2,SOneTo} |
| 337 | +end |
0 commit comments