o
    _~#g                     @   s   d dl mZ d dlZd dlZd dlZd dlm  m  m	Z
 d dlmZ d dlmZ dd Ze Zejed ed dd	d
 Zdd Zdd ZdS )    )partialN)Seriesc                  C   s   dt jfdt jfgdd dD  dt jfdt jfdt jfd	t jfd
t jfg dd dD  dd dD  } tt	|  }|d |d dS )Nroll_sum	roll_meanc                 S   s&   g | ]}d | dt tj|dfqS )z	roll_var())ddof)r   window_aggregationsroll_var).0r    r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/window/test_cython_aggregations.py
<listcomp>   s    z-_get_rolling_aggregations.<locals>.<listcomp>)r      	roll_skew	roll_kurtroll_median_croll_maxroll_minc              	   S   s:   g | ]}t jD ]}d | d| dtt j||dfqqS )zroll_quantile(,r   )quantileinterpolation)r   interpolation_typesr   roll_quantile)r
   r   r   r   r   r   r   "   s    	
)g-C6?g      ?gH.?c                 S   sP   g | ]$}t j D ]}d D ]}d| d| d| dtt j|||dfqq	qS )TFz
roll_rank(r   r   )
percentilemethod	ascending)r   rolling_rank_tiebreakerskeysr   	roll_rank)r
   r   r   r   r   r   r   r   .   s"    

r   r   r   )idsparams)
r   r   r   r   r   r   r   r   listzip)named_roll_aggsunzippedr   r   r   _get_rolling_aggregations   s2   		
,r&   r!   r    )r!   r    c                 C   s   | j S )z/Make a rolling aggregation function as fixture.)param)requestr   r   r   rolling_aggregationE   s   r)   c                 C   s   ddddddgf\}}}}}t jdd| t jd}t j|||t jd}|| }t j|t jd}	t| |||	 ||	 |}
t| |||||	 }t||
 d S )Nr   r               dtype)	nparangefloat64int64arrayint32r   tmassert_equal)r)   minpstepwidthsize	selectionvaluesendstartselarrresultexpectedr   r   r   -test_rolling_aggregation_boundary_consistencyM   s   rC   c                    s<  d\}}d| d }t jd|d t jd}tjj|||d < t j||d < tjj||d |d < t jd|| gt j	dt j||gt j	d t j fdd	t
tD t jd}t| | |}t j|| t jd}t jdt| |t j	d}|| }	t| |||	|}
t |
j sJ d
t|
| d S )N)r      r,   rD   r   r.   r*   r   c                    s(   g | ]}t |  | D ]}|qqS r   )range)r
   ijr>   r?   r   r   r   d   s   ( zAtest_rolling_aggregation_with_unused_elements.<locals>.<listcomp>z"Not all expected values are finite)r0   r1   r2   sys
float_infominnanmaxr4   r3   rE   lenr5   r   isfiniter=   allr6   r7   )r)   r8   r:   r;   r=   locrA   compact_valuescompact_startcompact_endrB   r   rH   r   -test_rolling_aggregation_with_unused_elementsY   s*   rU   )	functoolsr   rI   numpyr0   pytest pandas._libs.window.aggregations_libswindowaggregationsr   pandasr   pandas._testing_testingr6   r&   _rolling_aggregationsfixturer)   rC   rU   r   r   r   r   <module>   s    5
