o
    Û­j    ã                   @   s|   d Z ddlmZ ddlZddlZddlZddlm	Z
 ddlmZ ejdd„ ƒZejdd„ ƒZejd	d
„ ƒZG dd„ dƒZdS )z�
Note: for naming purposes, most tests are title with as e.g. "test_nlargest_foo"
but are implicitly also testing nsmallest_foo.
é    )Úascii_lowercaseN)ÚVersionc                   C   s&   t jg d¢g d¢g d¢dœg d¢d�S )N)é   é   é   é   r   )r   r   r   r   r   )r   r   r   é   r   ©ÚaÚbÚc)r   r   r   r   r   ©Úindex)ÚpdÚ	DataFrame© r   r   úe/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/frame/methods/test_nlargest.pyÚdf_duplicates   s   þr   c                   C   s@   t  tj d¡ d¡ttd d… ƒtj d¡ d¡ d¡dœ¡S )Nr   é
   Úfloat64r	   )	r   r   ÚnpÚrandomÚdefault_rngÚpermutationÚlistr   Úastyper   r   r   r   Ú
df_strings   s   ýÿr   c                   C   sl   t jg d¢g d¢g d¢tdƒt  tdƒ¡ d¡g d¢t jddd	�t jddd
d�t jdddd�dœ	g d¢d�S )N)r   r   r   ©r   r   r   )g      @g      @g      @ÚabcÚcategory)é   é   é	   Ú20130101r   )Úperiodsz
US/Eastern)r$   Útzz1 sÚs)r$   Úfreq)	ÚgroupÚintÚfloatÚstringÚcategory_stringÚcategory_intÚdatetimeÚ
datetimetzÚ	timedelta©Úcolumns)r   r   r   ÚSeriesr   Ú
date_rangeÚtimedelta_ranger   r   r   r   Údf_main_dtypes"   s   ÷ôr6   c                   @   s  e Zd Zej ddgdgddgddgddgddgg d¢g d¢g d¢g d¢g d	¢g d
¢g¡ej deddƒ¡dd„ ƒƒZej dddgddgg¡dd„ ƒZdd„ Z	dd„ Z
dd„ Zej dg d¢g d¢dgdgddgddgg¡ej deddƒ¡dd„ ƒƒZdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'S )(ÚTestNLargestNSmallestÚorderr
   r   r   r	   )r   r
   r   )r   r   r
   )r   r   r
   )r   r
   r   )r   r   r   Únr   é   c           
      C   s˜   |}d|v r.d|› d�}t jt|d�� t||ƒ||ƒ W d   ƒ d S 1 s'w   Y  d S |dk}t||ƒ||ƒ}|j||d� |¡}	t ||	¡ d S )Nr   z6Column 'b' has dtype (object|str), cannot use method 'ú' with this dtype©ÚmatchÚ	nsmallest©Ú	ascending)ÚpytestÚraisesÚ	TypeErrorÚgetattrÚsort_valuesÚheadÚtmÚassert_frame_equal)
Úselfr   Únselect_methodr9   r8   ÚdfÚ	error_msgr@   ÚresultÚexpectedr   r   r   Útest_nlargest_nA   s   ÿÿ"ÿz%TestNLargestNSmallest.test_nlargest_nr2   r(   r,   r+   c                 C   s’   |}|d }d|› d|| j › d|› d�}| dd¡ dd	¡ d
d¡ dd¡}tjt|d�� t||ƒd|ƒ W d   ƒ d S 1 sBw   Y  d S )Nr   zColumn 'z' has dtype z, cannot use method 'r;   ú(z\(ú)z\)ú[z\[ú]z\]r<   r   )ÚdtypeÚreplacerA   rB   rC   rD   )rI   r6   rJ   r2   rK   ÚcolrL   r   r   r   Útest_nlargest_errord   s   ÿÿ
ü"ÿz)TestNLargestNSmallest.test_nlargest_errorc                 C   s@   |}|  dtt|ƒddh ƒ¡ | dtt|ƒddh ƒ¡ d S )Nr   r,   r+   )r>   r   ÚsetÚnlargest)rI   r6   rK   r   r   r   Útest_nlargest_all_dtypesx   s    z.TestNLargestNSmallest.test_nlargest_all_dtypesc                 C   s˜   t  g d¢g d¢dœ¡}|jdddgd�}t jg d¢g d	¢dœg d
¢d�}t ||¡ |jdddgd�}t jg d¢g d¢dœg d¢d�}t ||¡ d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   ©r
   r   r   r
   r   r1   )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   ©r   r   rY   rG   rH   r>   ©rI   rK   rM   rN   r   r   r   Ú+test_nlargest_duplicates_on_starter_columns}   s   ÿÿzATestNLargestNSmallest.test_nlargest_duplicates_on_starter_columnsc                 C   sŠ   t  dgd g d¢dœ¡}| dd¡}t jdgd g d¢dœg d¢d	�}t ||¡ | dd¡}t  dgd g d¢dœ¡}t ||¡ d S )
Nr   r   ©r   r   r   r   r   r[   r   r
   r   )r   r   r   r   r\   r]   r   r   r   Ú test_nlargest_n_identical_valuesŽ   s   "z6TestNLargestNSmallest.test_nlargest_n_identical_valuesé   c                 C   sª   |}|  ||¡}| |¡ |¡}t ||¡ | ||¡}|j|dd� |¡}ttjƒtdƒkrM|dgkr8|dv sB|ddgkrM|dkrM| 	t
jjddd	�¡ t ||¡ d S )
NFr?   z1.25r
   )r   r   r   r   r   r   zYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructions)ÚreasonÚstrict)r>   rE   rF   rG   rH   rY   r   r   Ú__version__ÚapplymarkerrA   ÚmarkÚxfail)rI   r   r9   r8   ÚrequestrK   rM   rN   r   r   r   Útest_nlargest_n_duplicate_indexš   s   &ûÿ	z5TestNLargestNSmallest.test_nlargest_n_duplicate_indexc                 C   s¬   t  g d¢g d¢dœ¡}|jdddd�}t  dddd	d	d	d	d
œdddddddd
œdœ¡}t ||¡ |jdddd�}t  dd	d	d	d	dœddddddœdœ¡}t ||¡ d S )N)r   r   r   r   r   r   r   r   )r   r"   r!   r    r   é2   r   é   r[   r   r
   Úall)Úkeepr   r   )r   r   r   r   r   ra   r    r   r"   r!   rj   rk   r   )r   r   r   ra   r    r    r\   r]   r   r   r   Ú%test_nlargest_duplicate_keep_all_ties·   s"   ÿþÿþÿz;TestNLargestNSmallest.test_nlargest_duplicate_keep_all_tiesc                 C   sˆ   t jt j dgddgg¡ddgddgddgd	d
ggd�}| dd¡}|jg d¢ }t ||¡ | dd¡}|jg d¢ }t ||¡ d S )NÚxr
   r   g…ëQ¸Õ?g¤p=
×£À?g…ëQ¸…ë?g      Ð?gffffffæ?g333333ë?g…ëQ¸í?)r2   Údatar   )ro   r
   )r   r   r   )ro   r   )r   r   r   )	r   r   Ú
MultiIndexÚfrom_productr>   ÚilocrG   rH   rY   r]   r   r   r   Ú&test_nlargest_multiindex_column_lookupÎ   s   þz<TestNLargestNSmallest.test_nlargest_multiindex_column_lookupc                 C   sJ   t  tjtjddddg¡}| dd¡}|jddd� d¡}t ||¡ d S )Nr   r   r   r   r   Fr?   )	r   r   r   ÚnanrY   rE   rF   rG   rH   r]   r   r   r   Útest_nlargest_nanà   s   z'TestNLargestNSmallest.test_nlargest_nanc                 C   sx   t jg d¢g d¢g d¢dœtdƒd�}|jddd	gd
�}t jg d¢g d¢g d¢dœtdƒd� ddi¡}t ||¡ d S )N)r   r   r   r   r   Nr    )r    ra   r   r   r   r   r   )r   r   r   r   r   r   r   r	   r    r   r   r
   r   r1   r_   )r    ra   r   r   r   )r   r   r   r   r   r*   )r   r   Úranger>   r   rG   rH   r]   r   r   r   Ú"test_nsmallest_nan_after_n_elementç   s$   ýúýú
ùz8TestNLargestNSmallest.test_nsmallest_nan_after_n_elementN)Ú__name__Ú
__module__Ú__qualname__rA   rf   Úparametrizerw   rO   rW   rZ   r^   r`   ri   rn   rt   rv   rx   r   r   r   r   r7   >   sH    óþÿ
"þr7   )Ú__doc__r+   r   Únumpyr   rA   Úpandasr   Úpandas._testingÚ_testingrG   Úpandas.util.versionr   Úfixturer   r   r6   r7   r   r   r   r   Ú<module>   s    



