Skip to content

Commit a5acb08

Browse files
committed
enable make([Array], ...) shortcut, without "Array"
1 parent 6a33e48 commit a5acb08

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

src/sampling.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,16 @@ find_type(A::Type{Array{T,N}}, _, ::Dims{N}) where {T, N} = Array{T, N}
370370
find_type(A::Type{Array{T,N} where T}, X, ::Dims{N}) where {N} = Array{val_gentype(X), N}
371371
find_type(A::Type{Array}, X, ::Dims{N}) where {N} = Array{val_gentype(X), N}
372372

373+
# special shortcut
374+
375+
make(X, dims::Dims) = make(Array, X, dims)
376+
make(X, d1::Integer, dims::Integer...) = make(Array, X, Dims(tuple(d1, dims...)))
377+
make(::Type{X}, dims::Dims) where {X} = make(Array, X, dims)
378+
make(::Type{X}, d1::Integer, dims::Integer...) where {X} = make(Array, X, Dims(tuple(d1, dims...)))
379+
make( dims::Integer...) = make(Array, default_sampling(Array), Dims(dims))
380+
381+
# omitted: make(dims::Dims)
382+
# for the same reason that rand(dims::Dims) doesn't produce an array, i.e. it produces a scalar picked from the tuple
373383

374384
#### BitArray
375385

test/runtests.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,26 @@ end
416416

417417
@test rand(make(Array, spString, 9)) isa Array{String}
418418
@test rand(make(BitArray, Sampler(MersenneTwister, [0, 0, 0, 1]), 9)) isa BitArray
419+
420+
for dims = ((), (2, 3), (0x2, 3), (2,), (0x2,)),
421+
s = ([], [Int], [1:3])
422+
423+
T = s == [] ? Float64 : Int
424+
if dims != ()
425+
a = rand(make(s..., dims...))
426+
@test a isa Array{T,length(dims)}
427+
if s == [1:3]
428+
@test all(in(1:3), a)
429+
end
430+
end
431+
if s != [] && dims isa Dims
432+
a = rand(make(s..., dims))
433+
@test a isa Array{T,length(dims)}
434+
if s == [1:3]
435+
@test all(in(1:3), a)
436+
end
437+
end
438+
end
419439
end
420440

421441
@testset "rand(make(Sparse...))" begin

0 commit comments

Comments
 (0)