o
    S+ i5                  	   @   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 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j!"d$d dg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/d0d1gd2d3 Z/e#ej!"dg d!d4d5 Z0e#ej!"dg d!d6d7 Z1e#ej!"dg d!d8d9 Z2ej!"d:eg d;d<d=e	g d<d>eg d<d>gej!"d?e3e4e5d@gdAdB Z6e#ej!"dg d!dCdD Z7e#dEdF Z8e#dGdH Z9ej!"dIdJdKgdLdM Z:dS )N    )datetimeN)is_extension_array_dtype)	DataFrameDatetimeIndex
MultiIndexNaTPeriodIndexSeriesTimedeltaIndex)	DataError)Grouper)
date_range)period_range)timedelta_range)_asfreq_compatZdtii     
   piZ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   k/home/app/PaddleOCR-VL-test/.venv_paddleocr/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   freqZ2D1hc                 C   sF   | }| | }||jd |jd |d}||}t|| d S )Nr   r   )resampleasfreqindexreindextmassert_almost_equal)Zseries_and_framer   r   objresult	new_indexexpectedr   r   r   test_asfreq3   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         @)Z
fill_value)
r    r!   r"   r#   r$   assert_series_equalZastypeZto_frameZilocassert_frame_equal)seriesr   serr'   r(   r)   framer   r   r   test_asfreq_fill_value@   s   

r3   c                 C   s4   | }| d  }| d }t|| d S )NZ1min)r    r!   Zinterpolater$   r/   )r2   dfr'   r)   r   r   r   test_resample_interpolateV   s   r5   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'matchZYE)r   pytestraises	TypeErrorr    )Zxpmsgr   r   r   %test_raises_on_non_datetimelike_index_   s   "r<   )MEDhc                 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} || }t|| }|dkrht	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 )Nr=   aResampling on a TimedeltaIndex requires fixed-duration `freq`, e.g. '24h' or '3D', not <MonthEnd>r6   Mohlcr   openhighlowcloser"   columnsFZcheck_dtype)
isinstancer"   r
   r8   r9   
ValueErrorr    r   getattrr   copyr   r$   r/   r.   assert_index_equalr   )r   empty_series_dtiresample_methodr1   r;   rsr'   r)   r   r   r   test_resample_empty_seriesj   s2   

rS   	min_countc           	      C   sp   | }t tjtg d|d}|d}|j|d}|dkrdntj}tdddd	}t |||d}t|| d S )
N)z2000-01-01 00:00:00z2000-01-01 00:00:10z2000-01-01 00:00:20z2000-01-01 00:00:30r"   dtypeZ20s)rT   r    z
2000-01-01   )startr   periods)	r	   pdZNAr   r    sumr   r$   r.   )	Zstring_dtype_no_objectrT   rV   r1   rR   r'   r,   r"   r)   r   r   r   test_resample_empty_sum_string   s   
r]   r=   zDon't know why this fails)reason)Zmarksr>   r?   c                 C   s   |  }ttgt| | d|_|| }t|| }|dkr8t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sZJ d S )Nr   rB   r   rC   rH   FrJ   )rN   r   r   lenr"   r    rM   r   r$   r/   r.   rO   r   )r   r0   rQ   r1   rR   r'   r)   r   r   r   test_resample_nat_index_series   s   
r`   rQ   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} || }t|| }t	|j| }t
g d||jd}t|| d S )Nr=   r@   r6   rA   int64)rV   r"   name)rK   r"   r
   r8   r9   rL   r    r   rM   r   r	   rd   r$   r.   )	r   rP   rQ   r1   r;   rR   r'   r"   r)   r   r   r    test_resample_count_empty_series   s"   

re   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}|j|dd}t|| }|dkrnt	
|jg dg}tg |jd d	  |tjd
}t|j||_n|dkrw| }ntg tjd}t|j||_t|j|j |jj|jjksJ t|| d S )Nr=   r@   r6   FZ
group_keysrA   rB   rC   r   )r"   rI   rV   rb   rV   )rK   r"   r
   r8   r9   rL   r    r   rM   r   Zfrom_productrI   r   rN   npZfloat64r   r	   rc   r$   rO   r   r%   )	empty_frame_dtir   rQ   r4   r;   rR   r'   mir)   r   r   r   test_resample_empty_dataframe   s6   

rk   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} ||  }t	|j| }t
d|dgd}t|| d S )Nar=   r@   r6   rA   rc   )rV   r"   rI   )rK   r"   r
   r8   r9   rL   r    r   ra   r   r   r$   r/   r   ri   r;   r'   r"   r)   r   r   r   #test_resample_count_empty_dataframe
  s    
rn   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} ||  }t	|j| }t
g d|d}t|| d S )Nrl   r=   r@   r6   rA   rc   )rV   r"   )rK   r"   r
   r8   r9   rL   r    r   rb   r   r	   r$   r.   rm   r   r   r   "test_resample_size_empty_dataframe%  s    
ro   r"   rA   rl   )r   rd   )rd   rV   zdatetime64[ns]c                 C   sB   t g | |}|jddd}z	t||  W d S  ty    Y d S w )NdFrf   )r	   r    rM   r   )r"   rV   rQ   rP   rR   r   r   r   test_resample_empty_dtypes@  s   rq   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}|j|dddd }||d	}t	j
||dd
 d S )Nr=   r@   r6   rA   Frf   c                 S   s   dS )Nr   r   xr   r   r   <lambda>i  s    z,test_apply_to_empty_series.<locals>.<lambda>r\   rJ   )rK   r"   r
   r8   r9   rL   r    r   applyr$   r.   )rP   r   r1   r;   r'   r)   r   r   r   test_apply_to_empty_seriesW  s   
rv   c           	      C   s\   d}t |dd}| |}| |}t||D ]\\}}\}}||ks%J t|| qd S )Nr?   rY   )r   Z
convention)r   groupbyr    zipr$   r.   )	r0   r   tggroupedZ	resampledZrkrvZgkgvr   r   r   test_resampler_is_iterableo  s   

r}   c                    sL   | }d d}| | }| | fdd|j}t|| d S )Ng      ?r?   c                    s
   |   S )N)quantilerr   qr   r   rt     s   
 z(test_resample_quantile.<locals>.<lambda>)r    r~   Zaggrenamerd   r$   r.   )r0   r1   r   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 )Nrg   )rX   r   r   rX   g      @r-   )rl   bcz
2020-01-01   r>   )rZ   r   rU   r=   )skipnar   z
2020-01-31)r   r	   rV   na_valuerh   nanr   r   r    rM   rw   shaper[   to_datetimer"   r   r$   r/   )
Zany_real_nullable_dtyper   r   r   r4   rR   methodr'   gbr)   r   r   r   test_first_last_skipna  s$   


	

r   );r   numpyrh   r8   Zpandas.core.dtypes.commonr   Zpandasr[   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr$   Zpandas.core.groupby.groupbyr   Zpandas.core.groupby.grouperr   Zpandas.core.indexes.datetimesr   Zpandas.core.indexes.periodr   Zpandas.core.indexes.timedeltasr   Zpandas.core.resampler   Z
DATE_RANGEZPERIOD_RANGEZTIMEDELTA_RANGEmarkZparametrizeZall_tsZfixturer   r*   r3   r5   r<   rS   r]   paramZxfailr`   re   rk   rn   ro   r+   intobjectrq   rv   r}   r   r   r   r   r   r   <module>   s    $	
	

!
(



