Skip to content

Commit 76cb380

Browse files
committed
pre-commit checks I forgot to run :/
1 parent e2e7260 commit 76cb380

File tree

2 files changed

+71
-62
lines changed

2 files changed

+71
-62
lines changed

pandas/_libs/window/aggregations.pyx

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
# cython: boundscheck=False, wraparound=False, cdivision=True
22
from libc.math cimport (
3+
abs,
4+
isfinite,
5+
log10,
6+
pow,
37
round,
48
signbit,
59
sqrt,
6-
pow,
7-
log10,
8-
abs,
9-
isfinite,
1010
)
11+
from libcpp cimport bool
1112
from libcpp.deque cimport deque
1213
from libcpp.stack cimport stack
1314
from libcpp.unordered_map cimport unordered_map
14-
from libcpp cimport bool
15-
1615

1716
from pandas._libs.algos cimport TiebreakEnumType
1817

@@ -26,8 +25,6 @@ from numpy cimport (
2625
ndarray,
2726
)
2827

29-
30-
3128
cnp.import_array()
3229

3330
import cython
@@ -731,41 +728,44 @@ cdef float64_t calc_kurt(int64_t minp, int64_t nobs,
731728

732729
return result
733730

734-
cdef void update_sum_of_window( float64_t val,
735-
float64_t **x_value,
736-
float64_t **comp_value,
737-
int power_of_element,
738-
bool add_mode, #1 for add_kurt, 0 for remove_kurt
739-
) noexcept nogil:
731+
cdef void update_sum_of_window(float64_t val,
732+
float64_t **x_value,
733+
float64_t **comp_value,
734+
int power_of_element,
735+
bool add_mode, # 1 for add_kurt, 0 for remove_kurt
736+
) noexcept nogil:
740737

741738
cdef:
742-
float64_t val_raised, new_sum
739+
float64_t val_raised
740+
int val_length, x_length
743741
bool val_length_flag, x_length_flag
744-
742+
745743
if add_mode:
746744
val_raised = pow(val, power_of_element)
747745
else:
748746
val_raised = -pow(val, power_of_element)
749747

750-
x_length_flag = abs(log10(abs(x_value[0][0]))) > 15 and isfinite(abs(log10(abs(x_value[0][0])))) == 1
751-
val_length_flag = abs(log10(abs(val_raised))) > 15 and isfinite(abs(log10(abs(val_raised)))) == 1
748+
x_length = abs(log10(abs(x_value[0][0])))
749+
val_length = abs(log10(abs(val_raised)))
752750

753-
# We'll try to maintain comp_value as the counter for
751+
x_length_flag = x_length > 15 and isfinite(x_length)
752+
val_length_flag = val_length > 15 and isfinite(val_length)
753+
754+
# We'll try to maintain comp_value as the counter for
754755
# numbers <1e15 to keep it from getting rounded out.
755756
if x_length_flag and val_length_flag:
756-
#Both > 1e15 or < 1-e15
757+
# Both > 1e15 or < 1-e15
757758
x_value[0][0] += val_raised
758759

759760
elif x_length_flag:
760761
comp_value[0][0] += val_raised
761762

762-
763763
elif val_length_flag:
764764
comp_value[0][0] += x_value[0][0]
765765
x_value[0][0] = val_raised
766-
766+
767767
else:
768-
#Neither are >1e15/<1e-15, safe to proceed
768+
# Neither are >1e15/<1e-15, safe to proceed
769769
x_value[0][0] += val_raised
770770

771771
if comp_value[0][0] != 0:
@@ -819,6 +819,7 @@ cdef void remove_kurt(float64_t val, int64_t *nobs,
819819
update_sum_of_window(val, &xxx, &compensation_xxx, 3, 0)
820820
update_sum_of_window(val, &xxxx, &compensation_xxxx, 4, 0)
821821

822+
822823
def roll_kurt(ndarray[float64_t] values, ndarray[int64_t] start,
823824
ndarray[int64_t] end, int64_t minp) -> np.ndarray:
824825
cdef:

pandas/tests/window/test_rolling_skew_kurt.py

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -226,52 +226,60 @@ def test_rolling_kurt_eq_value_fperr(step):
226226
assert (a[a.index >= 9] == -3).all()
227227
assert a[a.index < 9].isna().all()
228228

229-
@pytest.mark.parametrize("test_len, window_size, modifiers",
230-
[([0, 10], 5, [[0,1e6], [3, -1e6]]),
231-
([0, 10], 5, [[0,1e-6], [3, 1e6]]),
232-
([10, 100], 20,[[40, -1e10], [59, -9e9]]),
233-
([10500, 11000], 200,[[10581, 0], [109900, -1e6], [10999, 0]]),
234-
]
235-
)
229+
230+
@pytest.mark.parametrize(
231+
"test_len, window_size, modifiers",
232+
[
233+
([0, 10], 5, [[0, 1e6], [3, -1e6]]),
234+
([0, 10], 5, [[0, 1e-6], [3, 1e6]]),
235+
([10, 100], 20, [[40, -1e10], [59, -9e9]]),
236+
([10500, 11000], 200, [[10581, 0], [109900, -1e6], [10999, 0]]),
237+
],
238+
)
236239
def test_rolling_kurt_outlier_influence(test_len, window_size, modifiers):
237240
# #61416 Extreme values causes kurtosis value to become incorrect
238-
test_series = Series(range(test_len[0], test_len[1]), index = range(test_len[0], test_len[1]))
241+
test_series = Series(
242+
range(test_len[0], test_len[1]), index=range(test_len[0], test_len[1])
243+
)
239244
for ind, number in modifiers:
240245
test_series = test_series.replace(ind, number)
241-
242-
#minimum elements needed for "window_size" number of kurts
246+
247+
# minimum elements needed for "window_size" number of kurts
243248
test_len_diff = test_len[1] - test_len[0]
244-
min_elements_needed = test_len_diff - 2*window_size + 1
245-
expected_series = (test_series[min_elements_needed:].reindex(range(test_len[0], test_len[1])))
246-
247-
actual = test_series.rolling(window_size,min_periods=1).kurt()
248-
expected = expected_series.rolling(window_size,min_periods=1).kurt()
249-
250-
tm.assert_series_equal(actual.tail(window_size),
251-
expected.tail(window_size)
252-
)
253-
254-
@pytest.mark.parametrize("array_param, window_size, modifiers",
255-
[([10, 10, 10], 5, [[0,1e6], [3, -1e6]]),
256-
([-15, 10, 10], 5, [[0,1e2], [3, 1e6]]),
257-
([1e4, 1e3, 100], 20, [[90,-1e7], [0, 1e7]]),
258-
([1e-3, 3e-3, 100], 20, [[90,100], [20, 1e4]]),
259-
]
260-
)
249+
min_elements_needed = test_len_diff - 2 * window_size + 1
250+
expected_series = test_series[min_elements_needed:].reindex(
251+
range(test_len[0], test_len[1])
252+
)
253+
254+
actual = test_series.rolling(window_size, min_periods=1).kurt()
255+
expected = expected_series.rolling(window_size, min_periods=1).kurt()
256+
257+
tm.assert_series_equal(actual.tail(window_size), expected.tail(window_size))
258+
259+
260+
@pytest.mark.parametrize(
261+
"array_param, window_size, modifiers",
262+
[
263+
([10, 10, 10], 5, [[0, 1e6], [3, -1e6]]),
264+
([-15, 10, 10], 5, [[0, 1e2], [3, 1e6]]),
265+
([1e4, 1e3, 100], 20, [[90, -1e7], [0, 1e7]]),
266+
([1e-3, 3e-3, 100], 20, [[90, 100], [20, 1e4]]),
267+
],
268+
)
261269
def test_rolling_kurt_outlier_influence_rand(array_param, window_size, modifiers):
262270
# #61416 Extreme values causes kurtosis value to become incorrect
263-
rand_array = np.random.default_rng(5).normal(array_param[0], array_param[1], array_param[2])
271+
rand_array = np.random.default_rng(5).normal(
272+
array_param[0], array_param[1], array_param[2]
273+
)
264274
test_series = Series(rand_array)
265275
for ind, number in modifiers:
266276
test_series = test_series.replace(ind, number)
267-
268-
#minimum elements needed for "window_size" number of kurts
269-
min_elements_needed = array_param[2] - 2*window_size + 1
270-
expected_series = (test_series[min_elements_needed:])
271-
272-
actual = test_series.rolling(window_size,min_periods=1).kurt()
273-
expected = expected_series.rolling(window_size,min_periods=1).kurt()
274-
275-
tm.assert_series_equal(actual.tail(window_size),
276-
expected.tail(window_size)
277-
)
277+
278+
# minimum elements needed for "window_size" number of kurts
279+
min_elements_needed = array_param[2] - 2 * window_size + 1
280+
expected_series = test_series[min_elements_needed:]
281+
282+
actual = test_series.rolling(window_size, min_periods=1).kurt()
283+
expected = expected_series.rolling(window_size, min_periods=1).kurt()
284+
285+
tm.assert_series_equal(actual.tail(window_size), expected.tail(window_size))

0 commit comments

Comments
 (0)