48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
import pytest
|
|
|
|
from pandas import (
|
|
DatetimeIndex,
|
|
date_range,
|
|
)
|
|
import pandas._testing as tm
|
|
|
|
|
|
@pytest.mark.parametrize("tz", [None, "Asia/Shanghai", "Europe/Berlin"])
|
|
@pytest.mark.parametrize("name", [None, "my_dti"])
|
|
@pytest.mark.parametrize("unit", ["ns", "us", "ms", "s"])
|
|
def test_dti_snap(name, tz, unit):
|
|
dti = DatetimeIndex(
|
|
[
|
|
"1/1/2002",
|
|
"1/2/2002",
|
|
"1/3/2002",
|
|
"1/4/2002",
|
|
"1/5/2002",
|
|
"1/6/2002",
|
|
"1/7/2002",
|
|
],
|
|
name=name,
|
|
tz=tz,
|
|
freq="D",
|
|
)
|
|
dti = dti.as_unit(unit)
|
|
|
|
result = dti.snap(freq="W-MON")
|
|
expected = date_range("12/31/2001", "1/7/2002", name=name, tz=tz, freq="w-mon")
|
|
expected = expected.repeat([3, 4])
|
|
expected = expected.as_unit(unit)
|
|
tm.assert_index_equal(result, expected)
|
|
assert result.tz == expected.tz
|
|
assert result.freq is None
|
|
assert expected.freq is None
|
|
|
|
result = dti.snap(freq="B")
|
|
|
|
expected = date_range("1/1/2002", "1/7/2002", name=name, tz=tz, freq="b")
|
|
expected = expected.repeat([1, 1, 1, 2, 2])
|
|
expected = expected.as_unit(unit)
|
|
tm.assert_index_equal(result, expected)
|
|
assert result.tz == expected.tz
|
|
assert result.freq is None
|
|
assert expected.freq is None
|