Skip to content

Commit f3fcf4f

Browse files
committed
Blockisequal for 1-element tuple
1 parent 2c86412 commit f3fcf4f

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/blockaxis.jl

+7-4
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ Check if `a` and `b` have the same block structure.
8585
8686
# Examples
8787
```jldoctest
88-
julia> b1 = blockedrange(1:2)
89-
2-blocked 3-element BlockedUnitRange{ArrayLayouts.RangeCumsum{Int64, UnitRange{Int64}}}:
88+
julia> b1 = blockedrange([1,2])
89+
2-blocked 3-element BlockedUnitRange{Vector{Int64}}:
9090
1
9191
9292
2
@@ -112,9 +112,12 @@ blockisequal(a, b, c, d...) = blockisequal(a,b) && blockisequal(b,c,d...)
112112
"""
113113
blockisequal(a::Tuple, b::Tuple)
114114
115-
Return `all(blockisequal.(a,b))``
115+
Return if the tuples satisfy `blockisequal` elementwise.
116116
"""
117-
blockisequal(a::Tuple, b::Tuple) = all(blockisequal.(a, b))
117+
blockisequal(a::Tuple, b::Tuple) = blockisequal(first(a), first(b)) && blockisequal(Base.tail(a), Base.tail(b))
118+
blockisequal(::Tuple{}, ::Tuple{}) = true
119+
blockisequal(::Tuple, ::Tuple{}) = false
120+
blockisequal(::Tuple{}, ::Tuple) = false
118121

119122

120123
_shift_blocklengths(::BlockedUnitRange, bl, f) = bl

test/test_blockindices.jl

+11
Original file line numberDiff line numberDiff line change
@@ -505,3 +505,14 @@ end
505505
first(eachblock(B))[1,2] = 0
506506
@test B[1,2] == 0
507507
end
508+
509+
@testset "blockisequal" begin
510+
B = BlockArray(rand(4,4), [1,3], [1,3])
511+
v = BlockArray(rand(4), [1,3])
512+
axB = axes(B)
513+
axv = axes(v)
514+
@test blockisequal(axB, axB)
515+
@test blockisequal(axv, axv)
516+
@test !blockisequal(axB, axv)
517+
@test !blockisequal(axv, axB)
518+
end

0 commit comments

Comments
 (0)