Skip to content

Commit bcde3f7

Browse files
omusspurll
authored andcommitted
AnchoredInterval intersect with non-period spans
1 parent 8d987e3 commit bcde3f7

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/anchoredinterval.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,13 @@ end
206206
function Base.intersect(a::AnchoredInterval{P, T}, b::AnchoredInterval{Q, T}) where {P,Q,T}
207207
interval = invoke(intersect, Tuple{AbstractInterval{T}, AbstractInterval{T}}, a, b)
208208

209+
sp = isa(P, Period) ? canonicalize(typeof(P), span(interval)) : span(interval)
209210
if P zero(P)
210211
anchor = last(interval)
211-
new_P = canonicalize(typeof(P), -span(interval))
212+
new_P = -sp
212213
else
213214
anchor = first(interval)
214-
new_P = canonicalize(typeof(P), span(interval))
215+
new_P = sp
215216
end
216217

217218
return AnchoredInterval{new_P, T}(anchor, inclusivity(interval))

test/anchoredinterval.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,10 @@ using Intervals: canonicalize
479479
# This should probably be an AnchoredInterval{Hour(0)}, but it's not important
480480
@test intersect(HourEnding(dt), HourBeginning(dt)) ==
481481
AnchoredInterval{Hour(0)}(dt, Inclusivity(true, true))
482+
483+
# Non-period AnchoredIntervals
484+
@test intersect(AnchoredInterval{-2}(3), AnchoredInterval{-2}(4)) ==
485+
AnchoredInterval{-1}(3)
482486
end
483487

484488
@testset "canonicalize" begin

0 commit comments

Comments
 (0)