
    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  \R                  S 5       r\R                  S 5       r\R                  S 5       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.
    )ascii_lowercaseN)Versionc                  D    [         R                  " / SQ/ SQ/ SQS./ SQS9$ )N)            r	   )r   r   r   r   r   )r   r   r      r	   abc)r   r   r   r   r   index)pd	DataFrame     Z/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/methods/test_nlargest.pydf_duplicatesr      s     <<O/J r   c                  $   [         R                  " [        R                  R	                  S5      R                  S5      [        [        S S 5      [        R                  R	                  S5      R                  S5      R                  S5      S.5      $ )Nr   
   float64r   )	r   r   nprandomdefault_rngpermutationlistr   astyper   r   r   
df_stringsr       sl    <<&&q)55b9ocr*+&&q)55b9@@K	
 r   c                  4   [         R                  " / SQ/ SQ/ SQ[        S5      [         R                  " [        S5      5      R	                  S5      / SQ[         R
                  " SSS	9[         R
                  " SSS
S9[         R                  " SSSS9S.	/ SQS9$ )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{    <<$5k!yye5<<ZH%j!<--
A,O++E13G
	


 r   c                      \ rS rSr\R
                  R                  SS/S/SS/SS/SS/SS// SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/5      \R
                  R                  S\" SS5      5      S 5       5       r\R
                  R                  SSS/SS//5      S 5       r	S r
S rS r\R
                  R                  S/ SQ/ SQS/S/SS/SS//5      \R
                  R                  S\" SS5      5      S 5       5       rS rS rS rS rSrg) TestNLargestNSmallest>   orderr   r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   nr      c                 >   UnSU;   a:  SU S3n[         R                  " [        US9   [        XR5      " X45        S S S 5        g US:H  n[        XR5      " X45      nUR	                  XGS9R                  U5      n	[        R                  " X5        g ! , (       d  f       g = f)Nr   z9Column 'b' has dtype (object|string), 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_msgrH   resultexpecteds
             r   test_nlargest_n%TestNLargestNSmallest.test_nlargest_nA   s    * %<&&4%55FH  y	:+A5 ;: '+5IR0:F~~e~AFFqIH!!&3 ;:s   B
Br7   r-   r1   r0   c                 P   UnUS   nSU SXE   R                    SU S3nUR                  SS5      R                  SS	5      R                  S
S5      R                  SS5      n[        R                  " [        US9   [        XB5      " SU5        S S S 5        g ! , (       d  f       g = f)Nr   zColumn 'z' has dtype z, cannot use method 'rC   (z\()z\)[z\[]z\]rD   r   )dtypereplacerI   rJ   rK   rL   )rQ   r;   rR   r7   rS   colrT   s          r   test_nlargest_error)TestNLargestNSmallest.test_nlargest_errord   s     ajse< 7""0!11BD 	 c5)WS% WS% WS% 	 	 ]]9I6B'73 766s   ;B
B%c                     UnUR                  S[        [        U5      SS1-
  5      5        UR                  S[        [        U5      SS1-
  5      5        g )Nr   r1   r0   )rF   r   setnlargest)rQ   r;   rS   s      r   test_nlargest_all_dtypes.TestNLargestNSmallest.test_nlargest_all_dtypesx   sK    
QSW(98'DDEF
AtCG'8(&CCDEr   c                 V   [         R                  " / SQ/ SQS.5      nUR                  SSS/S9n[         R                  " / SQ/ S	QS./ S
QS9n[        R                  " X#5        UR                  SSS/S9n[         R                  " / SQ/ SQS./ SQS9n[        R                  " X#5        g )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   re   rO   rP   rF   rQ   rS   rU   rV   s       r   +test_nlargest_duplicates_on_starter_columnsATestNLargestNSmallest.test_nlargest_duplicates_on_starter_columns}   s     \\ 29KLMQc
3<<\2,
 	f/a#s4<<\2,
 	f/r   c                 `   [         R                  " S/S-  / SQS.5      nUR                  SS5      n[         R                  " S/S-  / SQS./ SQS	9n[        R                  " X#5        UR                  SS5      n[         R                  " S/S-  / SQS.5      n[        R                  " X#5        g )
Nr   r
   r   r   r   r	   r
   ri   r   r   r"   )r   r   r   r   rj   rk   s       r    test_nlargest_n_identical_values6TestNLargestNSmallest.test_nlargest_n_identical_values   s    \\ao>?Q$<<qcAgI >iP
f/a%<<qcAgI >?
f/r      c                    UnUR                  X#5      nUR                  U5      R                  U5      n[        R                  " Xg5        UR                  X#5      nUR                  USS9R                  U5      n[        [        R                  5      [        S5      :  aH  US/:X  a  US;   d  USS/:X  a3  US:X  a-  UR                  [        R                  R                  SSS	95        [        R                  " Xg5        g )
NFrG   z1.25r   )r   r   r   r	   r   r
   zYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructions)reasonstrict)rF   rM   rN   rO   rP   re   r   r   __version__applymarkerrI   markxfail)rQ   r   r@   r?   requestrS   rU   rV   s           r   test_nlargest_n_duplicate_index5TestNLargestNSmallest.test_nlargest_n_duplicate_index   s     a'>>%(--a0
f/Q&>>%5>9>>qA2>>"gfo5se^\ 1uc
7JPQUVPV!!G ! "  	f/r   c                 v   [         R                  " / SQ/ SQS.5      nUR                  SSSS9n[         R                  " SSSS	S	S	S	S
.SSSSSSSS
.S.5      n[        R                  " X#5        UR                  SSSS9n[         R                  " SS	S	S	S	S.SSSSSS.S.5      n[        R                  " X#5        g )N)r
   r	   r	   r   r   r   r   r   )r   r'   r&   r%   r
   2   r      ri   r	   r   all)keepr
   r   )r   r   r   r	   r
   rr   r%   r   r'   r&   r~   r   r   )r   r	   r
   rr   r%   r%   rj   rk   s       r   %test_nlargest_duplicate_keep_all_ties;TestNLargestNSmallest.test_nlargest_duplicate_keep_all_ties   s    \\*1MN
 Q%0<<qQ1qQ?aA"C
 	f/a51<<qQ13qRB26
 	f/r   c                 n   [         R                  " [         R                  R                  S/SS//5      SS/SS/SS/S	S
//S9nUR	                  SS5      nUR
                  / SQ   n[        R                  " X#5        UR                  SS5      nUR
                  / SQ   n[        R                  " X#5        g )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_productrF   ilocrO   rP   re   rk   s       r   &test_nlargest_multiindex_column_lookup<TestNLargestNSmallest.test_nlargest_multiindex_column_lookup   s     \\MM..Sz/BC,ttTlT4LI
 a,779%
f/ Q
+779%
f/r   c                    [         R                  " [        R                  [        R                  SSSS/5      nUR	                  SS5      nUR                  SSS9R                  S5      n[        R                  " X#5        g )Nr   r   r   r   r
   FrG   )	r   r   r   nanre   rM   rN   rO   rP   rk   s       r   test_nlargest_nan'TestNLargestNSmallest.test_nlargest_nan   s`    \\2662661aA67Q">>!u>5::1=
f/r   c                    [         R                  " / SQ/ SQ/ SQS.[        S5      S9nUR                  SSS	/S
9n[         R                  " / SQ/ SQ/ SQS.[        S5      S9R	                  SS05      n[
        R                  " X#5        g )N)r   r   r   r	   r
   Nr%   )r%   rr   r
   r	   r   r   r   )r   r   r   r   r   r   r   r   r%   r   r
   r   r   r6   ro   )r%   rr   r
   r	   r   )r   r   r   r   r   r/   )r   r   rangerF   r   rO   rP   rk   s       r   "test_nsmallest_nan_after_n_element8TestNLargestNSmallest.test_nsmallest_nan_after_n_element   s    \\-**
 (
 a#s4<<$$$
 (
 &#w
  	 	f/r   r   N)__name__
__module____qualname____firstlineno__rI   rx   parametrizer   rW   ra   rf   rl   rp   r{   r   r   r   r   __static_attributes__r   r   r   r=   r=   >   sE    [[EE#J#J#J#J	
$ [[S%2,/4 0%&4  [[W/07H2EF44"F
0"
0 [[	/C53%#sc3ZP [[S%1+.0 /	
000.0$00r   r=   )__doc__r0   r   numpyr   rI   pandasr   pandas._testing_testingrO   pandas.util.versionr   fixturer   r    r;   r=   r   r   r   <module>r      sr    #     '      6|0 |0r   