conftest.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. from datetime import (
  2. datetime,
  3. timedelta,
  4. )
  5. import numpy as np
  6. import pytest
  7. import pandas.util._test_decorators as td
  8. from pandas import (
  9. DataFrame,
  10. Series,
  11. bdate_range,
  12. )
  13. @pytest.fixture(params=[True, False])
  14. def raw(request):
  15. """raw keyword argument for rolling.apply"""
  16. return request.param
  17. @pytest.fixture(
  18. params=[
  19. "sum",
  20. "mean",
  21. "median",
  22. "max",
  23. "min",
  24. "var",
  25. "std",
  26. "kurt",
  27. "skew",
  28. "count",
  29. "sem",
  30. ]
  31. )
  32. def arithmetic_win_operators(request):
  33. return request.param
  34. @pytest.fixture(params=[True, False])
  35. def center(request):
  36. return request.param
  37. @pytest.fixture(params=[None, 1])
  38. def min_periods(request):
  39. return request.param
  40. @pytest.fixture(params=[True, False])
  41. def adjust(request):
  42. """adjust keyword argument for ewm"""
  43. return request.param
  44. @pytest.fixture(params=[True, False])
  45. def ignore_na(request):
  46. """ignore_na keyword argument for ewm"""
  47. return request.param
  48. @pytest.fixture(params=[True, False])
  49. def numeric_only(request):
  50. """numeric_only keyword argument"""
  51. return request.param
  52. @pytest.fixture(
  53. params=[
  54. pytest.param("numba", marks=[td.skip_if_no("numba"), pytest.mark.single_cpu]),
  55. "cython",
  56. ]
  57. )
  58. def engine(request):
  59. """engine keyword argument for rolling.apply"""
  60. return request.param
  61. @pytest.fixture(
  62. params=[
  63. pytest.param(
  64. ("numba", True), marks=[td.skip_if_no("numba"), pytest.mark.single_cpu]
  65. ),
  66. ("cython", True),
  67. ("cython", False),
  68. ]
  69. )
  70. def engine_and_raw(request):
  71. """engine and raw keyword arguments for rolling.apply"""
  72. return request.param
  73. @pytest.fixture(params=["1 day", timedelta(days=1), np.timedelta64(1, "D")])
  74. def halflife_with_times(request):
  75. """Halflife argument for EWM when times is specified."""
  76. return request.param
  77. @pytest.fixture
  78. def series():
  79. """Make mocked series as fixture."""
  80. arr = np.random.default_rng(2).standard_normal(100)
  81. locs = np.arange(20, 40)
  82. arr[locs] = np.nan
  83. series = Series(arr, index=bdate_range(datetime(2009, 1, 1), periods=100))
  84. return series
  85. @pytest.fixture
  86. def frame():
  87. """Make mocked frame as fixture."""
  88. return DataFrame(
  89. np.random.default_rng(2).standard_normal((100, 10)),
  90. index=bdate_range(datetime(2009, 1, 1), periods=100),
  91. )
  92. @pytest.fixture(params=[None, 1, 2, 5, 10])
  93. def step(request):
  94. """step keyword argument for rolling window operations."""
  95. return request.param