|
48 | 48 | @testset "2x2 StaticMatrix with StaticVector" begin |
49 | 49 | m = @SMatrix [1 2; 3 4] |
50 | 50 | v = SVector(1, 4) |
51 | | - @test @inferred(broadcast(+, m, v)) === @SMatrix [2 3; 7 8] |
52 | | - @test @inferred(m .+ v) === @SMatrix [2 3; 7 8] |
53 | | - @test @inferred(v .+ m) === @SMatrix [2 3; 7 8] |
54 | | - @test @inferred(m .* v) === @SMatrix [1 2; 12 16] |
55 | | - @test @inferred(v .* m) === @SMatrix [1 2; 12 16] |
56 | | - @test @inferred(m ./ v) === @SMatrix [1 2; 3/4 1] |
57 | | - @test @inferred(v ./ m) === @SMatrix [1 1/2; 4/3 1] |
58 | | - @test @inferred(m .- v) === @SMatrix [0 1; -1 0] |
59 | | - @test @inferred(v .- m) === @SMatrix [0 -1; 1 0] |
60 | | - @test @inferred(m .^ v) === @SMatrix [1 2; 81 256] |
61 | | - @test @inferred(v .^ m) === @SMatrix [1 1; 64 256] |
62 | | - # Issue #546 |
63 | | - @test @inferred(m ./ (v .* v')) === @SMatrix [1.0 0.5; 0.75 0.25] |
64 | | - testinf(m, v) = m ./ (v .* v') |
65 | | - @test @inferred(testinf(m, v)) === @SMatrix [1.0 0.5; 0.75 0.25] |
| 51 | + vrep = @SMatrix [1 1; 4 4] |
| 52 | + for m in (m, Transpose(m), Adjoint(m), Diagonal(m), Symmetric(m, :U), Symmetric(m, :L), Hermitian(m, :U), Hermitian(m, :L), UpperTriangular(m), LowerTriangular(m), UnitUpperTriangular(m), UnitLowerTriangular(m)) |
| 53 | + @test @inferred(broadcast(+, m, v)) === map(+, m, vrep)::SMatrix |
| 54 | + @test @inferred(m .+ v) === map(+, m, vrep)::SMatrix |
| 55 | + @test @inferred(v .+ m) === map(+, vrep, m)::SMatrix |
| 56 | + @test @inferred(m .* v) === map(*, m, vrep)::SMatrix |
| 57 | + @test @inferred(v .* m) === map(*, vrep, m)::SMatrix |
| 58 | + @test @inferred(m ./ v) === map(/, m, vrep)::SMatrix |
| 59 | + @test @inferred(v ./ m) === map(/, vrep, m)::SMatrix |
| 60 | + @test @inferred(m .- v) === map(-, m, vrep)::SMatrix |
| 61 | + @test @inferred(v .- m) === map(-, vrep, m)::SMatrix |
| 62 | + @test @inferred(m .^ v) === map(^, m, vrep)::SMatrix |
| 63 | + @test @inferred(v .^ m) === map(^, vrep, m)::SMatrix |
| 64 | + # Issue #546 |
| 65 | + @test @inferred(m ./ (v .* v')) === map(/, m, v .* v')::SMatrix |
| 66 | + testinf(m, v) = m ./ (v .* v') |
| 67 | + @test @inferred(testinf(m, v)) === map(/, m, v .* v')::SMatrix |
| 68 | + end |
66 | 69 | end |
67 | 70 |
|
68 | 71 | @testset "2x2 StaticMatrix with 1x2 StaticMatrix" begin |
69 | 72 | # Issues #197, #242: broadcast between SArray and row-like SMatrix |
70 | 73 | m1 = @SMatrix [1 2; 3 4] |
71 | 74 | m2 = @SMatrix [1 4] |
72 | | - @test @inferred(broadcast(+, m1, m2)) === @SMatrix [2 6; 4 8] |
73 | | - @test @inferred(m1 .+ m2) === @SMatrix [2 6; 4 8] |
74 | | - @test @inferred(m2 .+ m1) === @SMatrix [2 6; 4 8] |
75 | | - @test @inferred(m1 .* m2) === @SMatrix [1 8; 3 16] |
76 | | - @test @inferred(m2 .* m1) === @SMatrix [1 8; 3 16] |
77 | | - @test @inferred(m1 ./ m2) === @SMatrix [1 1/2; 3 1] |
78 | | - @test @inferred(m2 ./ m1) === @SMatrix [1 2; 1/3 1] |
79 | | - @test @inferred(m1 .- m2) === @SMatrix [0 -2; 2 0] |
80 | | - @test @inferred(m2 .- m1) === @SMatrix [0 2; -2 0] |
81 | | - @test @inferred(m1 .^ m2) === @SMatrix [1 16; 3 256] |
| 75 | + m2rep = @SMatrix [1 4; 1 4] |
| 76 | + m1s = (m1, Transpose(m1), Adjoint(m1), Diagonal(m1), Symmetric(m1, :U), Symmetric(m1, :L), Hermitian(m1, :U), Hermitian(m1, :L), UpperTriangular(m1), LowerTriangular(m1), UnitUpperTriangular(m1), UnitLowerTriangular(m1)) |
| 77 | + for m1 in m1s |
| 78 | + @test @inferred(broadcast(+, m1, m2)) === map(+, m1, m2rep)::SMatrix |
| 79 | + @test @inferred(m1 .+ m2) === map(+, m1, m2rep)::SMatrix |
| 80 | + @test @inferred(m2 .+ m1) === map(+, m2rep, m1)::SMatrix |
| 81 | + @test @inferred(m1 .* m2) === map(*, m1, m2rep)::SMatrix |
| 82 | + @test @inferred(m2 .* m1) === map(*, m2rep, m1)::SMatrix |
| 83 | + @test @inferred(m1 ./ m2) === map(/, m1, m2rep)::SMatrix |
| 84 | + @test @inferred(m2 ./ m1) === map(/, m2rep, m1)::SMatrix |
| 85 | + @test @inferred(m1 .- m2) === map(-, m1, m2rep)::SMatrix |
| 86 | + @test @inferred(m2 .- m1) === map(-, m2rep, m1)::SMatrix |
| 87 | + @test @inferred(m1 .^ m2) === map(^, m1, m2rep)::SMatrix |
| 88 | + end |
82 | 89 | end |
83 | 90 |
|
84 | 91 | @testset "1x2 StaticMatrix with StaticVector" begin |
|
0 commit comments