o
    թZh^                  *   @   sX  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$ejdd;d=g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Z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/lang_env/lib/python3.10/site-packages/pandas/tests/groupby/methods/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,   r5   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       rN   )Zidszties_method,ascending,pct,expaverageTF)       @rQ         @rQ         @)皙?rT         ?rT   皙?)rS   rS   rU   rS   rQ   )rV   rV   皙?rV   rT   min)rU   rU   rR   rU   rS   )rW   rW   rU   rW   rV   )      @rY   rU   rY   rQ   )333333?rZ   rW   rZ   rT   max)rY   rY   rR   rY   rS   )rZ   rZ   rU   rZ   rV   )rR   rR   rU   rR   rQ   )rU   rU   rW   rU   rT   first)rU   rQ   rR   rY   rS   )rW   rT   rU   rZ   rV   )rY   rS   rU   rR   rQ   )rZ   rV   rW   rU   rT   dense)rU   rU   rY   rU   rQ   )UUUUUU?r^   rU   r^   UUUUUU?)rU   rU   r^   rU   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*   ra   columnsr+   repeatlenlist
isinstanceZndarrayr,   r   r   r   r   r1   assert_frame_equal)r6   r7   ties_methodrc   r*   expr%   	orig_valsr   r3   exp_dfr   r   r   test_rank_args@   s   Arp   rU   z#ties_method,ascending,na_option,expkeep      ?         @top)      @rv   rr   rR   rr         @rw   bottom)rr   rr   rw   rY   rw   rt   rt   )rw   rw   rr   rR   rr   rv   rv   )rt   rt   rw   rY   rw   rr   rr   rY   rS   )rY   rY   rU   rR   rU         @ry   )rU   rU   ry   rY   ry   rS   rS   )ry   ry   rU   rR   rU   rY   rY   )rS   rS   ry   rY   ry   rU   rU   rQ   rR   )rS   rS   rQ   rR   rQ         @rz   )rQ   rQ   rz   rY   rz   rR   rR   )rz   rz   rQ   rR   rQ   rS   rS   )rR   rR   rz   rY   rz   rQ   rQ   )rY   rS   rU   rR   rQ   ry   rz   )rU   rQ   ry   rY   rz   rS   rR   )ry   rz   rU   rR   rQ   rY   rS   )rS   rR   ry   rY   rz   rU   rQ   )rQ   rQ   rU   rY   rU   rS   rS   )rU   rU   rS   rQ   rS   rY   rY   )rS   rS   rU   rY   rU   rQ   rQ   )rY   rY   rS   rQ   rS   rU   rU   c           
      C   sf   t | t|}|t|  }t||d}|dj|||d}t|t|  dgd}	t||	 d S )Nr`   r%   )rb   rc   	na_optionra   rd   )r+   rg   rh   r   r   r   r1   rk   )
r6   r7   rl   rc   r{   rm   r%   r   r3   ro   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   r8   r9   r   )r+   r,   nanr:   r   r   r   r&      s    ")rB   rC   rD   c                 C   rH   rI   rJ   rL   r   r   r   rN      rO   z'ties_method,ascending,na_option,pct,exprT   rV   rW   rZ   r^   r_   )rQ   rQ   rz   rR   rQ   rS   rz   rz   )      ?r~         ?      ?r~         ?r   r   )rS   rS   rz   rU   rS   rQ   rz   rz   )r   r   r         ?r   r~   r   r   )rU   rU   ry   rR   rU   rS   ry   ry   )r   r         ?r   r   r   r   r   )rY   rY   ry   rU   rY   rQ   ry   ry   )      ?r   r   r   r   r~   r   r   )rY   rY          @rR   rY   rS   r   r   )r   r   rU   r   r   r   rU   rU   )rR   rR   r   rU   rR   rQ   r   r   )r   r   rU   r   r   r~   rU   rU   )rU   rQ   ry   rR   rY   rS   rz   r   )r   r~   r   r   r   r   r   rU   )rY   rS   ry   rU   rR   rQ   rz   r   )r   r   r   r   r   r~   r   rU   )rU   rU   rS   rY   rU   rQ   rS   rS   )r~   r~   rU   r   r~   r   rU   rU   )rY   rY   rS   rU   rY   rQ   rS   rS   )r   r   rU   r~   r   r   rU   rU   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`   r%   rb   rc   r{   r*   ra   rd   rf   )r6   r7   rl   rc   r{   r*   rm   r%   rn   r   r3   ro   r   r   r   test_rank_args_missing   s    r
r   zpct,exp)rY   rY   rY   rY   rY   )rZ   rZ   rZ   rZ   rZ   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      
   r`   r%   r)   r   ra   rd   r   r   r   r1   rk   )r*   rm   r   r3   ro   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      r`   ra   r%   )      @r   r   r   rd   Float64)	r   replacer   astyper   r   r   r1   rk   )r   r   r   r3   ro   r   r   r   test_rank_avg_even_vals  s   
r   rl   )rP   rX   r[   r\   r]   rc   r{   )rq   ru   rx   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      r`   ra   r%   r   r   r   r   )r   r   r   r   r   )	r   Zisnar   r   anyr+   r}   r1   rk   )rl   rc   r{   r*   r7   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   r`   z3na_option must be one of 'keep', 'top', or 'bottom'r   r%   r   )r   r   r   
ValueErrorr   r   )rl   rc   r{   r*   r7   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   rU   rQ   r   BTr)   r   r   name)
r   r+   r}   r   r   r   r   r1   r2   rk   )columnr   r3   r4   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   rU   r   rU   r   r   r   r   c                 C   s>   t | |d}|djddd}t d|i}t|| d S )Nr   r   r]   Trb   r*   r   r   )Z	input_keyZinput_valueZoutput_valuer   r3   r4   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   )rU   rQ   rU   rU   )r   r   )r   r+   Ziinfor   rX   r[   r   r   r   r   r}   r1   rk   r   r3   r4   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 )Nrs   r   r   groupra   rd   r]   Tr   r   r   )r^   r_   r   r   )r+   r}   r   r   r   r   r1   r2   )r   Z
fill_valuer   r3   r4   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 )Nrs   r   r   r   )col1col2r   r9      r8   )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   r1   assert_produces_warningFutureWarningr   r   rk   )r   r   r   r3   r4   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   rs   r   r   r   r   r9   r8   rr   rv   g      @g      @r   r   r   r   r   r   r   r0   5The 'axis' keyword in DataFrame.groupby is deprecatedr   r   r   r   r   r'   r   r   z+The 'axis' keyword in DataFrameGroupBy.rank)
r   r1   r   r   r   r   r   locrk   equals)r   r   r   r   r4   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   r1   r   r   r   Zcummaxr   r+   r   rk   )r   r   r   Zcmaxr4   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 )NrU   rQ   rY   )r   r   Z20170101z
US/EasternrE   r   r   r   T)rc   r*   r   )r0   r   )r   r+   r}   r
   	Timestampr   r0   r   r   r   r1   r2   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   rs   r   r   )r   r   r   r   r   r   )r   r   r   r   )r
   r   r+   r}   r   r   r   r   r-   r1   rk   )r   cat2r   r   r   r4   r   r   r   test_rank_categorical  s   
r   c                 C   sP   t dd gidd}|jdddd jd| d}tdgd|jd	}t|| d S )
NrM   r   r   F)ZdropnarX   )rb   r{   rU   )r   r   )r   r   r   r   r   r1   r2   )r{   r   r3   r4   r   r   r   test_groupby_op_with_nullables  s   r   )&r   numpyr+   r   Zpandasr
   r   r   r   r   Zpandas._testingZ_testingr1   r   r5   markZparametrizer   Z	to_periodrp   infr}   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sx   "&$#.2	"" "&"'"(*"029@GNUel{}                      &  (  .  0  6  7  8  9  >
	
 
		
