@@ -146,25 +146,29 @@ end
146
146
@test vvminimum ([0. ,- 0. ]) === - 0.0
147
147
@test vvminimum ([0. ,- 0. ,0. ]) === - 0.0
148
148
149
- @testset " minimum/maximum checks all elements" begin
149
+ @testset " minimum/maximum/extrema checks all elements" begin
150
150
for N in [2 : 20 ;150 ;300 ]
151
151
for i in 1 : N
152
152
arr = fill (0. , N)
153
153
truth = rand ()
154
154
arr[i] = truth
155
155
@test vvmaximum (arr) == truth
156
+ @test vvextrema (arr) == (0. , truth)
156
157
157
158
truth = - rand ()
158
159
arr[i] = truth
159
160
@test vvminimum (arr) == truth
161
+ @test vvextrema (arr) == (truth, 0. )
160
162
161
163
arr[i] = NaN
162
164
@test ! isnan (vvmaximum (arr)) # NaN not handled
163
165
@test ! isnan (vvminimum (arr)) # NaN not handled
166
+ @test all (! isnan, vvextrema (arr))
164
167
165
168
arr = zeros (N)
166
169
@test vvminimum (arr) === 0.0
167
170
@test vvmaximum (arr) === 0.0
171
+ @test vvextrema (arr) === (0.0 , 0.0 )
168
172
169
173
# arr[i] = -0.0
170
174
# @test vvminimum(arr) === 0.0 # opposite from base
173
177
arr = - zeros (N)
174
178
@test vvminimum (arr) === - 0.0
175
179
@test vvmaximum (arr) === - 0.0
180
+ @test vvextrema (arr) === (- 0.0 , - 0.0 )
176
181
# arr[i] = 0.0
177
182
# @test vvminimum(arr) === -0.0
178
183
# @test vvmaximum(arr) === -0.0 # opposite from base
@@ -183,15 +188,18 @@ end
183
188
@testset " maximum no out of bounds access #30462" begin
184
189
arr = fill (- Inf , 128 ,128 )
185
190
@test vvmaximum (arr) == - Inf
191
+ @test vvextrema (arr) == (- Inf , - Inf )
186
192
arr = fill (Inf , 128 ^ 2 )
187
193
@test vvminimum (arr) == Inf
194
+ @test vvextrema (arr) == (Inf , Inf )
188
195
for center in [256 , 1024 , 4096 , 128 ^ 2 ]
189
196
for offset in - 10 : 10
190
197
len = center + offset
191
198
x = randn ()
192
199
arr = fill (x, len)
193
200
@test vvmaximum (arr) === x
194
201
@test vvminimum (arr) === x
202
+ @test vvextrema (arr) === (x, x)
195
203
end
196
204
end
197
205
end
0 commit comments