o
    Û­jÇ^  ã                *   @   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 d�g d‚¢¡ej dƒddg¡ej d„g d…¢¡ej d†ddg¡ej dg d‡¢dˆejd‰ejdŠgg¡d‹dŒ„ ƒƒƒƒƒZej d„g d�¢¡ej d�g d‚¢¡ej dƒddg¡ej d†ddg¡ej dg d‡¢dˆejd‰ejdŠgdŽejd�ejd9gg¡d�d‘„ ƒƒƒƒƒZd’d“„ Zej d”dŽd�gdŽdŽgd5d5gfg d•¢g d–¢g d—¢fg d•¢dŽd�dŽejgd˜d5d5ejgfg d™¢dŽd�ejgd˜d5ejgfg¡dšd›„ ƒZdœd�„ Zej džddg¡dŸd „ ƒZd¡d¢„ Z d£d¤„ Z!d¥d¦„ Z"d§d¨„ Z#d©dª„ Z$ej d„d;d=g¡d«d¬„ ƒ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)Úobserved©Úmatch)	ÚpdÚCategoricalr   Úto_frameÚgroupbyÚpytestÚraisesÚ	TypeErrorÚrank)ÚcatÚserÚdfÚmsgÚgbÚgb2© r   úc/var/www/html/CropPilot/venv/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 )NÚ
aaaaaaaaaaéd   ©ÚdtypeÚ
bbbbbbbbbbé‚   é   r   iô  )Úsizer    )ÚvalueÚkey1Úkey2r&   r'   c                 S   s   g | ]	\}}|j  ¡ ‘qS r   ©r%   r   ©Ú.0ÚkeyÚpiecer   r   r   Ú
<listcomp>1   s    z#test_rank_apply.<locals>.<listcomp>©ÚaxisT©Úpctc                 S   s   g | ]\}}|j jd d�‘qS )Tr0   r(   r)   r   r   r   r-   8   s    ÿ)ÚnpÚarrayÚobjectÚrandomÚdefault_rngÚintegersÚintr   Ústandard_normalÚtaker   r%   r   r   ÚreindexÚindexÚtmÚassert_series_equal)Úlev1Úlev2Úlab1Úlab2r   ÚresultÚexpectedr   r   r   Útest_rank_apply!   s,   ýÿÿrE   ÚgrpsÚquxÚquuxÚvalsc                 C   s   g | ]}t jg d ¢|d�‘qS ))r#   r#   é   r#   é   r   )r2   r3   ©r*   r    r   r   r   r-   C   s    ÿÿr-   )Úi8Úi4Úi2Úi1Úu8Ú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   ó    ra   )Úidszties_method,ascending,pct,expÚaverageTF)ç       @re   ç      @re   ç      @)çš™™™™™Ù?rh   ç      ð?rh   çš™™™™™é?)rg   rg   ri   rg   re   )rj   rj   çš™™™™™É?rj   rh   Úmin)ri   ri   rf   ri   rg   )rk   rk   ri   rk   rj   )ç      @rm   ri   rm   re   )ç333333ã?rn   rk   rn   rh   Úmax)rm   rm   rf   rm   rg   )rn   rn   ri   rn   rj   )rf   rf   ri   rf   re   )ri   ri   rk   ri   rh   Úfirst)ri   re   rf   rm   rg   )rk   rh   ri   rn   rj   )rm   rg   ri   rf   re   )rn   rj   rk   ri   rh   Údense)ri   ri   rm   ri   re   )çUUUUUUÕ?rr   ri   rr   çUUUUUUå?)ri   ri   rr   ri   rs   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Ú	ascendingr1   ru   ©Úcolumns©r2   ÚrepeatÚlenÚlistÚ
isinstanceÚndarrayr3   r    r   r   r   r=   Úassert_frame_equal)rF   rI   Úties_methodrw   r1   Úexpr+   Ú	orig_valsr   rC   Úexp_dfr   r   r   Útest_rank_args@   s   Ar…   ri   z#ties_method,ascending,na_option,expÚkeepç      ø?é   ç      @Útop)ç      @r‹   r‡   rf   r‡   ç      @rŒ   Úbottom)r‡   r‡   rŒ   rm   rŒ   r‰   r‰   )rŒ   rŒ   r‡   rf   r‡   r‹   r‹   )r‰   r‰   rŒ   rm   rŒ   r‡   r‡   rm   rg   )rm   rm   ri   rf   ri   ç      @rŽ   )ri   ri   rŽ   rm   rŽ   rg   rg   )rŽ   rŽ   ri   rf   ri   rm   rm   )rg   rg   rŽ   rm   rŽ   ri   ri   re   rf   )rg   rg   re   rf   re   ç      @r�   )re   re   r�   rm   r�   rf   rf   )r�   r�   re   rf   re   rg   rg   )rf   rf   r�   rm   r�   re   re   )rm   rg   ri   rf   re   rŽ   r�   )ri   re   rŽ   rm   r�   rg   rf   )rŽ   r�   ri   rf   re   rm   rg   )rg   rf   rŽ   rm   r�   ri   re   )re   re   ri   rm   ri   rg   rg   )ri   ri   rg   re   rg   rm   rm   )rg   rg   ri   rm   ri   re   re   )rm   rm   rg   re   rg   ri   ri   c           
      C   sf   t  | t|ƒ¡}|t| ƒ }t||dœƒ}| d¡j|||d�}t|t| ƒ dgd�}	t ||	¡ d S )Nrt   r+   )rv   rw   Ú	na_optionru   rx   )r2   r{   r|   r   r   r   r=   r€   )
rF   rI   r�   rw   r�   r‚   r+   r   rC   r„   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#   rJ   rK   r   )r2   r3   ÚnanrL   r   r   r   r-   Å   s    "ÿÿ)rU   rV   rW   c                 C   r[   r\   r]   r_   r   r   r   ra   ó   rb   z'ties_method,ascending,na_option,pct,exprh   rj   rk   rn   rr   rs   )re   re   r�   rf   re   rg   r�   r�   )ç      Ð?r“   ç      ì?ç      ä?r“   ç      à?r”   r”   )rg   rg   r�   ri   rg   re   r�   r�   )r–   r–   r”   ç      À?r–   r“   r”   r”   )ri   ri   rŽ   rf   ri   rg   rŽ   rŽ   )r—   r—   ç      è?r•   r—   r–   r˜   r˜   )rm   rm   rŽ   ri   rm   re   rŽ   rŽ   )ç      Ø?r™   r˜   r—   r™   r“   r˜   r˜   )rm   rm   ç       @rf   rm   rg   rš   rš   )r™   r™   ri   r•   r™   r–   ri   ri   )rf   rf   rš   ri   rf   re   rš   rš   )r•   r•   ri   r—   r•   r“   ri   ri   )ri   re   rŽ   rf   rm   rg   r�   rš   )r—   r“   r˜   r•   r™   r–   r”   ri   )rm   rg   rŽ   ri   rf   re   r�   rš   )r™   r–   r˜   r—   r•   r“   r”   ri   )ri   ri   rg   rm   ri   re   rg   rg   )r“   r“   ri   r˜   r“   r–   ri   ri   )rm   rm   rg   ri   rm   re   rg   rg   )r˜   r˜   ri   r“   r˜   r–   ri   ri   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   rt   r+   ©rv   rw   r�   r1   ru   rx   rz   )rF   rI   r�   rw   r�   r1   r‚   r+   rƒ   r   rC   r„   r   r   r   Útest_rank_args_missingÂ   s    r
ÿrœ   zpct,exp)rm   rm   rm   rm   rm   )rn   rn   rn   rn   rn   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ž   é   é
   rt   r+   r0   r#   ru   rx   ©r   r   r   r=   r€   )r1   r‚   r   rC   r„   r   r   r   Útest_rank_resets_each_groupÃ  s   ÿr¢   r    )Úint64Úint32Úuint64Ú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s3J ‚| d	¡ ¡ }tg d
¢dgd�}|rJ| d¡}t ||¡ d S )Nr   rŸ   ÚUiÚUIr�   é   rt   ru   r+   )ç      @r­   r­   r­   rx   ÚFloat64)	r©   Úreplacer   Úastyper    r   r   r=   r€   )r    r©   r   rC   r„   r   r   r   Útest_rank_avg_even_valsÏ  s   
r±   r�   )rd   rl   ro   rp   rq   rw   r�   )r†   rŠ   r�   r1   )Ú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³   é   rt   ru   r+   r›   r   r#   rŸ   )r   r   r#   r   rŸ   )	r   Úisnar   r   Úanyr2   r’   r=   r€   )r�   rw   r�   r1   rI   r   Úmaskr   ÚresÚ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µ   rt   z3na_option must be one of 'keep', 'top', or 'bottom'r
   r+   r›   )r   r   r   Ú
ValueErrorr   r   )r�   rw   r�   r1   rI   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   ri   re   ©rÀ   ÚBTr0   r–   rÂ   ©Úname)
r   r2   r’   r   rÂ   r   r   r=   r>   r€   )Úcolumnr   rC   rD   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–   ri   r–   ri   r–   ©rŸ   rŸ   r#   c                 C   s>   t | |dœƒ}| d¡jddd�}t d|iƒ}t ||¡ d S )NrÁ   rÀ   rq   T©rv   r1   rÂ   r¡   )Ú	input_keyÚinput_valueÚoutput_valuer   rC   rD   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Í   )ri   re   ri   ri   )rÎ   rÏ   )r   r2   Úiinfor£   rl   ro   r   r   r   r   r’   r=   r€   ©r   rC   rD   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 )Nrˆ   éÿÿÿÿrŸ   r#   Úgroupru   rx   rq   TrÈ   r–   rÃ   )rr   rs   rŸ   rŸ   )r2   r’   r   r   r   r   r=   r>   )rÓ   Ú
fill_valuer   rC   rD   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 )Nrˆ   r¬   rŸ   r#   )Úcol1Úcol2rµ   rK   é   rJ   )Úcol3Ú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   r=   Úassert_produces_warningÚFutureWarningr   r   r€   )r   r   r   rC   rD   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 s‡w   Y  | 	|¡r“J ‚d S )N©rŸ   rˆ   rµ   rÚ   ©r#   r¬   rK   rJ   ©r‡   r‹   g      @g      @©r   rŸ   r#   ©r�   r�   rž   rž   ©r<   ú5The 'axis' keyword in DataFrame.groupby is deprecatedr
   r   rÝ   rß   rŸ   r.   r�   rž   z+The 'axis' keyword in DataFrameGroupBy.rank)
r   r=   rá   râ   r   r   r   Úlocr€   Úequals)r   r   r   r¹   rD   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   r=   rá   râ   r   Úcummaxr°   r2   r§   r€   )r   r   r   ÚcmaxrD   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 )Nri   re   rm   )rÀ   r%   Ú20170101z
US/EasternrX   r¬   ré   rÀ   T)rw   r1   r%   )r<   rÄ   )r   r2   r’   r   Ú	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ž   ÚcTr   rŸ   r#   rˆ   r¬   rµ   )r   rŸ   r   rŸ   r   rŸ   )rØ   rÙ   rÛ   rØ   )r   r   r2   r’   r   r   r   r°   r4   r=   r€   )r   Úcat2r   r   r¹   rD   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 )
Nr`   r®   r   F)Údropnarl   )rv   r�   ri   )r    rÄ   )r   r   r   r   rÄ   r=   r>   )r�   r   rC   rD   r   r   r   Útest_groupby_op_with_nullablesË  s   rø   )&r   Únumpyr2   r   Úpandasr   r   r   r   r   Úpandas._testingÚ_testingr=   r   rE   ÚmarkÚparametrizerò   Ú	to_periodr…   Ú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 �Çþ >ÿ
	ÿÿýþ
 üþ
		
