projektAI/venv/Lib/site-packages/pandas/tests/indexes/timedeltas/test_partial_slicing.py
2021-06-06 22:13:05 +02:00

48 lines
1.3 KiB
Python

import numpy as np
import pytest
from pandas import Series, timedelta_range
import pandas._testing as tm
class TestSlicing:
def test_partial_slice(self):
rng = timedelta_range("1 day 10:11:12", freq="h", periods=500)
s = Series(np.arange(len(rng)), index=rng)
result = s["5 day":"6 day"]
expected = s.iloc[86:134]
tm.assert_series_equal(result, expected)
result = s["5 day":]
expected = s.iloc[86:]
tm.assert_series_equal(result, expected)
result = s[:"6 day"]
expected = s.iloc[:134]
tm.assert_series_equal(result, expected)
result = s["6 days, 23:11:12"]
assert result == s.iloc[133]
msg = r"^Timedelta\('50 days 00:00:00'\)$"
with pytest.raises(KeyError, match=msg):
s["50 days"]
def test_partial_slice_high_reso(self):
# higher reso
rng = timedelta_range("1 day 10:11:12", freq="us", periods=2000)
s = Series(np.arange(len(rng)), index=rng)
result = s["1 day 10:11:12":]
expected = s.iloc[0:]
tm.assert_series_equal(result, expected)
result = s["1 day 10:11:12.001":]
expected = s.iloc[1000:]
tm.assert_series_equal(result, expected)
result = s["1 days, 10:11:12.001001"]
assert result == s.iloc[1001]