def test_concat_same_type_invalid(self, datetime_index): # different timezones dti = datetime_index arr = DatetimeArray(dti) if arr.tz is None: other = arr.tz_localize("UTC") else: other = arr.tz_localize(None) with pytest.raises(ValueError, match="to_concat must have the same"): arr._concat_same_type([arr, other])
def test_concat_same_type_invalid(self, datetime_index): # different timezones dti = datetime_index arr = DatetimeArray(dti) if arr.tz is None: other = arr.tz_localize("UTC") else: other = arr.tz_localize(None) with pytest.raises(AssertionError): arr._concat_same_type([arr, other])
def test_concat_same_type_invalid(self, datetime_index): # different timezones dti = datetime_index arr = DatetimeArray(dti) if arr.tz is None: other = arr.tz_localize('UTC') else: other = arr.tz_localize(None) with pytest.raises(AssertionError): arr._concat_same_type([arr, other])
def test_mismatched_timezone_raises(self): arr = DatetimeArray( np.array(["2000-01-01T06:00:00"], dtype="M8[ns]"), dtype=DatetimeTZDtype(tz="US/Central"), ) dtype = DatetimeTZDtype(tz="US/Eastern") msg = r"dtype=datetime64\[ns.*\] does not match data dtype datetime64\[ns.*\]" with pytest.raises(TypeError, match=msg): DatetimeArray(arr, dtype=dtype) # also with mismatched tzawareness with pytest.raises(TypeError, match=msg): DatetimeArray(arr, dtype=np.dtype("M8[ns]")) with pytest.raises(TypeError, match=msg): DatetimeArray(arr.tz_localize(None), dtype=arr.dtype)
def test_shift_fill_value(self): dti = pd.date_range("2016-01-01", periods=3) dta = dti._data expected = DatetimeArray(np.roll(dta._data, 1)) fv = dta[-1] for fill_value in [fv, fv.to_pydatetime(), fv.to_datetime64()]: result = dta.shift(1, fill_value=fill_value) tm.assert_datetime_array_equal(result, expected) dta = dta.tz_localize("UTC") expected = expected.tz_localize("UTC") fv = dta[-1] for fill_value in [fv, fv.to_pydatetime()]: result = dta.shift(1, fill_value=fill_value) tm.assert_datetime_array_equal(result, expected)
def test_searchsorted_tzawareness_compat(self, index): data = np.arange(10, dtype="i8") * 24 * 3600 * 10**9 arr = DatetimeArray(data, freq="D") if index: arr = pd.Index(arr) mismatch = arr.tz_localize("Asia/Tokyo") msg = "Cannot compare tz-naive and tz-aware datetime-like objects" with pytest.raises(TypeError, match=msg): arr.searchsorted(mismatch[0]) with pytest.raises(TypeError, match=msg): arr.searchsorted(mismatch) with pytest.raises(TypeError, match=msg): mismatch.searchsorted(arr[0]) with pytest.raises(TypeError, match=msg): mismatch.searchsorted(arr)