58 lines
1.1 KiB
Python
58 lines
1.1 KiB
Python
"""
|
|
Tests for offset behavior with indices.
|
|
"""
|
|
import pytest
|
|
|
|
from pandas import (
|
|
Series,
|
|
date_range,
|
|
)
|
|
|
|
from pandas.tseries.offsets import (
|
|
BMonthBegin,
|
|
BMonthEnd,
|
|
BQuarterBegin,
|
|
BQuarterEnd,
|
|
BYearBegin,
|
|
BYearEnd,
|
|
MonthBegin,
|
|
MonthEnd,
|
|
QuarterBegin,
|
|
QuarterEnd,
|
|
YearBegin,
|
|
YearEnd,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize("n", [-2, 1])
|
|
@pytest.mark.parametrize(
|
|
"cls",
|
|
[
|
|
MonthBegin,
|
|
MonthEnd,
|
|
BMonthBegin,
|
|
BMonthEnd,
|
|
QuarterBegin,
|
|
QuarterEnd,
|
|
BQuarterBegin,
|
|
BQuarterEnd,
|
|
YearBegin,
|
|
YearEnd,
|
|
BYearBegin,
|
|
BYearEnd,
|
|
],
|
|
)
|
|
def test_apply_index(cls, n):
|
|
offset = cls(n=n)
|
|
rng = date_range(start="1/1/2000", periods=100000, freq="T")
|
|
ser = Series(rng)
|
|
|
|
res = rng + offset
|
|
assert res.freq is None # not retained
|
|
assert res[0] == rng[0] + offset
|
|
assert res[-1] == rng[-1] + offset
|
|
res2 = ser + offset
|
|
# apply_index is only for indexes, not series, so no res2_v2
|
|
assert res2.iloc[0] == ser.iloc[0] + offset
|
|
assert res2.iloc[-1] == ser.iloc[-1] + offset
|