|
167 | 167 | @test_throws DimensionMismatch mul!(similar(a), a, Diagonal(Vector{Float64}(undef, an+1)))
|
168 | 168 | @test mul!(similar(a), a, Diagonal(1.:an)) == a.*Vector(1:an)'
|
169 | 169 | @test mul!(similar(a), a, Diagonal(1:an)) == a.*Vector(1:an)'
|
| 170 | + |
| 171 | + @testset "different axes" begin |
| 172 | + O = OffsetArray(similar(a), ntuple(_->2, ndims(a))) |
| 173 | + @test mul!(O, a, 2) == OffsetArray(2a, axes(O)) |
| 174 | + @test mul!(O, 2, a) == OffsetArray(2a, axes(O)) |
| 175 | + end |
170 | 176 | end
|
171 | 177 |
|
172 | 178 | @testset "Scaling with 5-argument mul!" begin
|
|
180 | 186 | @test mul!(copy(a), Diagonal([1; 2]), a, 10, 100) == 10a.*[1; 2] .+ 100a
|
181 | 187 | @test mul!(copy(a), a, Diagonal(1.:an), 10, 100) == 10a.*Vector(1:an)' .+ 100a
|
182 | 188 | @test mul!(copy(a), a, Diagonal(1:an), 10, 100) == 10a.*Vector(1:an)' .+ 100a
|
| 189 | + |
| 190 | + @testset "different axes" begin |
| 191 | + if eltype(a) <: Number |
| 192 | + O = OffsetArray(ones(size(a)), ntuple(_->2, ndims(a))) |
| 193 | + @test mul!(copy(O), a, 2, 3, 4) == OffsetArray(6a .+ 4, axes(O)) |
| 194 | + @test mul!(copy(O), 2, a, 3, 4) == OffsetArray(6a .+ 4, axes(O)) |
| 195 | + @test mul!(copy(O), a, 2, 3, 0) == OffsetArray(6a, axes(O)) |
| 196 | + @test mul!(copy(O), 2, a, 3, 0) == OffsetArray(6a, axes(O)) |
| 197 | + @test mul!(copy(O), a, 2, 1, 4) == OffsetArray(2a .+ 4, axes(O)) |
| 198 | + @test mul!(copy(O), 2, a, 1, 4) == OffsetArray(2a .+ 4, axes(O)) |
| 199 | + @test mul!(copy(O), a, 2, 1, 0) == OffsetArray(2a, axes(O)) |
| 200 | + @test mul!(copy(O), 2, a, 1, 0) == OffsetArray(2a, axes(O)) |
| 201 | + end |
| 202 | + end |
183 | 203 | end
|
184 | 204 | end
|
185 | 205 | end
|
|
0 commit comments