o
    dZ}                     @   s  d dl m Z  d dlZd dlZd dlmZ d dlmZ d dlZ	d dlm
Z
mZmZ d dlmZ d dlmZ ee ddde ddd	d
dZeejeeeZe
eeeeedZejdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!ej"#ddgddggd d! Z$d"d# Z%ej"#d$g d%d&d' Z&d(d) Z'd*d+ Z(d,d- Z)d.d/ Z*ej"#d0dd1gd2d3 Z+d4d5 Z,ej"j#d6d7d8 d9d8 gd:d;gd<d=d> Z-d?d@ Z.dAdB Z/dCdD Z0dEdF Z1dGdH Z2ej"#d6dIgdJdKgddLidMdNdOgdPdQ Z3dRdS Z4dTdU Z5dVdW Z6dXdY Z7ej"#dZg d[d\d] Z8d^d_ Z9ej"#d`dadbdcg dddedfdg dgdhdif
djdkdldgdm dcdfdng dodpd	f
dadbdcg dddedfdqg drdsdtf
dadbdcg dddedudg dvdwdif
gdxdy Z:ej"#dzg dLd{d|d}gifdLd~dgd}gdfdLej;dgd}gdfdMd{d|dgifddMej;dfdId{d|dtgifdId~dgdtgdfdIej;dgdtgdfdKd{d|dgifdKd~dgdgdfdKej;dgdgdfdd{d|dtgifdd~dgdtgdfdej;dgdtgdfdd{d|dgifdd~dgdgdfdej;dgdgdfdJd{d|dgifddJej;dfdNd{d|dgifddNej;dfdd{d|dgifddej;dfdd{d|dgifddej;dfdd{d|dgifddej;dfdd Z<ej"#dzddLd~dgfdLej;dgfdddMej;dfddId~dgfdIej;dgfddKd~dgfdKej;dgfddd~dgfdej;dgfddd~dgfdej;dgfgdd Z=ej"#dg ddd Z>dd Z?dS )    )datetimeN)lib)UnsupportedFunctionCall)	DataFrameNamedAggSeries)
date_range     
   ZMin)startendfreqABCc                   C   s   t  S N)_test_framecopy r   r   [/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/resample/test_resample_api.py
test_frame   s   r   c                  C   s<   t d} dt| v sJ t jddd} dt| v sJ d S )NHziDatetimeIndexResampler [freq=<Hour>, axis=0, closed=left, label=left, convention=start, origin=start_day]
2000-01-01)originzsDatetimeIndexResampler [freq=<Hour>, axis=0, closed=left, label=left, convention=start, origin=2000-01-01 00:00:00])test_seriesresamplestr)rr   r   r   test_str   s   

r    c                  C   sh   t d} |  }t|tsJ t|dksJ t  d} |  }t|ts*J t|dks2J d S )Nr      )r   r   mean
isinstancer   lento_framer   )r   resultr   r   r   test_api+   s   
r'   c                  C   s   t tddddg dg ddd} td	d
d tdd
d  }tjjdgd
 dgd
  |gddgd}t ddgd dg dgd  d
g i|d}| ddd dg }t	
|| d S )N
2016-01-01   W)r   periodsr   )r
   r
      r,   )            )dategroupvalr1   z
2016-01-03r0   r+   z
2016-01-17r
   r,   r2   namesr3   r-   r/   r.   indexc                 S   s   |  d S )N1D)r   ffillxr   r   r   <lambda>J       z+test_groupby_resample_api.<locals>.<lambda>)r   r   	set_indextolistpd
MultiIndexfrom_arraysgroupbyapplytmassert_frame_equal)dfir8   expectedr&   r   r   r   test_groupby_resample_api7   s    
(,rK   c                  C   sj   t ddgd tdddtjdd} | dd	d
 }| d	jd
dd }t	
|| d S )Nr   r   r-   r(   r   r4   )keydatesvaluesrM   rL   Don)r   r   nprandomrandnr?   rD   r   r"   rF   rG   rH   rJ   r&   r   r   r   test_groupby_resample_on_apiN   s   


rV   c                  C   s   t dddtdddd} |  }| jdd	d
}|dd }t|| | d}|dd }t|| tj	t
ddgd|jg|_| jddd
}|dd }t|| d S )Nr
   r,   r   r   2000r   r4   r7   Z5DFZ
group_keysc                 S      | S r   r   r;   r   r   r   r=   e       z*test_resample_group_keys.<locals>.<lambda>c                 S   rZ   r   r   r;   r   r   r   r=   j   r[   r   z
2000-01-06r-   Tc                 S   rZ   r   r   r;   r   r   r   r=   r   r[   )r   r   r   r   rE   rF   rG   rA   rB   rC   to_datetimerepeatr8   )rH   rJ   gr&   r   r   r   test_resample_group_keys_   s   
r_   c                 C   sl   t d}| |  }|dd }t|| | d}| |  }|dd }t|| d S )Nr   c                 S      |   |   S r   maxr"   r;   r   r   r   r=   |       ztest_pipe.<locals>.<lambda>c                 S   r`   r   ra   r;   r   r   r   r=      rc   )r   r   rb   r"   piperF   assert_series_equalrG   )r   r   rJ   r&   r   r   r   	test_pipev   s   

rf   c                 C   s   |  d}t|jj| j |  dd }|jj| jd ks J |  dd }t|jj| jddg  |  dd }t|jj| jddg  d S )Nr   r   r
   rW   r   )r   rF   Zassert_index_equalZ_selected_objcolumnsnamer   r   r   r   r   test_getitem   s   
rj   rL   rO   r   c                 C   sJ   | d}d}tjt|d ||   W d    d S 1 sw   Y  d S )Nr   z^\"Columns not found: 'D'\"$match)r   pytestraisesKeyError)rL   r   r^   msgr   r   r   test_select_bad_cols   s
   

"rq   c                 C   s(   |  d}t|j |d   d S )Nr   r   )r   rF   re   r   sumri   r   r   r   test_attribute_access   s   
rs   attr)groupsZngroupsindicesc                 C   sN   t dddd}ttt||d}|d}t||  |  t||  d S )N1/1/2012d   Sr+   r   r7   Z30s)r   r   rR   aranger$   r   getattrr"   )rt   rngtsrsr   r   r   test_api_compat_before_use   s   

r   c                 C   s   | }d|d< | d}|ddg  }tj|j |j gdd}t|| |g d  }tj	t
d	d
 |  W d    n1 sFw   Y  |jdd}t|| d S )NfoorO   r   r   r   r
   Zaxisr   Could not convertrk   Tnumeric_only)r   r"   rA   concatr   r   rF   rG   rm   rn   	TypeError)r   rH   r   r&   rJ   r   r   r   tests_raises_on_nuisance   s   

r   c                  C   s`   t dddd} ttjt| dd| d}|d }tg d	t d
dddd}t|| d S )Nrw   rx   ry   rz   int64dtyper7   Z20s)r      (   <   P   2012-01-01 00:00:00r-   r   r+   )	r   r   rR   r{   r$   r   asfreqrF   re   )r}   r~   r&   rJ   r   r   r   'test_downsample_but_actually_upsampling   s   r   c                  C   st   t dddd} ttt| | d}|jg d }|d  }tg dt	j
g d	d
ddd}t|| d S )Nrw   rx   ry   rz   r7   )r   r
   r,      r-   r/                  Z2s)g      ?g      @g      @      @r         &@r   g      .@      0@r   r   r         9@r   r   g      >@)r   z2012-01-01 00:00:02z2012-01-01 00:00:04z2012-01-01 00:00:06z2012-01-01 00:00:08z2012-01-01 00:00:10z2012-01-01 00:00:12z2012-01-01 00:00:14z2012-01-01 00:00:16z2012-01-01 00:00:18z2012-01-01 00:00:20z2012-01-01 00:00:22z2012-01-01 00:00:24z2012-01-01 00:00:26z2012-01-01 00:00:28z2012-01-01 00:00:30zdatetime64[ns]2S)r   r   )r   r   rR   r{   r$   Zilocr   r"   r:   rA   ZDatetimeIndexrF   re   )r}   r~   Zts2r&   rJ   r   r   r   *test_combined_up_downsampling_of_irregular   s   *r   c                  C   s<   t d} t tjddd}| d}t|| d S )N20minr   r"   )r   r   rD   rA   Grouper	transformrF   re   )r   rJ   r&   r   r   r   test_transform_series  s   

r   rQ   r1   c                 C   s   t tdddtddddd}d|_ttjddtd|d	}|t	j
d
dd}| dkr:|jdd}| }|jd
| d}|d}t|| d S )Nr	   r
   r   rO   r   r1   r,   ABrg   r8   r   r"   T)ZdroprP   )r   r   rh   r   rR   rS   randlistrD   rA   r   r   reset_indexr   rF   rG   )rQ   r8   rH   rJ   r   r&   r   r   r   test_transform_frame  s   
r   c                  C   s   t dddd} ttjt| dd| d}|d}| }|jd	d
}t	|| |
 }|jdd
}t	|| d}tjt|d |d W d    d S 1 sSw   Y  d S )Nrw   r   r   rz   r   r   r7   sr:   )methodbfillzTInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got 0rk   r   )r   r   rR   r{   r$   r   r:   ZfillnarF   re   r   rm   rn   
ValueError)r}   r~   r   rJ   r&   rp   r   r   r   test_fillna  s   
"r   funcc                 C   s   | j dddS )Nr   FrY   )r   r;   r   r   r   r=   7  r>   r=   c                 C   s   | j tjddddS )Nr   r   FrY   )rD   rA   r   r;   r   r   r   r=   8  s    r   rD   )Zidsc                 C   s&   | t }|dd }t|t  d S )Nc                 S   rZ   r   r   r;   r   r   r   r=   ?  r[   z0test_apply_without_aggregation.<locals>.<lambda>)r   rE   rF   re   )r   tr&   r   r   r   test_apply_without_aggregation4  s   
r   c                  C   s>   t jddjddd} | d dd }t|t d d S )Nr   )rh   r   FrY   c                 S   rZ   r   r   r;   r   r   r   r=   E  r[   z1test_apply_without_aggregation2.<locals>.<lambda>)r   r%   r   rE   rF   re   rename)groupedr&   r   r   r   test_apply_without_aggregation2C  s   r   c                  C   sx   t tjddtddddg dd} | d}d	}tjt|d
 |	ddd W d    d S 1 s5w   Y  d S )N  r   rw   ry   r   r   r8   rg   3Tz'Column\(s\) \['r1', 'r2'\] do not existrk   r"   rr   r1r2
r   rR   rS   rT   r   r   rm   rn   ro   aggrH   r   rp   r   r   r   test_agg_consistencyI  s   
"r   c                  C   sx   t tjddtddddddgd} | d	}d
}tjt|d |	ddd W d    d S 1 s5w   Y  d S )Nr   r,   rw   ry   r   r
   ar   r   z#Column\(s\) \[2, 'b'\] do not existrk   r"   rr   )r,   br   r   r   r   r   'test_agg_consistency_int_str_column_mixY  s   
"r   c               	   C   st  t jd ttdddtddddd} d| _tt jddtd	| d
}|	 }|
 }tjjtd|jgddgd|_|d}||jddd|jddd|tjddg}|d  }|d  }|d  }|d  }	|d  }
|d  }tj|||	|
gdd}tjddgddgg|_|D ]J}||d kr|d  }|d  }tj|||gdd}tjg dddgg|_|t jt jg}t|| q|t jt jg}t|| qtj||
gdd}|D ]@}|t jt jd}tj||dd |jdt jfdt jfd}tj||dd |jtdt jtdt jd}tj||dd qtj||gdd}tjddg|_|D ]}|dddgi}t|| qCtj||gdd}ddg|_|D ]!}|d ddg}t|| |d jddd}t|| qfd}|D ]'}tjtj j!|d |ddddi W d    n	1 sw   Y  qtj|||	|gdd}tjg d|_|D ]+}tjtj j!|d |dddddd d W d    n	1 sw   Y  qtj|||	|
gdd}tjg d!|_|D ]}|ddgddgd}tj||dd qtj|||	|gdd}tjg d"|_d S )#N  r	   r
   r   rO   r   r1   r,   r   r   r8   r5   2DrP   levelr   r   r   r"   std)r1   r   r   rW   TZ
check_liker   r"   r   r   rr   )r"   rr   nested renamer is not supportedrk   )r   r   rr   )r   mean2)r   sum2)r   r   )r   r   r   r"   r   r   ))r   r   r"   )r   r   rr   )r   r   r"   )r   r   rr   )"rR   rS   seedr   r   rh   r   r   r   r   r   rA   rB   rC   ranger8   r   rD   r   r"   r   rr   r   Zfrom_productrg   	aggregaterF   rG   r   from_tuplesrm   rn   errorsSpecificationError)r8   rH   df_coldf_multr   casesZa_meanZa_stdZa_sumZb_meanZb_stdZb_sumrJ   r   Z	date_meanZdate_stdexpr&   rp   r   r   r   test_aggl  s   


r   c               	   C   sz  t jd ttdddtddddd} d| _tt jddtd	| d
}|	 }|
 }tjjtd|jgddgd|_|d}||jddd|jddd|tjddg}|D ]Y}|t jdd d}|d dd }tj|d  |gdd}	tj||	dd |jdt jfddd fd}tj||	dd |jtdt jtddd d}tj||	dd q\tj|d  |d  |d  |d  gdd}	tjg d|	_d}
|D ]|}tjt|
d |ddg t jt jd W d    n	1 sw   Y  tjt|
d |ddg jdt jfd t jfd W d    n	1 s*w   Y  tjt|
d |ddg jtdt jtd t jd W d    n	1 sUw   Y  qtj|d  |d   |d  |d   gdd}	tjg d!|	_|D ]}|d"d#gd$d#gd}tj||	dd q|D ]}|ddg d"d#gd$d#gd}tj||	dd qd%}
|D ]P}tjtj!j"|
d |d dd"d#gi W d    n	1 sw   Y  tjtj!j"|
d |d d"d#gd$d#gd W d    n	1 sw   Y  qd&}
|D ]*}tjt|
d |dg d"d#gd$d#gd W d    n	1 s4w   Y  qd S )'Nr   r	   r
   r   rO   r   r1   r,   r   r   r8   r5   r   rP   r   c                 S      t j| ddS Nr
   )ZddofrR   r   r;   r   r   r   r=     r>   ztest_agg_misc.<locals>.<lambda>rW   r   c                 S   r   r   r   r;   r   r   r   r=     r>   r   r   Tr   c                 S   r   r   r   r;   r   r   r   r=     r>   c                 S   r   r   r   r;   r   r   r   r=     r>   ))result1r   )r   r   )result2r   )r   r   z1Column\(s\) \['result1', 'result2'\] do not existrk   )r   r   r   r   )r   r   r   r   rr   r   r"   r   z Column\(s\) \['B'\] do not exist)#rR   rS   r   r   r   rh   r   r   r   r   r   rA   rB   rC   r   r8   r   rD   r   r   rr   rE   r   rF   rG   r   r"   r   rg   rm   rn   ro   r   r   r   )r8   rH   r   r   r   r   r   r&   ZrcustomrJ   rp   r   r   r   test_agg_misc  s   
,$,  r   minr"   rb   rr   prodmedianrW   c                 C   s   t jd ttdddtddddd}d|_tt jddtd	|d
j	}|j
ddd}tjtdd ||  W d    d S 1 sFw   Y  d S )Nr   r	   r
   r   rO   r   r1   r,   r   r   Mr   z"axis other than 0 is not supportedrk   )rR   rS   r   r   r   rh   r   r   r   Tr   rm   rn   NotImplementedErrorr   )r   r8   rH   resr   r   r   test_multi_agg_axis_1_raises2  s   "r   c               	   C   s  t jd ttdddtddddd} d| _tt jddtd	| d
}|	 }|
 }tjjtd|jgddgd|_|d}||jddd|jddd|tjddg}d}|D ]+}tjtjj|d |dddgidddgid W d    n1 sw   Y  q^|D ]X}tjtjj|d |ddg dddgidddgid W d    n1 sw   Y  tjtjj|d |dddgidddgid W d    n1 sw   Y  qd S )Nr   r	   r
   r   rO   r   r1   r,   r   r   r8   r5   r   rP   r   r   rk   r   r"   rr   r   r   rar   rbrW   )rR   rS   r   r   r   rh   r   r   r   r   r   rA   rB   rC   r   r8   r   rD   r   rm   rn   r   r   r   r   )r8   rH   r   r   r   r   rp   r   r   r   r   test_agg_nested_dicts@  s@   
""r   c                  C   s   t dddddddt dddddddt ddddd	d
dg} t| d}d}tjt|d |ddgdgdgd W d    d S 1 sKw   Y  d S )Ni  r.   r
   r   g      ?g       @)dtr<   yr,   g      @g      ?r   z Column\(s\) \['z'\] do not existrk   Z30Tr"   r   rr   )r<   r   z)r   r   r?   rm   rn   ro   r   r   )datarH   rp   r   r   r   &test_try_aggregate_non_existing_columna  s    "r   c                  C   s   t dg ditddddd} dd
d}ddd}d}tjt|d | dj||gdddd W d    n1 s;w   Y  | dj||gddd}t ddgddgddggtddddtj	ddgd}t
|| d S )Nr<   )r
   r,   r   
2020-01-01r   rO   rz   r7   r
   r   c                 S      | | | S r   r   )r<   r   cr   r   r   foo1v     z/test_agg_list_like_func_with_args.<locals>.foo1r,   c                 S   r   r   r   )r<   r   r   r   r   r   foo2y  r   z/test_agg_list_like_func_with_args.<locals>.foo2z/foo1\(\) got an unexpected keyword argument 'b'rk   r)   )r   r   )r   r0   	   r   )r<   r   )r<   r   r   )r
   r   )r,   r   )r   r   rm   rn   r   r   r   rA   rB   r   rF   rG   )rH   r   r   rp   r&   rJ   r   r   r   !test_agg_list_like_func_with_argsp  s    

r   c                  C   s  t tdddtddddd} tjt| tjd}t| |dtjj	|| gdd	gd
d}td|i| d}d}t
jt|d |jddd W d    n1 sOw   Y  d}t
jt|d |jddd	d W d    n1 spw   Y  d}t
jt|d |jdddgd W d    n1 sw   Y  d}t
jt|d |jdddgd W d    n1 sw   Y  d}t
jt|d |jdd	d  W d    n1 sw   Y  t
jt|d |jddd  W d    n1 sw   Y  |d }d|j_|jddd }t|| d	|j_t
jtdd |jdd	d  W d    n	1 s5w   Y  |jdd	djdd}t|| d S )Nr	   r
   r   rO   r   r   )r1   r   vdr5   r7   r   z\Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'rk   r   r   z2The Grouper cannot specify both a key and a level!r1   )rQ   r   zunhashable type: 'list'rP   z#\"Level \['a', 'date'\] not found\"z|Upsampling from level= or on= selection is not supported, use \.set_index\(\.\.\.\) to explicitly set index to datetime-likez$datetime64 type does not support sumTr   )r   r   rR   r{   r$   r   r   rA   rB   rC   rm   rn   r   r   r   ro   r   rr   r8   rh   rF   rG   )r8   r}   rH   Zdf_exprp   r   r&   r   r   r   test_selection_api_validation  sT   r   col_name)t2Zt2xZt2qZT_2MZt2pZt2mZt2m1ZT2Mc                 C   s~   t ttdtddddd| gd}|ddg}t g d	tdd
dddtj| gdggdgdggdd}t	|| d S )N   z
2017-01-01Z15minzEurope/Berlin)r   r   r+   tzr   Z1dr"   )g     G@g     a@g     ph@rO   r   r   )Zlevelscodes)
r   r   r   r   r   r   rA   rB   rF   rG   )r   rH   r&   rJ   r   r   r   *test_agg_with_datetime_index_list_agg_func  s   	
r  c                  C   s   t dddd} t| }|jdd t|| d}|d}ttd	td	g| d d d
 d}|d}t	
|| |d}t	
|| |d}t	
|| |d}t	
|| d S )Nr   z
2020-01-02Z1hr   F)writer7   r9   r      lastfirstrb   r   )r   rR   Z
zeros_likeZsetflagsr   r   rA   	Timestampr   rF   re   )r8   ZarrZserr   rJ   r&   r   r   r   test_resample_agg_readonly  s   

&



r  zLstart,end,freq,data,resample_freq,origin,closed,exp_data,exp_end,exp_periodsz2000-10-01 23:30:00z2000-10-02 00:26:00Z7min)	r   r   r.   r      r         r  Z17minr   )r   r
     ?   z20001002 00:26:00r)   z20200101 8:26:35z20200101 9:31:58Z77s3   right)
r
   r.   r-   r.   r-   r.   r-   r.   r-   r.   z2020-01-01 09:30:45left)r   r
  r  '   r  z20001002 00:43:00r-   Zend_day)r   r   -   r  z2000-10-02 00:29:00c
                 C   sT   t | ||d}
t||
d}|j|||d }t|t |||	dd}t|| d S )Nr   r7   )r   closed)r   r   r+   )r   r   r   rr   rF   re   )r   r   r   r   Zresample_freqr   r  Zexp_dataZexp_endZexp_periodsr}   r~   r   rJ   r   r   r   test_end_and_end_day_origin  s   Ar  z#method, numeric_only, expected_dataTnumr   FZ
cat_1cat_2catr  rx   )r   Fcan't multiply sequencer  cat_1r   cat_2r  r  g      )@)r"   Fr   r   )r   Fcould not convertr  r   gH6%@)r   F!could not convert string to floatr  varg      \@)r  Fr  semg      @)r  Fr  c                 C   s   t dddd}t dddd}tdd	gd
dgd|d}|d}|tju r(i }nd|i}t|| }t|tr_| dv r<tnt	}	t
j|	|d |di |}
W d    d S 1 sXw   Y  d S |di |}t||d}t|| d S )N
2018-01-01r,   rO   rz   
2018-12-31r
   Yr  r  r-   r   r  r7   r   )r  r"   r   r   rk   r   )r   r   r   r   
no_defaultr|   r#   r   r   r   rm   rn   rF   rG   )r   r   expected_datar8   expected_indexrH   	resampledkwargsr   klass_r&   rJ   r   r   r   test_frame_downsample_method<  s    *



"r)  )rr   Tr   )r   Tr   )r   Fr   r   )r   Tr   )rb   Tr   )r  Tr   )r  Tr   c                 C   s$  t dddd}t dddd}tdd	g|d
}|d}|tju r"i nd|i}t|| }|rX|tjurXd|  }	tjt|	d |di | W d    d S 1 sQw   Y  d S | dkr}tjtdd |di | W d    d S 1 svw   Y  d S |di |}
t||d
}t	
|
| d S )Nr  r,   rO   rz   r   r
   r!  r  r  r7   r   z1Cannot use numeric_only=True with SeriesGroupBy\.rk   r   z"can't multiply sequence by non-intr   )r   r   r   r   r"  r|   rm   rn   r   rF   re   )r   r   r#  r8   r$  rH   r%  r&  r   rp   r&   rJ   r   r   r   test_series_downsample_methodz  s$   


""r*  zmethod, raises))rr   T)r   T)r   T)rb   T)r  F)r  F)r   F)r"   T)r   T)r  T)r  F)ZohlcF)ZnuniqueFc           
   	   C   sd  t dddd}tg d|d}|d}d}t|| }d	}d
}d|  }	|rltjt|	d5 tjt	|d |g |dddR   W d    n1 sMw   Y  W d    d S W d    d S 1 sew   Y  d S tjt|	d5 tjt
|d |g |dddR   W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )NZ20180101r   hrz   )r,   r)   r.   r7   Z30minr   z-numpy operations are not valid with resample.ztoo many arguments passed inz2Passing additional args to DatetimeIndexResampler.rk   r
   r,   )r   r   r   r|   rF   Zassert_produces_warningFutureWarningrm   rn   r   r   )
r   rn   r8   rH   r%  argsr   	error_msgZerror_msg_typeZwarn_msgr   r   r   test_args_kwargs_depr  s.   


""r/  c                  C   sF   t tg dd} t tg dd}| d }t|| d S )N)2018-01-01 00:00:00z2018-01-01 12:00:002018-01-02 00:00:00r7   )r0  z2018-01-01 08:00:00z2018-01-01 16:00:00r1  Z8H)r   rA   r\   r   r"   rF   rG   rU   r   r   r   test_resample_empty  s   
r2  )@r   numpyrR   rm   Zpandas._libsr   Zpandas.errorsr   ZpandasrA   r   r   r   Zpandas._testingZ_testingrF   Zpandas.core.indexes.datetimesr   ZdtirS   r   r$   r   r{   r   Zfixturer   r    r'   rK   rV   r_   rf   rj   markZparametrizerq   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r)  r*  r/  r2  r   r   r   r   <module>   s   

	
7

k[
!5

5
	




 
!
'







