| from datetime import datetime |
|
|
| import numpy as np |
| import pytest |
|
|
| from pandas import ( |
| DataFrame, |
| Series, |
| ) |
|
|
| |
| downsample_methods = [ |
| "min", |
| "max", |
| "first", |
| "last", |
| "sum", |
| "mean", |
| "sem", |
| "median", |
| "prod", |
| "var", |
| "std", |
| "ohlc", |
| "quantile", |
| ] |
| upsample_methods = ["count", "size"] |
| series_methods = ["nunique"] |
| resample_methods = downsample_methods + upsample_methods + series_methods |
|
|
|
|
| @pytest.fixture(params=downsample_methods) |
| def downsample_method(request): |
| """Fixture for parametrization of Grouper downsample methods.""" |
| return request.param |
|
|
|
|
| @pytest.fixture(params=resample_methods) |
| def resample_method(request): |
| """Fixture for parametrization of Grouper resample methods.""" |
| return request.param |
|
|
|
|
| @pytest.fixture |
| def _index_start(): |
| """Fixture for parametrization of index, series and frame.""" |
| return datetime(2005, 1, 1) |
|
|
|
|
| @pytest.fixture |
| def _index_end(): |
| """Fixture for parametrization of index, series and frame.""" |
| return datetime(2005, 1, 10) |
|
|
|
|
| @pytest.fixture |
| def _index_freq(): |
| """Fixture for parametrization of index, series and frame.""" |
| return "D" |
|
|
|
|
| @pytest.fixture |
| def _index_name(): |
| """Fixture for parametrization of index, series and frame.""" |
| return None |
|
|
|
|
| @pytest.fixture |
| def index(_index_factory, _index_start, _index_end, _index_freq, _index_name): |
| """ |
| Fixture for parametrization of date_range, period_range and |
| timedelta_range indexes |
| """ |
| return _index_factory(_index_start, _index_end, freq=_index_freq, name=_index_name) |
|
|
|
|
| @pytest.fixture |
| def _static_values(index): |
| """ |
| Fixture for parametrization of values used in parametrization of |
| Series and DataFrames with date_range, period_range and |
| timedelta_range indexes |
| """ |
| return np.arange(len(index)) |
|
|
|
|
| @pytest.fixture |
| def _series_name(): |
| """ |
| Fixture for parametrization of Series name for Series used with |
| date_range, period_range and timedelta_range indexes |
| """ |
| return None |
|
|
|
|
| @pytest.fixture |
| def series(index, _series_name, _static_values): |
| """ |
| Fixture for parametrization of Series with date_range, period_range and |
| timedelta_range indexes |
| """ |
| return Series(_static_values, index=index, name=_series_name) |
|
|
|
|
| @pytest.fixture |
| def empty_series_dti(series): |
| """ |
| Fixture for parametrization of empty Series with date_range, |
| period_range and timedelta_range indexes |
| """ |
| return series[:0] |
|
|
|
|
| @pytest.fixture |
| def frame(index, _series_name, _static_values): |
| """ |
| Fixture for parametrization of DataFrame with date_range, period_range |
| and timedelta_range indexes |
| """ |
| |
| return DataFrame({"value": _static_values}, index=index) |
|
|
|
|
| @pytest.fixture |
| def empty_frame_dti(series): |
| """ |
| Fixture for parametrization of empty DataFrame with date_range, |
| period_range and timedelta_range indexes |
| """ |
| index = series.index[:0] |
| return DataFrame(index=index) |
|
|
|
|
| @pytest.fixture |
| def series_and_frame(frame_or_series, series, frame): |
| """ |
| Fixture for parametrization of Series and DataFrame with date_range, |
| period_range and timedelta_range indexes |
| """ |
| if frame_or_series == Series: |
| return series |
| if frame_or_series == DataFrame: |
| return frame |
|
|