
    A>iT                     R    S r SSKrSSKrSSKrSSKJr  SSKJ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.
    N)Seriesc                     [        XS9n[        X25      " S5      nUS:X  a  [        S5      O[        SSS5      nUR                  U   n[        R
                  " XF5        g )Ndtype   	nsmallestr   )r   getattrrangeloctmassert_series_equal)valsr   methodserresultexpected_idxrexpecteds          h/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nlargest.pyassert_check_nselect_boundaryr      sQ    

#CS!!$F &+ 5E!H5Ar?Mww}%H6,    c                   t   \ 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      \R
                  R                  S
SS/5      \R
                  R                  S/ SQ5      S 5       5       5       r	\R
                  R                  S\
R                  " / SQ5      \
R                  " / SQSS9\
R                  " / SQ5      \R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9\R                  " / SQSS9/5      S  5       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      S0 5       rS1 rS2 rS3rg4)5TestSeriesNLargestNSmallest   r)      @      r   5objectr   )r   r   r   r      
complex128abcdecategoryr   nlargestr   arg)r   r!   r   r	   c                     UR                   nSU 3n[        R                  " [        US9   [	        X5      " U5        S S S 5        g ! , (       d  f       g = f)Nz3Cannot use method 'n(largest|smallest)' with dtype match)r   pytestraises	TypeErrorr
   )selfr   r   r&   dtmsgs         r   test_nlargest_error/TestSeriesNLargestNSmallest.test_nlargest_error   s@     WWCB4H]]9C0As# 100s   A
Adata)200320022001r4   2005T)utc)3D2D1Dr9   5D)r   r   r   r   r!   int8int16int32int64uint8uint16uint32uint64float32float64c                 2   [        U5      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   r	   )   r   r   r   r   )r   r   r   r   ilocr%   lensort_values)r-   r2   r   emptys       r   test_nsmallest_nlargest3TestSeriesNLargestNSmallest.test_nsmallest_nlargest,   sk   * Tl
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!   )rJ   r   r   r   r   )r   r   r   rJ   r   z#keep must be either "first", "last"r(   invalidrH   )r   r   r   rJ   r!   indexr   )r   r   r   )r!   rJ   r   rG   )r   npnanr%   rK   r   r   r   r*   r+   
ValueError)r-   r   r   r   r/   expected_firstexpected_lasts          r   test_nlargest_misc.TestSeriesNLargestNSmallest.test_nlargest_miscQ   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   rJ   r   r   )r   r   r   r   rS   F)	ascending)r   r%   rM   headr   r   r   )r-   r\   r   r   r   s        r   test_nlargest_n+TestSeriesNLargestNSmallest.test_nlargest_nq   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   rU   iinfominmaxr   )r-   nselect_methodany_int_numpy_dtype
dtype_infomin_valmax_valr   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   )rU   finforf   rg   	nextafterr   )	r-   rh   float_numpy_dtyperj   rk   rl   min_2ndmax_2ndr   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   rd   )r-   rh   r   rj   rk   rl   r   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~      rJ   allrH   )r{   r|   r}   r~   r~   r~   r~   r   )r   r~   r~   r~   r~   )r~   r   rJ   r!   r   rS   )r   r%   r   r   r   )r-   r   r   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,expectedF)TFTTc                 ~    [        U5      nUR                  S5      n[        U5      n[        R                  " XB5        g rc   )r   r%   r   r   )r-   r2   r   r   r   s        r   test_nlargest_boolean1TestSeriesNLargestNSmallest.test_nlargest_boolean   s2    
 Tla(#
v0r   c                 b   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[        X2S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)copyT)r   r   r!   rS   )
startswithrU   randomdefault_rngintegersstandard_normalastypelowerr   pdNAr%   deleterT   r   r   )r-   any_numeric_ea_dtyper   arrr   r   r   s          r   test_nlargest_nullable2TestSeriesNLargestNSmallest.test_nlargest_nullable   s    $F##))''*33Ar2>C))''*::2>CjjUj3SD1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   rH   )g      ?g       @r   r   r   )r   r   NNN)r   r   r   r   )r-   sr   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__r*   markparametrizer   listr0   r   to_datetimeto_timedeltarU   arrayrO   rZ   r   r`   rm   ru   rx   r   r   r   r   __static_attributes__r   r   r   r   r      s@   [[&h7$H5 $L94=!4=
3	
 [[X
K'@A[[UM2$ 3 B$ [[NNCDNNCNOO:;HH_F3HH_G4HH_G4HH_G4HH_G4HH_H5HH_H5HH_H5HH_I6HH_I6	
$V%$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__numpyrU   r*   pandasr   r   pandas._testing_testingr   r   r   r   r   r   <module>r      s,   
     -s1 s1r   