
    bMh                           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     h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_nlargest.pydf_duplicatesr      s;    <ooOOO///JJoo   r   c                  L   t          j        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   
df_stringsr       s    <&&q))55b99ocrc*++&&q))55b99@@KK	
 	
  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   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_methodr?   r>   df	error_msgrG   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r7   r-   r1   r0   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 'rB   (z\()z\)[z\[]z\]rC   r   )dtypereplacerH   rI   rJ   rK   )rP   r;   rQ   r7   rR   colrS   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   r1   r0   )rE   r   setnlargest)rP   r;   rR   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   r6   )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   rb   rN   rO   rE   rP   rR   rT   rU   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
   re   r   r   r"   )r   r   r   r   rf   rg   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                 H   |}|                     ||          }|                    |                              |          }t          j        ||           |                    ||          }|                    |d                              |          }t          t          j                  t          d          k    rM|dgk    r|dv s|ddgk    r:|dk    r4|	                    t          j                            dd	                     t          j        ||           d S )
NFrF   z1.25r   )r   r   r   r	   r   r
   zYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructions)reasonstrict)rE   rL   rM   rN   rO   rb   r   r   __version__applymarkerrH   markxfail)rP   r   r?   r>   requestrR   rT   rU   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!!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      re   r	   r   all)keepr
   r   )r   r   r   r	   r
   rl   r%   r   r'   r&   rw   rx   r   )r   r	   r
   rl   r%   r%   rf   rg   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?)r7   datar   )r}   r   )r   r   r   )r}   r   )r   r   r   )	r   r   
MultiIndexfrom_productrE   ilocrN   rO   rb   rg   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
   FrF   )	r   r   r   nanrb   rL   rM   rN   rO   rg   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%   rl   r
   r	   r   r   r   )r   r   r   r   r   r   r   r   r%   r   r
   r   r   r6   rj   )r%   rl   r
   r	   r   )r   r   r   r   r   r/   )r   r   rangerE   r   rN   rO   rg   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__rH   rr   parametrizer   rV   r_   rc   rh   rk   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__r0   r   numpyr   rH   pandasr   pandas._testing_testingrN   pandas.util.versionr   fixturer   r    r;   r=   r   r   r   <module>r      s     # " " " " "                ' ' ' ' ' '         6|0 |0 |0 |0 |0 |0 |0 |0 |0 |0r   