Modify condition in MultiDimClosure function#35
Conversation
|
Thanks for the fix! The change looks correct - without this condition, loading jagged arrays like Could you add a test case that covers this scenario? Something like: # Test jagged nested arrays (Array of Vectors)
jagged = [[1, 2], [3, 4, 5], [6]]
result = StructUtils.make(Vector{Vector{Int}}, jagged)
@test result == jagged
# Or a multi-dimensional case
md_jagged = Array{Vector{Int}}(undef, 2, 2)
md_jagged[1,1] = [1, 2]
md_jagged[1,2] = [3]
md_jagged[2,1] = [4, 5, 6]
md_jagged[2,2] = [7, 8]
# test round-trip through makeOnce a test is added, this looks good to merge! |
|
@quinnj Adding the tests revealed that |
The 3-arg discover_dims(style, ::Type{T}, source) from the fixedsizearray
trait needs to pass ndims(T) to the 2-arg scanning version now that it
requires an ndims parameter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
629f3e6 to
18a3e5b
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #35 +/- ##
=======================================
Coverage ? 82.81%
=======================================
Files ? 6
Lines ? 774
Branches ? 0
=======================================
Hits ? 641
Misses ? 133
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
For context, I am trying to load a
Array{Vector{Int64}, 4}using JSON.jl, which relies on StructUtils.jl. The inner vector is jagged, i.e. not the same length for every element, soArray{Int64, 5}is not an option. Now, without this stop condition, the multidimensional array continues untilf.cur_dim[] == 0and fails to set the dimension, unsurprisingly. With this condition it works flawlessly.Full disclaimer, I don't know if this will have a major impact elsewhere, so please review this PR carefully. But it would be nice if loading vectors in multi-dim arrays worked.