Skip to content

Commit

Permalink
Fix again
Browse files Browse the repository at this point in the history
  • Loading branch information
huiyuxie committed Oct 28, 2024
1 parent fd1a84e commit 50d95ba
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
4 changes: 3 additions & 1 deletion src/vector_of_array.jl
Original file line number Diff line number Diff line change
Expand Up @@ -905,8 +905,10 @@ for (type, N_expr) in [
else
unpacked = unpack_voa(bc, i)
arr_type = StaticArraysCore.similar_type(dest[:, i])
dest[:, i] = if length(unpacked) == 1
dest[:, i] = if length(unpacked) == 1 && length(dest[:, i]) == 1
arr_type(unpacked[1])
elseif length(unpacked) == 1
fill(copy(unpacked), arr_type)
else
arr_type(unpacked[j] for j in eachindex(unpacked))
end
Expand Down
14 changes: 13 additions & 1 deletion test/copy_static_array_test.jl
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ b = recursivecopy(a)
a[1] *= 2
@test a[1] != b[1]

# Broadcasting when SVector{1}
# Broadcasting when SVector{N} where N = 1
a = [SVector(0.0) for _ in 1:2]
a_voa = VectorOfArray(a)
b_voa = copy(a_voa)
Expand All @@ -93,6 +93,12 @@ a_voa[2] = SVector(1.0)
@test b_voa[1] == a_voa[1]
@test b_voa[2] == a_voa[2]

a = [SVector(0.0) for _ in 1:2]
a_voa = VectorOfArray(a)
a_voa .= 1.0
@test a_voa[1] == SVector(1.0)
@test a_voa[2] == SVector(1.0)

# Broadcasting when SVector{N} where N > 1
a = [SVector(0.0, 0.0) for _ in 1:2]
a_voa = VectorOfArray(a)
Expand All @@ -102,3 +108,9 @@ a_voa[2] = SVector(1.0, 1.0)
@. b_voa = a_voa
@test b_voa[1] == a_voa[1]
@test b_voa[2] == a_voa[2]

a = [SVector(0.0, 0.0) for _ in 1:2]
a_voa = VectorOfArray(a)
a_voa .= 1.0
@test a_voa[1] == SVector(1.0, 1.0)
@test a_voa[2] == SVector(1.0, 1.0)

0 comments on commit 50d95ba

Please sign in to comment.