o
    TiV]                  *   @   s>  d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ dd Zdd Zejdd	gd	d
ggejjddd dD edededededgejdddejdddejdddejdddejdddgeded  eded  eded  eded  eded  geddeddeddeddeddgg dd dejddddg dfdddg dfdddg dfdddg dfd ddg d!fd ddg d"fd ddg d#fd ddg d$fd%ddg d&fd%ddg d'fd%ddg d(fd%ddg d)fd*ddg d+fd*ddg d,fd*ddg d-fd*ddg d.fd/ddg d0fd/ddg d1fd/ddg d#fd/ddg d2fgd3d4 Zejdd	gd	d
ggejdej ej ejd5ejejejggejd6ddd7d8d8ejd9ejd:d:gfddd;g d<fddd=g d>fddd7d:d:ejd9ejd8d8gfddd;g d?fddd=g d@fd dd7d5d5ejdAejdBdBgfd dd;g dCfd dd=g dDfd dd7dBdBejdAejd5d5gfd dd;g dEfd dd=g dFfd%dd7dGdGejdAejdHdHgfd%dd;g dIfd%dd=g dJfd%dd7dHdHejdAejdGdGgfd%dd;g dKfd%dd=g dLfd*dd7d5dGejdAejdBdHgfd*dd;g dMfd*dd=g dNfd*dd7dBdHejdAejd5dGgfd*dd;g dOfd*dd=g dPfd/dd7d5d5ejdGejdAdAgfd/dd;g dQfd/dd=g dRfd/dd7dAdAejdGejd5d5gfd/dd;g dSfd/dd=g dTfgdUdV Zejdd	gd	d
ggejjddWd dXD ededejedededejejgejdddejdddejejdddejdddejdddejejgeded  eded  ejeded  eded  eded  ejejgeddeddejeddeddeddejejgg dYd dejdZg ddd7ddGdGejdHdGdBejejgfddd7dd[d[ejd5d[d\ejejgfddd7ddBdBejd5dBdGejejgfddd7dd\d\ejd]d\d[ejejgfd dd7dd5d5ejdHd5dBejejgfd dd7dd]d]ejd5d]d\ejejgfd dd7ddAdAejd5dAdGejejgfd dd7dd^d^ejd]d^d[ejejgfd%dd7ddAdAejdHdAdBejejgfd%dd7dd^d^ejd5d^d\ejejgfd%dd7ddHdHejd5dHdGejejgfd%dd7dd5d5ejd]d5d[ejejgfd*dd7dd5dGejdHdAdBejejgfd*dd7dd]d[ejd5d^d\ejejgfd*dd7ddAdBejd5dHdGejejgfd*dd7dd^d\ejd]d5d[ejejgfd/dd7dd5d5ejdAd5dGejejgfd/dd7dd_d_ejd5d_d`ejejgfd/dd7ddAdAejd5dAdGejejgfd/dd7dd5d5ejd_d5d`ejejgfddd=dg dafddd=dg dbfddd=dg dcfddd=dg ddfd dd=dg defd dd=dg dffd dd=dg dgfd dd=dg dhfd%dd=dg difd%dd=dg djfd%dd=dg dkfd%dd=dg dlfd*dd=dg dmfd*dd=dg dnfd*dd=dg dofd*dd=dg dpfd/dd=dg dqfd/dd=dg drfd/dd=dg dsfd/dd=dg dtfdudv Zejdwdg dxfdg dyfgdzd{ Zejd|g d}ejd~ddgdd Zejdg dejdddgejdg dejdddgejdg ddejdejdggdd Zejdg dejdg dejdddgejdddgejdg ddejdejdgdejdejd9ggdd Zdd Zejdddgddgd5d5gfg dg dg dfg ddddejgdd5d5ejgfg dddejgdd5ejgfgdd Zdd Zejdddgdd Zdd Z dd Z!dd Z"dd Z#dd Z$dS )    )datetimeN)	DataFrameNaTSeriesconcatc                  C   s   t jg dd} t| }| }d}|j| dd}tjt|d |  W d    n1 s.w   Y  |j| dd}tjt|d |  W d    d S 1 sQw   Y  d S )NForderedz0Cannot perform rank with non-ordered Categorical)Zobservedmatch)	pdCategoricalr   Zto_framegroupbypytestraises	TypeErrorrank)catZserdfmsggbgb2 r   ^/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_rank.py)test_rank_unordered_categorical_typeerror   s   

"r   c                  C   s.  t jdgd td} t jdgd td}t jdjdddtd	}t jdjdddtd	}tt jdd| 	||	|d
}|
ddgj }dd |
ddgD }t|dd}||j}t|| |
ddgjjdd}dd |
ddgD }t|dd}||j}t|| d S )NZ
aaaaaaaaaad   dtypeZ
bbbbbbbbbb      r   i  )sizer   )valuekey1key2r!   r"   c                 S   s   g | ]	\}}|j  qS r   r    r   .0keyZpiecer   r   r   
<listcomp>1   s    z#test_rank_apply.<locals>.<listcomp>axisTpctc                 S   s   g | ]\}}|j jd dqS )Tr*   r#   r$   r   r   r   r'   8   s    )nparrayobjectrandomZdefault_rngZintegersintr   Zstandard_normalZtaker   r    r   r   Zreindexindextmassert_series_equal)Zlev1Zlev2Zlab1Zlab2r   resultexpectedr   r   r   test_rank_apply!   s,   r6   grpsZquxZquuxvalsc                 C   s   g | ]}t jg d |dqS ))r   r      r      r   )r,   r-   r%   r   r   r   r   r'   C   s    r'   )i8i4i2i1u8Zu4u2u1f8f4f2z
2018-01-02z
2018-01-08z
2018-01-06z
US/PacifictzDc                 C      t | d S Nr   typexr   r   r   <lambda>e       rO   )Zidszties_method,ascending,pct,expaverageTF)       @rR         @rR         @)皙?rU         ?rU   皙?)rT   rT   rV   rT   rR   )rW   rW   皙?rW   rU   min)rV   rV   rS   rV   rT   )rX   rX   rV   rX   rW   )      @rZ   rV   rZ   rR   )333333?r[   rX   r[   rU   max)rZ   rZ   rS   rZ   rT   )r[   r[   rV   r[   rW   )rS   rS   rV   rS   rR   )rV   rV   rX   rV   rU   first)rV   rR   rS   rZ   rT   )rX   rU   rV   r[   rW   )rZ   rT   rV   rS   rR   )r[   rW   rX   rV   rU   dense)rV   rV   rZ   rV   rR   )UUUUUU?r_   rV   r_   UUUUUU?)rV   rV   r_   rV   r`   c                 C   s   t | t|}|}t|t|  }t|t jr t j||jd}t||d}|	dj
|||d}	t|t|  dgd}
t|	|
 d S )Nr   r&   valr&   )method	ascendingr+   rb   columnsr,   repeatlenlist
isinstanceZndarrayr-   r   r   r   r   r2   assert_frame_equal)r7   r8   ties_methodrd   r+   expr&   	orig_valsr   r4   exp_dfr   r   r   test_rank_args@   s   Arq   rV   z#ties_method,ascending,na_option,expkeep      ?         @top)      @rw   rs   rS   rs         @rx   bottom)rs   rs   rx   rZ   rx   ru   ru   )rx   rx   rs   rS   rs   rw   rw   )ru   ru   rx   rZ   rx   rs   rs   rZ   rT   )rZ   rZ   rV   rS   rV         @rz   )rV   rV   rz   rZ   rz   rT   rT   )rz   rz   rV   rS   rV   rZ   rZ   )rT   rT   rz   rZ   rz   rV   rV   rR   rS   )rT   rT   rR   rS   rR         @r{   )rR   rR   r{   rZ   r{   rS   rS   )r{   r{   rR   rS   rR   rT   rT   )rS   rS   r{   rZ   r{   rR   rR   )rZ   rT   rV   rS   rR   rz   r{   )rV   rR   rz   rZ   r{   rT   rS   )rz   r{   rV   rS   rR   rZ   rT   )rT   rS   rz   rZ   r{   rV   rR   )rR   rR   rV   rZ   rV   rT   rT   )rV   rV   rT   rR   rT   rZ   rZ   )rT   rT   rV   rZ   rV   rR   rR   )rZ   rZ   rT   rR   rT   rV   rV   c           
      C   sf   t | t|}|t|  }t||d}|dj|||d}t|t|  dgd}	t||	 d S )Nra   r&   )rc   rd   	na_optionrb   re   )r,   rh   ri   r   r   r   r2   rl   )
r7   r8   rm   rd   r|   rn   r&   r   r4   rp   r   r   r   test_infs_n_nans   s   )
r}   c                 C   s0   g | ]}t jd d t jdd dt jt jg|dqS )r   r9   r:   r   )r,   r-   nanr;   r   r   r   r'      s    ")rC   rD   rE   c                 C   rI   rJ   rK   rM   r   r   r   rO      rP   z'ties_method,ascending,na_option,pct,exprU   rW   rX   r[   r_   r`   )rR   rR   r{   rS   rR   rT   r{   r{   )      ?r         ?      ?r         ?r   r   )rT   rT   r{   rV   rT   rR   r{   r{   )r   r   r         ?r   r   r   r   )rV   rV   rz   rS   rV   rT   rz   rz   )r   r         ?r   r   r   r   r   )rZ   rZ   rz   rV   rZ   rR   rz   rz   )      ?r   r   r   r   r   r   r   )rZ   rZ          @rS   rZ   rT   r   r   )r   r   rV   r   r   r   rV   rV   )rS   rS   r   rV   rS   rR   r   r   )r   r   rV   r   r   r   rV   rV   )rV   rR   rz   rS   rZ   rT   r{   r   )r   r   r   r   r   r   r   rV   )rZ   rT   rz   rV   rS   rR   r{   r   )r   r   r   r   r   r   r   rV   )rV   rV   rT   rZ   rV   rR   rT   rT   )r   r   rV   r   r   r   rV   rV   )rZ   rZ   rT   rV   rZ   rR   rT   rT   )r   r   rV   r   r   r   rV   rV   c                 C   s   t | t|}|}t|t|  }t|t jr t j||jd}t||d}	|		dj
||||d}
t|t|  dgd}t|
| d S )Nr   ra   r&   rc   rd   r|   r+   rb   re   rg   )r7   r8   rm   rd   r|   r+   rn   r&   ro   r   r4   rp   r   r   r   test_rank_args_missing   s    r
r   zpct,exp)rZ   rZ   rZ   rZ   rZ   )r[   r[   r[   r[   r[   c                 C   sL   t g ddgd d}|dj| d}t |d dgd	}t|| d S )
N)
ar   r   r   r   br   r   r   r      
   ra   r&   r*   r   rb   re   r   r   r   r2   rl   )r+   rn   r   r4   rp   r   r   r   test_rank_resets_each_group  s   r   r   )int64Zint32Zuint64Zuint32float64Zfloat32upperc                 C   s   |r| d   | dd   } | dd} tdgd dgd d}|d | |d< |d j| ks3J |d	 }tg d
dgd}|rJ|d}t|| d S )Nr   r   ZUiZUIr      ra   rb   r&   )      @r   r   r   re   ZFloat64)	r   replacer   astyper   r   r   r2   rl   )r   r   r   r4   rp   r   r   r   test_rank_avg_even_vals  s   
r   rm   )rQ   rY   r\   r]   r^   rd   r|   )rr   rv   ry   r+   )barr   foor   bazr   r   r   c                 C   s   t dgd |d}|d  }|d}|j| |||d}| r4t dgd dtjdtjd	gd}	nt dgd g d
d}	|	d}
|
j| |||d}t|| d S )Nr      ra   rb   r&   r   r   r   r   )r   r   r   r   r   )	r   Zisnar   r   anyr,   r~   r2   rl   )rm   rd   r|   r+   r8   r   maskr   resZdf2r   altr   r   r   test_rank_object_dtype  s   
$
r   )Tbadr   r   r   c                 C   sd   t dgd |d}d}tjt|d |dj| |||d W d    d S 1 s+w   Y  d S )Nr   r   ra   z3na_option must be one of 'keep', 'top', or 'bottom'r	   r&   r   )r   r   r   
ValueErrorr   r   )rm   rd   r|   r+   r8   r   r   r   r   r   test_rank_naoption_raises  s   
"r   c                  C   s   d} t g ddtjdgd}|| jjdd}tdtjdgd	d
}t|| || jdd}t d	dtjdgi}t	|| d S )NA)r   r   r   rV   rR   r   BTr*   r   r   name)
r   r,   r~   r   r   r   r   r2   r3   rl   )columnr   r4   r5   r   r   r   test_rank_empty_group  s   r   z"input_key,input_value,output_value)r   r   r   r   )r   r   r   r   )r   rV   r   rV   r   r   r   r   c                 C   s>   t | |d}|djddd}t d|i}t|| d S )Nr   r   r^   Trc   r+   r   r   )Z	input_keyZinput_valueZoutput_valuer   r4   r5   r   r   r   test_rank_zero_div#  s   r   c                  C   s   t g dttjjttjjttjjgttdddtgd} | d	 }t g dtj
dtj
gd}t|| d S )	Nr   i  r   )grpint_coldatetimeliker   )rV   rR   rV   rV   )r   r   )r   r,   Ziinfor   rY   r\   r   r   r   r   r~   r2   rl   r   r4   r5   r   r   r   test_rank_min_int5  s   r   use_nanc                 C   s   | rt jnd}tddgddgd|gd|ggddgd}|dgd jdd	d
}| r7tddt jt jgdd}ntg ddd}t|| d S )Nrt   r   r   grouprb   re   r^   Tr   r   r   )r_   r`   r   r   )r,   r~   r   r   r   r   r2   r3   )r   Z
fill_valuer   r4   r5   r   r   r   .test_rank_pct_equal_values_on_group_transitionK  s"   	r   c                  C   s   t tddgddgdtddgdd	gd
ddd} d}tjt|d | jddd}W d    n1 s6w   Y  d}tjt|d |jdd}W d    n1 sUw   Y  t | d jdd| d jddgdddgd}t|| d S )Nrt   r   r   r   )col1col2r   r:      r9   )col3Zcol4)r   r   r(   z+DataFrame.groupby with axis=1 is deprecatedr	   r   levelr)   /DataFrameGroupBy.rank with axis=1 is deprecatedr   r   )r)   keys)r   r   r2   assert_produces_warningFutureWarningr   r   rl   )r   r   r   r4   r5   r   r   r   test_rank_multiindexd  s,   r   c                  C   s*  t g dg dg ddg dd} d}tjt|d | jd	d	d
}W d    n1 s-w   Y  d}tjt|d |jdd}W d    n1 sLw   Y  t| jd jdd| jd jddgd	d}t|| d}tjt|d |jd	d}W d    n1 sw   Y  |	|rJ d S )Nr   rt   r   r   r   r   r:   r9   rs   rw   g      @g      @r   r   r   r   r   r   r   r1   5The 'axis' keyword in DataFrame.groupby is deprecatedr	   r   r   r   r   r(   r   r   z+The 'axis' keyword in DataFrameGroupBy.rank)
r   r2   r   r   r   r   r   locrl   equals)r   r   r   r   r5   r   r   r   r   test_groupby_axis0_rank_axis1  s&   ,r   c                  C   s   t g dg dg ddg dd} d}tjt|d | jd	d	d
}W d    n1 s-w   Y  d}tjt|d |jdd}W d    n1 sLw   Y  | d	dg tj}|d |d< t	|| d S )Nr   r   r   r   r   r   r   r	   r   r   z1DataFrameGroupBy.cummax with axis=1 is deprecatedr   r(   r   )
r   r2   r   r   r   Zcummaxr   r,   r   rl   )r   r   r   Zcmaxr5   r   r   r   test_groupby_axis0_cummax_axis1  s   r   c                  C   s   t dddtjgddtjdddgd d	} | | jd
gjjddd}t	dddtjgtjdddgd dd}t
|| d S )NrV   rR   rZ   )r   r    Z20170101z
US/EasternrF   r   r   r   T)rd   r+   r    )r1   r   )r   r,   r~   r   	Timestampr   r1   r    r   r   r2   r3   r   r   r   r   test_non_unique_index  s   r   c                  C   s   t jdddtjddgdd} t jdddtjd	d
gdd}tg d| |d}|d}| }|td }t	
|| d S )Nr   r   cTr   r   r   rt   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r,   r~   r   r   r   r   r.   r2   rl   )r   cat2r   r   r   r5   r   r   r   test_rank_categorical  s   
r   )%r   numpyr,   r   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr2   r   r6   markZparametrizer   Z	to_periodrq   infr~   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   st   "&$#.2	"" "&"'"(*"029@GNUel{}                      &  (  .  0  6  7  8  9  >
	
 
		
