|
215 | 215 | @test ret == reshape([3.0], 1, 1) |
216 | 216 | @test y == reshape([1.0], 1, 1, 1) |
217 | 217 | end |
| 218 | + |
| 219 | +@testset "issue_318_neutral_element" begin |
| 220 | + a = rand(3) |
| 221 | + A = [rand(2, 2) for _ in 1:3] |
| 222 | + @test_throws DimensionMismatch MA.operate(LinearAlgebra.dot, a, A) |
| 223 | + y = a' * A |
| 224 | + @test isapprox(MA.fused_map_reduce(MA.add_mul, a', A), y) |
| 225 | + z = MA.operate(LinearAlgebra.dot, Int[], Int[]) |
| 226 | + @test iszero(z) && z isa Int |
| 227 | + z = MA.operate(LinearAlgebra.dot, BigInt[], Int[]) |
| 228 | + @test iszero(z) && z isa BigInt |
| 229 | + z = MA.operate(LinearAlgebra.dot, Int[], Float64[]) |
| 230 | + @test iszero(z) && z isa Float64 |
| 231 | + z = MA.operate(LinearAlgebra.dot, Matrix{Int}[], Matrix{Float64}[]) |
| 232 | + @test iszero(z) && z isa Float64 |
| 233 | + @test MA.fused_map_reduce(MA.add_mul, Matrix{Int}[], Float64[]) isa MA.Zero |
| 234 | + @test MA.fused_map_reduce(MA.add_mul, Float64[], Matrix{Int}[]) isa MA.Zero |
| 235 | +end |
0 commit comments