|
1 |
| -# issue 191 |
2 | 1 | @testset "Broadcast sizes" begin
|
3 |
| - @test broadcast_sizes(1, 1, 1) === (Size(), Size(), Size()) |
| 2 | + @test @inferred(broadcast_sizes(1, 1, 1)) === (Size(), Size(), Size()) |
4 | 3 | for t in (SVector{2}, MVector{2}, SMatrix{2, 2}, MMatrix{2, 2})
|
5 |
| - @test broadcast_sizes(ones(t), ones(t), ones(t)) === (Size(t), Size(t), Size(t)) |
6 |
| - @test broadcast_sizes(ones(t), 1, ones(t)) === (Size(t), Size(), Size(t)) |
7 |
| - @test broadcast_sizes(1, ones(t), ones(t)) === (Size(), Size(t), Size(t)) |
8 |
| - @test broadcast_sizes(ones(t), ones(t), 1) === (Size(t), Size(t), Size()) |
9 |
| - @test broadcast_sizes(1, ones(t), 1) === (Size(), Size(t), Size()) |
10 |
| - @test broadcast_sizes(ones(t), 1, 1) === (Size(t), Size(), Size()) |
11 |
| - @test broadcast_sizes(1, 1, ones(t)) === (Size(), Size(), Size(t)) |
| 4 | + @test @inferred(broadcast_sizes(ones(t), ones(t), ones(t))) === (Size(t), Size(t), Size(t)) |
| 5 | + @test @inferred(broadcast_sizes(ones(t), 1, ones(t))) === (Size(t), Size(), Size(t)) |
| 6 | + @test @inferred(broadcast_sizes(1, ones(t), ones(t))) === (Size(), Size(t), Size(t)) |
| 7 | + @test @inferred(broadcast_sizes(ones(t), ones(t), 1)) === (Size(t), Size(t), Size()) |
| 8 | + @test @inferred(broadcast_sizes(1, ones(t), 1)) === (Size(), Size(t), Size()) |
| 9 | + @test @inferred(broadcast_sizes(ones(t), 1, 1)) === (Size(t), Size(), Size()) |
| 10 | + @test @inferred(broadcast_sizes(1, 1, ones(t))) === (Size(), Size(), Size(t)) |
12 | 11 | end
|
13 |
| - @test broadcast((a,b,c)->0, SVector(1,1), 0, 0) == SVector(0, 0) |
| 12 | + # test case issue #191 |
| 13 | + @test @inferred(broadcast((a, b, c) -> 0, SVector(1, 1), 0, 0)) == SVector(0, 0) |
14 | 14 | end
|
15 | 15 |
|
16 | 16 | @testset "Broadcast" begin
|
|
41 | 41 | @testset "2x2 StaticMatrix with 1x2 StaticMatrix" begin
|
42 | 42 | m1 = @SMatrix [1 2; 3 4]
|
43 | 43 | m2 = @SMatrix [1 4]
|
44 |
| - # @test @inferred(broadcast(+, m1, m2)) === @SMatrix [2 6; 4 8] #197 |
45 |
| - # @test @inferred(m1 .+ m2) === @SMatrix [2 6; 4 8] #197 |
| 44 | + @test_broken @inferred(broadcast(+, m1, m2)) === @SMatrix [2 6; 4 8] #197 |
| 45 | + @test_broken @inferred(m1 .+ m2) === @SMatrix [2 6; 4 8] #197 |
46 | 46 | @test @inferred(m2 .+ m1) === @SMatrix [2 6; 4 8]
|
47 |
| - # @test @inferred(m1 .* m2) === @SMatrix [1 8; 3 16] #197 |
| 47 | + @test_broken @inferred(m1 .* m2) === @SMatrix [1 8; 3 16] #197 |
48 | 48 | @test @inferred(m2 .* m1) === @SMatrix [1 8; 3 16]
|
49 |
| - # @test @inferred(m1 ./ m2) === @SMatrix [1 1/2; 3 1] #197 |
| 49 | + @test_broken @inferred(m1 ./ m2) === @SMatrix [1 1/2; 3 1] #197 |
50 | 50 | @test @inferred(m2 ./ m1) === @SMatrix [1 2; 1/3 1]
|
51 |
| - # @test @inferred(m1 .- m2) === @SMatrix [0 -2; 2 0] #197 |
| 51 | + @test_broken @inferred(m1 .- m2) === @SMatrix [0 -2; 2 0] #197 |
52 | 52 | @test @inferred(m2 .- m1) === @SMatrix [0 2; -2 0]
|
53 |
| - # @test @inferred(m1 .^ m2) === @SMatrix [1 16; 1 256] #197 |
| 53 | + @test_broken @inferred(m1 .^ m2) === @SMatrix [1 16; 1 256] #197 |
54 | 54 | end
|
55 | 55 |
|
56 | 56 | @testset "1x2 StaticMatrix with StaticVector" begin
|
57 | 57 | m = @SMatrix [1 2]
|
58 | 58 | v = SVector(1, 4)
|
59 | 59 | @test @inferred(broadcast(+, m, v)) === @SMatrix [2 3; 5 6]
|
60 | 60 | @test @inferred(m .+ v) === @SMatrix [2 3; 5 6]
|
61 |
| - # @test @inferred(v .+ m) === @SMatrix [2 3; 5 6] #197 |
| 61 | + @test_broken @inferred(v .+ m) === @SMatrix [2 3; 5 6] #197 |
62 | 62 | @test @inferred(m .* v) === @SMatrix [1 2; 4 8]
|
63 |
| - # @test @inferred(v .* m) === @SMatrix [1 2; 4 8] #197 |
| 63 | + @test_broken @inferred(v .* m) === @SMatrix [1 2; 4 8] #197 |
64 | 64 | @test @inferred(m ./ v) === @SMatrix [1 2; 1/4 1/2]
|
65 |
| - # @test @inferred(v ./ m) === @SMatrix [1 1/2; 4 2] #197 |
| 65 | + @test_broken @inferred(v ./ m) === @SMatrix [1 1/2; 4 2] #197 |
66 | 66 | @test @inferred(m .- v) === @SMatrix [0 1; -3 -2]
|
67 |
| - # @test @inferred(v .- m) === @SMatrix [0 -1; 3 2] #197 |
| 67 | + @test_broken @inferred(v .- m) === @SMatrix [0 -1; 3 2] #197 |
68 | 68 | @test @inferred(m .^ v) === @SMatrix [1 2; 1 16]
|
69 |
| - # @test @inferred(v .^ m) === @SMatrix [1 1; 4 16] #197 |
| 69 | + @test_broken @inferred(v .^ m) === @SMatrix [1 1; 4 16] #197 |
70 | 70 | end
|
71 | 71 |
|
72 | 72 | @testset "StaticVector with StaticVector" begin
|
|
85 | 85 | @test @inferred(v2 .^ v1) === SVector(1, 16)
|
86 | 86 | # test case issue #199
|
87 | 87 | @test @inferred(SVector(1) .+ SVector()) === SVector()
|
88 |
| - # @test @inferred(SVector() .+ SVector(1)) === SVector() |
| 88 | + @test_broken @inferred(SVector() .+ SVector(1)) === SVector() |
89 | 89 | # test case issue #200
|
90 |
| - # @test @inferred(v1 .+ v2') === @SMatrix [2 5; 3 5] # issue |
| 90 | + @test_broken @inferred(v1 .+ v2') === @SMatrix [2 5; 3 5] |
91 | 91 | end
|
92 | 92 |
|
93 | 93 | @testset "StaticVector with Scalar" begin
|
@@ -115,41 +115,26 @@ end
|
115 | 115 | A = @MMatrix([1 0]); @test @inferred(broadcast!(+, A, A, 2)) == @MMatrix [3 2]
|
116 | 116 | end
|
117 | 117 |
|
118 |
| - @testset "f.(args...) syntax" begin |
119 |
| - x = SVector(1, 3.2, 4.7) |
120 |
| - y = SVector(3.5, pi, 1e-4) |
121 |
| - α = 0.2342 |
122 |
| - @test sin.(x) === broadcast(sin, x) |
123 |
| - @test sin.(α) === broadcast(sin, α) |
124 |
| - @test sin.(3.2) === broadcast(sin, 3.2) == sin(3.2) |
125 |
| - @test factorial.(3) === broadcast(factorial, 3) |
126 |
| - @test atan2.(x, y) === broadcast(atan2, x, y) |
127 |
| - # test case issue #200 |
128 |
| - # @test atan2.(x, y') === broadcast(atan2, x, y') |
129 |
| - @test atan2.(x, α) === broadcast(atan2, x, α) |
130 |
| - @test atan2.(α, y') === broadcast(atan2, α, y') |
131 |
| - end |
132 |
| - |
133 | 118 | @testset "eltype after broadcast" begin
|
134 | 119 | # test cases issue #198
|
135 |
| - # let a = SVector{4, Number}(2, 2.0, 4//2, 2+0im) |
136 |
| - # @test eltype(a + 2) == Number |
137 |
| - # @test eltype(a - 2) == Number |
138 |
| - # @test eltype(a * 2) == Number |
139 |
| - # @test eltype(a / 2) == Number |
140 |
| - # end |
141 |
| - # let a = SVector{3, Real}(2, 2.0, 4//2) |
142 |
| - # @test eltype(a + 2) == Real |
143 |
| - # @test eltype(a - 2) == Real |
144 |
| - # @test eltype(a * 2) == Real |
145 |
| - # @test eltype(a / 2) == Real |
146 |
| - # end |
147 |
| - # let a = SVector{3, Real}(2, 2.0, 4//2) |
148 |
| - # @test eltype(a + 2.0) == Float64 |
149 |
| - # @test eltype(a - 2.0) == Float64 |
150 |
| - # @test eltype(a * 2.0) == Float64 |
151 |
| - # @test eltype(a / 2.0) == Float64 |
152 |
| - # end |
| 120 | + let a = SVector{4, Number}(2, 2.0, 4//2, 2+0im) |
| 121 | + @test_broken eltype(a + 2) == Number |
| 122 | + @test_broken eltype(a - 2) == Number |
| 123 | + @test_broken eltype(a * 2) == Number |
| 124 | + @test_broken eltype(a / 2) == Number |
| 125 | + end |
| 126 | + let a = SVector{3, Real}(2, 2.0, 4//2) |
| 127 | + @test_broken eltype(a + 2) == Real |
| 128 | + @test_broken eltype(a - 2) == Real |
| 129 | + @test_broken eltype(a * 2) == Real |
| 130 | + @test_broken eltype(a / 2) == Real |
| 131 | + end |
| 132 | + let a = SVector{3, Real}(2, 2.0, 4//2) |
| 133 | + @test_broken eltype(a + 2.0) == Float64 |
| 134 | + @test_broken eltype(a - 2.0) == Float64 |
| 135 | + @test_broken eltype(a * 2.0) == Float64 |
| 136 | + @test_broken eltype(a / 2.0) == Float64 |
| 137 | + end |
153 | 138 | let a = broadcast(Float32, SVector(3, 4, 5))
|
154 | 139 | @test eltype(a) == Float32
|
155 | 140 | end
|
|
0 commit comments