
    d                         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             Zej        d             Zej        d             Z G 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                  F    t          j        g dg dg ddg d          S )N)            r	   )r   r   r   r   r   )r   r   r      r	   abc)r   r   r   r   r   index)pd	DataFrame     d/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/methods/test_nlargest.pydf_duplicatesr      s;    <ooOOO///JJoo   r   c                      t          j        t          j                            d          t          t          d d                   t          j                            d                              d          d          S )N
   float64r   )r   r   nprandompermutationlistr   astyper   r   r   
df_stringsr      sh    <&&r**ocrc*++&&r**11)<<	
 	
  r   c                  P   t          j        g dg dg dt          d          t          j        t          d                                        d          g dt          j        dd	          t          j        ddd
          t          j        ddd          d	g 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   df_main_dtypesr:   "   s    <YY99$__5kk!ye55<<ZHH%IIj!<<<-
A,OOO+E13GGG
	
 
	


 

 

   r   c                   ,   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                         Zej                            dddgddgg          d             Zd Z	d Z
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                         Zd Zd Zd Z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                 |   |}d|v rVd| d}t          j        t          |          5   t          ||          ||           d d d            d S # 1 swxY w Y   d S |dk    } t          ||          ||          }|                    ||                              |          }	t          j        ||	           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_methodr>   r=   df	error_msgrF   resultexpecteds
             r   test_nlargest_nz%TestNLargestNSmallest.test_nlargest_nA   s,   * %<<H&4H H H  y	::: 6 6+N++Au5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 '+5I0WR00E::F~~ey~AAFFqIIH!&(33333s   AAAr6   r,   r0   r/   c                    |}|d         }d| d||         j          d| d}|                    dd                              dd	                              d
d                              dd          }t          j        t          |          5   t          ||          d|           d d d            d S # 1 swxY w Y   d S )Nr   zColumn 'z' has dtype z, cannot use method 'rA   (z\()z\)[z\[]z\]rB   r   )dtypereplacerG   rH   rI   rJ   )rO   r:   rP   r6   rQ   colrR   s          r   test_nlargest_errorz)TestNLargestNSmallest.test_nlargest_errord   s2    ajDs D D3 D D"0D D D 	 c5))WS%  WS%  WS%  	 	 ]9I666 	4 	4'GB''7333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   B77B;>B;c                     |}|                     dt          t          |          ddhz
                       |                    dt          t          |          ddhz
                       d S )Nr   r0   r/   )rD   r   setnlargest)rO   r:   rQ   s      r   test_nlargest_all_dtypesz.TestNLargestNSmallest.test_nlargest_all_dtypesx   sg    
QSWW(98'DDEEFFF
AtCGG'8(&CCDDEEEEEr   c                 p   t          j        g dg dd          }|                    dddg          }t          j        g dg d	dg d
          }t          j        ||           |                    dddg          }t          j        g dg ddg d          }t          j        ||           d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r	   r   r   r5   )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   ra   rM   rN   rD   rO   rQ   rS   rT   s       r   +test_nlargest_duplicates_on_starter_columnszATestNLargestNSmallest.test_nlargest_duplicates_on_starter_columns}   s     \ 2 2 29K9K9KLLMMQc
33<,,\\\22,,,
 
 
 	fh///a#s44<,,\\\22,,,
 
 
 	fh/////r   c                 h   t          j        dgdz  g dd          }|                    dd          }t          j        dgdz  g ddg d	          }t          j        ||           |                    dd          }t          j        dgdz  g dd          }t          j        ||           d S )
Nr   r
   r   r   r   r	   r
   rd   r   r   r!   )r   r   r   r   re   rf   s       r    test_nlargest_n_identical_valuesz6TestNLargestNSmallest.test_nlargest_n_identical_values   s    \aooo>>??Q$$<qcAgIII > >iiiPPP
fh///a%%<qcAgIII > >??
fh/////r      c                 R   |}|                     ||          }|                    |                              |          }t          j        ||           |                    ||          }|                    |d                              |          }t          t          j                  t          d          k    rR|dgk    r|dv s|ddgk    r?|dk    r9|j	        
                    t          j                            dd	                     t          j        ||           d S )
NFrE   z1.25r   )r   r   r   r	   r   r
   zYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructions)reasonstrict)rD   rK   rL   rM   rN   ra   r   r   __version__node
add_markerrG   markxfail)rO   r   r>   r=   requestrQ   rS   rT   s           r   test_nlargest_n_duplicate_indexz5TestNLargestNSmallest.test_nlargest_n_duplicate_index   s(    a''>>%((--a00
fh///Q&&>>%5>99>>qAA2>""gfoo55se^^\ 1 1uc
7J7JPQUVPVPVL##!!G ! "     	fh/////r   c                    t          j        g dg dd          }|                    ddd          }t          j        dddd	d	d	d	d
dddddddd
d          }t          j        ||           |                    ddd          }t          j        dd	d	d	d	dddddddd          }t          j        ||           d S )N)r
   r	   r	   r   r   r   r   r   )r   r&   r%   r$   r
   2   r      rd   r	   r   all)keepr
   r   )r   r   r   r	   r
   rk   r$   r   r&   r%   rw   rx   r   )r   r	   r
   rk   r$   r$   re   rf   s       r   %test_nlargest_duplicate_keep_all_tiesz;TestNLargestNSmallest.test_nlargest_duplicate_keep_all_ties   s   \***1M1M1MNN
 
 Q%00<qQ1qQ??aA"CC 
 
 	fh///a511<qQ133qRB266 
 
 	fh/////r   c                 v   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          }|j        g d         }t          j        ||           |                    dd          }|j        g d         }t          j        ||           d S )Nxr   r   gQ?gp=
ף?gQ?g      ?gffffff?g333333?gQ?)r6   datar   )r}   r   )r   r   r   )r}   r   )r   r   r   )	r   r   
MultiIndexfrom_productrD   ilocrM   rN   ra   rf   s       r   &test_nlargest_multiindex_column_lookupz<TestNLargestNSmallest.test_nlargest_multiindex_column_lookup   s     \M..Sz/BCC,ttTlT4LI
 
 
 a,,7999%
fh/// Q
++7999%
fh/////r   c                    t          j        t          j        t          j        ddddg          }|                    dd          }|                    dd                              d          }t          j        ||           d S )Nr   r   r   r   r
   FrE   )	r   r   r   nanra   rK   rL   rM   rN   rf   s       r   test_nlargest_nanz'TestNLargestNSmallest.test_nlargest_nan   sq    \26261aA677Q"">>!u>55::1==
fh/////r   c                 @   t          j        g dg dg ddt          d                    }|                    ddd	g
          }t          j        g dg dg ddt          d                                        ddi          }t          j        ||           d S )N)r   r   r   r	   r
   Nr$   )r$   rk   r
   r	   r   r   r   )r   r   r   r   r   r   r   r   r$   r   r
   r   r   r5   ri   )r$   rk   r
   r	   r   )r   r   r   r   r   r.   )r   r   rangerD   r   rM   rN   rf   s       r   "test_nsmallest_nan_after_n_elementz8TestNLargestNSmallest.test_nsmallest_nan_after_n_element   s    \---****** 
 ((
 
 
 a#s44<$__$__$__ 
 ((
 
 
 &#w
 
  	 	fh/////r   N)__name__
__module____qualname__rG   rr   parametrizer   rU   r^   rb   rg   rj   ru   r{   r   r   r   r   r   r   r<   r<   >   s        [EE#J#J#J#JOOOOOOOOOOOO	
 $ [S%%2,,//4 4 0/% &4  [W/07H2EF 4 4 4"F F F
0 0 0"
0 
0 
0 [	///C53%#sc3ZP  [S%%1++..0 0 /.	 
000 0 0.0 0 0$0 0 00 0 0 0 0r   r<   )__doc__r/   r   numpyr   rG   pandasr   pandas._testing_testingrM   pandas.util.versionr   fixturer   r   r:   r<   r   r   r   <module>r      s     # " " " " "                ' ' ' ' ' '         6|0 |0 |0 |0 |0 |0 |0 |0 |0 |0r   