
    Mh75                         S SK Jr  S SKJr  S SKrS SKrS SKJrJ	r	J
r
JrJrJrJrJr  S SKJr   " S S5      rS rS rS	 rS
 rS rS rS rS rg)    )product)ascii_lowercaseN)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta	Timestamp
date_rangec                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS r\R,                  R/                  S\" SS5       V VVs/ s H  n[3        SUS S35      PM     snnn \" SS5       V VVs/ s H  n[3        SUS S35      PM     snnn \" SS5       V VVs/ s H  n[3        SUS S3SS9PM     snnn \" SS5       V VVs/ s H  n[5        USS9PM     snnn \" SS5       V VVs/ s H  n[7        SSUS 9PM     snnn /5      S! 5       rS" rS# rS$ rS%r g&s  snnn f s  snnn f s  snnn f s  snnn f s  snnn f )'TestCounting   c                    [        S/S/S/S/S//S/S9nUR                  S5      nUR                  n[        / SQ5      n[        R
                  " XBR                  5       5        [        R
                  " XCR                  5       5        g )NabAcolumnsr         r      r   groupbyr   r	   tmassert_series_equalcumcountselfdfgsgexpecteds        T/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/test_counting.pytest_cumcountTestCounting.test_cumcount   sm    usecUSE:SEJJJsOSS/*
x6
x7    c                    [        5       R                  SS9n[        [        S9R                  SS9n[        SS9n[        R
                  " X1R                  5       5        [        R
                  " X2R                  5       5        g Nr   )leveldtypeint64)r   r   r	   objectr   r   r   r    gesees       r%   test_cumcount_empty TestCounting.test_cumcount_empty   sc    [  q )&!)))2 !
q++-0
q++-0r(   c                 "   [        S/S/S/S/S//S/S/S-  S9nUR                  S5      nUR                  n[        / SQS/S-  S9n[        R
                  " XBR                  5       5        [        R
                  " XCR                  5       5        g )	Nr   r   r   r      r   indexr   r9   r   r   s        r%   test_cumcount_dupe_index%TestCounting.test_cumcount_dupe_index)   s    USEC53%#/#qcAg
 JJsOSS/!q9
x6
x7r(   c                 \   [         R                  " SS/SS/SS/SS/SS//5      n[        S/S/S/S/S//S/US9nUR                  S5      nUR                  n[        / SQUS	9n[        R                  " XSR                  5       5        [        R                  " XTR                  5       5        g )
Nr   r   r   r   r   r   r8   r   r:   )	r   from_tuplesr   r   r   r	   r   r   r   r    mir!   r"   r#   r$   s         r%   test_cumcount_miTestCounting.test_cumcount_mi5   s    ##aVaVaVaVaV$LMusecUSE:SEQSTJJsOSS/4
x6
x7r(   c                 &   [        S/S/S/S/S//S/S/S-  S9nUR                  / SQ5      nUR                  n[        / SQS/S-  S	9n[        R
                  " XBR                  5       5        [        R
                  " XCR                  5       5        g )
Nr   r   r   r   r7   r8   r   r   r   r   r   r   r:   r   r   s        r%   test_cumcount_groupby_not_col*TestCounting.test_cumcount_groupby_not_col@   s    USEC53%#/#qcAg
 JJ'SS/!q9
x6
x7r(   c                    [        S[        S5      05      nUR                  S5      nUR                  n[	        / SQ5      n[
        R                  " XBR                  5       5        [
        R                  " XCR                  5       5        g )Nr   aaabarD   r   listr   r   r	   r   r   ngroupr   s        r%   test_ngroupTestCounting.test_ngroupL   s]    T']+,JJsOSS/*
x4
x5r(   c                     [        S[        S5      05      nUR                  S5      nUR                  n[	        [        S5      SS9n[        R                  " XBR                  5       5        [        R                  " XCR                  5       5        g )Nr   abcder7   r.   r,   )	r   rJ   r   r   r	   ranger   r   rK   r   s        r%   test_ngroup_distinct!TestCounting.test_ngroup_distinctV   sc    T']+,JJsOSS%('2
x4
x5r(   c                    [        SS/S-  05      nUR                  S5      nUR                  n[        S/S-  5      n[        R
                  " XBR                  5       5        [        R
                  " XCR                  5       5        g )Nr   r   r7   )r   r   r   r	   r   r   rK   r   s        r%   test_ngroup_one_group"TestCounting.test_ngroup_one_group`   sc    aS1W~&JJsOSS1#'?
x4
x5r(   c                    [        5       R                  SS9n[        [        S9R                  SS9n[        SS9n[        R
                  " X1R                  5       5        [        R
                  " X2R                  5       5        g r*   )r   r   r	   r/   r   r   rK   r0   s       r%   test_ngroup_emptyTestCounting.test_ngroup_emptyj   sc    [  q )&!)))2 !
q))+.
q))+.r(   c                     [        S[        S5      05      n[        [        S5      5      n[        R                  " UR                  U5      R                  5       UR                  U5      R                  5       5        g )Nr   rH   )r   rJ   r	   r   r   r   rK   )r    r!   ss      r%    test_ngroup_series_matches_frame-TestCounting.test_ngroup_series_matches_framet   sU    T']+,4=!
rzz!}335qyy|7J7J7LMr(   c                     [        S[        S5      0S/S-  S9nUR                  S5      nUR                  n[	        / SQS/S-  S9n[
        R                  " XBR                  5       5        [
        R                  " XCR                  5       5        g Nr   rH   r   r7   r:   rD   rI   r   s        r%   test_ngroup_dupe_index#TestCounting.test_ngroup_dupe_indexz   sm    T']+A37;JJsOSS/!q9
x4
x5r(   c                 Z   [         R                  " SS/SS/SS/SS/SS//5      n[        S[        S5      0US9nUR	                  S5      nUR
                  n[        / SQUS9n[        R                  " XSR                  5       5        [        R                  " XTR                  5       5        g )Nr   r   r   r   rH   r:   rD   )
r   r>   r   rJ   r   r   r	   r   r   rK   r?   s         r%   test_ngroup_miTestCounting.test_ngroup_mi   s    ##aVaVaVaVaV$LMT']+26JJsOSS/4
x4
x5r(   c                 $   [        S[        S5      0S/S-  S9nUR                  / SQ5      nUR                  n[	        / SQS/S-  S9n[
        R                  " XBR                  5       5        [
        R                  " XCR                  5       5        g r^   rI   r   s        r%   test_ngroup_groupby_not_col(TestCounting.test_ngroup_groupby_not_col   sn    T']+A37;JJ'SS/!q9
x4
x5r(   c                 N   [        / SQS/S9nUR                  S/5      n[        / SQ5      n[        / SQ5      n[        R                  " XBR
                  S-
  U-
  5        [        R                  " X2R                  SS95        [        R                  " XBR                  S	S95        g )
N)r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   T)	ascendingF)r   r   r	   r   r   ngroupsrK   )r    r!   r"   rh   
descendings        r%   test_ngroup_descending#TestCounting.test_ngroup_descending   s    03%@JJu?+	O,

zIIMY+FG
y((T(*BC
z88e8+DEr(   c                 ,   [        SS/SS/SS/SS/SS//SS/S9nUR                  SS/5      nUR                  5       nUR                  5       n[	        / SQ5      n[	        / S	Q5      n[
        R                  " X55        [
        R                  " XF5        g )
Nr   xyr   r   Xr   r   rD   )r   r   rK   r   r	   r   r   )r    r!   r"   g_ngroup
g_cumcountexpected_ngroupexpected_cumcounts          r%   test_ngroup_matches_cumcount)TestCounting.test_ngroup_matches_cumcount   s    3Z#sc3Z#sc3ZH#J
 JJSz"88:ZZ\
 1"?3
x9
z=r(   c                    [        [        S5      SS9 H  n[        SU05      nUR                  S/5      n[	        [        U5      5      nU Vs/ s H  oTR                  U5      PM     nn[        U5       VVs/ s H  u  puUS U R                  U5      PM     nnn[        R                  " UR                  5       [        U5      5        [        R                  " UR                  5       [        U5      5        M     g s  snf s  snnf )Nr      )repeatr   )r   rP   r   r   sortedsetr9   	enumeratecountr   r   rK   r	   r   )	r    pr!   r"   ordervalngroupdi
cumcounteds	            r%   test_ngroup_cumcount_pair&TestCounting.test_ngroup_cumcount_pair   s    q!,AC8$B

C5!A3q6NE3451C{{3'1G59B1Fvq!BQ%++c*JF""188:vg?""1::<
1CD -
 6Fs   C<8 Dc                 h   [        S[        R                  R                  S5      R	                  [        S5      S5      05      nUR                  SUS9nSUS'   SUS'   [        U5       HP  u  nu  pVXBR                  UR                  S4'   [        UR                  5       H  u  pxXrR                  US4'   M     MR     [        R                  " [        US   R                  5      UR                  5       5        [        R                  " [        US   R                  5      UR                  5       5        g )	Nr   r   abcdefd   )sortgroup_idgroup_index)r   nprandomdefault_rngchoicerJ   r   r|   locr9   r   r   r	   valuesrK   r   )	r    r   r!   r"   r   _groupjinds	            r%   "test_ngroup_respects_groupby_order/TestCounting.test_ngroup_respects_groupby_order   s    RYY2215<<T(^SQRSJJsJ&:=&q\MAz./FF5;;
*+#EKK0-.sM)* 1 *
 	vbn&;&;<ahhjI
vb&7&>&>?Nr(   datetimeliker   rx   z2016-05-02dz 20:09:25+00:00z	 20:09:25UTC)tzh)unit2Wi  )freqyearmonthc                     [        / SQUS.5      nUR                  S5      R                  5       n[        SSS/0SS/S	9nSUR                  l        [
        R                  " XC5        g )
N)r   r   r   )rn   ro   rn   ro   r   r   r   r   r:   )r   r   r}   r9   namer   assert_frame_equal)r    r   r!   resr$   s        r%   test_count_with_datetimelike)TestCounting.test_count_with_datetimelike   s[     _<@Ajjo##%cAq6]3*=!
h,r(   c                 @   [        [        R                  [        R                  /SS/SS/S.5      nUR                  SS/5      R                  R                  5       n[        / SS/// / /SS/S9n[        / U[        R                  S	S
9n[        R                  " X$SS9  g )Nr   r   r   r   r   BCr   r   )levelscodesnamesr   )r9   r-   r   F)check_index_type)r   r   nanr   r   r}   r   r	   r.   r   r   )r    r!   resultr@   r$   s        r%   (test_count_with_only_nans_in_first_group5TestCounting.test_count_with_only_nans_in_first_group   s    bffbff-S#JaVLMS#J'))//1S#J/BxSzR"BbhhSA
v%Hr(   c                     [        / SQSS[        R                  SS/S.5      nUR                  S/5      R	                  5       n[        [        / SQSS	9S
/ SQ0S9n[        R                  " X25        g )N)r   r   r   r   r   r7   rx   r   r   )r   r   r   )g        g      @g      @g      @r   r   )r   r   r   r   )r9   data)r   r   r   r   r}   r   r   r   )r    r!   r   r$   s       r%   4test_count_groupby_column_with_nan_in_groupby_columnATestCounting.test_count_groupby_column_with_nan_in_groupby_column   se    _Aq"&&!Q3GHIjj#%%',37sL>Q
 	h,r(   c                    [        SSSS9n[        [        R                  " S5      U[        R                  " S5      /S9nUR	                  S 5      nUR                  5       n[        [        R                  " S5      [        R                  " S5      U/S9nUR	                  S 5      nUR                  5       n[        R                  " XE5        g )Nz1/1/20125min
   )startr   periodsr:   c                     U S   S-  S:H  $ )Nr   r   r    rn   s    r%   <lambda>@TestCounting.test_groupby_count_dateparseerror.<locals>.<lambda>       !qAr(   c                     U S   S-  S:H  $ )Nr   r   r   r   s    r%   r   r      r   r(   )r   r	   r   aranger   r}   r   r   )r    drsergroupedr   r$   s         r%   !test_groupby_count_dateparseerror.TestCounting.test_groupby_count_dateparseerror   s    jvrB RYYr]2ryy}*=>++56RYYr]299R="*=>++56==?
v0r(   r   N)!__name__
__module____qualname____firstlineno__r&   r4   r;   rA   rE   rL   rQ   rT   rW   r[   r_   rb   re   rk   ru   r   r   pytestmarkparametrizerP   r   r
   r   r   r   r   r   __static_attributes__).0r   r   rn   r
   r   s   000000r%   r   r      sd   81
8	8
8666/N666	F>EO [[CHA;O;aY!C89;O=B1a[I[Y!C	23[IGLQPQ{S{!Y!C	2u={S-21a[9[Yqs#[9<A!QKHKqVD2KH	
	-	-I-1E PIS9Hs   D3D:3EEEr   c                  $   [        [        S5      [        R                  " S5      R	                  S5      S.5      n [        SS/[        SS/SS	9S
S9nU R                  S5      R                  R                  5       n[        R                  " X5        g )Nababrx   ztimedelta64[ns])r"   deltar   r   r   r"   r   r   r9   r   )r   rJ   r   r   astyper	   r   r   r   r}   r   r   )r!   r$   r   s      r%   #test_groupby_timedelta_cython_countr     su    	8nryy|':':;L'MN
B q!fE3*3$?gNHZZ_""((*F8,r(   c                     Sn [        SU S-  SS9n[        [        R                  R	                  S5      R                  [        [        5      U 5      [        R                  R	                  S5      R                  SSU 5      [        R                  R	                  S5      R                  U 5      R                  S	5      [        R                  R	                  S5      R                  S
SU 5      [        R                  R	                  S5      R                  X5      [        R                  R	                  S5      R                  U 5      R                  S	5      [        R                  R	                  S5      R                  U 5      R                  S	5      [        R                  R	                  S5      R                  X5      [        R                  R	                  S5      R                  US5      -
  [        R                  R	                  S5      R                  [        [        5      U 5      S.	5      nUR                  R                  / SQ5       HQ  n[        R                  UR                  [        R                  R	                  S5      R                  X S-  5      U4'   MS     US   R                  S5      US'   SSSS/4 H  nUR!                  U5      R#                  5       nSn[$        R&                  " [(        US9   UR!                  U5      R+                  [        R"                  5      R                  USS9nS S S 5        [$        R,                  " UW5        M     g ! , (       d  f       N*= f)Ni   z
2015-08-30r   min)r   r   r   r   r7   r   ir   )	1st2nd3rd4th5th6th7th8th9th)r   r   r   r   categoryr   r   z7DataFrameGroupBy.apply operated on the grouping columns)match)axis)r   r   r   r   r   r   rJ   r   integersstandard_normalroundr   dropr   r   r   r   r}   r   assert_produces_warningDeprecationWarningapplyr   )nr   r!   colkeyleftmsgrights           r%   
test_countr   
  s~   A	L!r'	>B	99((+2243H!L99((+44Q1=99((+;;A>DDQG99((+44S"a@99((+222999((+;;A>DDQG99((+;;A>DDQG99((+2229ii##A&--b!4599((+2243H!L	

B zz45CE66ryy$$Q'..qr':C?@ 6 5	  ,BuIuuen-zz#$$&G''(:#FJJsO)))//:??!?LE G
dE* . GFs   <=M
M+	c                  6   [        / SQS[        R                  S/S[        R                  [        R                  /// SQS9n U R                  S5      R	                  5       nU R                  SSS	9R	                  5       n[        SS
/SS//SS/SS/S9nSUR
                  l        [        R                  " X#R                  5       5        [        R                  " X5        U R                  S5      S   R	                  5       n[        R                  " XCS   5        g )N)r   r   foor   barr   r   r   r   F)as_indexr   r   r   r   r8   )r   r   r   r   r}   r9   r   r   r   reset_indexr   )r!   count_ascount_not_asr$   count_Bs        r%   test_count_non_nullsr   *  s     
	BFFE*Q,?@
B
 zz#$$&H::cE:288:L1a&1a&)C:aVLHHNN,(<(<(>?(-jjoc"((*G7SM2r(   c                  "   [        S/S-  S/S-  -   S/S-  S/S-  -   S.5      n U R                  S5      R                  R                  5       n[	        SS/[        SS/SS9SS9n[        R                  " X5        [        S[        R                  [        R                  /S/S-  -   S/S-  S/S-  -   S.5      n U R                  S5      R                  R                  5       n[	        S	S/[        SS/SS9SS9n[        R                  " X5        g )
Nr   r   r   r   )r   cr  r   r   r   )
r   r   r   r}   r	   r   r   r   r   r   r!   r   r$   s      r%   test_count_objectr  >  s    	#cUQY.aS1WsQw5FG	HBZZ_$$&Fq!fE1a&s$;#FH6,	#rvvrvv.#:!qA3QR7ARS	TBZZ_$$&Fq!fE1a&s$;#FH6,r(   c                  j   [         R                  " [         R                  R                  S5      R	                  SSS5      [         R                  R                  S5      R	                  SSS5      45      R                  S5      n [        U / SQS9n[         R                  XS:H  '   UR                  SS	/5      R                  5       nS
 Hh  nUS   R                  U5      US'   US   R                  U5      US'   UR                  SS	/5      R                  5       n[        R                  " XB5        Mj     g )Nr   r   r7   )r   r   float64)r   r   r  dr   r  r  )float32r/   r   r   )r   hstackr   r   r   r   r   r   r   r}   r   r   )valsr!   r$   tr   s        r%   test_count_cross_typer  J  s     99II!!!$--aH=II!!!$--aH=	

 fY 	 
4!5	6B&&BQwKzz3*%++-H"S'..#3S'..#3S#J'--/
f/	 #r(   c                     [        [        R                  " / SQ[        R                  5      [        R                  " / SQ[        R                  5      [        R                  " / SQ[        R
                  5      [        S5      S.5      n U R                  S5      R                  5       n[        SS/SS/SS/S.[        [        S	5      SS
9S9n[        R                  " X5        g )N)r   r   r   r   )r   r   r      )rx   r7   r     r   )r   r   r  grpr  r   )r   r   r  abr   r:   )r   r   arrayint8uint32int16rJ   r   r}   r   r   r   r  s      r%   test_lower_int_prec_countr  _  s    	."''2,		2,1>		

B ZZ$$&F!fAq6A/uT$Ze7TH &+r(   c                  Z  ^  " S S[         5      m " U4S jS5      n [        [        S5       Vs/ s H	  o" 5       PM     sn[        S5      S.5      nUR	                  S5      R                  5       n[        S	S
S
/0[        [        S5      SS9S9n[        R                  " X45        g s  snf )Nc                       \ rS rSrSrg)Atest_count_uses_size_on_exception.<locals>.RaisingObjectExceptionip  r   N)r   r   r   r   r   r   r(   r%   RaisingObjectExceptionr  p  s    r(   r  c                   >   >^  \ rS rSrSSU 4S jjjrU4S jrSrU =r$ )8test_count_uses_size_on_exception.<locals>.RaisingObjectis  c                 .   > [         TU ]  5         Xl        g N)super__init__r   )r    r   	__class__s     r%   r  Atest_count_uses_size_on_exception.<locals>.RaisingObject.__init__t  s    GHr(   c                 (   > T" U R                   5      er  r   )r    otherr  s     r%   __eq__?test_count_uses_size_on_exception.<locals>.RaisingObject.__eq__x  s    (22r(   r#  )zI will raise inside Cython)returnN)r   r   r   r   r  r%  r   __classcell__)r   r  s   @r%   RaisingObjectr  s  s    	 		3 	3r(   r)  rx   r   )r   r  r  r   r   r  r   r:   )		Exceptionr   rP   rJ   r   r}   r   r   r   )r)  r   r!   r   r$   r  s        @r%   !test_count_uses_size_on_exceptionr+  o  s     3 3 
58<8a-/8<T(^T	UBZZ$$&F#1veDJU.KLH&+ =s   B(c                     [         R                  " S5        [        / SQ[        / SQU S9S.5      nUR	                  S5      R                  5       n[        SS0[        / SQSS	9S
9n[        R                  " X#5        g )Npyarrow)r   r   r   )r   r   r   r,   )r   r   r   r   r   r   r:   )	r   importorskipr   r	   r   r}   r   r   r   )any_string_dtyper!   r   r$   s       r%   test_count_arrow_string_arrayr0    sg    
	"	f_<LMN
B ZZ_""$F#qys)CDH&+r(   )	itertoolsr   stringr   numpyr   r   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingr   r   r   r   r   r  r  r  r+  r0  r   r(   r%   <module>r7     s[     "  	 	 	 j1 j1Z-+@3(	-0*, ,&,r(   