a
    j=icW                  2   @   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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 d.fd-ddg d/fd-ddg d!fd-ddg d0fgd1d2 Zejddgddggejd	ej ej ejd3ejejejggejd4ddd5d6d6ejd7ejd8d8gfddd9g d:fddd;g d<fddd5d8d8ejd7ejd6d6gfddd9g d=fddd;g d>fddd5d3d3ejd?ejd@d@gfddd9g dAfddd;g dBfddd5d@d@ejd?ejd3d3gfddd9g dCfddd;g dDfd#dd5dEdEejd?ejdFdFgfd#dd9g dGfd#dd;g dHfd#dd5dFdFejd?ejdEdEgfd#dd9g dIfd#dd;g dJfd(dd5d3dEejd?ejd@dFgfd(dd9g dKfd(dd;g dLfd(dd5d@dFejd?ejd3dEgfd(dd9g dMfd(dd;g dNfd-dd5d3d3ejdEejd?d?gfd-dd9g dOfd-dd;g dPfd-dd5d?d?ejdEejd3d3gfd-dd9g dQfd-dd;g dRfgdSdT Zejddgddggejjd	dUd dVD 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 dWd dejdXddd5ddEdEejdFdEd@ejejgfddd5ddYdYejd3dYdZejejgfddd5dd@d@ejd3d@dEejejgfddd5ddZdZejd[dZdYejejgfddd5dd3d3ejdFd3d@ejejgfddd5dd[d[ejd3d[dZejejgfddd5dd?d?ejd3d?dEejejgfddd5dd\d\ejd[d\dYejejgfd#dd5dd?d?ejdFd?d@ejejgfd#dd5dd\d\ejd3d\dZejejgfd#dd5ddFdFejd3dFdEejejgfd#dd5dd3d3ejd[d3dYejejgfd(dd5dd3dEejdFd?d@ejejgfd(dd5dd[dYejd3d\dZejejgfd(dd5dd?d@ejd3dFdEejejgfd(dd5dd\dZejd[d3dYejejgfd-dd5dd3d3ejd?d3dEejejgfd-dd5dd]d]ejd3d]d^ejejgfd-dd5dd?d?ejd3d?dEejejgfd-dd5dd3d3ejd]d3d^ejejgfddd;dg d_fddd;dg d`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g(dsdt Zejdudg dvfdg dwfgdxdy Zejdzg d{ejd|ddgd}d~ Zejdg 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dg 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d7ggdd Zdd Zejdddgddgd3d3gfg dg dg dfg ddddejgdd3d3ejgfg dddejgdd3e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 dd} t dd}tjjdddd}tjjdddd}ttj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 )N
   d      r   i  )size)valuekey1key2r   r   c                 S   s   g | ]\}}|j  qS  r   rank.0keyZpiecer   r   o/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/groupby/test_rank.py
<listcomp>        z#test_rank_apply.<locals>.<listcomp>axisTpctc                 S   s   g | ]\}}|j jd dqS )Tr   r   r   r   r   r   r   '   s   )tmZrands_arraynprandomrandintr   Zrandntakegroupbyr   r   r   Zreindexindexassert_series_equal)Zlev1Zlev2Zlab1Zlab2dfresultexpectedr   r   r   test_rank_apply   s,    
r&   grpsZquxZquuxvalsc                 C   s   g | ]}t jg d |dqS ))   r)      r)      dtype)r   arrayr   r-   r   r   r   r   2   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   s   t | d S Nr   typexr   r   r   <lambda>T   r   rB   )Zidszties_method,ascending,pct,expaverageTF)       @rD         @rD         @)皙?rG         ?rG   皙?)rF   rF   rH   rF   rD   )rI   rI   皙?rI   rG   min)rH   rH   rE   rH   rF   )rJ   rJ   rH   rJ   rI   )      @rL   rH   rL   rD   )333333?rM   rJ   rM   rG   max)rL   rL   rE   rL   rF   )rM   rM   rH   rM   rI   )rE   rE   rH   rE   rD   )rH   rH   rJ   rH   rG   first)rH   rD   rE   rL   rF   )rJ   rG   rH   rM   rI   )rL   rF   rH   rE   rD   )rM   rI   rJ   rH   rG   dense)rH   rH   rL   rH   rD   )UUUUUU?rQ   rH   rQ   UUUUUU?)rH   rH   rQ   rH   rR   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   rT   columnsr   repeatlenlist
isinstanceZndarrayr.   r-   r   r    r   r   assert_frame_equal)r'   r(   ties_methodrV   r   expr   	orig_valsr#   r$   exp_dfr   r   r   test_rank_args/   s    Arc   rH   z#ties_method,ascending,na_option,expkeep      ?         @top)      @ri   re   rE   re         @rj   bottom)re   re   rj   rL   rj   rg   rg   )rj   rj   re   rE   re   ri   ri   )rg   rg   rj   rL   rj   re   re   rL   rF   )rL   rL   rH   rE   rH         @rl   )rH   rH   rl   rL   rl   rF   rF   )rl   rl   rH   rE   rH   rL   rL   )rF   rF   rl   rL   rl   rH   rH   rD   rE   )rF   rF   rD   rE   rD         @rm   )rD   rD   rm   rL   rm   rE   rE   )rm   rm   rD   rE   rD   rF   rF   )rE   rE   rm   rL   rm   rD   rD   )rL   rF   rH   rE   rD   rl   rm   )rH   rD   rl   rL   rm   rF   rE   )rl   rm   rH   rE   rD   rL   rF   )rF   rE   rl   rL   rm   rH   rD   )rD   rD   rH   rL   rH   rF   rF   )rH   rH   rF   rD   rF   rL   rL   )rF   rF   rH   rL   rH   rD   rD   )rL   rL   rF   rD   rF   rH   rH   c           
      C   sf   t | t|}|t|  }t||d}|dj|||d}t|t|  dgd}	t||	 d S )NrS   r   )rU   rV   	na_optionrT   rW   )r   rZ   r[   r   r    r   r   r^   )
r'   r(   r_   rV   rn   r`   r   r#   r$   rb   r   r   r   test_infs_n_nans~   s    )
ro   c                 C   s0   g | ](}t jd d t jdd dt jt jg|dqS )r)   r*   r+   r,   )r   r.   nanr/   r   r   r   r      s   )r7   r8   r9   c                 C   s   t | d S r=   r>   r@   r   r   r   rB      r   z'ties_method,ascending,na_option,pct,exprG   rI   rJ   rM   rQ   rR   )rD   rD   rm   rE   rD   rF   rm   rm   )      ?rq         ?      ?rq         ?rr   rr   )rF   rF   rm   rH   rF   rD   rm   rm   )rt   rt   rr         ?rt   rq   rr   rr   )rH   rH   rl   rE   rH   rF   rl   rl   )ru   ru         ?rs   ru   rt   rv   rv   )rL   rL   rl   rH   rL   rD   rl   rl   )      ?rw   rv   ru   rw   rq   rv   rv   )rL   rL          @rE   rL   rF   rx   rx   )rw   rw   rH   rs   rw   rt   rH   rH   )rE   rE   rx   rH   rE   rD   rx   rx   )rs   rs   rH   ru   rs   rq   rH   rH   )rH   rD   rl   rE   rL   rF   rm   rx   )ru   rq   rv   rs   rw   rt   rr   rH   )rL   rF   rl   rH   rE   rD   rm   rx   )rw   rt   rv   ru   rs   rq   rr   rH   )rH   rH   rF   rL   rH   rD   rF   rF   )rq   rq   rH   rv   rq   rt   rH   rH   )rL   rL   rF   rH   rL   rD   rF   rF   )rv   rv   rH   rq   rv   rt   rH   rH   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,   rS   r   rU   rV   rn   r   rT   rW   rY   )r'   r(   r_   rV   rn   r   r`   r   ra   r#   r$   rb   r   r   r   test_rank_args_missing   s     r
rz   zpct,exp)rL   rL   rL   rL   rL   )rM   rM   rM   rM   rM   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   rS   r   r   r)   rT   rW   r   r    r   r   r^   )r   r`   r#   r$   rb   r   r   r   test_rank_resets_each_group  s    r   r-   )int64int32Zuint64Zuint32float64float32upperc                 C   s   |r(| d   | dd   } | dd} tdgd dgd d}|d | |d< |d j| ksfJ |d	 }tg d
dgd}|r|d}t|| d S )Nr   r}   ZUiZUIr{      rS   rT   r   )      @r   r   r   rW   ZFloat64)	r   replacer   astyper-   r    r   r   r^   )r-   r   r#   r$   rb   r   r   r   test_rank_avg_even_vals  s    
r   r_   )rC   rK   rN   rO   rP   rV   rn   )rd   rh   rk   r   )barr   foor   bazr   r   r   c                 C   s   t dgd |d}|d  }|d}|j| |||d}| rht 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      rS   rT   r   ry   r   r)   r}   )r   r   r)   r   r}   )	r   Zisnar    r   anyr   rp   r   r^   )r_   rV   rn   r   r(   r#   maskgbresZdf2Zgb2altr   r   r   test_rank_object_dtype  s    
$
r   )Tbadr}   r}   r)   c                 C   sb   t dgd |d}d}tjt|d( |dj| |||d W d    n1 sT0    Y  d S )Nr   r   rS   z3na_option must be one of 'keep', 'top', or 'bottom')matchr   ry   )r   pytestZraises
ValueErrorr    r   )r_   rV   rn   r   r(   r#   msgr   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   rH   rD   r   BTr   rt   r   name)
r   r   rp   r    r   r   r   r   r"   r^   )columnr#   r$   r%   r   r   r   test_rank_empty_group  s    r   z"input_key,input_value,output_value)r}   r}   r)   r)   )r}   r)   r}   r)   )rt   rH   rt   rH   rt   r}   r}   r)   c                 C   s>   t | |d}|djddd}t d|i}t|| d S )Nr   r   rP   TrU   r   r   r~   )Z	input_keyZinput_valueZoutput_valuer#   r$   r%   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   )rH   rD   rH   rH   )r   r   )r   r   Ziinfor   rK   rN   r   r   r    r   NaNr   r^   r#   r$   r%   r   r   r   test_rank_min_int$  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
}| rntddt jt jgdd}ntg ddd}t|| d S )Nrf   r}   r)   grouprT   rW   rP   Tr   rt   r   )rQ   rR   r}   r}   )r   rp   r   r    r   r   r   r"   )r   Z
fill_valuer#   r$   r%   r   r   r   .test_rank_pct_equal_values_on_group_transition:  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} | jddd}|jdd}t | d jdd| d jddgdddgd}t|| d S )Nrf   r   r}   r)   )col1col2r   r+      r*   )col3Zcol4)r{   r|   r   r   levelr   r{   r|   )r   keys)r   r   r    r   r   r^   )r#   r   r$   r%   r   r   r   test_rank_multiindexS  s     r   c                  C   s   t g dg dg ddg dd} | jddd}|jd	d
}t| jd jd	d
| jd jd	d
gdd
}t|| |jdd
}||rJ d S )Nr}   rf   r   r   r)   r   r+   r*   re   ri   g      @g      @r   r}   r)   r{   r{   r|   r|   r!   r   r   r}   r   r{   r|   )r   r    r   r   locr   r^   equals)r#   r   r   r%   r   r   r   r   test_groupby_axis0_rank_axis1k  s    ,r   c                  C   sn   t g dg dg ddg dd} | jddd}|jd	d
}| dd	g tj}|d	 |d< t|| d S )Nr   r   r   r   r   r   r   r   r}   r   r)   )r   r    Zcummaxr   r   r   r   r^   )r#   r   Zcmaxr%   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 )NrH   rD   rL   )r   r   Z20170101z
US/Easternr:   r   r   r   T)rV   r   r   )r!   r   )r   r   rp   pd	Timestampr    r!   r   r   r   r   r"   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|   cT)Zorderedr}   r)   rf   r   r   )r   r}   r   r}   r   r}   )r   r   r   r   )r   ZCategoricalr   rp   r   r    r   r   objectr   r^   )catcat2r#   r   r   r%   r   r   r   test_rank_categorical  s    
r   )$r   numpyr   r   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr   r&   markZparametrizer   Z	to_periodrc   infrp   ro   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s  "&$#.2""""""  >
	
 	
	
