|
from datetime import ( |
|
datetime, |
|
timedelta, |
|
) |
|
|
|
import numpy as np |
|
import pytest |
|
|
|
import pandas.util._test_decorators as td |
|
|
|
from pandas import ( |
|
DataFrame, |
|
Series, |
|
bdate_range, |
|
) |
|
|
|
|
|
@pytest.fixture(params=[True, False]) |
|
def raw(request): |
|
"""raw keyword argument for rolling.apply""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture( |
|
params=[ |
|
"sum", |
|
"mean", |
|
"median", |
|
"max", |
|
"min", |
|
"var", |
|
"std", |
|
"kurt", |
|
"skew", |
|
"count", |
|
"sem", |
|
] |
|
) |
|
def arithmetic_win_operators(request): |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[True, False]) |
|
def center(request): |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[None, 1]) |
|
def min_periods(request): |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[True, False]) |
|
def parallel(request): |
|
"""parallel keyword argument for numba.jit""" |
|
return request.param |
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(params=[False]) |
|
def nogil(request): |
|
"""nogil keyword argument for numba.jit""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[True]) |
|
def nopython(request): |
|
"""nopython keyword argument for numba.jit""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[True, False]) |
|
def adjust(request): |
|
"""adjust keyword argument for ewm""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[True, False]) |
|
def ignore_na(request): |
|
"""ignore_na keyword argument for ewm""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=[True, False]) |
|
def numeric_only(request): |
|
"""numeric_only keyword argument""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture( |
|
params=[ |
|
pytest.param("numba", marks=[td.skip_if_no("numba"), pytest.mark.single_cpu]), |
|
"cython", |
|
] |
|
) |
|
def engine(request): |
|
"""engine keyword argument for rolling.apply""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture( |
|
params=[ |
|
pytest.param( |
|
("numba", True), marks=[td.skip_if_no("numba"), pytest.mark.single_cpu] |
|
), |
|
("cython", True), |
|
("cython", False), |
|
] |
|
) |
|
def engine_and_raw(request): |
|
"""engine and raw keyword arguments for rolling.apply""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture(params=["1 day", timedelta(days=1), np.timedelta64(1, "D")]) |
|
def halflife_with_times(request): |
|
"""Halflife argument for EWM when times is specified.""" |
|
return request.param |
|
|
|
|
|
@pytest.fixture |
|
def series(): |
|
"""Make mocked series as fixture.""" |
|
arr = np.random.default_rng(2).standard_normal(100) |
|
locs = np.arange(20, 40) |
|
arr[locs] = np.nan |
|
series = Series(arr, index=bdate_range(datetime(2009, 1, 1), periods=100)) |
|
return series |
|
|
|
|
|
@pytest.fixture |
|
def frame(): |
|
"""Make mocked frame as fixture.""" |
|
return DataFrame( |
|
np.random.default_rng(2).standard_normal((100, 10)), |
|
index=bdate_range(datetime(2009, 1, 1), periods=100), |
|
) |
|
|
|
|
|
@pytest.fixture(params=[None, 1, 2, 5, 10]) |
|
def step(request): |
|
"""step keyword argument for rolling window operations.""" |
|
return request.param |
|
|