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
|