|
308 | 308 | @test_throws ArgumentError dropdims(a, dims=4) |
309 | 309 | @test_throws ArgumentError dropdims(a, dims=6) |
310 | 310 |
|
| 311 | + |
| 312 | + a = rand(8, 7) |
| 313 | + @test @inferred(insertdims(a, dims=1)) == @inferred(insertdims(a, dims=(1,))) == reshape(a, (1, 8, 7)) |
| 314 | + @test @inferred(insertdims(a, dims=3)) == @inferred(insertdims(a, dims=(3,))) == reshape(a, (8, 7, 1)) |
| 315 | + @test @inferred(insertdims(a, dims=(1, 3))) == reshape(a, (1, 8, 1, 7)) |
| 316 | + @test @inferred(insertdims(a, dims=(1, 2, 3))) == reshape(a, (1, 1, 1, 8, 7)) |
| 317 | + @test @inferred(insertdims(a, dims=(1, 4))) == reshape(a, (1, 8, 7, 1)) |
| 318 | + @test @inferred(insertdims(a, dims=(1, 3, 5))) == reshape(a, (1, 8, 1, 7, 1)) |
| 319 | + @test @inferred(insertdims(a, dims=(1, 2, 4, 6))) == reshape(a, (1, 1, 8, 1, 7, 1)) |
| 320 | + @test @inferred(insertdims(a, dims=(1, 3, 4, 6))) == reshape(a, (1, 8, 1, 1, 7, 1)) |
| 321 | + @test @inferred(insertdims(a, dims=(1, 4, 6, 3))) == reshape(a, (1, 8, 1, 1, 7, 1)) |
| 322 | + @test @inferred(insertdims(a, dims=(1, 3, 5, 6))) == reshape(a, (1, 8, 1, 7, 1, 1)) |
| 323 | + |
| 324 | + @test_throws ArgumentError insertdims(a, dims=(1, 1, 2, 3)) |
| 325 | + @test_throws ArgumentError insertdims(a, dims=(1, 2, 2, 3)) |
| 326 | + @test_throws ArgumentError insertdims(a, dims=(1, 2, 3, 3)) |
| 327 | + @test_throws UndefKeywordError insertdims(a) |
| 328 | + @test_throws ArgumentError insertdims(a, dims=0) |
| 329 | + @test_throws ArgumentError insertdims(a, dims=(1, 2, 1)) |
| 330 | + @test_throws ArgumentError insertdims(a, dims=4) |
| 331 | + @test_throws ArgumentError insertdims(a, dims=6) |
| 332 | + |
| 333 | + # insertdims and dropdims are inverses |
| 334 | + b = rand(1,1,1,5,1,1,7) |
| 335 | + for dims in [1, (1,), 2, (2,), 3, (3,), (1,3), (1,2,3), (1,2), (1,3,5), (1,2,5,6), (1,3,5,6), (1,3,5,6), (1,6,5,3)] |
| 336 | + @test dropdims(insertdims(a; dims); dims) == a |
| 337 | + @test insertdims(dropdims(b; dims); dims) == b |
| 338 | + end |
| 339 | + |
311 | 340 | sz = (5,8,7) |
312 | 341 | A = reshape(1:prod(sz),sz...) |
313 | 342 | @test A[2:6] == [2:6;] |
|
0 commit comments