
    Mh                          S r SSKJr  SSKrSSKrSSKrSSKJr  SSK	J
r  / SQr\R                  S 5       r\R                  " \S9S 5       rS	 r " S
 S5      rg)z
Note: for naming purposes, most tests are title with as e.g. "test_nlargest_foo"
but are implicitly also testing nsmallest_foo.
    )productN)Series)datetime
datetimetz	timedeltaint8int16int32int64float32float64uint8uint16uint32uint64c                  
   [         R                  " [         R                  " / SQ5      [         R                  " / SQ5      R                  S5      [         R                  " / SQ5      S.5      n S H  n[        / SQUS9X'   M     U $ )z
A DataFrame with many dtypes

* datetime
* datetimetz
* timedelta
* [u]int{8,16,32,64}
* float{32,64}

The columns are the name of the dtype.
)200320022001r   2005z
US/Eastern)3d2d1dr   5d)r   r   r   )
r   r	   r
   r   r   r   r   r   r   r   )         r      dtype)pd	DataFrameto_datetimetz_localizeto_timedeltar   )dfr    s     [/var/www/html/env/lib/python3.13/site-packages/pandas/tests/series/methods/test_nlargest.pys_main_dtypesr(      sm     
'OP..8k,')GH	

B ?%8	 I    )paramsc                     XR                      $ )zEach series in s_main_dtypes.)param)requestr(   s     r'   s_main_dtypes_splitr.   G   s     ''r)   c                     [        XS9n[        X25      " S5      nUS:X  a  / SQO/ SQnUR                  U   n[        R                  " XF5        g )Nr   r   	nsmallest)r   r   r   )r   r   r   )r   getattrloctmassert_series_equal)valsr    methodserresultexpected_idxrexpecteds          r'   assert_check_nselect_boundaryr;   M   sE    

#CS!!$F!';!6IIMww}%H6,r)   c                      \ rS rSr\R
                  R                  S\" / SQSS9\" / SQSS9\" / SQSS9\" \" S5      5      \" \" S5      S	S9/5      S
 5       r	S r
S r\R
                  R                  S\" SS5      5      S 5       rS rS r\R
                  R                  SSS/5      S 5       rS r\R
                  R                  SSS/S/4/ SQS/4/5      S 5       rS rS rSrg )!TestSeriesNLargestNSmallestV   r)      @r   r   r   5objectr   )r@   r   r   r   r   
complex128abcdecategoryc                    UR                   nSU 3nS[        U5      SS4nUR                  UR                  4n[	        XT5       H/  u  pg[
        R                  " [        US9   U" U5        S S S 5        M1     g ! , (       d  f       MC  = f)Nz3Cannot use method 'n(largest|smallest)' with dtype r   r   match)r    lennlargestr0   r   pytestraises	TypeError)selfr?   dtmsgargsmethodsr6   args           r'   test_nlargest_error/TestSeriesNLargestNSmallest.test_nlargest_errorW   sr     WWCB4H#a&!R**akk)"71KFy4s 54 244s   "	A88
B	c                     Un[         R                  " UR                  S5      UR                  SS/   5        [         R                  " UR                  SSS9UR                  SS/   5        UR                  SS n[         R                  " UR                  S5      U5        [         R                  " UR                  S5      U5        [         R                  " UR	                  S5      U5        [         R                  " UR	                  S5      U5        [         R                  " UR                  [        U5      5      UR                  5       5        [         R                  " UR                  [        U5      S-   5      UR                  5       5        [         R                  " UR	                  [        U5      5      UR                  / SQ   5        [         R                  " UR	                  [        U5      S-   5      UR                  / SQ   5        g )	Nr   r   lastkeepr   r   rG   )   r   r   r   r   )r3   r4   r0   ilocrK   rJ   sort_values)rO   r.   r7   emptys       r'   test_nsmallest_nlargest3TestSeriesNLargestNSmallest.test_nsmallest_nlargestl   sg    "
s}}Q/1a&1AB
s}}QV}<chh1v>NO1
s}}Q/7
s}}R0%8
s||A6
s||B/7
s}}SX68IJ
s}}SX\:COO<MN
s||CH5sxx7PQ
s||CHqL9388O;TUr)   c                    [        S[        R                  SSS/5      nUR                  5       nUR                  / SQ   n[
        R                  " X#5        UR                  5       nUR                  / SQ   n[
        R                  " X#5        Sn[        R                  " [        US9   UR                  S	S
9  S S S 5        [        R                  " [        US9   UR                  S	S
9  S S S 5        [        S/S-  / SQS9n[        S/S-  / SQS9n[        S/S-  / SQS9nUR                  S5      n[
        R                  " X%5        UR                  SSS
9n[
        R                  " X&5        UR                  S5      n[
        R                  " X%5        UR                  SSS
9n[
        R                  " X&5        g ! , (       d  f       GN= f! , (       d  f       N= f)Nr@   r   r   r   )r[   r   r   r   r   )r   r   r   r[   r   z#keep must be either "first", "last"rH   invalidrY   )r   r   r   r[   r   indexr   )r   r   r   )r   r[   r   rX   )r   npnanrK   r\   r3   r4   r0   rL   rM   
ValueError)rO   r7   r8   r:   rQ   expected_firstexpected_lasts          r'   test_nlargest_misc.TestSeriesNLargestNSmallest.test_nlargest_misc   so   c2661a+,88O,
v088O,
v03]]:S1MMyM) 2]]:S1LLiL( 2 aS1WO4ay9sQwi8q!
v6qv.
v5a
v6af-
v5) 2111s   (F<G<
G
Gnr   r   c                 6   [        / SQ/ SQS9nUR                  U5      nUR                  SS9R                  U5      n[        R
                  " X45        UR                  U5      nUR                  5       R                  U5      n[        R
                  " X45        g )N)r   r[   r   r   )r   r   r   r   rc   F)	ascending)r   rK   r]   headr3   r4   r0   )rO   rl   r7   r8   r:   s        r'   test_nlargest_n+TestSeriesNLargestNSmallest.test_nlargest_n   sy     \6a??U?388;
v0q!??$))!,
v0r)   c                     [         R                  " U5      nUR                  UR                  pTXDS-   US-
  U/n[	        XbU5        g Nr   re   iinfominmaxr;   )rO   nselect_methodany_int_numpy_dtype
dtype_infomin_valmax_valr5   s          r'   test_nlargest_boundary_integer:TestSeriesNLargestNSmallest.test_nlargest_boundary_integer   s>    XX12
%>>:>>1gk7;%dPr)   c                     [         R                  " U5      nUR                  UR                  pT[         R                  " XE/SUS9u  pgXFXu/n[        XU5        g )Nr   r   )re   finforv   rw   	nextafterr;   )	rO   rx   float_numpy_dtyperz   r{   r|   min_2ndmax_2ndr5   s	            r'   test_nlargest_boundary_float8TestSeriesNLargestNSmallest.test_nlargest_boundary_float   sM    XX/0
%>>:>><<(:AEVW'3%d~Nr)   r    zdatetime64[ns]ztimedelta64[ns]c                     [         R                  " S5      nUR                  UR                  pTUS-   US-   US-
  XT/n[	        XbU5        g )Nr   r   r   rt   )rO   rx   r    rz   r{   r|   r5   s          r'   #test_nlargest_boundary_datetimelike?TestSeriesNLargestNSmallest.test_nlargest_boundary_datetimelike   sE    
 XXg&
%>>:>>!Wq['A+wH%d>Br)   c                     [        / SQ5      nUR                  SSS9n[        / SQ5      n[        R                  " X#5        UR	                  SSS9n[        / SQ/ SQS	9n[        R                  " X#5        g )
N)
   	         r   r   r      r[   allrY   )r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r[   r   r   rc   )r   rK   r3   r4   r0   )rO   r7   r8   r:   s       r'   %test_nlargest_duplicate_keep_all_tiesATestSeriesNLargestNSmallest.test_nlargest_duplicate_keep_all_ties   sd    ./ae,01
v0qu-/A
v0r)   zdata,expectedTF)TFTTc                 ~    [        U5      nUR                  S5      n[        U5      n[        R                  " XB5        g rs   )r   rK   r3   r4   )rO   datar:   r7   r8   s        r'   test_nlargest_boolean1TestSeriesNLargestNSmallest.test_nlargest_boolean   s2    
 Tla(#
v0r)   c                 ~   UnUR                  S5      (       a1  [        R                  R                  S5      R	                  SSS5      nO.[        R                  R                  S5      R                  S5      nUR                  UR                  5       SS9n[        UR                  5       US9n[        R                  US'   UR                  S5      n[        [        R                  " US5      UR                  R                  S5      S	9R                  S5      R                  U5      n[        R                   " XV5        g )
NUIntr   r   r   F)copyr   r   rc   )
startswithre   randomdefault_rngintegersstandard_normalastypelowerr   r   r!   NArK   deleterd   r3   r4   )rO   any_numeric_ea_dtyper    arrr7   r8   r:   s          r'   test_nlargest_nullable2TestSeriesNLargestNSmallest.test_nlargest_nullable   s    $F##))''*33Ar2>C))''*::2>CjjUj3SXXZu-Aa 299S!$CII,<,<Q,?@Xa[VE] 	
 	v0r)   c                    [        / SQ5      nUR                  SSS9n[        / SQ5      n[        R                  " X#5        [        / SQ5      nUR                  SSS9n[        / SQ5      n[        R                  " X#5        g )N)r   r   r   r   r   Nr   r   rY   )g      ?g       @r@   r@   r@   )r   r   NNN)r   r0   r3   r4   )rO   sr8   r:   s       r'   #test_nsmallest_nan_when_keep_is_all?TestSeriesNLargestNSmallest.test_nsmallest_nan_when_keep_is_all   sn    ()QU+34
v0+,QU+23
v0r)    N)__name__
__module____qualname____firstlineno__rL   markparametrizer   listrU   r_   rj   rangerp   r}   r   r   r   r   r   r   __static_attributes__r   r)   r'   r=   r=   V   s*   [[&h7$H5 $L94=!4=
3	
V&6@ [[S%1+.	1 /	1QO [[W'79J&KLC MC	1 [[D%=4&14MPTv3VW111*
1r)   r=   )__doc__	itertoolsr   numpyre   rL   pandasr!   r   pandas._testing_testingr3   main_dtypesfixturer(   r.   r;   r=   r   r)   r'   <module>r      sl         " $ $N {#( $(
-b1 b1r)   