BlockArrays.jl icon indicating copy to clipboard operation
BlockArrays.jl copied to clipboard

Check dimensions match in PseudoBlockArray constructor

Open dlfivefifty opened this issue 4 years ago • 0 comments

This should throw an error:

julia>  PseudoBlockArray(randn(5), SVector(1,3))
2-blocked 4-element PseudoBlockVector{Float64, Vector{Float64}, Tuple{BlockedUnitRange{SVector{2, Int64}}}}:
  0.04726771128137562
 ────────────────────
 -1.4647247301327797 
 -0.44549682847156197
 -0.5779924141573399 

Note that

julia>  BlockArray(randn(5), SVector(1,3))
ERROR: DimensionMismatch("block size for dimension 1: [1, 3] does not sum to the array size: 5")
Stacktrace:
 [1] (BlockArray{Float64, N, R, BS} where {N, R<:(AbstractArray{var"#s4", N} where var"#s4"<:AbstractArray{Float64, N}), BS<:Tuple{Vararg{AbstractUnitRange{Int64}, N}}})(arr::Vector{Float64}, block_sizes::SVector{2, Int64})
   @ BlockArrays ~/Projects/BlockArrays.jl/src/blockarray.jl:168
 [2] BlockArray(arr::Vector{Float64}, block_sizes::SVector{2, Int64})
   @ BlockArrays ~/Projects/BlockArrays.jl/src/blockarray.jl:174
 [3] top-level scope
   @ REPL[5]:1

dlfivefifty avatar Aug 06 '21 01:08 dlfivefifty