Skip to content

Commit cd048eb

Browse files
authored
Tests for mul! scaling with mismatched axes (#1266)
Coverage suggested that these `generic_mul!` tests were missing.
2 parents 925acef + 26db4c8 commit cd048eb

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

test/generic.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@ end
167167
@test_throws DimensionMismatch mul!(similar(a), a, Diagonal(Vector{Float64}(undef, an+1)))
168168
@test mul!(similar(a), a, Diagonal(1.:an)) == a.*Vector(1:an)'
169169
@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
170176
end
171177

172178
@testset "Scaling with 5-argument mul!" begin
@@ -180,6 +186,20 @@ end
180186
@test mul!(copy(a), Diagonal([1; 2]), a, 10, 100) == 10a.*[1; 2] .+ 100a
181187
@test mul!(copy(a), a, Diagonal(1.:an), 10, 100) == 10a.*Vector(1:an)' .+ 100a
182188
@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
183203
end
184204
end
185205
end

0 commit comments

Comments
 (0)