o
    _~#gs<                  	   @   s  d dl m Z  d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ ede ddde dddfZede ddde dddfZ edddfZ!ej"#dee e!gZ$ej%dd Z&ej"#dddgej"#dee!gdd Z'ej"#dee!gdd Z(e$dd Z)dd  Z*e$ej"#dg d!d"d# Z+e$ej"#dej,d$ej"j-d%d&d'd(d)gd*d+ Z.e$ej"#dg d!ej"#d,d-d.gd/d0 Z/e$ej"#dg d!d1d2 Z0e$ej"#dg d!d3d4 Z1e$ej"#dg d!d5d6 Z2ej"#d7eg d8d9d:e	g d9d;eg d9d;gej"#d<e3e4e5d=gej"6d>d?d@ Z7e$ej"#dg d!dAdB Z8e$dCdD Z9e$dEdF Z:ej"#dGdHdIgdJdK Z;dS )L    )datetimeN)is_extension_array_dtype)	DataFrameDatetimeIndexIndex
MultiIndexNaTPeriodIndexSeriesTimedeltaIndex)	DataError)Grouper)
date_range)period_range)timedelta_range)_asfreq_compatdtii     
   pitdiz1 dayz10 dayz3_index_factory,_series_name,_index_start,_index_endc                    s    fdd}|S )Nc                     s    | i |S )z8return the _index_factory created using the args, kwargs )argskwargs_index_factoryr   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/resample/test_base.py_create_index-   s   z#create_index.<locals>._create_indexr   )r   r   r   r   r   create_index+   s   r   freq2D1hc                 C   sF   | }| | }||jd |jd |d}||}t|| d S )Nr   r   )resampleasfreqindexreindextmassert_almost_equal)series_and_framer   r   objresult	new_indexexpectedr   r   r   test_asfreq4   s
   
r/   c                 C   s   | }| d }||jd |jd dd}||}t|| |dd}d |jd< | djdd	}||jd |jd dd}|j|dd	}t	|| d S )
Nr!   r   r"   r#   floatvaluer         @)
fill_value)
r$   r%   r&   r'   r(   assert_series_equalastypeto_frameilocassert_frame_equal)seriesr   serr,   r-   r.   framer   r   r   test_asfreq_fill_valueA   s   

r<   c                 C   sz   | }d }t |jtrt}d}tj||d |d  }|d }W d    n1 s0w   Y  t	|| d S )N+Resampling with a PeriodIndex is deprecatedmatch1min)

isinstancer&   r	   FutureWarningr(   assert_produces_warningr$   r%   interpolater8   )r;   dfwarnmsgr,   r.   r   r   r   test_resample_interpolateW   s   rH   c                  C   sH   t  } d}tjt|d | d W d    d S 1 sw   Y  d S )NzaOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'r>   YE)r   pytestraises	TypeErrorr$   )xprG   r   r   r   %test_raises_on_non_datetimelike_indexe   s   "rN   )MEDhc           	      C   sd  |}| dkr-t |jtr-d}tjt|d ||  W d    d S 1 s&w   Y  d S | dkr9t |jtr9d} d }t |jtrCt}d}t	j
||d || }W d    n1 s\w   Y  t|| }|dkrtg |jd d  g dd	}t|j| |_t	j||d
d n| }t|j| |_t	j||d
d t	|j|j |jj|jjksJ d S )NrO   aResampling on a TimedeltaIndex requires fixed-duration `freq`, e.g. '24h' or '3D', not <MonthEnd>r>   Mr=   ohlcr   openhighlowcloser&   columnsFcheck_dtype)rA   r&   r   rJ   rK   
ValueErrorr$   r	   rB   r(   rC   getattrr   copyr   r8   r4   assert_index_equalr   )	r   empty_series_dtiresample_methodr:   rG   rF   rsr,   r.   r   r   r   test_resample_empty_seriesp   s>   
re   rO   zDon't know why this fails)reason)marksrP   rQ   c                 C   s   |  }ttgt| | d|_d}tjt|d || }W d    n1 s)w   Y  t	|| }|dkrQt
g |jd d   g dd}tj||dd	 n|d d   }tj||dd	 t|j|j |jj|jjkssJ d S )
Nr#   r=   r>   rT   r   rU   rZ   Fr\   )r`   r	   r   lenr&   r(   rC   rB   r$   r_   r   r8   r4   ra   r   )r   r9   rc   r:   rG   rd   r,   r.   r   r   r   test_resample_nat_index_series   s    ri   rc   countsizec           
      C   s   |}| dkr-t |jtr-d}tjt|d ||  W d    d S 1 s&w   Y  d S | dkr9t |jtr9d} d }t |jtrCt}d}t	j
||d || }W d    n1 s\w   Y  t|| }t|j| }tg d||jd}	t	||	 d S )NrO   rR   r>   rS   r=   int64)dtyper&   name)rA   r&   r   rJ   rK   r^   r$   r	   rB   r(   rC   r_   r   r
   rn   r4   )
r   rb   rc   r:   rG   rF   rd   r,   r&   r.   r   r   r    test_resample_count_empty_series   s.   
ro   c           
      C   s  | }|dkr/t |jtr/d}tjt|d |j|dd W d    d S 1 s(w   Y  d S |dkr;t |jtr;d}d }t |jtrEt}d}t	j
||d |j|dd}W d    n1 s`w   Y  t|| }|dkrt|jg d	g}tg |jd d
  |tjd}	t|j||	_n|dkr| }	ntg tjd}	t|j||	_t	|j|	j |jj|	jjksJ t	||	 d S )NrO   rR   r>   F
group_keysrS   r=   rT   rU   r   )r&   r[   rm   rk   rm   )rA   r&   r   rJ   rK   r^   r$   r	   rB   r(   rC   r_   r   from_productr[   r   r`   npfloat64r   r
   rl   ra   r   r)   )
empty_frame_dtir   rc   rE   rG   rF   rd   r,   mir.   r   r   r   test_resample_empty_dataframe   sB   

rx   c                 C   s  g |d< | dkr/t |jtr/d}tjt|d ||  W d    d S 1 s(w   Y  d S | dkr;t |jtr;d} d }t |jtrEt}d}t	j
||d || }W d    n1 s^w   Y  | }t|j| }td|tdgtdd	}t	|| d S )
NarO   rR   r>   rS   r=   rl   rr   )rm   r&   r[   )rA   r&   r   rJ   rK   r^   r$   r	   rB   r(   rC   rj   r   r   r   objectr8   r   rv   rG   rF   rd   r,   r&   r.   r   r   r   #test_resample_count_empty_dataframe  s.   
r|   c                 C   s   g |d< | dkr/t |jtr/d}tjt|d ||  W d    d S 1 s(w   Y  d S | dkr;t |jtr;d} d}d }t |jtrGt}t	j
||d || }W d    n1 s^w   Y  | }t|j| }tg d|d}t	|| d S )	Nry   rO   rR   r>   rS   Resampling with a PeriodIndexrl   )rm   r&   )rA   r&   r   rJ   rK   r^   r$   r	   rB   r(   rC   rk   r   r
   r4   r{   r   r   r   "test_resample_size_empty_dataframe-  s.   
r~   r&   rS   ry   r   rn   )rn   rm   zdatetime64[ns]z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   s   d }t | trtg d| jd} t}d}tg | |}tj||d |jddd}W d    n1 s2w   Y  z	t||  W d S  t	yJ   Y d S w )NBr   r=   r>   dFrp   )
rA   r	   rn   rB   r
   r(   rC   r$   r_   r   )r&   rm   rc   rF   rG   rb   rd   r   r   r   test_resample_empty_dtypesO  s   
r   c                 C   s&  | }|dkr-t | jtr-d}tjt|d | | W d    d S 1 s&w   Y  d S |dkr9t | jtr9d}d}d }t | jtrEt}t	j
||d |j|dd}W d    n1 s^w   Y  |dd	 }t	j
||d ||d
}W d    n1 sw   Y  t	j||dd d S )NrO   rR   r>   rS   r}   Frp   c                 S   s   dS )Nr   r   xr   r   r   <lambda>  s    z,test_apply_to_empty_series.<locals>.<lambda>sumr\   )rA   r&   r   rJ   rK   r^   r$   r	   rB   r(   rC   applyr4   )rb   r   r:   rG   rF   rd   r,   r.   r   r   r   test_apply_to_empty_serieso  s0   
r   c                 C   s   d}t |dd}d}d }t| jtrt}tj||d | |}W d    n1 s+w   Y  tj||d | |}W d    n1 sGw   Y  t	||D ]\\}}\}	}
||	ks_J t
||
 qQd S )NrQ   start)r   
conventionr}   r>   )r   rA   r&   r	   rB   r(   rC   groupbyr$   zipr4   )r9   r   tgrG   rF   grouped	resampledrkrvgkgvr   r   r   test_resampler_is_iterable  s    r   c                    s   | }d d}d}d }t | jtrt}tj||d  || }|| fdd	|j
}W d    n1 s<w   Y  t|| d S )Ng      ?rQ   r}   r>   c                    s
   |   S )N)quantiler   qr   r   r     s   
 z(test_resample_quantile.<locals>.<lambda>)rA   r&   r	   rB   r(   rC   r$   r   aggrenamern   r4   )r9   r:   r   rG   rF   r,   r.   r   r   r   test_resample_quantile  s   "r   howfirstlastc           
      C   s   t | rt| djj}ntj}tg d|d|dg|d|dgdtdddd	| d
}|d}t	||}||d}|
|jd tdg }t	|||d}	d|	j_t||	 d S )Nrr   )   r   r   r   g      @r2   )ry   bcz
2020-01-01   rP   )periodsr   )r&   rm   rO   )skipnar   z
2020-01-31)r   r
   rm   na_valuert   nanr   r   r$   r_   r   shapepdto_datetimer&   r   r(   r8   )
any_real_nullable_dtyper   r   r   rE   rd   methodr,   gbr.   r   r   r   test_first_last_skipna  s$   


	

r   )<r   numpyrt   rJ   pandas.core.dtypes.commonr   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr(   pandas.core.groupby.groupbyr   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   pandas.core.indexes.timedeltasr   pandas.core.resampler   
DATE_RANGEPERIOD_RANGETIMEDELTA_RANGEmarkparametrizeall_tsfixturer   r/   r<   rH   rN   re   paramxfailri   ro   rx   r|   r~   r0   intrz   filterwarningsr   r   r   r   r   r   r   r   r   <module>   s    (

	

'.  




