@@ -321,79 +321,96 @@ f2(x) = x > 0.5
321
321
@test (0x1 ,0x1 ,0x1 ) === @inferred ntuple (Returns {UInt8} (1 ), Val (3 ))
322
322
end
323
323
324
- @testset " `reverse` and `reverse!` with `dims=$d `" for d in (Colon (), 1 , 2 )
325
- if d isa Colon || d == 1
326
- # Check for vectors.
327
- A = 1 : 12
328
- R = 12 : - 1 : 1
329
- B = @inferred reverse (A; dims= d)
330
- @test B == R
331
- @test B isa AbstractRange{eltype (A)}
332
- @test step (B) == - step (A)
333
- @test last (B) == first (A)
334
- @test first (B) == last (A)
335
- C = Array {eltype(A)} (undef, size (A))
336
- @test C === @inferred reverse! (copyto! (C, A); dims= d)
337
- @test C == R
338
- if d isa Colon
339
- @test R == @inferred reverse (A)
340
- @test C === @inferred reverse! (copyto! (C, A))
324
+ @testset " `reverse` and `reverse!`" begin
325
+ @testset " ... basic use" begin
326
+ @test reverse (" abcd" ) == " dcba"
327
+ r = 1 : 8
328
+ v = Array {Int} (undef, length (r))
329
+ @test reverse (r, 2 ) == [1 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ]
330
+ @test reverse (r, 3 , 6 ) == [1 ,2 ,6 ,5 ,4 ,3 ,7 ,8 ]
331
+ @test reverse (r; dims= :) === 8 : - 1 : 1
332
+ @test reverse (r; dims= 1 ) === 8 : - 1 : 1
333
+ @test reverse (copyto! (v, r); dims= :) == 8 : - 1 : 1
334
+ @test_throws ArgumentError reverse (r; dims= 0 )
335
+ @test v === reverse! (copyto! (v, r), 2 ) && v == [1 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ]
336
+ @test v === reverse! (copyto! (v, r), 3 , 6 ) && v == [1 ,2 ,6 ,5 ,4 ,3 ,7 ,8 ]
337
+ @test v === reverse! (copyto! (v, r); dims= :) && v == [8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 ]
338
+ @test_throws ArgumentError reverse! (v; dims= 0 )
339
+ end
340
+ @testset " ... with `dims=$d `" for d in (Colon (), 1 , 2 )
341
+ if d isa Colon || d == 1
342
+ # Check for vectors.
343
+ A = 1 : 12
344
+ R = 12 : - 1 : 1
345
+ B = @inferred reverse (A; dims= d)
346
+ @test B == R
347
+ @test B isa AbstractRange{eltype (A)}
348
+ @test step (B) == - step (A)
349
+ @test last (B) == first (A)
350
+ @test first (B) == last (A)
351
+ C = Array {eltype(A)} (undef, size (A))
352
+ @test C === @inferred reverse! (copyto! (C, A); dims= d)
341
353
@test C == R
342
- end
343
- A = - 2 : 3 : 7
344
- R = 7 : - 3 : - 2
345
- B = @inferred reverse (A; dims = d)
346
- @test B == R
347
- @test B isa AbstractRange{ eltype (A)}
348
- @test step (B) == - step (A)
349
- @test last (B) == first (A )
350
- @test first (B) == last (A)
351
- C = Array {eltype(A)} (undef, size (A))
352
- @test C === @inferred reverse! ( copyto! (C, A); dims = d )
353
- @test C == R
354
- if d isa Colon
355
- @test R == @inferred reverse (A )
356
- @test C === @inferred reverse! (copyto! (C, A))
354
+ if d isa Colon
355
+ @test R == @inferred reverse (A)
356
+ @test C === @inferred reverse! ( copyto! (C, A))
357
+ @test C == R
358
+ end
359
+ A = - 2 : 3 : 7
360
+ R = 7 : - 3 : - 2
361
+ B = @inferred reverse (A; dims = d )
362
+ @test B == R
363
+ @test B isa AbstractRange {eltype (A)}
364
+ @test step (B) == - step (A )
365
+ @test last (B) == first (A)
366
+ @test first (B) == last (A)
367
+ C = Array {eltype(A)} (undef, size (A) )
368
+ @test C === @inferred reverse! (copyto! (C, A); dims = d )
357
369
@test C == R
370
+ if d isa Colon
371
+ @test R == @inferred reverse (A)
372
+ @test C === @inferred reverse! (copyto! (C, A))
373
+ @test C == R
374
+ end
358
375
end
359
- end
360
- if d isa Colon || d ≤ 2
361
- # Check for 2-dimensional arrays.
362
- A = reshape (1 : 12 , 3 ,4 )
363
- R = d isa Colon ? reshape (12 : - 1 : 1 , size (A)) : Base. reverse (A; dims= d)
364
- C = Array {eltype(A)} (undef, size (A))
365
- @test R == @inferred reverse (A; dims= d)
366
- @test C === @inferred reverse! (copyto! (C, A); dims= d)
367
- @test C == R
368
- if d isa Colon
369
- @test R == @inferred reverse (A)
370
- @test C === @inferred reverse! (copyto! (C, A))
376
+ if d isa Colon || d ≤ 2
377
+ # Check for 2-dimensional arrays.
378
+ A = reshape (1 : 12 , 3 ,4 )
379
+ R = d isa Colon ? reshape (12 : - 1 : 1 , size (A)) : Base. reverse (A; dims= d)
380
+ C = Array {eltype(A)} (undef, size (A))
381
+ @test R == @inferred reverse (A; dims= d)
382
+ @test C === @inferred reverse! (copyto! (C, A); dims= d)
371
383
@test C == R
372
- end
373
- A = reshape ( 1 : 12 , 4 , 3 )
374
- C = Array {eltype(A)} (undef, size ( A))
375
- R = d isa Colon ? reshape ( 12 : - 1 : 1 , size (A)) : Base . reverse (A; dims = d)
376
- @test R == @inferred reverse (A; dims = d)
377
- @test C === @inferred reverse! ( copyto! (C, A); dims = d )
378
- @test C == R
379
- if d isa Colon
380
- @test R == @inferred reverse (A)
381
- @test C === @inferred reverse! (copyto! (C, A))
384
+ if d isa Colon
385
+ @test R == @inferred reverse (A )
386
+ @test C === @inferred reverse! ( copyto! (C, A))
387
+ @test C == R
388
+ end
389
+ A = reshape ( 1 : 12 , 4 , 3 )
390
+ C = Array {eltype(A)} (undef, size (A))
391
+ R = d isa Colon ? reshape ( 12 : - 1 : 1 , size (A)) : Base . reverse (A; dims = d)
392
+ @test R == @inferred reverse (A; dims = d )
393
+ @test C === @inferred reverse! (copyto! (C, A); dims = d )
382
394
@test C == R
395
+ if d isa Colon
396
+ @test R == @inferred reverse (A)
397
+ @test C === @inferred reverse! (copyto! (C, A))
398
+ @test C == R
399
+ end
383
400
end
384
- end
385
- if d isa Colon || d ≤ 3
386
- # Check for 3-dimensional arrays.
387
- A = reshape (- 4 : 5 : 111 , 2 ,3 ,4 )
388
- R = d isa Colon ? reshape (111 : - 5 : - 4 , size (A)) : Base. reverse (A; dims= d)
389
- C = Array {eltype(A)} (undef, size (A))
390
- @test R == @inferred reverse (A; dims= d)
391
- @test C === @inferred reverse! (copyto! (C, A); dims= d)
392
- @test C == R
393
- if d isa Colon
394
- @test R == @inferred reverse (A)
395
- @test C === @inferred reverse! (copyto! (C, A))
401
+ if d isa Colon || d ≤ 3
402
+ # Check for 3-dimensional arrays.
403
+ A = reshape (- 4 : 5 : 111 , 2 ,3 ,4 )
404
+ R = d isa Colon ? reshape (111 : - 5 : - 4 , size (A)) : Base. reverse (A; dims= d)
405
+ C = Array {eltype(A)} (undef, size (A))
406
+ @test R == @inferred reverse (A; dims= d)
407
+ @test C === @inferred reverse! (copyto! (C, A); dims= d)
396
408
@test C == R
409
+ if d isa Colon
410
+ @test R == @inferred reverse (A)
411
+ @test C === @inferred reverse! (copyto! (C, A))
412
+ @test C == R
413
+ end
397
414
end
398
415
end
399
416
end
0 commit comments