@@ -37,66 +37,109 @@ import StaticArrays.arithmetic_closure
37
37
end
38
38
39
39
@testset " ones()" begin
40
- for T in (SVector, MVector, SizedVector)
41
- m = @inferred ones (T{3 , Float64})
40
+ for SA in (SVector, MVector, SizedVector)
41
+ # Float64
42
+ m = @inferred ones (SA{3 , Float64})
42
43
@test m == [1.0 , 1.0 , 1.0 ]
43
- @test m isa T{3 , Float64}
44
- m = @inferred ones (T{3 , Int})
44
+ @test m isa SA{3 , Float64}
45
+ # Int
46
+ m = @inferred ones (SA{3 , Int})
45
47
@test m == [1 , 1 , 1 ]
46
- @test m isa T{3 , Int}
47
- m = @inferred ones (T{3 })
48
+ @test m isa SA{3 , Int}
49
+ # Unspecified
50
+ m = @inferred ones (SA{3 })
48
51
@test m == [1.0 , 1.0 , 1.0 ]
49
- @test m isa T{3 }
50
- m = @inferred ones (T{0 , Float64})
52
+ @test m isa SA{3 }
53
+ # Float64
54
+ m = @inferred ones (SA{0 , Float64})
51
55
@test m == Float64[]
52
- @test m isa T{0 , Float64}
53
- m = @inferred ones (T{0 , Int})
56
+ @test m isa SA{0 , Float64}
57
+ # Int
58
+ m = @inferred ones (SA{0 , Int})
54
59
@test m == Int[]
55
- @test m isa T{0 , Int}
56
- m = @inferred ones (T{0 })
60
+ @test m isa SA{0 , Int}
61
+ # Unspecified
62
+ m = @inferred ones (SA{0 })
57
63
@test m == Float64[]
58
- @test m isa T{0 }
64
+ @test m isa SA{0 }
65
+ # Any
66
+ @test_throws MethodError ones (SA{3 , Any})
67
+ @test ones (SA{0 , Any}) isa SA{0 , Any}
59
68
end
60
69
end
61
70
62
71
@testset " zero()" begin
63
- for T in (SVector, MVector, SizedVector)
64
- m = @inferred zero (T{3 , Float64})
72
+ for SA in (SVector, MVector, SizedVector)
73
+ # Float64
74
+ m = @inferred zero (SA{3 , Float64})
65
75
@test m == [0.0 , 0.0 , 0.0 ]
66
- @test m isa T{3 , Float64}
67
- m = @inferred zero (T{3 , Int})
76
+ @test m isa SA{3 , Float64}
77
+ # Int
78
+ m = @inferred zero (SA{3 , Int})
68
79
@test m == [0 , 0 , 0 ]
69
- @test m isa T{3 , Int}
70
- m = @inferred zero (T{3 })
80
+ @test m isa SA{3 , Int}
81
+ # Unspecified
82
+ m = @inferred zero (SA{3 })
71
83
@test m == [0.0 , 0.0 , 0.0 ]
72
- @test m isa T{3 }
73
- m = @inferred zero (T{0 , Float64})
84
+ @test m isa SA{3 }
85
+ # Float64 (zero-element)
86
+ m = @inferred zero (SA{0 , Float64})
74
87
@test m == Float64[]
75
- @test m isa T{0 , Float64}
76
- m = @inferred zero (T{0 , Int})
88
+ @test m isa SA{0 , Float64}
89
+ # Int (zero-element)
90
+ m = @inferred zero (SA{0 , Int})
77
91
@test m == Int[]
78
- @test m isa T{0 , Int}
79
- m = @inferred zero (T{0 })
92
+ @test m isa SA{0 , Int}
93
+ # Unspecified (zero-element)
94
+ m = @inferred zero (SA{0 })
80
95
@test m == Float64[]
81
- @test m isa T{0 }
96
+ @test m isa SA{0 }
97
+ # Any
98
+ @test_throws MethodError zeros (SA{3 , Any})
99
+ @test zeros (SA{0 , Any}) isa SA{0 , Any}
82
100
end
83
101
end
84
102
85
103
@testset " fill()" begin
86
104
@test @allocated (fill (0. , SMatrix{1 , 16 , Float64})) == 0 # #81
87
105
@test @allocated (fill (0. , SMatrix{0 , 5 , Float64})) == 0
88
106
89
- for T in (SMatrix, MMatrix, SizedMatrix)
90
- m = @inferred (fill (3. , T{4 , 16 , Float64}))
91
- @test m isa T{4 , 16 , Float64}
92
- @test all (m .== 3. )
93
- m = @inferred (fill (3. , T{0 , 5 , Float64}))
94
- @test m isa T{0 , 5 , Float64}
95
- m = @inferred (fill (3 , T{4 , 16 , Float64}))
96
- @test m isa T{4 , 16 , Float64}
97
- @test all (m .== 3. )
98
- m = @inferred (fill (3 , T{0 , 5 , Float64}))
99
- @test m isa T{0 , 5 , Float64}
107
+ for SA in (SMatrix, MMatrix, SizedMatrix)
108
+ for T in (Float64, Int, Any)
109
+ # Float64 -> T
110
+ m = @inferred (fill (3.0 , SA{4 , 16 , T}))
111
+ @test m isa SA{4 , 16 , T}
112
+ @test all (m .== 3 )
113
+ # Float64 -> T (zero-element)
114
+ m = @inferred (fill (3.0 , SA{0 , 5 , T}))
115
+ @test m isa SA{0 , 5 , T}
116
+ @test all (m .== 3 )
117
+ # Int -> T
118
+ m = @inferred (fill (3 , SA{4 , 16 , T}))
119
+ @test m isa SA{4 , 16 , T}
120
+ @test all (m .== 3 )
121
+ # Int -> T (zero-element)
122
+ m = @inferred (fill (3 , SA{0 , 5 , T}))
123
+ @test m isa SA{0 , 5 , T}
124
+ @test all (m .== 3 )
125
+ end
126
+
127
+ # Float64 -> Unspecified
128
+ m = @inferred (fill (3.0 , SA{4 , 16 }))
129
+ @test m isa SA{4 , 16 , Float64}
130
+ @test all (m .== 3 )
131
+ # Float64 -> Unspecified (zero-element)
132
+ m = @inferred (fill (3.0 , SA{0 , 5 }))
133
+ @test m isa SA{0 , 5 , Float64}
134
+ @test all (m .== 3 )
135
+ # Int -> Unspecified
136
+ m = @inferred (fill (3 , SA{4 , 16 }))
137
+ @test m isa SA{4 , 16 , Int}
138
+ @test all (m .== 3 )
139
+ # Int -> Unspecified (zero-element)
140
+ m = @inferred (fill (3 , SA{0 , 5 }))
141
+ @test m isa SA{0 , 5 , Int}
142
+ @test all (m .== 3 )
100
143
end
101
144
end
102
145
@@ -119,21 +162,21 @@ import StaticArrays.arithmetic_closure
119
162
m = rand (1 : 1 , SVector{3 })
120
163
@test rand (m) == 1
121
164
122
- for T in (SVector, MVector, SizedVector)
123
- v1 = rand (T {3 })
124
- @test v1 isa T {3 , Float64}
165
+ for SA in (SVector, MVector, SizedVector)
166
+ v1 = rand (SA {3 })
167
+ @test v1 isa SA {3 , Float64}
125
168
@test all (0 .< v1 .< 1 )
126
169
127
- v2 = rand (T {0 })
128
- @test v2 isa T {0 , Float64}
170
+ v2 = rand (SA {0 })
171
+ @test v2 isa SA {0 , Float64}
129
172
@test all (0 .< v2 .< 1 )
130
173
131
- v3 = rand (T {3 , Float32})
132
- @test v3 isa T {3 , Float32}
174
+ v3 = rand (SA {3 , Float32})
175
+ @test v3 isa SA {3 , Float32}
133
176
@test all (0 .< v3 .< 1 )
134
177
135
- v4 = rand (T {0 , Float32})
136
- @test v4 isa T {0 , Float32}
178
+ v4 = rand (SA {0 , Float32})
179
+ @test v4 isa SA {0 , Float32}
137
180
@test all (0 .< v4 .< 1 )
138
181
end
139
182
end
@@ -148,105 +191,105 @@ import StaticArrays.arithmetic_closure
148
191
check = ((m .>= 1 ) .& (m .<= 2 ))
149
192
@test all (check)
150
193
151
- for T in (MVector, SizedVector)
152
- v1 = rand (T {3 })
194
+ for SA in (MVector, SizedVector)
195
+ v1 = rand (SA {3 })
153
196
rand! (v1)
154
- @test v1 isa T {3 , Float64}
197
+ @test v1 isa SA {3 , Float64}
155
198
@test all (0 .< v1 .< 1 )
156
199
157
- v2 = rand (T {0 })
200
+ v2 = rand (SA {0 })
158
201
rand! (v2)
159
- @test v2 isa T {0 , Float64}
202
+ @test v2 isa SA {0 , Float64}
160
203
@test all (0 .< v2 .< 1 )
161
204
162
- v3 = rand (T {3 , Float32})
205
+ v3 = rand (SA {3 , Float32})
163
206
rand! (v3)
164
- @test v3 isa T {3 , Float32}
207
+ @test v3 isa SA {3 , Float32}
165
208
@test all (0 .< v3 .< 1 )
166
209
167
- v4 = rand (T {0 , Float32})
210
+ v4 = rand (SA {0 , Float32})
168
211
rand! (v4)
169
- @test v4 isa T {0 , Float32}
212
+ @test v4 isa SA {0 , Float32}
170
213
@test all (0 .< v4 .< 1 )
171
214
end
172
215
end
173
216
174
217
@testset " randn()" begin
175
- for T in (SVector, MVector, SizedVector)
176
- v1 = randn (T {3 })
177
- @test v1 isa T {3 , Float64}
218
+ for SA in (SVector, MVector, SizedVector)
219
+ v1 = randn (SA {3 })
220
+ @test v1 isa SA {3 , Float64}
178
221
179
- v2 = randn (T {0 })
180
- @test v2 isa T {0 , Float64}
222
+ v2 = randn (SA {0 })
223
+ @test v2 isa SA {0 , Float64}
181
224
182
- v3 = randn (T {3 , Float32})
183
- @test v3 isa T {3 , Float32}
225
+ v3 = randn (SA {3 , Float32})
226
+ @test v3 isa SA {3 , Float32}
184
227
185
- v4 = randn (T {0 , Float32})
186
- @test v4 isa T {0 , Float32}
228
+ v4 = randn (SA {0 , Float32})
229
+ @test v4 isa SA {0 , Float32}
187
230
end
188
231
end
189
232
190
233
@testset " randn!()" begin
191
- for T in (MVector, SizedVector)
192
- v1 = randn (T {3 })
234
+ for SA in (MVector, SizedVector)
235
+ v1 = randn (SA {3 })
193
236
randn! (v1)
194
- @test v1 isa T {3 , Float64}
237
+ @test v1 isa SA {3 , Float64}
195
238
196
- v2 = randn (T {0 })
239
+ v2 = randn (SA {0 })
197
240
randn! (v2)
198
- @test v2 isa T {0 , Float64}
241
+ @test v2 isa SA {0 , Float64}
199
242
200
- v3 = randn (T {3 , Float32})
243
+ v3 = randn (SA {3 , Float32})
201
244
randn! (v3)
202
- @test v3 isa T {3 , Float32}
245
+ @test v3 isa SA {3 , Float32}
203
246
204
- v4 = randn (T {0 , Float32})
247
+ v4 = randn (SA {0 , Float32})
205
248
randn! (v4)
206
- @test v4 isa T {0 , Float32}
249
+ @test v4 isa SA {0 , Float32}
207
250
end
208
251
end
209
252
210
253
@testset " randexp()" begin
211
- for T in (SVector, MVector, SizedVector)
212
- v1 = randexp (T {3 })
213
- @test v1 isa T {3 , Float64}
254
+ for SA in (SVector, MVector, SizedVector)
255
+ v1 = randexp (SA {3 })
256
+ @test v1 isa SA {3 , Float64}
214
257
@test all (0 .< v1)
215
258
216
- v2 = randexp (T {0 })
217
- @test v2 isa T {0 , Float64}
259
+ v2 = randexp (SA {0 })
260
+ @test v2 isa SA {0 , Float64}
218
261
@test all (0 .< v2)
219
262
220
- v3 = randexp (T {3 , Float32})
221
- @test v3 isa T {3 , Float32}
263
+ v3 = randexp (SA {3 , Float32})
264
+ @test v3 isa SA {3 , Float32}
222
265
@test all (0 .< v3)
223
266
224
- v4 = randexp (T {0 , Float32})
225
- @test v4 isa T {0 , Float32}
267
+ v4 = randexp (SA {0 , Float32})
268
+ @test v4 isa SA {0 , Float32}
226
269
@test all (0 .< v4)
227
270
end
228
271
end
229
272
230
273
@testset " randexp!()" begin
231
- for T in (MVector, SizedVector)
232
- v1 = randexp (T {3 })
274
+ for SA in (MVector, SizedVector)
275
+ v1 = randexp (SA {3 })
233
276
randexp! (v1)
234
- @test v1 isa T {3 , Float64}
277
+ @test v1 isa SA {3 , Float64}
235
278
@test all (0 .< v1)
236
279
237
- v2 = randexp (T {0 })
280
+ v2 = randexp (SA {0 })
238
281
randexp! (v2)
239
- @test v2 isa T {0 , Float64}
282
+ @test v2 isa SA {0 , Float64}
240
283
@test all (0 .< v2)
241
284
242
- v3 = randexp (T {3 , Float32})
285
+ v3 = randexp (SA {3 , Float32})
243
286
randexp! (v3)
244
- @test v3 isa T {3 , Float32}
287
+ @test v3 isa SA {3 , Float32}
245
288
@test all (0 .< v3)
246
289
247
- v4 = randexp (T {0 , Float32})
290
+ v4 = randexp (SA {0 , Float32})
248
291
randexp! (v4)
249
- @test v4 isa T {0 , Float32}
292
+ @test v4 isa SA {0 , Float32}
250
293
@test all (0 .< v4)
251
294
end
252
295
end
0 commit comments