Skip to content

Commit d1933ef

Browse files
authored
Merge pull request pandas-dev#634 from davidduenas3/master
Fixed small bug in DateRange.intersection
2 parents cd3136a + 3c4da14 commit d1933ef

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

arctic/date/_daterange.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,12 @@ def intersection(self, other):
8585
else self.startopen if other.start is None \
8686
else other.startopen if self.start < other.start \
8787
else self.startopen if self.start > other.start \
88-
else (self.startopen and other.startopen)
88+
else (self.startopen or other.startopen)
8989
endopen = other.endopen if self.end is None \
9090
else self.endopen if other.end is None \
9191
else other.endopen if self.end > other.end \
9292
else self.endopen if self.end < other.end \
93-
else (self.endopen and other.endopen)
93+
else (self.endopen or other.endopen)
9494

9595
new_start = self.start if other.start is None \
9696
else other.start if self.start is None \

tests/unit/date/test_daterange.py

+11
Original file line numberDiff line numberDiff line change
@@ -234,3 +234,14 @@ def test_intersection_preserves_boundaries():
234234
assert DateRange('20110101', '20110102', OPEN_OPEN) == DateRange('20110101', '20110102', CLOSED_OPEN).intersection(DateRange('20110101', '20110102', OPEN_OPEN))
235235
assert DateRange('20110101', '20110102', OPEN_OPEN) == DateRange('20110101', '20110102', OPEN_OPEN).intersection(DateRange('20110101', '20110102', OPEN_CLOSED))
236236

237+
238+
def test_intersection_contains():
239+
# assert ((d in dr1) & (d in dr2)) == (d in (dr1 & dr2)) for any interval combination
240+
start, end = dt(2018, 1, 1), dt(2018, 1, 2)
241+
date_ranges = [DateRange(start, end, interval) for interval in CLOSED_CLOSED.__class__]
242+
243+
def equal_contains(date, dr1, dr2):
244+
return ((date in dr1) and (date in dr2)) == (date in dr1.intersection(dr2))
245+
246+
assert all(equal_contains(start, dr1, dr2) for dr1 in date_ranges for dr2 in date_ranges)
247+
assert all(equal_contains(end, dr1, dr2) for dr1 in date_ranges for dr2 in date_ranges)

0 commit comments

Comments
 (0)