Skip to content

Commit 2f5513c

Browse files
committed
Previously failed tests paassing
let's see what's broken now.
1 parent a051c0b commit 2f5513c

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

pandas/core/indexes/datetimelike.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131

3232
from pandas.tseries.offsets import index_offsets_equal
3333
import pandas.tseries.frequencies as frequencies
34-
import pandas.core.indexes.api as _api
3534

3635
_index_doc_kwargs = dict(ibase._index_doc_kwargs)
3736

@@ -635,8 +634,7 @@ def intersection(self, other):
635634
self._assert_can_do_setop(other)
636635

637636
if self.equals(other):
638-
name = _api._get_consensus_names((self, other))[0]
639-
return self._shallow_copy(self, name=name)
637+
return self._get_reconciled_name_object(other)
640638

641639
lengths = len(self), len(other)
642640
if lengths[0] == 0:
@@ -645,21 +643,25 @@ def intersection(self, other):
645643
return other
646644

647645
if (not index_offsets_equal(self, other) or
646+
not other.freq.isAnchored() or # Fixes period intersections when freq is set
648647
(not self._is_strictly_monotonic or
649648
not other._is_strictly_monotonic)):
650649
result = Index.intersection(self, other)
650+
if result.empty:
651+
result = result.astype(self.dtype)
651652
result = self._shallow_copy(result._values, name=result.name,
652653
freq=None
653654
)
654655
if result.freq is None:
655656
result.offset = frequencies.to_offset(result.inferred_freq)
657+
# attempt a naive guess at the freq.
658+
result.freq = self.freq or other.freq
656659
return result
657660

658661
# Conditions met!
659662
intersected_slice = self._fast_intersection(other)
660-
name = _api._get_consensus_names((self, other))[0]
661-
intersected = self._shallow_copy(intersected_slice, name=name)
662-
return intersected
663+
name = ops.get_op_result_name(self, other)
664+
return self._shallow_copy(intersected_slice, name=name)
663665

664666
def wrap_arithmetic_op(self, other, result):
665667
if result is NotImplemented:

pandas/core/indexes/period.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ def _maybe_cast_slice_bound(self, label, side, kind):
723723
Value of `side` parameter should be validated in caller.
724724
725725
"""
726-
assert kind in ['ix', 'loc', 'getitem']
726+
assert kind in ['ix', 'loc', 'getitem', None]
727727

728728
if isinstance(label, datetime):
729729
return Period(label, freq=self.freq)

pandas/tests/indexes/datetimes/test_setops.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def test_intersection2(self):
133133

134134
third = Index(['a', 'b', 'c'])
135135
result = first.intersection(third)
136-
expected = pd.Index([], dtype=object)
136+
expected = DatetimeIndex([])
137137
tm.assert_index_equal(result, expected)
138138

139139
@pytest.mark.parametrize("tz", [None, 'Asia/Tokyo', 'US/Eastern',
@@ -151,7 +151,7 @@ def test_intersection(self, tz):
151151
expected3 = date_range('6/1/2000', '6/20/2000', freq='D', name=None)
152152

153153
rng4 = date_range('7/1/2000', '7/31/2000', freq='D', name='idx')
154-
expected4 = DatetimeIndex([], name='idx')
154+
expected4 = DatetimeIndex([], name='idx', freq='D')
155155

156156
for (rng, expected) in [(rng2, expected2), (rng3, expected3),
157157
(rng4, expected4)]:
@@ -181,14 +181,14 @@ def test_intersection(self, tz):
181181
# GH 7880
182182
rng4 = date_range('7/1/2000', '7/31/2000', freq='D', tz=tz,
183183
name='idx')
184-
expected4 = DatetimeIndex([], tz=tz, name='idx')
184+
expected4 = DatetimeIndex([], tz=tz, name='idx', freq='D')
185185

186186
for (rng, expected) in [(rng2, expected2), (rng3, expected3),
187187
(rng4, expected4)]:
188188
result = base.intersection(rng)
189189
tm.assert_index_equal(result, expected)
190190
assert result.name == expected.name
191-
assert result.freq is None
191+
assert result.freq == expected.freq
192192
assert result.tz == expected.tz
193193

194194
def test_intersection_empty(self):

0 commit comments

Comments
 (0)