a
    d                     @   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   q/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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randomZdefault_rngZ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)      	   Z20130101r   )periodsz
US/Eastern)r!   tzz1 ss)r!   freq)	groupintfloatstringcategory_stringZcategory_intdatetimeZ
datetimetz	timedeltacolumns)r   r   r   ZSeriesr   Z
date_rangeZtimedelta_ranger   r   r   r   df_main_dtypes"   s    r.   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 rXd| d}t jt|d  t|||| W d    q1 sL0    Y  n8|dk}t||||}|j||d|}	t||	 d S )Nr   z0Column 'b' has dtype object, cannot use method '' with this dtypematch	nsmallest	ascending)pytestraises	TypeErrorgetattrsort_valuesheadtmassert_frame_equal)
selfr   nselect_methodr1   r0   df	error_msgr8   resultexpectedr   r   r   test_nlargest_nA   s    0z%TestNLargestNSmallest.test_nlargest_nr-   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    n1 s0    Y  d S )Nr   zColumn 'z' has dtype z, cannot use method 'r3   (z\()z\)[z\[]z\]r4   r   )Zdtypereplacer9   r:   r;   r<   )rA   r.   rB   r-   rC   colrD   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(   )r6   r   setnlargest)rA   r.   rC   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   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   r   rP   r?   r@   r6   rA   rC   rE   rF   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   rR   r   r
   r   )r   r   r   r   rS   rT   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r|dgkrp|dv s|ddgkr|dkr|j	
tjjddd	 t|| d S )
NFr7   z1.25r
   )r   r   r   r   r   r   zYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructions)reasonstrict)r6   r=   r>   r?   r@   rP   r   r   __version__nodeZ
add_markerr9   markZxfail)rA   r   r1   r0   requestrC   rE   rF   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      rR   r   r
   all)Zkeepr   r   )r   r   r   r   r   rX   r   r   r    r   r`   ra   r   )r   r   r   rX   r   r   rS   rT   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?gp=
ף?gQ?g      ?gffffff?g333333?gQ?)r-   datar   )rd   r
   )r   r   r   )rd   r   )r   r   r   )	r   r   Z
MultiIndexZfrom_productr6   Zilocr?   r@   rP   rT   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   Fr7   )	r   r   r   nanrP   r=   r>   r?   r@   rT   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   rX   r   r   r   r   r   )r   r   r   r   r   r   r   r	   r   r   r   r
   r   r,   rV   )r   rX   r   r   r   )r   r   r   r   r   r'   )r   r   ranger6   r   r?   r@   rT   r   r   r   "test_nsmallest_nan_after_n_element   s$    z8TestNLargestNSmallest.test_nsmallest_nan_after_n_elementN)__name__
__module____qualname__r9   r]   Zparametrizeri   rG   rN   rQ   rU   rW   r_   rc   rf   rh   rj   r   r   r   r   r/   >   sF   
"r/   )__doc__r(   r   numpyr   r9   Zpandasr   Zpandas._testingZ_testingr?   Zpandas.util.versionr   Zfixturer   r   r.   r/   r   r   r   r   <module>   s   



