import datetime
|
|
import numpy as np
|
import pytest
|
|
from pandas import (
|
DataFrame,
|
DatetimeIndex,
|
Series,
|
_testing as tm,
|
date_range,
|
period_range,
|
)
|
from pandas.tests.io.pytables.common import ensure_clean_store
|
|
pytestmark = pytest.mark.single_cpu
|
|
|
@pytest.mark.parametrize("unit", ["us", "ns"])
|
def test_store_datetime_fractional_secs(setup_path, unit):
|
dt = datetime.datetime(2012, 1, 2, 3, 4, 5, 123456)
|
dti = DatetimeIndex([dt], dtype=f"M8[{unit}]")
|
series = Series([0], index=dti)
|
with ensure_clean_store(setup_path) as store:
|
store["a"] = series
|
assert store["a"].index[0] == dt
|
|
|
@pytest.mark.filterwarnings(r"ignore:PeriodDtype\[B\] is deprecated:FutureWarning")
|
def test_tseries_indices_series(setup_path):
|
with ensure_clean_store(setup_path) as store:
|
idx = date_range("2020-01-01", periods=10)
|
ser = Series(np.random.default_rng(2).standard_normal(len(idx)), idx)
|
store["a"] = ser
|
result = store["a"]
|
|
tm.assert_series_equal(result, ser)
|
assert result.index.freq == ser.index.freq
|
tm.assert_class_equal(result.index, ser.index, obj="series index")
|
|
idx = period_range("2020-01-01", periods=10, freq="D")
|
ser = Series(np.random.default_rng(2).standard_normal(len(idx)), idx)
|
store["a"] = ser
|
result = store["a"]
|
|
tm.assert_series_equal(result, ser)
|
assert result.index.freq == ser.index.freq
|
tm.assert_class_equal(result.index, ser.index, obj="series index")
|
|
|
@pytest.mark.filterwarnings(r"ignore:PeriodDtype\[B\] is deprecated:FutureWarning")
|
def test_tseries_indices_frame(setup_path):
|
with ensure_clean_store(setup_path) as store:
|
idx = date_range("2020-01-01", periods=10)
|
df = DataFrame(
|
np.random.default_rng(2).standard_normal((len(idx), 3)), index=idx
|
)
|
store["a"] = df
|
result = store["a"]
|
|
tm.assert_frame_equal(result, df)
|
assert result.index.freq == df.index.freq
|
tm.assert_class_equal(result.index, df.index, obj="dataframe index")
|
|
idx = period_range("2020-01-01", periods=10, freq="D")
|
df = DataFrame(np.random.default_rng(2).standard_normal((len(idx), 3)), idx)
|
store["a"] = df
|
result = store["a"]
|
|
tm.assert_frame_equal(result, df)
|
assert result.index.freq == df.index.freq
|
tm.assert_class_equal(result.index, df.index, obj="dataframe index")
|