
    A>iks                       S SK J r   S SK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
s  Jr  S SKrS SKJrJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SK J!s  J"r#  \RH                  RK                  S5      r&S r'S	 r(S
 r)S r*S r+S r,S r-S r.\RH                  R_                  SS/SS//5      S 5       r0S r1S r2S r3S r4S r5S r6S r7S r8S r9\RH                  R_                  SS S /5      S  5       r:S! r;S" r<S# r=S$ r>S% r?S& r@S' rAS( rBS) rCS* rD\RH                  R_                  S+S,S-/5      S. 5       rE\RH                  R_                  S+/ S/Q5      \RH                  R_                  S0S1S2/5      S3 5       5       rFS4 rGS5 rHS6 rIS7 rJS8 rKS9 rLS: rMS; rNS< rOS= rPS> rQS? rRS@ rSSA rTSB rUSC rVSD rWSE rXSF rYSG rZSH r[SI r\SJ r]SK r^SL r_SM r`SN raSO rbSP rcSQ rdSR reSS rfST rgSU rhSV riSW rjSX rkSY rlSZ rm\RH                  R_                  S[S\S\S]//5      S^ 5       rnS_ roS` rpSa rqSb rrSc rsSd rtSe ruSf rv\RH                  R_                  SgShSiSjShSi/ShSj//5      \RH                  R_                  SkSlSmSlSm//5      Sn 5       5       rwSo rx\RH                  R_                  SpSqSq//5      \RH                  R_                  SS\/S\S]//5      \RH                  R_                  SrS1/S /Ss/S/\" S /5      \" S 5      /\" S StStSuSv9\R                  " SwSxSySz9\R                  " S /S{S|9\R                  " S /S}S|9\R                  " S2/S~S|9// SQS9\RH                  R_                  S/ SQ5      \RH                  R_                  S/ SQ5      S 5       5       5       5       5       r{S r|S r}S r~S rS rS rS rS rS r\RH                  R_                  SSSSS\" S5      \" S5      SS/04SS\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      /04SS\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      /04/5      S 5       rS rS rS rS rS r\RH                  R_                  S/ SQ5      S 5       rS r\RH                  R_                  S\SS4\SS24\SS24\SS24\SS14\SS24\SS4\SS24\SS24\SS24\SS14\SS24/5      S 5       r\RH                  R_                  S/ SQ5      S 5       r\RH                  R_                  SS2\GR                  " S1\GR                   " S5      S9/5      S 5       rS r\RH                  R_                  SSSS/4SSS/4/5      S 5       rS rS rS rS rS r\RH                  R_                  S0S1S2/5      S 5       rS rS rS rS rS rS rS rS rS r\RH                  R_                  SSSS//5      S 5       rS r\RH                  R_                  SS /S24SS /S14S/5      S 5       r\RH                  R_                  S/ SQ5      S 5       r\RH                  R_                  SSS/5      S 5       r\RH                  R_                  SSS/5      S 5       r\RH                  R_                  SSS2\GRR                  4/5      S 5       r\RH                  R_                  S/ SQ/ SQ/ SQ4/ SQ/ SQ/ SQ4/5      S 5       r\RH                  R_                  S/ SQ5      S 5       r\RH                  RK                  S5      \RH                  R_                  S/ SQ5      S 5       5       rS rS r\RH                  R_                  S0S1S2/5      S 5       rS r\RH                  R_                  SStS/5      S 5       r\RH                  R_                  S/ SQ5      S 5       rS rS rS r\RH                  R_                  SS1S2/5      \RH                  R_                  SSSS/SS4SSS /SS4/5      S 5       5       rS rS r\RH                  R_                  SS1S2/5      S 5       rS rGS  rGS rGS rg(      )datetimeN)Decimal)SpecificationError)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  <    [        [        SSS95      n SnX:X  d   eg )NAB)keylevelz4Grouper(key='A', level='B', sort=False, dropna=True))reprr   )resultexpecteds     `/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby.py	test_reprr   "   s$    'c-.FEH    c                    U R                   R                  S   nU R                  U5      nUR                  5       nU R                  UR	                  S5      5      R                  5       nUR                   R
                  [        R                  :X  d   eUR                   R
                  [        R                  :X  d   e[        R                  " X4SS9  g )Nr   OF)check_index_type)indexcodesgroupbysumastypedtypenpint8int64tmassert_frame_equal) multiindex_dataframe_random_datar   groupedr   r   s        r   test_groupby_nonobject_dtyper.   )   s    
*
0
0
6
6q
9C.66s;G[[]F/77

3HLLNH<<(((>>288+++&UCr   c            
         [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R
                  " [        R                  R                  S5      R	                  S5      SS9S.5      n [        [        U 5      5      U S'   S	 nU R                  S
5      R                  U5      nUR                  nU R                  S
S9R                  n[        R                  " X45        g )Nfoobarr1   r2   r1   r2   r1   r1   )oner3   twothreer4   r4   r3   r5         float32r&   r   r   CDvaluec                 B    U R                   U S   R                  5          $ )Nr=   )locidxmaxgroups    r   	max_value5test_groupby_nonobject_dtype_mixed.<locals>.max_value@   s    yyw..011r   r   columns)r   r'   randomdefault_rngstandard_normalarrayrangelenr#   applydtypesdropr*   assert_series_equal)dfrC   appliedr   r   s        r   "test_groupby_nonobject_dtype_mixedrS   4   s    	IM&&q)99!<"))//2BB1EYW		

B B.BwK2 jjo##I.G^^Fwwsw#**H6,r   c                    S	S jnS nU R                  S 5      nUR                  [        R                  SSS9nUR	                  [        R                  SSS9nUR                  [        R                  SSS9nUR                  S5      nUR                  U5      n[        R                  " XW5        [        R                  " XG5        [        R                  " Xh5        UR                  USS9nUR	                  USS9nUR                  USS9n[        R                  " XG5        [        R                  " XW5        [        R                  " Xh5        g )
Nr   c                 ,    [         R                  " XUS9$ Naxisr'   
percentilexqrX   s      r   f test_pass_args_kwargs.<locals>.fJ       }}Q--r   c                 .    [         R                  " U SSS9$ )NP   r   rW   rY   r\   s    r   <lambda>'test_pass_args_kwargs.<locals>.<lambda>M   s    "--2A.r   c                     U R                   $ Nmonthrc   s    r   rd   re   P   s    aggr   rb   rW   皙?r]   Nr   )	r#   aggr'   rZ   rM   	transformquantiler*   rP   )	tsr^   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expecteds	            r   test_pass_args_kwargsrx   I   s   . 	/A -.Jr:J##BMM2A#>L''r'BL&&s+L))!,N<6:4<8R(J##A#,L''R'0L:4<6<8r   c                    SS jnU R                  S US9nUR                  [        R                  SSS9nUR	                  [
        R                  S5      nUR                  S5      n[        R                  " XVSS	9  [        R                  " XF5        UR	                  [
        R                  S
S/5      nUR                  S
S/5      nU(       d6  [        S5      Ul
        UR                  SS/ SQS9  UR                  SS/ SQS9  [        R                  " XWSS	9  UR                  USS9nUR	                  [
        R                  SS9n[        R                  " XF5        [        R                  " XVSS	9  g )Nr   c                 ,    [         R                  " XUS9$ rV   rY   r[   s      r   r^   *test_pass_args_kwargs_dataframe.<locals>.fe   r`   r   c                     U R                   $ rg   rh   rc   s    r   rd   1test_pass_args_kwargs_dataframe.<locals>.<lambda>h   s    177r   as_indexrb   rW   rj   Fcheck_names皙?   level_0   r   r6   r6   )r?   columnr=   r   level_1)r   rj   r   rj   rk   rl   )r#   rm   r'   rZ   rM   r   ro   r*   r+   rK   r!   insert)tsframer   r^   
df_groupedrs   rt   r   expected_seqs           r   test_pass_args_kwargs_dataframer   d   s?   . !2XFJr:J##I$6$6<L""3'H,eD*/##I$6$6c
CL&&Sz2L"1X)<H);OP,%HR(J##I$6$6##>L*/,eDr   c            
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9n U R                  S
 S S /5      n[        U5      [        U 5      :X  d   eU R                  S S /5      n[        U R                   Vs1 s H  o"R                  UR                  4iM     sn5      n[        U5      U:X  d   eg s  snf )Nr6   
   r   ABCDr9   
2000-01-01r   r   periodsfreqrF   r!   c                     U R                   $ rg   yearrc   s    r   rd   test_len.<locals>.<lambda>       AFFr   c                     U R                   $ rg   rh   rc   s    r   rd   r          aggr   c                     U R                   $ rg   dayrc   s    r   rd   r          r   c                     U R                   $ rg   r   rc   s    r   rd   r      r   r   c                     U R                   $ rg   rh   rc   s    r   rd   r      r   r   )r   r'   rG   rH   rI   r	   listobjectr   r#   rL   r!   r   ri   )rQ   r-   r\   r   s       r   test_lenr   ~   s    	
		a 009d6l&1r<
B
 jj*,=OPGw<3r7"""jj*,=>?Grxx8x!VVQWW%x89Hw<8### 9s   /!C)c                     [        [        R                  /S-  / SQS.5      n [        U R	                  S5      5      S:X  d   e[        U R	                  S5      5      S:X  d   e[        U R	                  SS/5      5      S:X  d   eg )N   r   r6   r   abr   r   r   )r   r'   nanrL   r#   rQ   s    r   test_len_nan_groupr      sq    	"&&AI6	7Brzz#1$$$rzz#1$$$rzz3*%&!+++r   c                      [        [        S5      S/SS9n [        SS/[        R                  [        S5      /S.5      nUR                  S5      S   nUR                  5       n[        R                  " X0SS	9  g )
N1Dr1   zm8[us])datar!   r&   )label	timedeltar   r   Fr   )	r   r   r   pdNaTr#   medianr*   rP   )r   rQ   gbactuals       r   test_groupby_timedelta_medianr      sd    9T?5'JH	eU^2669T?:ST	UB	G	[	)BYY[F6?r   keysr   r   c           	      z   [        [        SSS[        R                  // SQS9[        SSS[        R                  // SQS9SS.5      nUR	                  X!U S9n[        U5      nU(       a
  U (       a  SnO7U(       a
  U (       d  SnO&[        U5      S:X  a  U (       a  SOSnOU (       a  S	OS
nXV:X  d   U SU 35       eg )Nr   r6   r   
categoriesr   r   c)observeddropnar   r   	      z vs )r   r   r'   r   r#   rL   )r   r   r   rQ   r   r   r   s          r   test_len_categoricalr      s     
aArvv.9EaArvv.9E	

B 
DF	;BWFF	&	Ta1A1B8&hZ88r   c                  2   [        [        [        SS5      5      S-   V s/ s H  n SU -  PM
     sn 5      n[        R                  R                  S5      R	                  S5      S-  n[        U5      nUR                  U5      nUR                  5         g s  sn f )Nr   r         ?r6   iL  g      $@)r   r   rK   r'   rG   rH   r#   mean)r\   r   r   	groupingsr-   s        r   test_basic_regressionr      sz    d5B<&82&=>&=S1W&=>?F99  #**4047DtInnY'GLLN ?s   Bc                     S n S nS n[        / SQ[        S5      [        SS5      S.5      n[        / S	Q[        S5      [        SS5      S.5      nUR                  S
5      R                  U 5      nUR                  S
5      R                  U 5      n[        R
                  " XV5        Sn[        R                  " [        US9   UR                  S
5      R                  U5        S S S 5        [        R                  " [        US9   UR                  S
5      R                  U5        S S S 5        [        R                  " [        US9   UR                  S
5      R                  U5        S S S 5        [        R                  " [        US9   UR                  S
5      R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       g = f)Nc                     X R                   S-  S:H     S-  nUR                  (       a"  [        / /S-  / /S-  SS/S9n[        S/US9nU$ UR	                  SS/5      nU$ )Nr6   r   r   r   levelsr"   namesr   r   )r   emptyr   r   	set_indexr\   y
multiindexress       r   f1,test_indices_concatenation_order.<locals>.f1   sk    ssQw1n"77#B4!8B4!8CQT:VJSE<CJS#J'AHr   c                     X R                   S-  S:H     S-  nUR                  (       a
  [        5       $ UR                  SS/5      nU$ )Nr6   r   r   r   )r   r   r   r   )r\   r   s     r   f2,test_indices_concatenation_order.<locals>.f2   sA    ssQw1n"77;S#J'AHr   c                     X R                   S-  S:H     S-  nUR                  (       a#  [        / /S-  / /S-  SS/S9n[        SS/US9nU$ U$ )	Nr6   r   r1   r2   r   r   r   r   )r   r   r   r   r   s       r   f3,test_indices_concatenation_order.<locals>.f3   s_    ssQw1n"77#taxtaxu~J S#JjACJHr   )r   r6   r6   r6   r      r   r   )r   r6   r6   r6   r   z@Cannot concat indices that do not have the same number of levelsmatch)	r   rK   r#   rM   r*   r+   pytestraisesAssertionError)r   r   r   rQ   df2result1result2msgs           r    test_indices_concatenation_orderr      s]   	 
E!H5A;G	HB
,U1XE!QKH
IC jjo##B'Gkk#$$R(G'+ MC	~S	1


3b! 
2	~S	1Cr" 
2 
~S	1


3b! 
2	~S	1Cr" 
2	1 
2	1	1	1 
2	1	1	1s0   !F3!G!G	!G&3
G
G
G#&
G4c                 L   U R                  S 5      nUR                  5       nUR                  S 5      n[        R                  " X#5        UR                  5       nU VVs0 s H  u  pEXER                  5       _M     nnn[        U5      R                  n[        R                  " X#5        UR                  nUR                  S 5      n[        R                  " X#5        Sn[        R                  " [        US9   UR                    S S S 5        g s  snnf ! , (       d  f       g = f)Nc                 "    U R                  5       $ rg   weekdayrc   s    r   rd   #test_attr_wrapper.<locals>.<lambda>   s
    199;r   c                 ,    [         R                  " U SS9$ )Nr   )ddof)r'   stdrc   s    r   rd   r      s    RVVAA%6r   c                     U R                   $ rg   r9   rc   s    r   rd   r     s    QWWr   z-'SeriesGroupBy' object has no attribute 'foo'r   )r#   r   rm   r*   rP   describer   Tr+   r&   r   r   AttributeErrorr1   )rp   r-   r   r   namegpr   s          r   test_attr_wrapperr      s    jj./G[[]F{{67H6, F4;<Gkkm#GH<"$$H&+ ]]F{{,-H6, :C	~S	1 
2	1 = 
2	1s    D9D
D#c                 D   U R                  S 5      nUR                  S5      n[        U5      S:X  d   e[        UR                  5      S:X  d   eU R	                  5       nUR
                   Vs/ s H  oDR                  5       PM     snUS'   UR                  S5      R                  S5      n[        R                  " XRSS9  U R                  S5      R                  S	 5      nUR                  S
 5      n[        U5      S:X  d   e[        UR                  5      S:X  d   eUR                  S 5      nU HM  u  pxUR                  5       n	UR
                   H(  n
[        R                  " UR                  U
5      U	SS9  M*     MO     U H(  u  pUR
                  S   R                  5       U:X  a  M(   e   UR                  nUR                  nUR!                  5        H<  u  pU R
                  R#                  X   5      nUU:H  R%                  5       (       a  M<   e   g s  snf )Nc                 "    U R                  5       $ rg   r   rc   s    r   rd   $test_frame_groupby.<locals>.<lambda>  s
    		r   r   r   r   r   Fr      c                 "    U R                  5       $ rg   r   rc   s    r   rd   r     s
    r   c                 &    X R                  5       -
  $ rg   r   rc   s    r   rd   r     s    a&&(lr   c                 "    U R                  5       $ rg   r   rc   s    r   rd   r   #  s
    affhr   r   )r#   	aggregaterL   rF   copyr!   r   r*   r+   headrn   r   rP   xsgroupsindicesitemstakeall)r   r-   
aggregatedtscopyr\   straggedtransformedr   rB   r   idxr   r  r  kv	samethings                    r   test_frame_groupbyr    s   oo34G ""6*Jz?az!!"a''' \\^F.4ll;ll;F9~~i(226:H(EB ll2&&'<=G##$:;K{r!!!{""#q((( ##$67Kzz|;;C"";>>##6%P   "{{1~%%'7222 " ^^FooGMM&&wz2	Q##%%%% 3 <s   .Hc                 l   U R                  S5      nUR                  SS9nUR                  R                  S:X  d   eU R                  SSS9R                  SS9nUR                  R                  S:w  d   eUSS/   R	                  S5      nUR                  R                  S:X  d   eUR	                  SS	S
.5      nUR                  R                  S:X  d   eUS   R                  5       nUR                  R                  S:X  d   eUS   R	                  S5      nUR                  R                  S:X  d   eUS   R	                  SS	/5      nUR                  R                  S:X  d   eSn[
        R                  " [        US9   US   R	                  SS	S.5        S S S 5        g ! , (       d  f       g = f)Nr   Tnumeric_onlyFr~   r;   r<   r   r   r;   r<   znested renamer is not supportedr   r1   r2   )r#   r   r!   r   rm   r   r   r   )rQ   r-   r   r   s       r   test_frame_set_name_singler  6  s   jjoG\\t\,F<<###ZZeZ,11t1DF<<###c3Z $$V,F<<###[[vE23F<<###S\ F<<###S\f%F<<###S\vuo.F<<###
,C	)	567 
6	5	5s   F%%
F3c           	         U S   nU S   nU R                  UR                  UR                  /5      nUR                  SS9nU R                  SS/5      R                  5       n[        R                  " UR
                  S S 2SS/4   UR
                  S S 2SS/4   SS9  [        [        R                  R                  S	5      R                  S
5      [        R                  R                  S	5      R                  S
5      [        R                  " / SQ5      [        R                  " / SQ5      S./ SQS9n U R                  SS/5      nUR                  S5        g )Nr   r   Tr  r;   r<   Fr   r6      r   r   r   r   r   r   1r  r  2r  r  )v1v2k1k2)r3   r4   r5   fourfivesixr!   r   r!  r$   )r#   getr   r*   r+   r?   r   r'   rG   rH   rI   rJ   rm   )rQ   col1col2r-   aggedr   s         r   test_multi_funcr*  Q  s   c7Dc7Djj$((DHH-.GLLdL+Ezz3*%**,H 		!c3Z- (,,q3*}"=5
 
))''*::1=))''*::1=((9:((9:		
 =
B jj$&GKKr   c                     U R                  SS/5      S   nUR                  SS/5      n[        UR                  S5      UR                  S5      S.5      n[        R                  " X#5        g )Nr   r   r;   r   r   )r   r   )r#   rm   r   r*   r+   )rQ   r-   r)  r   s       r   !test_multi_key_multiple_functionsr,  m  sZ    jj#s$S)GKK(E'++f"5gkk%>PQRH%*r   c            	         [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      n U R                  SS/5      nSS	/nUR                  U5      n[        R                  " US
   R                  U5      US   R                  U5      US   R                  U5      // SQSS9n[        UR                  [        5      (       d   e[        UR                  [        5      (       d   e[        R                  " X45        g )Nr1   r1   r1   r1   r2   r2   r2   r2   r1   r1   r1   r3   r3   r3   r4   r3   r3   r3   r4   r4   r4   r3   r6      )r   r   r<   EFr   r   r   r   r<   r1  r2  )r<   r1  r2  r   )r   rX   )r   r'   rG   rH   rI   r#   rm   r   concat
isinstancer!   r   r*   r+   )r   r-   funcsr)  r   s        r   "test_frame_multi_key_function_listr6  u  s)    &&q)99"=&&q)99"=&&q)99"=;	
 DD llC:&GUOEKKEyy			%	 '#,"2"25"973<;K;KE;RSH
 ekk:....hnnj1111%*r   c           
      0   [        / SQ/ SQ/ SQ[        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      nUR                  SS/5      nS	S
/n[        R                  " S5      nU (       a  Sn[        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr.  r/  )dullr8  shinyr8  r8  r9  r9  r8  r9  r9  r9  r6   r0  )r   r   r;   r<   r1  r2  r   r   r   r   &agg function failed [how->mean,dtype->-dtype 'str' does not support operation 'mean'r   )r   r'   rG   rH   rI   r#   reescaper   r   	TypeErrorrm   )using_infer_stringr   r-   r5  r   s        r   2test_frame_multi_key_function_list_partial_failurer@    s     &&q)99"=&&q)99"=&&q)99"=U+	
-D^ llC:&GUOE
))<
=C=	y	,E 
-	,	,s   ,D
Dopc                 "    U R                  5       $ rg   r$   rc   s    r   rd   rd     s
    !%%'r   c                 "    U R                  5       $ rg   r   rc   s    r   rd   rd     s
    QVVXr   c           
         U nUR                  SS/5      nU" U5      n/ n/ nUR                  S5       H[  u  pxUR                  S5       HA  u  pUR                  Xy45        UR                  U" U
R                  S S 2SS/4   5      5        MC     M]     [        R                  " USS/S9n[
        R                  " USS9R                  nXl        S HC  nU" X=   5      nXM   nX   n[        R                  " UU5        [        R                  " UU5        ME     US   R                  US   US   /5      R                  5       nUR                  SS/5      R                  5       S   n[        R                  " UU5        g )	Nr   r   r;   r<   r   r   rW   r  )r#   appendr?   r   from_tuplesr   r3  r   r!   r*   rP   r   )rQ   rA  r   r-   r   r   valuesn1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsrS    s[   DllC:&GkGDF<<${{3'GBKK!MM"SWWQc
]345 ( %
 
		S#J	7Byya(**HN %
,m
z3/
w,  #YS	4956;;=F||S#J',,.s3H68,r   c                  V   [        SS/SS/SS//SS/S9n U R                  SS	S
9S   R                  S5      n[        SS/SS9n[        R
                  " X5        U R                  SS	SS9S   R                  S 5      n[        / SQS[        S5      S9n[        R
                  " X5        g )Nr   r6   r   r   r  r   r   rE   Fr~   r   T)r   
group_keysc                 "    U R                  5       $ rg   )cumsumrc   s    r   rd   -test_as_index_select_column.<locals>.<lambda>  s
    !((*r   )r6   r  r  r   r   r!   )r   r#   	get_groupr   r*   rP   rM   rK   rQ   r   r   s      r   test_as_index_select_columnr]    s    	QFQFQF+c3Z	@BZZeZ,S1;;A>Fq!f3'H6,ZZeZ=cBHHF icq:H6,r   c                      [        [        / SQSS9S9n U R                  SSS9S   R                  SS	9n[        U R                  S S
 [        S5      S9nS /UR                  l        [        R                  " X5        g )Nr   r   r;   alpharU  rE   r   Fbyr   r   r  r6   r   r   )	r   r	   r#   r$   rF   rK   r   r*   r+   )rQ   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfrd    sp    	5w?	@B::u:-c266E6JDBQuQx@H"VH$)r   c                    U S;   a  [         R                  " SU  35        [        [        R                  R                  S5      R                  SSSS9SS	/S
9n[        UR                  S5      U 5      " 5       nU S:X  a  UR                  S5      nUR                  5       nU S:w  a$  US   R                  US   R                  5      US'   UR                  SSS9n[        X05      " 5       n[        R                  " XB5        UR                  U 5      n[        R                  " XB5        [        US	   U 5      " 5       n[        R                  " XB5        US	   R                  U 5      n[        R                  " XB5        g )N)corrwithnthngroupz!GH 5755: Test not applicable for r6   r   r   )d   r6   )sizer   r   rE   rj  Fr~   )r   skipr   r'   rG   rH   integersgetattrr#   renamereset_indexr%   r&   r*   r+   rm   )reduction_funcrQ   r   rq   r   s        r   test_ops_not_as_indexrq    sE    6677GHI	
		a ))!QX)>c

B rzz#79H??6*##%H ,,RW]];


3
'AQ')F&+UU>"F&+QsV^,.F&+sVZZ'F&+r   c                 h   U R                  SSS9nU R                  SS/SS9nUS   R                  S5      nUR                  S5      R                  S S 2SS/4   n[        U[        5      (       d   e[
        R                  " X45        US   R                  S5      nUR                  S5      R                  S S 2/ SQ4   n[        U[        5      (       d   e[
        R                  " XV5        US   R                  5       nUR                  5       R                  S S 2SS/4   n[        U[        5      (       d   e[
        R                  " X45        US   R                  5       nUR                  5       R                  S S 2/ SQ4   n[        U[        5      (       d   e[
        R                  " XV5        g )Nr   Fr~   r   r;   r$   r_  )r#   rm   r?   r4  r   r*   r+   r$   )rQ   r-   grouped2r   r   r   	expected2s          r   !test_as_index_series_return_frameru  :  sr   jjuj-Gzz3*uz5HS\e$F{{5!%%a#sm4Hfi((((&+sm&GU#''?(:;Igy))))'-S\F{{}  S#J/Hfi((((&+sm!G""1o#56Igy))))'-r   c                     U R                  SSS9nSn[        R                  " [        US9   US   R	                  S5        S S S 5        g ! , (       d  f       g = f)Nr   Fr~   zColumn\(s\) C already selectedr   r;   r<   )r#   r   r   
IndexError__getitem__)rQ   r-   r   s      r   (test_as_index_series_column_slice_raisesry  S  sE    jjuj-G
+C	z	-  % 
.	-	-s   A


Ac                    U nUR                  SSS9nUR                  SS9nUR                  S/5      R                  SS9nUR                  SSUR                  5        [	        [        U5      5      Ul        [        R                  " X45        UR                  SS/SS9nUR                  5       nUR                  SS/5      R                  5       n[        [        UR                  R                  SS065      nUR                  SSUS   5        UR                  S	SUS	   5        [	        [        U5      5      Ul        [        R                  " X45        g )
Nr   Fr~   Tr  r   r   strictr   )r#   r   r   r!   r   rL   r*   r+   r   ziprI  )rQ   r   r-   r   r   arrayss         r   test_groupby_as_index_cythonr~  \  s   D ll3l/G\\t\,F||SE"''T':HOOAsHNN+H.HN&+ llC:l6G\\^F||S#J',,.H#x~~,,:T:;FOOAsF1I&OOAsF1I&H.HN&+r   c                     U R                  SS/SS9nUS   R                  [        5      nUR                  [        5      R                  S S 2/ SQ4   n[        R
                  " X#5        g )Nr   r   Fr~   r;   r_  )r#   rm   rL   r?   r*   r+   )rQ   r-   r   r   s       r   #test_groupby_as_index_series_scalarr  s  sZ    jj#sej4G S\c"F{{3##A$67H&+r   c            
      R   [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9n U R                  S
 S S /5      nUR                  5       n[        R                  " U R                  UR                  5        g )Nr6   r   r   r9   r   r   r   r   r   c                     U R                   $ rg   r   rc   s    r   rd   +test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     U R                   $ rg   rh   rc   s    r   rd   r    r   r   c                     U R                   $ rg   r   rc   s    r   rd   r    r   r   )r   r'   rG   rH   rI   r	   r   r   r   r#   r$   r*   assert_almost_equalrI  )rQ   r-   r)  s      r   test_groupby_multiple_keyr  }  s    	
		a 009d6l&1r<
B
 jj*,=OPGKKME299ell3r   c                     U R                  5       n [        R                  U S'   U R                  SS/5      R	                  5       nU R                  SS/5      R	                  5       n[        R                  US'   [
        R                  " X5        g )Nbadr   r   )r  r'   r   r#   r   r*   r+   )rQ   r)  r   s      r   test_groupby_multi_cornerr    sk    	BBuIJJSz"'')Ezz3*%**,HffHUO%*r   c                     U R                  S5      n[        R                  " S5      nU(       a  Sn[        R                  " [
        US9   UR                  S5        S S S 5        [        R                  " [
        US9   UR                  5         S S S 5        U R                  S S 2/ SQ4   n [        R                  " 5       U S'   U R                  S5      nSn[        R                  " [
        US9   UR                  S	5        S S S 5        [        R                  " [
        US9   UR                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)
Nr   r:  r;  r   r   r   r;   r<   r1  z0datetime64 type does not support operation 'sum'r$   )r#   r<  r=  r   r   r>  rm   r   r?   r   nowr$   )rQ   r?  r-   r   s       r   test_raises_on_nuisancer    s    jjoG
))<
=C=	y	,F 
-	y	, 
- 
?"	#BllnBsGjjoG
<C	y	,E 
-	y	, 
-	, 
-	,	,	, 
-	,	,	,s0   
D<=E/E"E/<
E

E
E,/
E=agg_functionmaxminc                 ^   U R                  S5      n[        X!5      " 5       nUR                  5       n[        U R                  U S   S:H  S4   U5      " 5       UR                  S'   [        U R                  U S   S:H  S4   U5      " 5       UR                  S'   [        R
                  " X45        g )Nr   r2   r   )r2   r   r1   )r1   r   )r#   rm  r  r?   r*   r+   )rQ   r  r-   r   r   s        r   test_keep_nuisance_aggr    s     jjoGW+-F{{}H&rvvbg.>.C'DlSUHLL&rvvbg.>.C'DlSUHLL&+r   )r$   r   prodr   varsemr   r  TFc                    U R                  S5      nSnX;   aw  U(       dp  U(       a  SU S3n[        nO/US;   a	  [        nSnO [        n[        R                  " SU S35      n[
        R                  " XvS	9   [        XA5      " US
9  S S S 5        g [        XA5      " US
9nU(       d  US:X  a  / SQn	O/ SQn	[        U R                  S S 2U	4   R                  S5      U5      " US
9n
[        R                  " X5        g ! , (       d  f       g = f)Nr   )r  r   r  r   r  r   (dtype 'str' does not support operation '')r   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->r   r  r$   r:   r  )r#   r>  
ValueErrorr<  r=  r   r   rm  r?   r*   r+   )rQ   r  r  r?  r-   no_drop_nuisancer   klassr   rF   r   s              r   test_omit_nuisance_aggr    s     jjoGF' <\N!LCE^+E<CE))8hOPC]]5,G*E -, /\J 5*G%G266!W*-55c:LI%
 	f/ -,s   7C<<
D
c                     U R                  S5      n[        nSnU(       a  [        nSn[        R                  " X4S9   UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   zcould not convertz-dtype 'str' does not support operation 'skew'r   )r#   r  r>  r   r   skew)rQ   r?  r-   errr   s        r   $test_raise_on_nuisance_python_singler    sG    jjoG
C
C=	s	& 
'	&	&s   A
A%c                 v   U R                  SS/5      n[        R                  " S5      nU(       a  Sn[        R                  " [
        US9   UR                  S5        S S S 5        [        R                  " [
        US9   UR                  5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr   r   r:  r;  r   r   )r#   r<  r=  r   r   r>  rm   r   )three_groupr?  r-   r   s       r   &test_raise_on_nuisance_python_multipler    s{    !!3*-G
))<
=C=	y	,F 
-	y	, 
-	, 
-	,	,	,s   B?B*
B'*
B8c           	         [        [        R                  " / SQ5      [        R                  " / SQ5      SS/S-  [        R                  R	                  S5      R                  S5      [        R                  R	                  S5      R                  S5      S.5      nUR                  S	S
/5      nUSS/   R                  S5      nUR                  SS9n[        R                  " X45        U SS R                  SS9nUR                  S 5      nUS   R                  S5      n[        R                  " US   U5        UR                  R                  S:X  d   eg )Nr  r  r1   r2   r   r6   r  )r   r!  k3r  r  r   r!  r  r  r   Tr  r   r   r   c                 "    U R                  5       $ rg   r   rc   s    r   rd   *test_empty_groups_corner.<locals>.<lambda>  s
    AFFHr   r   first)r   r'   rJ   rG   rH   rI   r#   rm   r   r*   r+   rM   rP   r!   r   )r,   rQ   r-   r   r   r)  agged_As          r   test_empty_groups_cornerr    s%   	((9:((9:%.1$))''*::1=))''*::1=	

B jj$&GdD\"&&v.F|||.H&+.q3;;!;DGMM,-Ecl  (G5:w/;;w&&&r   c                      [        S/5      n Sn[        R                  " [        US9   U R	                  S 5        S S S 5        g ! , (       d  f       g = f)Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r   c                     U S-   $ )Nr1    rc   s    r   rd   $test_nonsense_func.<locals>.<lambda>  s    QYr   )r   r   r   r>  r#   )rQ   r   s     r   test_nonsense_funcr    s9    	A3B
BC	y	,


&' 
-	,	,s   A
Ac                    U R                   nSUS'   [        R                  " / SQ5      [        R                  " / SQ5      /n[        R                  " S5      nU(       a  Sn[
        R                  " [        US9   UR                  U5      R                  S5        S S S 5        UR                  SS9R                  U5      R                  S5      n[        UR                  [        5      (       d   eS	 n[
        R                  " [        S
S9   UR                  U5      R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Npeekaboo)bazr4   r   r   r   r:  r;  r   r   rE   c                 X    U R                   S:X  a  [        S5      eU R                  5       $ )N)r1   r3   Test error message)r   r>  r$   )sers    r   aggfun5test_wrap_aggregated_output_multindex.<locals>.aggfun!  s&    88~%011wwyr   r  )r   r'   rJ   r<  r=  r   r   r>  r#   rm   rO   r4  rF   r   r   )r,   r?  rQ   r   r   r)  r  s          r   %test_wrap_aggregated_output_multindexr    s     
*	+	+B!B|HHY)!45D
))<
=C=	y	,


4V$ 
-GGNG+33D9==fEEemmZ0000
 
y(<	=


4""6* 
>	= 
-	, 
>	=s   :!D7!E7
E
Ec                 `   U R                  SS9R                  5       nUR                  R                  S:X  d   eU R                  SS9R                  5       nUR                  R                  S:X  d   eU S   R                  SS9R                  5       nUR                  R                  S:X  d   eg )Nr   r  r  r   secondr   )r#   countr!   r   )r,   r   s     r   test_groupby_level_applyr  *  s    -55A5>DDFF<<'''-55A5>DDFF<<(((-c2:::CIIKF<<'''r   c                    U R                  5       nSSSSS.nSSSS.nU R                  USS9R                  5       nU R                  USS9R                  5       n[        R                  " US    Vs/ s H  obR                  U5      PM     sn[        R                  S9n[        R                  " US    Vs/ s H  ocR                  U5      PM     sn[        R                  S9nU R                  U5      R                  5       n	U R                  U5      R                  5       n
S	u  U	R                  l        U
R                  l        [        R                  " XI5        [        R                  " XZ5        g s  snf s  snf )
Nr   r   )r1   r2   r  qux)r3   r4   r5   r  r  r9   r  )r  r  )ro  r#   r$   r'   rJ   r&  r)   r!   r   r*   r+   )r,   	deleveledmapper0mapper1result0r   r\   mapped_level0mapped_level1	expected0	expected1s              r   test_groupby_level_mapperr  4  s@   0<<>I!A6GA.G.66wa6HLLNG.66wa6HLLNGHH!*7!34!3AQ!34BHHM HH!*8!45!4AQ!45RXXM 188GKKMI088GKKMI1B.IOO)//.'-'- 	5 	6s   1E26E7c                  V   [        / SQ[        / SQSS95      n [        / SQ[        [        [        SS5      5      SS95      nU R	                  SS	9R                  5       n[        R                  " X!5        U R	                  S/S	9R                  5       n[        R                  " X!5        U R	                  S
S	9R                  5       n[        R                  " X!5        U R	                  S
/S	9R                  5       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n[        R                  " [        US9   U R	                  / S	9  S S S 5        Sn[        R                  " [        US9   U R	                  SS/S	9  S S S 5        [        R                  " [        US9   U R	                  SS/S	9  S S S 5        Sn[        R                  " [        US9   U R	                  S/S	9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N)r   r6   r   r   r   r      r  )r   r6   r   r   r   r   r6   r  r1   rU  )r0     r   r   r   r  r      r   r  z2level > 0 or level < -1 only valid with MultiIndexr   zNo group keys passed!z*multiple levels only valid with MultiIndex)r   r	   r   rK   r#   r$   r*   rP   r   r   r  )sr   r   r   s       r   test_groupby_level_nonmultir  K  s   )51IPU+VWA*E$uQ{2C%,PQHYYQY##%F6,YYaSY!%%'F6,YYRY $$&F6,YYbTY"&&(F6,
>C	z	-				 
.	z	-				 
.
!C	z	-				 
.
6C	z	-			A	 
.	z	-			A	 
.
>C	z	-				 
.	- 
.	-	-	- 
.	- 
.	-	-	- 
.	-sH   +III'I85J	*J
I
I$'
I58
J	
J
J(c                      [        [        R                  " S5      S-  / SQS9n [        S[        SS/5      S9nU R	                  SS	9R                  5       n[        R                  " X!5        g )
Nr         ?       @)r   r   r   r   r   r!   )r  y      @      $@r   r   r%  r  )r   r'   aranger	   r#   r$   r*   rP   )r   r   r   s      r   test_groupby_complexr  k  sW    BIIaLF+<@A'uaV}=HYYQY##%F6,r   c                      [        SSS.SSS.SSS./5      n U R                  S5      R                  5       n[        S/S//[        SS/SS	9[        S
/5      S9n[        R
                  " X5        g )Nr6   r  r   r         ?      ?r   r         ?rU  r   r!   rF   )r   r#   r   r	   r*   r+   r\  s      r   test_groupby_complex_meanr  t  s~    	&!&!&!	

B ZZ_!!#F
f(s3seH
 &+r   c                     [        SSS.SSS.SSS./5      n [        [        R                  " / SQ[        R                  S9[	        / SQS	S
9[	        S/5      S9nU R                  S	SS9R                  5       n[        R                  " X!5        [	        / SQS	S
9Ul	        U R                  S	SS9R                  5       n[        R                  " X!5        g )Nr   r  r   r  r   )r   r   r   r9   )r  r        ?        r   rU  r   r  Fsort)r  r  r  T)
r   r'   rJ   r)   r	   r#   r  r*   r+   r!   rQ   r   r   s      r   test_groupby_complex_numbersr    s    	&!&!!	

B 
"((+2=seH
 ZZ%Z(..0F&+ 9DHNZZ$Z'--/F&+r   c                  R   [        / SQ[        / SQ5      S9n [        / SQ[        / SQ5      S9nU R                  U5      nUR                  5       nU R                  UR	                  U R
                  5      R                  5      R                  5       n[        R                  " X45        g )N)      @g      "      @g      Y@g      g     K@g@)r   r   r   der^   rq   r%  )r   r   r  r  r  g      @)r   r   r  r^   rq   h)	r   r	   r#   r   reindexr!   r&  r*   rP   )s1s2r-   r)  rR  s        r   'test_groupby_series_indexed_differentlyr    s    	078
B 
&e4R.S
B jjnGLLNE
**RZZ)--
.
3
3
5C5&r   c                  >   [        [        / SQ/ SQ/SS065      n [        R                  " U 5      n[        R                  " / SQ5      n[	        [
        R                  R                  S5      R                  S5      XS9nUR                  S	S
9R                  5       n[        R                  " UR                  U5        UR                  S	S
9R                  S5      n[        R                  " UR                  U5        UR                  S	S
9R                  S 5      n[        R                  " UR                  U5        UR!                  S	5      u  pVSUS'   UR                  S	S
9R                  SS9n[        R                  " UR                  UR                  S S 5        g )N)r2   r2   r  r  r1   r1   r  r  )r3   r4   r3   r4   r3   r4   r3   r4   r{  T))r   cat)r   dog)r   r  )r   r  r6   )r7   r   r  r   r  r   c                 "    U R                  5       $ rg   r   rc   s    r   rd   0test_groupby_with_hier_columns.<locals>.<lambda>  s
    r   r2   )r   r1   r  r  )r   r|  r   rH  r   r'   rG   rH   rI   r#   r   r*   assert_index_equalrF   rm   rM   	sortlevel)tuplesr!   rF   rQ   r   sorted_columns_s          r   test_groupby_with_hier_columnsr    sa   HH	

 	
F ""6*E$$@G 

		a 008
B ZZaZ %%'F&..'2ZZaZ $$V,F&..'2ZZaZ &&'9:F&..'2  ))!,NBzNZZaZ %%4%8F&.."**Sb/:r   c                     U R                  U S   R                  5      nU R                  U S   R                  S 5      5      nUR                  5       nUR                  5       n[        R
                  " X45        g )Nr   )r#   rI  rn  r$   r*   r+   )rQ   r-   rs  r   r   s        r   test_grouping_ndarrayr    sW    jjC(Gzz"S'.../H[[]F||~H&+r   c                      [        / SQSS9n [        / SQ/ SQ/ SQ/ SQ/ SQS	.U S
9nUR                  / SQ5      nUR                  S5      nUR	                  5       n[
        R                  " X45        g )Nr   r   r6   r   r   r!   rU  )foo1r  foo2r  foo3)bar1bar2r   r  r  )baz1r  r  baz2r  )spam2spam3r  spam1r  )r  r   (   2   <   )r1   r2   r  spamr   r%  )r1   r2   r  r	  r   )r	   r   r#   rm   r   r*   r+   )r!   r   r-   r   r   s        r   test_groupby_wrong_multi_labelsr
    si    /0E;;;A(	
 	D ll89G[[ F||~H&+r   c                    U R                  U S   5      R                  SS9nU R                  U S   SS9R                  SS9nUR                  R                  S:X  d   eSU;   d   eU R                  U S   U S   /5      R                  5       nU R                  U S   U S   /SS9R                  5       nUR                  R                  S:X  d   eSU;   d   eSU;   d   eg )Nr   Tr  Fr~   r   r   r   )r#   r   r!   r   r   rQ   r   r   s      r   test_groupby_series_with_namer    s    ZZ3 %%4%8FjjC5j166D6IG<<###'>>ZZC"S'*+002Fjj"S'2c7+ej<AACG<<+++'>>'>>r   c                     U R                  S5      S   nUR                  5       R                  S:X  d   eUR                  5       R                  S:X  d   eS nUR	                  U5      R                  S:X  d   eg )Nr   r;   c                 4    [         R                  " U 5      S-  $ Nr6   )r'   r$   rc   s    r   rd   .test_seriesgroupby_name_attr.<locals>.<lambda>  s    Qr   )r#   r  r   r   rm   )rQ   r   testFuncs      r   test_seriesgroupby_name_attrr    sj    ZZ_S!F<<>#%%%;;=$$$&H::h$$+++r   c                     [        / SQ/ SQ[        R                  R                  S5      R	                  S5      S-   [        R
                  " S5      S.5      n U R                  S/5      R                  R                  5       nU R                  R                  U R                  5      R                  5       n[        R                  " X!5        g )Nr0   )r3   r3   r4   r4   r4   r4   r3   r4   r6   r7   r   r:   r   )r   r'   rG   rH   rI   r  r#   r   r  r   r*   rP   r  s      r   test_consistency_namer    s     
II&&q)99!<sB1		

B zz3% ""((*HTT\\"$$%%'F6,r   c                 r   SS jnS nU R                  S5      R                  U5      nUR                  R                  b   eU R                  S5      R                  US5      nUR                  R                  S:X  d   eU R                  S5      R                  U5      nUR                  R                  b   eg )Nc                     [        SSSS.US9$ )Nr   r6   r   r  r   	omissionsrU  )r   )rQ   r   s     r   	summarize0test_groupby_name_propagation.<locals>.summarize  s    11=DIIr   c                 >    [        SSSS.U R                  S   S   S9$ )Nr   r6   r   r  r   r;   rU  )r   ilocr   s    r   summarize_random_name<test_groupby_name_propagation.<locals>.summarize_random_name  s$     11=BGGAJsOTTr   r   metricsrg   )r#   rM   rF   r   )rQ   r  r  r!  s       r   test_groupby_name_propagationr"    s    JU jjo##I.G??'''jjo##Iy9G??9,,,jjo##$9:G??'''r   c                  2   [        [        S5       V s/ s H  n [        R                  " S5      PM     sn 5      nUR	                  S5      nUR                  5       nUR	                  US   5      R                  5       n[        R                  " X45        g s  sn f )Nr   r   )r   rK   r'   r  r#   r   r*   r+   )r\   rQ   r-   r   r   s        r   test_groupby_nonstring_columnsr$  &  sm    	5959aBIIbM95	6BjjmG\\^Fzz"Q% %%'H&+	 6s    Bc            	      (   [        / SQ// SQS9n [        SS//SS/[        S/SS	9S
9nU R                  S5      R                  5       n[        R
                  " X!5        U R                  S5      R                  5       n[        R
                  " X!5        g )Nr   r   r6   )r   r   r   rE   r   r6   r   r   r   rU  r   )r   r	   r#   r  r*   r+   r$   r  s      r   test_groupby_mixed_type_columnsr'  .  sy    	I;	6B1a&C85!3;OPHZZ_""$F&+ZZ_  "F&+r   c                  x   [         R                  " S5      n U R                  [         R                  5        [	        U S S 2S4   5      n[         R
                  " [        S5      S5      nUR                  U5      R                  [        R                  5      nUR                  5       R                  5       (       d   eg )N)ri  ri  r   r   )r'   r   fillr   r   tilerK   r#   rm   r   isnar  )arrobjindsr   s       r   (test_cython_grouper_series_bug_noncontigr/  :  s~    
((:
CHHRVV
QT
C7759b!D[[""6==1F;;=r   c                  D   [        S/S-  5      n [        [        R                  R	                  S5      R                  S5      U S S S2   S9n[        R                  R	                  S5      R                  SSS5      nUR                  U5      nS nUR                  U5        g )	N
aaaaaaaaaari  r6   r  r%  r   r   c                 Z    [        [        [        [        U R                  5      5      5      $ rg   )rL   setmapidr!   rc   s    r   rd   5test_series_grouper_noncontig_index.<locals>.<lambda>N  s    #c#b!''*+,r   )	r	   r   r'   rG   rH   rI   rl  r#   rm   )r!   rI  labelsr-   r^   s        r   #test_series_grouper_noncontig_indexr8  D  s    8*s"#EBII))!,<<R@cPQc
SFYY""1%..q!R8F nnV$G 	-AKKNr   c                     [        [        S5      5      n [        R                  " / SQSS9nS nS nU R	                  U5      nUR                  U5      nUR                  [        R                  :X  d   e[        UR                  S   [        5      (       d   eUR                  U5      nUR                  [        R                  :X  d   e[        UR                  S   [        5      (       d   eg )Nr   )r   r   r   r  r  r   r9   c                 F    [        [        U R                  5       5      5      $ rg   )r   strr   rc   s    r   convert_fast>test_convert_objects_leave_decimal_alone.<locals>.convert_fastV  s    s1668}%%r   c                     [        U R                  R                  5      S:  d   e[        [	        U R                  5       5      5      $ rl   )rL   rI  baser   r;  r   rc   s    r   convert_force_pureDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pureY  s2    188==!A%%%s1668}%%r   r   )r   rK   r'   rJ   r#   rm   r&   object_r4  r  r   )r  r7  r<  r@  r-   r   s         r   (test_convert_objects_leave_decimal_alonerC  R  s    uQxAXX/s;F&&
 iiG[[&F<<2::%%%fkk!ng....[[+,F<<2::%%%fkk!ng....r   c            	      R   [        / [        R                  " SSS9S.5      n U S   R                  [        R                  :X  d   eU R                  S5      R                  5       n[        / S[        R                  S9n[        S[        / USS905      n[        R                  " XS	S
9  g )Nr   r)   r9   )r\   rK   r\   r   r&   rK   r!   r&   T)	by_blocks)r   r'   r  r&   float64r#   r  r	   r   r*   r+   )rQ   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyrJ  i  s    	bii&AB	CBc7==BJJ&&&ZZ_""$Fbs"**5I'6"IW#MNOH&d;r   c                      [        S/S/S/S.5      n U R                  SS/5      S   R                  5       n[        S/[        R
                  " S/S//SS/S9SS9n[        R                  " X5        g )	Nr   l    4;PU  )r  r  r=   r  r  r=   rF  rU  )r   r#   r  r   r   from_productr*   rP   r\  s      r   $test_groupby_unit64_float_conversionrM  t  s|    	aSQC;O:PQ	RBZZ(+,W599;F	!qc
7H2EFH
 6,r   c                    U R                  [        U S   5      5      R                  SS9nU R                  U S   5      R                  SS9n[        R                  " XSS9  [
        R                  " [        SS9   U R                  [        U S   S S 5      5        S S S 5        [        S	S
/SS/[        R                  R                  S5      R                  S5      S.5      n U R                  SS/5      R                  5       nU R                  U S   U S   /5      R                  5       S/   ng ! , (       d  f       N= f)Nr   Tr  Fr   z^'foo'$r   r  r   r   r   r   r6   )r1   r2   valr1   r2   rO  )r#   r   r   r*   r+   r   r   KeyErrorr   r'   rG   rH   rI   r\  s      r   "test_groupby_list_infer_array_likerQ    s   ZZRW&+++>Fzz"S'"''T':H&>	xz	2


43%& 
3 
q6q699((+;;A>	

B ZZ',,.Fzz2e9bi01668%AH 
3	2s   :!D//
D=c                  4   Sn [        [        S5      SU S9n[        SS/SS//S	S
/US9nUR                  [	        SU S9S	/5      R                  5       nUR                  UR                  S	/5      R                  [        5      n[        R                  " X45        g )Nr  z2015-09-29T11:34:44-0700r6   )startr   r   r   r   r      metricrI  r   r   )r   r   )r   r   r   r#   r   r   r   r!   r%   floatr*   r+   )r   r!   rQ   r   r   s        r   $test_groupby_keys_same_size_as_indexrW    s    D23QTE 
S"IRy)Hh3Gu	UBZZqt4h?@EEGF||RXXx0188?H&+r   c                     Sn [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  " [        U S9   UR                  S5        S S S 5        [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  " [        U S9   UR                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nz^'Z'$r6   )r   r   r   rE   r   Z)r6   r   )
r   r'   rG   rH   rI   r   r   r   rP  r#   )r   df1r   s      r   test_groupby_one_rowr[    s    
C

		a 008$v,C 
xs	+C 
,

		a 008$v,C 
xs	+C 
,	+ 
,	+
 
,	+s   C(C9(
C69
Dc                  V	   [        [        R                  R                  S5      R	                  S5      [        R
                  [        S5      [        R
                  [        S5      [        R
                  [        S5      [        R
                  [        S5      /[        R
                  S[        R
                  S[        R
                  S[        R
                  S/S.5      n U R                  S5      n[        S	S
SS9[        SSSS9/n[        UR                  R                  5       5      n[        U5      S:X  d   e[        X2SS9 H)  u  pE[        R                  " UR                  U   U5        M+     [        R                   " UR"                  R$                  S   R&                  U 5        UR(                  S:X  d   e[        S5      [        R*                  " S	S/[        R,                  S9[        S5      [        R*                  " SS/[        R,                  S90nUR.                   H)  n[        R0                  " UR.                  U   X$   5        M+     [        R                   " UR3                  [        S5      5      U R4                  S	S/   5        [        R                   " UR3                  [        S5      5      U R4                  SS/   5        [6        R8                  " [:        SS9   UR3                  [<        R>                  5        S S S 5        [        [        R
                  [        R
                  [        R
                  /[<        R>                  [<        R>                  [<        R>                  /S.5      nUS   R@                  S:X  d   eUS   R@                  S:X  d   eS H  nUR                  U5      nUR                  0 :X  d   eUR(                  S:X  d   eUR.                  0 :X  d   e[6        R8                  " [:        SS9   UR3                  [        R
                  5        S S S 5        [6        R8                  " [:        SS9   UR3                  [<        R>                  5        S S S 5        M     g ! , (       d  f       GNt= f! , (       d  f       Nf= f! , (       d  f       GM  = f)Nr6   r7   z
2013-01-01z
2013-02-01r   r   )rI  dtr;  r]  r      r  )rS  stopstepr   r  Tr{  r   z2013-01-01 00:00:00r9   z2013-02-01 00:00:00r   z^NaT$r   )r   natr   rH  rb  zdatetime64[s]z^nan$)!r   r'   rG   rH   rI   r   r   r#   r   sortedr  r   rL   r|  r*   r  r+   _grouperr   r-  ngroupsrJ   intpr  assert_numpy_array_equalr[  r  r   r   rP  r   r   r&   )rQ   r-   r   r   r  r  nan_dfr   s           r   test_groupby_nat_excluderi    si   	ii++A.>>qA,',',','	 FFCbffc2663G	

B  jjG 	!,+H '..%%'(Dt9>>D40 	gnnQ/3 1 '**44Q7;;R@??a 	'("((Aq6*I'("((Aq6*IH
 __
##GOOA$6D  '++Il,CDbggqRSfoV'++Il,CDbggqRSfoV	xx	0"&&! 
1 ("&&"&&"&&1IJF %=)+++%=/111..%~~###!###"$$$]]884bff% 5]]884bff% 54  
1	0 5444s$   ( Q5 R R5
R
R	
R(	c                      [        [        R                  [        R                  /[        R                  [        R                  /SS/S.5      n U R                  SS/5      R                  nU0 :X  d   eg )Nr   r6   r   r   r   )r   r'   r   r#   r  rQ   r   s     r   #test_groupby_two_group_keys_all_nanrl    sU    	"&&"&&)0@1vN	OBZZc
#++FR<<r   c                  p   [        [        S5      S9n SS/U S'   SS/U S'   SS/U S	'   S
S/U S'   U R                  S/5      R                  SS9n[        R
                  " SS/SS//5      n[        R                  " UR                  [        SS	/5      5        [        R                  " UR                  U5        g )Nr6   r%  g1g2rB   r   zerosr   onesl1l2r   Tr          r   )r   rK   r#   r   r'   rJ   r*   r  rF   r	   rg  rI  )r  tmp
res_valuess      r   test_groupby_2d_malformedrw    s    a!AAgJQAgJAAfIAgJ
))WI

#
#
#
6CC:Sz23J#++ugv->'?@

J7r   c            	         [         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      45      n [         R                  " S5      n[        UU UU [         R                  R                  S5      R                  S5      S.5      nUR                  / SQ5      R                  5       nUR                  / SQ5      R                  5       n[        U5      [        U5      :X  d   eg )Ni'  i  ia  r6   )r   r   r;   r<   r1  r:   )r<   r;   r   r   )
r'   concatenater  r   rG   rH   rI   r#   r$   rL   )r   r   rQ   rc  rights        r   test_int32_overflowr{    s    
		%("))E*:BIIdOLMA
		%A	&&q)99%@	

B ::*+//1DJJ+,002Et9E
"""r   c                     [        / SQ/ SQ/ SQ[        R                  R                  S5      R	                  S5      S.5      n U / SQ   R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU R                  / SQSS	9R                  5       n[        R                  " UR                  R
                  U/ S
Q   5        U / SQ   R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU R                  / SQSS	9R                  5       n[        R                  " UR                  R
                  U5        U / SQ   R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU R                  / SQSS	9R                  5       n[        R                  " UR                  R
                  U/ SQ   5        [        / SQ/ SQ[        R                  R                  S5      R	                  S5      S.5      n U R                  SS/5      S   nUR                  5       nS 4S jnU" XSS/S5        g s  snf s  snf s  snf )Nr1   r2   r  )r   r6   r   r&  r6   r   r   r   r   r  r   Tr  )r   r6   r   )r   r   r   )r   r   r   )r6   r   r   r   r   r6   r   r   r6   )r   r   r   r   r   r   r  )r   r   r  r   r   r  c                 "    U R                  5       $ rg   rC  rc   s    r   rd   )test_groupby_sort_multi.<locals>.<lambda>;  s
    AEEGr   c                    X   R                    Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU" U R	                  U5      U   5      nUR                  5        H  u  pX   U	:X  a  M   e   g s  snf rg   )rI  tuplecomasarray_tuplesafer#   r  )
rQ   r   r   fieldr^   rowtupsr   r  r  s
             r   _check_groupby/test_groupby_sort_multi.<locals>._check_groupby;  sn    &(hoo6osc
o6$$T*RZZ%e,-NN$DA9>!> % 7s   A<)r   r'   rG   rH   rI   rI  r  r  r  r#   r$   r*   rg  r!   )rQ   r  r  r   r\   r-   r  s          r   test_groupby_sort_multir    s   	&&&q)99!<		

B #%_"5"<"<="<3E#J"<D=  &DZZdZ3779F 3 3T)_E"$_"5"<"<="<3E#J"<D=  &DZZdZ3779F 3 3T: 18898E!H8D9  &DZZdZ3779F 3 3T)_E	##&&q)99!<	

B jj#s$S)G[[]F2C " 2Sz3/A >
 >
 :s   I'&I,1I1c                      [        / SQ/ SQS-  S.5      n U R                  SSS9R                  S 5      n[        R                  " XS	/   5        g )
N)r   r   r   r   r   r   r}  r6   )r   r   r   FrV  c                     U $ rg   r  rc   s    r   rd   /test_dont_clobber_name_column.<locals>.<lambda>J  s    r   r   )r   r#   rM   r*   r+   rk  s     r   test_dont_clobber_name_columnr  E  sN    	.8MPQ8QR
B ZZ%Z066{CF&fX,/r   c            
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9n U R                  S
 SS9nUR                  S 5      nU VVs/ s H  u  p4UR                  SS9S S PM     nnn[        R                  " U5      n[        R                  " X&5        U S   R                  S SS9nUR                  S 5      nU VVs/ s H  u  p4UR                  5       S S PM     nnn[        R                  " U5      n[        R                   " X&5        g s  snnf s  snnf )Nr6   r   r   r9   r   r   r   r   r   c                     U R                   $ rg   rh   rc   s    r   rd   &test_skip_group_keys.<locals>.<lambda>U  s    AGGr   Fr  c                 &    U R                  SS9S S $ )Nr   rb  r   sort_valuesrc   s    r   rd   r  V  s    Q]]c]%:2A%>r   r   r  r   c                     U R                   $ rg   rh   rc   s    r   rd   r  ]  s    r   c                 (    U R                  5       S S $ Nr   r  rc   s    r   rd   r  ^  s    Q]]_Ra%8r   )r   r'   rG   rH   rI   r	   r   r   r   r#   rM   r  r   r3  r*   r+   rP   )tsfr-   r   r   rB   piecesr   s          r   test_skip_group_keysr  N  s%   

		a 009d6l&1r<C kk+k>G]]>?F>EFg
e3'+gFFyy H&+#h0UCG]]89F8?@*#e!"1%F@yy H6, G As   >E6Ec                     U S   R                  5       nS Ul        UR                  U S   5      R                  S5      nUR                  b   eg )Nr;   r   r$   )r  r   r#   rm   )float_framer  r   s      r   test_no_nonsense_namer  f  sJ    CAAFYY{3'(,,U3F;;r   c                  
   [        [        R                  " S5      R                  SS5      5      n SU S'   / SQU S'   U R	                  S5      nUR                  SSS	.5      nUS   R                  [        R                  :X  d   eg )
Nr   r   r   test)g?r  g?flr$   rj  )r  r6   )r   r'   r  reshaper#   rm   r&   rH  )r\   r-   r   s      r   test_multifunc_sum_bugr  o  sp    "))A,&&q!,-AAfIAdGiiG[[&12F$<+++r   c                     S nS nU R                  S5      S   R                  U5      nU R                  S5      S   R                  U5      n[        U[        5      (       d   e[        R
                  " X45        g )Nc                 D    U R                  5       U R                  5       S.$ Nr  r  r  rA   s    r   r^   (test_handle_dict_return_value.<locals>.f{  s    yy{599;77r   c                 V    [        U R                  5       U R                  5       S.5      $ r  )r   r  r  rA   s    r   rq   (test_handle_dict_return_value.<locals>.g~  s    eiik%))+>??r   r   r;   )r#   rM   r4  r   r*   rP   )rQ   r^   rq   r   r   s        r   test_handle_dict_return_valuer  z  sj    8@ ZZ_S!''*Fzz#s#))!,Hff%%%%6,r   grouperr   r   c                 p  ^ S nS mU4S jnU R                  USS9nUR                  U5        UR                  T5        UR                  TTS.5        UR                  U5        US   R                  U5        US   R                  T5        US   R                  TU/5        US   R                  U5        g )Nc                 $    U R                   c   eU $ rg   rU  rA   s    r   r^   test_set_group_name.<locals>.f  s    zz%%%r   c                 @    U R                   c   eU R                  5       $ rg   )r   r$   rA   s    r   freduce$test_set_group_name.<locals>.freduce  s    zz%%%yy{r   c                    > T" U 5      $ rg   r  )r\   r  s    r   freducex%test_set_group_name.<locals>.freducex  s    qzr   Fr  r  r;   )r#   rM   r   rn   )rQ   r  r^   r  r-   r  s        @r   test_set_group_namer    s     jjUj3G MM!gG'23aCLqCL7#CLGX./CL1r   c                     ^ [        / SQ[        R                  " S5      S.5      n / mU4S jnU R                  SSSS9R	                  U5        / SQnTU:X  d   eg )	N)r   r   r   r   r6   r6   r  r   c                 Z   > TR                  U R                  5        U R                  5       $ rg   )rG  r   r  )rB   r   s    r   r^   6test_group_name_available_in_inference_pass.<locals>.f  s    UZZ zz|r   r   F)r  rV  r&  )r   r'   r  r#   rM   )rQ   r^   expected_namesr   s      @r   +test_group_name_available_in_inference_passr    sW    	+"))A,?	@BE JJs5J177:NN"""r   c                 <   U R                  U S   R                  5      R                  5       nUR                  R                  b   eU R                  U S   R                  U S   R                  /5      R                  5       nUR                  R
                  S:X  d   eg )Nr   r   )NN)r#   rI  r$   r!   r   r   r  s      r   test_no_dummy_key_namesr    s{    ZZ3'++-F<<$$$jj"S'.."S'..9:>>@G==,...r   c                     [        SS/SS/// SQ/ SQ/SS/S9n [        / SQU S	9n[        SS/SS/// S
Q/ SQ/SS/S9n [        / SQU S	9nUR                  SS/SS9R                  5       n[        R
                  " X25        UR                  SS/SS9R                  5       n[        R
                  " X2R                  5       5        g )Nr   r6   )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   r6   r   Fr   r  T)r   r   r#   r  r*   rP   
sort_index)r!   mseriesmseries_resultr   s       r   #test_groupby_sort_multiindex_seriesr    s     AA!#56CjE
 'u5GAA	9'=c3ZE IU3N__C:E_:@@BF62__C:D_9??AF6#<#<#>?r   c                     Sn [        SSU S9n[        [        R                  " U 5      [        R                  " U 5      S.US9nSS jnUR	                  S 5      nUR                  S	U" [        R                  5      05      nUR                  S	U" [        R                  S
5      05      n[        R                  " XV5        g )N  z2012/1/15min)rS  r   r   )highlowr%  c                    ^ ^ UU 4S jnU$ )z.
Run an aggregate func on the subset of data.
c                    > U R                   U R                  R                  S 5         R                  5       nT(       a  X R                  S        [	        U5      S:X  a  g T" U5      $ )Nc                      U R                   S:  $ )Nr0  )hourrc   s    r   rd   Ytest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>  s    !&&2+r   r   )r?   r!   r4  r   rL   )r   r  fixfuncs     r   _funcGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func  sP    (=>?FFHAZZ]#1v{7Nr   r  )r  r  r  s   `` r   
agg_before8test_groupby_reindex_inside_function.<locals>.agg_before  s    
	 r   c                 X    [        U R                  U R                  U R                  5      $ rg   )r   r   ri   r   rc   s    r   rd   6test_groupby_reindex_inside_function.<locals>.<lambda>  s    8AFFAGGQUU#Cr   r  T)F)	r   r   r'   r  r#   rm   r  r*   r+   )r   indrQ   r  r-   closure_badclosure_goods          r   $test_groupby_reindex_inside_functionr    s    G
:FG
DC	BIIg.ryy7IJRU	VB jjCDG++vz"&&'9:;K;;
2664(@ABL+4r   c                     [        / SQ/ SQ/ SQS.5      n U R                  SS/5      n U R                  SS/SS9nUR                  S	5      n[        R
                  " / S
QSS/S9n[        S/S/S//US/S9n[        R                  " X$5        g )N)r   r   r   r   )r   r   r  r   )r   r   r   r   )group1group2r=   r  r  Tr  r$   ))r   r   )r   r  r   r   rF  r6   r   r   r=   r  )r   r   r#   rm   r   rH  r*   r+   )rQ   r   r   r  rR  s        r   $test_groupby_multiindex_missing_pairr    s    	**!	

B 
x*	+B8X"6TBJ
..
C

 
 ,Xx4HC aS1#sO3	
BC##r   c                 R   [         R                  " / SQSS/S9n[        / SQ/US9nUR                  R	                  5       (       d   e[        / SQ/ SQ/ S	Q/S
9nUR                  SSS/SS9nUR                  5       nUR                  R	                  5       (       a   eUR                  S5      R                  5       n[        R                  " U 5         UR                  S5      R                  5       nS S S 5        [        R                  " UW5        [        / SQ/ SQ/ SQS.5      R                  SS/5      nUR                  R	                  5       (       a   eSSSS/4 H  nS H  nUR                  XxSS9R                  [        R                  5      nUn[        R                  " XE5        UR!                  5       R                  XxSS9R                  [        R                  5      nUR!                  5       n[        R                  " XE5        M     M     g ! , (       d  f       GN+= f)N))r    )b1c1)b2c2r   r   rF  r   r   r   rE   r~  )r   r  r  r   )r   r  r  r   )rF   r   r   r  )r!   rF   rI  )r   r   r   r   r   r   r6   r   r   r\   r   zr\   r   r   r   )FTF)r   r  rV  )r   rH  r   rF   _is_lexsortedpivot_tablero  r#   r   r*   assert_produces_warningr+   r   r!   rM   drop_duplicatesr  )	performance_warninglexsorted_milexsorted_dfnot_lexsorted_dfr   r   rQ   r   r  s	            r   %test_groupby_multiindex_not_lexsortedr     s    ))/SzL i[,?L--//// !$,>@R+S (33C:c 4  (335''557777##C(--/H		#	#$7	8!))#.335 
9(F+ 
"LI
ic
  xx%%''''QA!DZZe5ZIOO))F H!!(3 uEBy001 
 }}H!!(3 "   
9	8s    H
H&c                  *   [        [        S5      / SQS9n U R                  [        S5      5      nUR                  S 5      nU R                  / SQ   n[
        R                  " X#5        U S   nUR                  [        S5      5      nUR                  S 5      nUR                  / SQ5      n[
        R                  " X#5        U R                  R                  [        5      U l	        U R                  [        S5      5      nUR                  S	 5      nU R                  / SQ   n[
        R                  " X#5        U S   nUR                  [        S5      5      nUR                  S
 5      nUR                  / SQ5      n[
        R                  " X#5        g )NABCDE)r6   r   r6   r   r   r%  ababbc                     [        U 5      S:  $ r  rL   rc   s    r   rd   4test_index_label_overlaps_location.<locals>.<lambda>6      A
r   r  r   c                     [        U 5      S:  $ r  r  rc   s    r   rd   r  <  r  r   c                     [        U 5      S:  $ r  r  rc   s    r   rd   r  C  r  r   c                     [        U 5      S:  $ r  r  rc   s    r   rd   r  I  r  r   )r   r   r#   filterr  r*   r+   r  rP   r!   r%   rV  )rQ   rq   r   r   r  s        r   "test_index_label_overlaps_locationr   1  s0    
4=	8B


4=!AXX*+Fwwy!H&+
Q%CDM"AXX*+Fxx	"H6, xxu%BH


4=!AXX*+Fwwy!H&+
Q%CDM"AXX*+Fxx	"H6,r   c                  N   Sn [         R                  " U 5      n[        US-  SU-  SU-  S.5      n[        US-  S-  SU-  SU-  S.5      nUR                  S5      nUR	                  S5      nUR                  S5      nUR	                  S5      n[
        R                  " XW5        g )	Nr  r6          @      @r   r   r   r   )r'   r  r   r#   rn   r*   r+   )nr\   rQ   r   r   r   gb2r   s           r   "test_transform_doesnt_clobber_intsr  N  s    	A
		!A	acAgC!G<	=B
!q&3,S1W37C
DC	CB\\&!F
++c
C}}V$H&+r   sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                    ^  [        / SQ/ SQ/ SQ/ SQ/ SQS.5      nUR                  T S9nUR                  U5      nU 4S jnUR                  U5        g )	N)r   r   r   r   r   r   r   r   )r  r   r  r   r   rq   rq   rq   )r7   r  r   r   r6   r   r   r   )gffffff@g333333@g@g333333g@皙?r  r   )r  r  r   r  wordword24247)r  r  r  r	  r
  r  c                 L   > [         R                  " X R                  TS95        g )Nr  )r*   r+   r  )r\   r  s    r   	test_sort.test_groupby_preserves_sort.<locals>.test_sortw  s    
a+!>?r   )r   r  r#   rM   )r  r  rQ   rq   r  s   `    r   test_groupby_preserves_sortr  ]  sW     
2E,=H	

B 
;	'B


< A@ GGIr   c                     [        [        [        R                  " 5       SSS9R	                  5       [        S5      S.5      n U R                  S5      R                  R                  U S'   U R                  S5      R                  R                  U S'   [        R                  " [        SS	9   U R                  5       R                  SSS
SS9  S S S 5        g ! , (       d  f       g = f)Nr  MEr   )	eventDatethenamer  r   ri   z	'badname'r   badnamer  )r!   rF   rI  aggfunc)r   r   r   todaytolistrK   r   r!   r   ri   r   r   rP  ro  r  r   s    r   !test_pivot_table_values_key_errorr   }  s    	#HNN$4btLSSURy	

B k*0055BvJ,,{+1177BwK	x{	3
$$')W 	% 	
 
4	3	3s   +!C
C#rF   r;   rI  rt  r   z
US/Eastern)tz
2016-01-01r   r<   r   Int64r9   Float64boolean)boolintrV  r;  r  dt64dt64tzperiodr#  r$  r%  )idsmethod)attrrm   rM   )r@   idxminr  r  r$   r  r  kurtc                   ^^^^^^ S n[        T[        5      (       a  TS;   a  Sn[        TS   [        5      (       a  TS;   a  Sn[        TTTS.[	        S5      S9n[        TS	5      (       a.  UR                  TR                  :H  R                  5       (       d   eUR                  S S nUR                  TS
US
S9U    mUUU4S jn	UUU4S jn
[        UR                  R                  S   [        R                  5      nUR                  R                  S   R                  S:H  n[        T[        5      n[        UR                  R                  S   [        R                  5      n[        T[        5      (       a  TR                   (       d  TS;   a  TS;   a  ST S3n["        nOST S3n[$        n[&        R(                  " UUS9   U	" 5         S S S 5        TS;   a9  [        U [        5      (       a$  U	" SS9nU
" 5       n[*        R,                  " UU5        g TS;   a  U(       d  U(       d  U(       d  U(       a  TS:w  a  U(       a  SnOU(       a  SnOU(       a  ST S3nOSnTS;   a  S R/                  US!T S3/5      n[&        R(                  " ["        US9   U	" 5         S S S 5        [        U [        5      (       d  g TS;   a  g U	" SS9nUR1                  T5      /    nU(       a  U
" 5       n[*        R,                  " UU5        g U	" 5       nUR1                  T5      U    nTS";   a%  UR3                  UR4                  R                  5      nUb  UR3                  U5      n[7        T5      S#:X  a  TS   UR4                  l        [*        R,                  " UU5        g ! , (       d  f       GN= f! , (       d  f       GN= f)$N)r$   r  r#  r   )r  r$   r)   r_  ABCrE   r&   F)rV  r   r   c                  Z   > TS:X  a  [        TT5      " S0 U D6$ [        TT5      " T40 U D6$ )Nr-  r  )rm  )kwargsr   r,  rA  s    r   
get_result&test_empty_groupby.<locals>.get_result  s6    V2r?,V,,2v&r4V44r   c                     > [        S/TR                  S9n [        T5      S:w  a  [        R                  " X /TS9nO[        U TS   S9nT(       a  [        / SS9nO/ n[        / X!S9nU$ )Nr   r9   r   rF  rU  r;  r   )r   r&   rL   r   rL  r	   r   )levr  rF   r   r   r?  rI  s       r    get_categorical_invalid_expected<test_empty_groupby.<locals>.get_categorical_invalid_expected  sm    
 1#V\\2t9>))3*DAC $q'*CBe,GGR<r   M)r  r  r.  r@   )r  r  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesr   Tr  )r  r$   r  r/  r$   z datetime64 type does not supportzPeriod type does not supportr  r  zcategory type does not support)r  r/  |zdoes not support operation ')r@   r.  r   )r4  r   r&  r   r   hasattrrN   r&   r  r  r#   r   PeriodDtypekindr   StringDtypeorderedr>  r  r   r   r*   assert_equaljoinr   r%   r!   rL   r   )rF   r   rI  r,  rA  r   r?  override_dtyperQ   r4  r8  is_peris_dt64is_catis_strr   r  r   r   r   s    ```` `            @r   test_empty_groupbyrH    s#   J N&,''B/,A &)T""r_'< 	f6:DK	PBvw		V\\)..0000	!B	DU6E	J7	SB5( 		q)2>>:FiinnQ$$+G,F		q)2>>:F 	6;''44#B4'DECErd"QRCE]]5,L - 33
7D8Q8QT2F79HOOFH-	,,f6bEk 84@AF6%%hh'CB4q%IJKy4 5 gt,,'' $6 <<-b1?AH1\F||D!'*H	!!??288>>2!??>2
4yA~"1gOOFH%s -,2 54s   NN.
N+.
N=c                     [        [        R                  R                  S5      R	                  S5      5      n U S   R                  [        R                  5      U S'   / SQU l        U R                  U S   SS9nUR                  S 5      nUR                  U R                  SS	9R                  :H  R                  5       (       d   eg )
Nr6   )r   r   r   r   r   r6   r   r   Fr  c                     U $ rg   r  rc   s    r   rd   <test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>4  s    Qr   rE   )r   r'   rG   rH   rI   r%   r)   rF   r#   rM   rN   rO   r  )rQ   r   r   s      r   *test_empty_groupby_apply_nonunique_columnsrM  .  s    	299((+;;FC	DBqELL"BqEBJ	BqEe	,B
((;
CJJ"''!',33388::::r   c            	      `   [        / SQ/ SQ/ SQ/ SQS.5      n [        R                  " [        SS9   U / SQ   R	                  S5        S S S 5        U R	                  S5      S   R                  5       n[        S	/S[        S
/SS9S9n[        R                  " X5        g ! , (       d  f       N\= f)N)r   r   r   r   )r6   r6   r6   r6   )r   r   r   r   z
('a', 'b')r   r   r   r   r   r   rU  rZ  )
r   r   r   rP  r#   r$   r   r	   r*   rP   r\  s      r   test_tuple_as_groupingrO  8  s    	$		

B 
x}	5
?##J/ 
6 ZZ
#C(,,.Fqc5!:+FGH6, 
6	5s   B
B-c            	         [        S[        S5      [        R                  " SS/SS//5      S9n [        R
                  " [        SS9   U R                  S5      R                  5         S S S 5        g ! , (       d  f       g = f)	Nr   r   r6   r   r  z
^\(7, 8\)$r   )r  r7   )	r   rK   r   rL  r   r   rP  r#   r   r   s    r   test_tuple_correct_keyerrorrQ  K  s]    	1E!Hj.E.E1vPQSTvFV.W	XB	x}	5


6! 
6	5	5s    A11
A?c                  &   [        S/S//[        S/SS9[        SSSSS	9S
9n [        / SQ/ SQ/[        R                  " S/ SQS9[        SSSSS	9S
9nU R                  [        SS95      R                  SS/5      n[        R                  " X!5        g )Nr   r1   mycolsrU  
2018-01-01r6   r<   dti)r   r   r   r   )r   r   r   r   r   ))r1   r$   r1   )r1   ohlcopen)r1   rV  r  )r1   rV  r  )r1   rV  close)rS  NNrF  )r   r$   rV  )
r   r	   r   r   rH  r#   r   rm   r*   r+   r  s      r   test_groupby_agg_ohlc_non_firstrY  R  s    	
qc
ugH-qsG
B 	/*&& )	
 qsGH ZZS)*..v?F&+r   c                  F   [         R                  S4[        SSS5      S4[        SSS5      S4[        SSS5      S4/n [        R                  " U SS /S9n[        / S	QUS
9nUR                  SS9R                  5       n[        SS/SS/S
9n[        R                  " X45        g )Nr   i  r   r6   r   r   daterF  )r   r6         @r   r%  r  r  r\  )
r   r   r   r   rH  r   r#   r   r*   rP   )rI  rN  r  r   r   s        r   test_groupby_multiindex_natr]  n  s     
	$1	s#	$1	s#	$1	s#	F 
		vtn	=B
r
*C[[q[!&&(FsCjc
3H6,r   c                      [        [        S5      [        S5      SS9n [        U SS/S9nSn[        R                  " [
        US9   UR                  / /5        S S S 5        g ! , (       d  f       g = f)	Nr   Tra  appler   rE   z$Grouper and axis must be same lengthr   )r|  rK   r   r   r   r  r#   )rI  rQ   r   s      r   test_groupby_empty_list_raisesr`  ~  sU    rE"Id3F	6GS>	2B
0C	z	-


B4 
.	-	-s   A!!
A/c                  "   SS/SS/SS//n / SQn[         R                  " XS9n[        SS/US	9nUR                  S
S/5      R	                  5       nS/S//n S
S/n[         R                  " XS9n[        S/US9n[
        R                  " XF5        g )Nr\   r   r   r  )r  r  thirdrF  r   r6   r  r  rb  r   r%  )r   from_arraysr   r#   r$   r*   rP   )index_arrayindex_namesrir  r   eir   s          r   8test_groupby_multiindex_series_keys_len_equal_group_axisrh    s    :SzC:6K.K				?BQF"%AYY)*..0F53%.KG$K				?Bqc$H6,r   c                     [         R                  " SS/SS//SS/S9n [        / SQ/ S	QS
.U S9nUR                  [	        SS9S/5      nUR                  SS/5      nUR
                  UR
                  :X  d   eUR                  S[	        SS9/5      nUR                  SS/5      nUR
                  UR
                  :X  d   eg )Nr   r   r;   r<   r`  betarF  )r   r6   r   r6   r  r  r%  r  )r   rL  r   r#   r   r  )rN  rQ   r   r   s       r   "test_groupby_groups_in_BaseGrouperrk    s     
	 	 3*sCj!9'6AR	SB	<=R	HBZZw/89Fzz7F+,H==HOO+++ZZw!789Fzz67+,H==HOO+++r   c                    [        SS/[        R                  S/SS//5      nS[        R                  S4S/n[        SS	5      [        S	S
5      [        S
S5      /nU (       a  U(       a  S
S/O/ SQnOU(       a  SS
/O/ SQnU Vs0 s H
  ocU   XF   _M     nnUR	                  SS	/XS9nUR
                  n	[        U	R                  5       UR                  5       SS9 HG  u  p[        R                  " U
5      n
[        R                  " U5      n[        R                  " X5        MI     [        U	R                  5       UR                  5       SS9 H  u  p[        R                  " X5        M     g s  snf )Nr  r   r  rt  r  )r  r   )rt  r  r   r   r6   r   )r6   r   r   r&  )r  r   Tra  )r   r'   r   r   r#   r  r|  r   rJ   r*   rg  rI  r  )r  r   rQ   r   rI  takerr  r   r   r   
result_keyexpected_keyresult_valueexpected_values                 r   test_groups_sort_dropnarr    sA   	S#JSz:	;Bz2D1a1a1aF
  Ai Ai278%3S	6;&%H8	QF	5BYYF$'x}}t$T 
XXj)
xx-
##J=	 %U
 ),*4)$ 	l;) 9s   E/zop, expectedshifttime2019-01-01 12:00:002019-01-01 12:30:00bfill2019-01-01 14:00:002019-01-01 14:30:00ffillc           	      J  ^ U m/ SQ[        S5      [        S5      S S [        S5      [        S5      /S.n[        U5      R                  U4S jS9nUR                  S	5      n[	        XQ5      " 5       n[        U5      R                  U4S
 jS9n[
        R                  " Xb5        g )N)r   r   r   r   r   r   ru  rv  rx  ry  )r5  rt  c                 N   > U R                   R                  R                  T5      $ rg   rt  r]  tz_localizer\   r!  s    r   rd   +test_shift_bfill_ffill_tz.<locals>.<lambda>  s    qvvyy/D/DR/Hr   )rt  r5  c                 N   > U R                   R                  R                  T5      $ rg   r}  r  s    r   rd   r     s    9N9Nr9Rr   )r   r   assignr#   rm  r*   r+   )tz_naive_fixturerA  r   r   rQ   r-   r   r!  s          @r   test_shift_bfill_ffill_tzr    s    \ 
B,+,+,+,+,

D 
4		%H		IBjjGW!#F"))/R)SH&+r   c                      [        S /SS.5      n U R                  S5      S   R                  S5      n[        [        R
                  /SS9n[        R                  " X5        g )Nr   )rq   r\   rq   r\   r$   rU  )r   r#   rn   r   r'   r   r*   rP   )rQ   r   r   s      r   test_groupby_only_none_groupr    sR     
$a(	)BZZ_S!++E2FrvvhS)H6,r   c                      [        / SQ/ SQS9n U R                  SS9nUR                  5       n[        / SQ/ SQS9n[        R                  " X#5        g )N)r6   r   r  r7   )r  r  r  r  r%  r   r  )r6   g      @r7   )r  r  r  )r   r#   r   r*   rP   )r  r   r   r   s       r   test_groupby_duplicate_indexr    sD    
%9
:C	1	BWWYFk9H6,r   c                 
   [        S[        S5      SS/// SQS9nUS   R                  [        5      US'   US   R                  [        5      US'   UR	                  S	S
/5      nUR
                  S S R                  S	/5      R                  U 5      nUR                  S	/5      R                  U 5      R
                  S S nU S;   a  UR                  [        5      n[        R                  " X45        US   R
                  S S R                  S	/5      R                  U 5      nUS   R                  S	/5      R                  U 5      R
                  S S nU S;   a  UR                  [        5      n[        R                  " X45        g )Nr   r  r   r   )col_1col_2col_3col_4r   rF   r  r  r  r  r   )diffrs  )
r   r   r%   r'  r   r  r#   rn   r*   rA  )transformation_funcrequestrQ   r   r   s        r   test_group_on_empty_multiindexr    sa    
)G$a+,4
B W+$$S)BwKW+$$S)BwK	w(	)BWWRa[  '+556IJFzz7)$../BCHH!LH//??3'OOF%[bq!))7)4>>?RSF'{""G9-778KLQQRTSTUH//??3'OOF%r   c                     [        SSSS9n [        SS/SS/SS/S.5      nS	UR                  l        Xl        UR
                  nUR                  SS
9nUR                  5       n[        SS/SS/S.U S9nSUR                  l        UR
                  n[        R                  " X45        U/    R                  SS
9nU/    nUR                  5       n[        R                  " Xv5        g )Nr"  r6   r1   )r   r   r   r   r   )r  )r   r;   )r<   r   )r2   r  r  )r   r<   r%  r2   )r   r   rF   r   r!   r   r#   nuniquer   r*   r+   )rU  rQ   r   r   r   r  rR  r   s           r   test_groupby_crash_on_nuniquer  /  s    
\15
9C	AQFAO	PB%BJJH	B	!	BZZ\F1vQF33?H!HzzH&+ R&..q.
!C
2,C
++-C##r   c                      [        [        R                  " SS5      R                  SS5      [        S9n U R                  S/S9R                  5       n[        R                  " X5        g )Nr   r   r   r9   r  )	r   r'   r  r  rV  r#   r   r*   r+   )r   r   s     r   test_groupby_list_levelr  H  sQ    1a00A6eDHQC(--/F&+r   zmax_seq_items, expected))r   z({0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})r   z%{0: [0], 1: [1], 2: [2], 3: [3], ...})r   z{0: [0], ...}c                    [        [        R                  R                  S5      R	                  S5      5      nUR
                  US'   [        R                  " SU 5         UR                  S5      R                  R                  5       nX1:X  d   eUR                  [        R                  " UR                  5      5      R                  R                  5       nX1:X  d   e S S S 5        g ! , (       d  f       g = f)Nr6   )r   r   r   zdisplay.max_seq_items)r   r'   rG   rH   rI   r!   r   option_contextr#   r  __repr__rJ   r   )max_seq_itemsr   rQ   r   s       r   test_groups_repr_truncatesr  O  s     
299((+;;FC	DBhhBsG			2M	BC''002!!!BHHRTTN+22;;=!!! 
C	B	Bs   A?C''
C5c                  B   [        SSSS.SSSS./5      n U R                  SS/5      n U R                  SS/5      nUR                  nS[        R
                  " S	S/[        R                  S
90n[        U5      S:X  d   eSnX$   X4   :H  R                  5       (       d   eg )Nr   r6   c   r   X   r   r   )r   r6   r   r9   )	r   r   r#   r  r'   rJ   r)   rL   r  )rQ   grpr   r   r   s        r   6test_group_on_two_row_multiindex_returns_one_tuple_keyr  d  s    	!!"-QQR/HI	JB	sCj	!B
**c3Z
 C[[F!Qrxx89Hv;!
CK8=(--////r   zklass, attr, valuer   r   r  rV  r   r   c                     [        S/S/S/S.5      nUS:w  a  UR                  S5      nUR                  " S0 X0D6nU [         L a  US/   OUS   n[        XQ5      [        XA5      :X  d   eg )	Nr   r6   r   r   rX   r   r   )r   )r   r   r#   rm  )r  r-  r=   rQ   r   r   s         r   #test_subsetting_columns_keeps_attrsr  r  ss    & 
!A3aS1	2Bv~\\#zz/$/H % 2Xse_F6 GH$;;;;r   r  )r$   anyrs  c                     [        S/SS9n[        S//US9nUR                  S/5      n[        X05      " 5       R                  n[
        R                  " XA5        g )Nr   r  rU  r   rE   )r	   r   r#   rm  rF   r*   r  )r  r   rQ   r   r   s        r   #test_groupby_column_index_name_lostr    sR     cU'H	QC5(	+BQCJZ&(00F&+r   infer_stringpyarrow)marksc                    U (       a  [         R                  " S5        [        / SQ/ SQ/ SQS.5      R                  [        5      n/ SQUl        [        R                  " SU 5         UR                  / SQ5      R                  5       nS S S 5        [        / S	Q/[        R                  " S
/5      / SQ[        S9n[        R                  " WU5        g ! , (       d  f       NP= f)Nr  )r^   r  rq   r  r~  r  r_  )r   r   r   zfuture.infer_string)r   r   r   r   )r  r   r   r   )r!   rF   r&   )r   importorskipr   r%   r   rF   r   r  r#   r  r'   rJ   r*   r+   )r  rQ   r   r   s       r   test_groupby_duplicate_columnsr    s     I&	")=LQ
fVn  !BJ			0,	?L)--/ 
@	rxx}oVH &(+ 
@	?s   &"C
C c                      [        / SQ/ SQSS9n SU R                  l        U R                  SS9R	                  5       n[        SS	/S
S/SS9nSUR                  l        [
        R                  " X5        g )Nr  r   )r   r   r!   r   )r   r   r   r  r6   r   r   )r   r!   r   r#   lastr*   rP   )r  r   r   s      r   #test_groupby_series_with_tuple_namer    sd    
\

CCCIIN[[q[!&&(Fq!fQF<H$HNN6,r   zfunc, valuesr$        @X@     X@r   g     @8@g     8@c                     / SQn[        SS/S-  X"S.5      n[        UR                  S5      U 5      " 5       n[        XS.[        SS/SS9S	9n[        R
                  " XE5        g )
N 7yACr  a   b    7y1r  r  r  r   r6   r   rB   r   r   rB   r   rU  r%  )r   rm  r#   r	   r*   r+   )r  rI  r   rQ   r   r   s         r   )test_groupby_numerical_stability_sum_meanr    s`    
 <D	aVaZd>	?BRZZ($/1Fv35!Qg;VWH&+r   c                      / SQn [        SS/S-  X S.5      nUR                  S5      R                  5       nS/S-  SS	/-   S
S/-   SS/-   n[        X3S.5      n[        R                  " X$SS9  g )Nr  r   r6   r   r  rB   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)check_exact)r   r#   rX  r*   r+   )r   rQ   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr    s    ;D	aVaZd>	?BZZ '')F	
i++y).DDd|S  x78H&=r   c                  t   [         R                  R                  S5      R                  S5      n [	        U 5      n[        S5       H!  n[         R                  UR                  X"4'   M#     SUS'   UR                  S5      nUR                  SS9nU/ SQ   R                  SS9n[        R                  " XE5        g )	Nr6   )r   r   r   r   r   Fskipnar  )r'   rG   rH   rI   r   rK   r   r  r#   rX  r*   r+   )r,  rQ   ir   r   r   s         r    test_groupby_cumsum_skipna_falser    s    
))


"
2
26
:C	3B1X  BsG	CB
))5)
!C/")))7H#(r   c            	         [        SSSS9n [        U 5      U S   -
  n[        R                  US'   [	        SUS.5      nUR                  S	5      nUR                  S
SS9n[	        SUS   US   [        R                  US   US   S-  /05      n[        R                  " XE5        UR                  S
S
S9n[	        SUS   US   [        R                  [        R                  [        R                  /05      n[        R                  " XE5        g )Nr"  r   ns)r   unitr   r6   r   r  r   FT)r  r  r   r   )	r   r   r   r   r   r#   rX  r*   r+   )rU  r  rQ   r   r   rR  s         r   test_groupby_cumsum_timedelta64r    s    
\14
8C
+A
CVVCF	%	&B	CB
))t)
4C
S3q63q62663q63q6A:FG
HC##
))u)
5C
S3q63q6266266266BC
DC##r   c                     U nUR                  SS9R                  5       nUR                  UR                  5      R                  5       n[        R                  " X#5        g )Nr   r  )r#   r   r!   r*   rP   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr    sI    3D\\\"'')F||DJJ',,.H6,r   c                  V   [        / SQ[        R                  [        R                  [        R                  /5      n U R                  U R                  5      R                  5       n[        / [        / [        R                  S9[        R                  S9n[        R                  " X5        g )Nr   r9   rF  )r   r'   r   r#   r!   r$   r	   rH  r)   r*   rP   r  r   r   s      r    test_groupby_all_nan_groups_dropr    sg    y26626626623AYYqww##%Fbb

 ;288LH6,r   c                 ,   [        / / SQS9nUR                  SS/U S9nUR                  US9nU (       a&  [        / / // / /SS/S9nU(       d  S/O	[	        / S	S
9nO[        S5      nU(       d  / SQOSS/n[        / XeS9n[        R                  " XG5        g )Nr_  r  r   r   r~   r  rF  r;   r;  r9   r   r   )r   r#   r$   r   r	   r   r*   r+   )r   r  rQ   r   r   r!   rF   r   s           r   test_groupby_empty_multi_columnr  	  s     
O	4B	S#J	2BVVV.FB8b"Xc3Z@+3%r1G1)5/C:W:H&+r   c                      [        SS//SS//SS//SS///SS/S9n [        SSS/SS//0[        SS/SS	9S
9nU R                  S/S9nUR                  5       n[        R
                  " X15        g )Nr:  r   Wr   r  MWr  rE   rU  r%  r  )r   r	   r#   r$   r*   r+   )rQ   r   r   r   s       r   *test_groupby_aggregation_non_numeric_dtyper  	  s    	
scA3Z#tsRDk:T3K
B 1a&2r(#	
 S#JT*	H 
v	BVVXF&+r   c                     [        / SQ[        SS5       V s/ s H  n [        U S5      PM     sn [        SS5       V s/ s H  n [        U S-  S5      PM     sn S.5      n[        [        SS5       V s/ s H  n [        U S5      PM     sn [        SS5       V s/ s H  n [        U S-  S5      PM     sn S	.[        S
S/SSS9S9nUR	                  S/S9nUR                  5       n[        R                  " XB5        g s  sn f s  sn f s  sn f s  sn f )Nr   r   r   r   r   r   r  daysr   r  r  r   r   r  r   r)   r\   r&   r   r%  r  )r   rK   r   r	   r#   r$   r*   r+   r  rQ   r   r   r   s        r   0test_groupby_aggregation_multi_non_numeric_dtyper  $	  s    	 05a<1)Av&<5:1a[A[)AFF+[A	

B 05a<1)Av&<5:1a[A[)AFF+[A	
 QF'4H 
u	BVVXF&+ =A =As   C;
D 2DD

c            
      l   [        / SQ[        SS5       V s/ s H  n [        U S5      PM     sn [        [        SS5      5      S.5      n[        [        SS5      [        SS5      /SS/S.[	        S	S/S
SS9S9nUR                  S/S9nUR                  5       n[        R                  " XB5        g s  sn f )Nr  r   r  r  r  r  r7   r  r   r)   r\   r  r%  r  )	r   rK   r   r   r	   r#   r$   r*   r+   r  s        r   7test_groupby_aggregation_numeric_with_non_numeric_dtyper  ;	  s    	 05a<1)Av&<eAqk"	

B F#Yq&%9:!QHQF'4H
 
u	BVVXF&+ =s   B1
c            	          SSSSS.SSSSS.SSSSS./n [        U 5      nXS   S:H     nUR                  S5      nUR                  5       n[        / S	Q// S
Q[        S/SS9S9n[        R
                  " XE5        g )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r  r  )rt  rt  g$+H@)r  r  r  rU  r   )r   r#   r   r	   r*   r+   )dictsrQ   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdr  O	  s     TtRVWDdQUVDdQUVE
 
5	Bl#t+,I]+DXXZF	7TF/H
 &+r   c            	         [        [        [        S5      5      [        [        / SQ5      SS9[        R
                  " / SQSS/S9S	.5      n U R                  S
S/SS9R                  nS
[        S5      4[        R                  " S/5      S[        S5      4[        R                  " S/5      S[        S5      4[        R                  " S/5      0nX:X  d   eg )Nabc)rT  z
2018-02-01z
2018-03-01categoryr9   )r  r   r   r   r   r   r   r   r   Fr   z2018-01-01 00:00:00z2018-02-01 00:00:00r   z2018-03-01 00:00:00r6   )r   r   r   r   r   
from_codesr#   r  r   r'   rJ   r\  s      r   2test_datetime_categorical_multikey_groupby_indicesr  c	  s    	U$FG  ''
1vF	
	
B ZZc
UZ3;;F	i-./1#	i-./1#	i-./1#H
 r   c            
         S/S-  S/S-  -   n [         R                  [         R                  SSS[         R                  SSSS/
n[        X/5      R                  nSS	/Ul        S
n[
        R                  " [        US9   UR                  S5      S	   R                  SSS9R                  5         S S S 5        g ! , (       d  f       g = f)NAlicer   Bobr   r6   r   r   r   rO  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'r   )window
min_period)r'   r   r   r   rF   r   r   r>  r#   rollingr$   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodr  x	  s    Y]eWq[(FVVRVVQ1bffaAq9E(**GuoGO 	L  
y(8	9&..aA.FJJL 
:	9	9s   >1B88
Cc           	         U n[        / SQ/ SQ[        / SQUS9S.5      n[        R                  SS.nUR                  S/5      R	                  U5      n[        S	S
/S	/SS/SS/S.5      R                  S5      n[        USS 5      S:X  a  [        R                  " S	S
/US9nUS	/US'   [        R                  " XE5        g )N)Thomasr  Thomas John)i  i    )sadhappyr  r9   )NameCreditMoodr$   )r   r  r  r  r  i	  r  r  r  )r   r  r  storager  r   )r   r   moder#   rm   r   rm  r   rJ   r*   r+   )any_string_dtyper&   rQ   aggregate_detailsr   r   mood_valuess          r   .test_by_column_values_with_same_starting_valuer  	  s    E	7'4EB	

B "(>ZZ!%%&78Fu%w/Sk}-	
 i  ui&)3hh/u='1&+r   c                     / SQ/ SQ/n [        S[        R                  " U SS/S9S9nUR                  SS/S	9R	                  5       n[        SS
/[        R
                  " SS/SS/S95      n[        R                  " X#5        g )N)Nr   r   r   )r6   r   r6   r   r   r   r   rF  r%  r   r  r6   )rt  r6   )r   r   )r   r   rc  r#   r$   rH  r*   rP   )r,  r  r   r   s       r   #test_groupby_none_in_first_mi_levelr  	  s    L
)C
*00S#JG
HC[[1v[&**,F	
A
&&(';C:NH 6,r   c                 
   [        / SQ/ SQ/ SQS.5      nU (       a  [        R                  /OS /nUR                  US9nUR	                  5       n[        SS/SS	/S
.[        SS/US   S9S9n[        R                  " XE5        g )Nr   )r   r   r6   r   )r   r   r  r  )Nr   r   r  r6   r   r   r^  r  r   r   rU  r%  )r   r'   r   r#   r$   r	   r*   r+   )r?  rQ   rb  r   r   r   s         r   test_groupby_none_column_namer
  	  sv    	,\M	NB'"&&dVB	r	BVVXF1vQG4E1a&rRSu<UVH&+r   	selectionc                 
   [        SS/[        R                  S/[        R                  S/S.SS/S9nU c  UR                  S/5      OUR                  S/5      U    nU VVs/ s H  u  p4UPM	     nnnS	S
/nXV:X  d   eg s  snnf )Nr   r6   r   r   r\   r   r%  r   r   r6   )r   r'   r   r#   )r  rQ   r-   r   r  r   r   s          r   !test_single_element_list_groupingr  	  s     
!QrvvqkDSRUJ	WB#,#4bjj#"**cU:KI:VG '(fccF(d|H )s   "A?c                     [        / SQ/ SQS.5      n U S   R                  S5      U S'   [        / SQ/ SQS.5      nUS   R                  S5      US'   U R                  SSS	9nUR                  5       n[        R
                  " X15        g )
N)r   r   r   r   )r   r6   r   r6   )str_colnum_colr  stringr   )r  r  r  Fr~   )r   r%   r#   r   r*   r+   )rQ   r   r-   r   s       r   test_groupby_string_dtyper  	  s    	3M	NByM((2ByM
 '	
	H #9-44X>HYjjUj3G\\^F&+r   zlevel_arg, multiindex)r   F)r  Tc                     [        SS/SS/SS/S.SS	/S
9nU(       a  UR                  SS/5      nUR                  U S9 VVs/ s H  u  p4UPM	     nnnU(       a  SS/OSS/nXV:X  d   eg s  snnf )Nr   r6   r   r   r   r  r   r\   r   r%  r   r   r  r  r  rc   )r   )r   r   r#   )	level_argr   rQ   r   r  r   r   s          r   +test_single_element_listlike_level_groupingr  	  s    
 
!Qq!fAq6:3*	MB\\3*% "


 ;< ;fcc ;F<)d|/?H =s   A+)r$   rX  cumprodr  c                     Sn[        SU/S.5      n[        UR                  S5      U 5      " 5       U-
  n[        SS/0[        S/SS9S9nU S	;   a  UR	                  S
S9n[
        R                  " X45        g )Nl   L33ffr   r   r   r   r   rU  r%  )rX  r  T)rO   )r   rm  r#   r	   ro  r*   r+   )r  rO  rQ   r   r   s        r   #test_groupby_avoid_casting_to_floatr  	  s{     C	#'	(BRZZ_d+-3F#s5!3+?@H$$''T'2&+r   z	func, val)r$   r   )r  r6   c           	          [        SSS[        R                  /S.U S9n[        UR	                  S5      U5      " 5       n[        SU/0[        S/SU S9U S9n[        R                  " XE5        g )	Nr   r6   r   r9   r   r   rE  rF  )r   r   NArm  r#   r	   r*   r+   )any_numeric_ea_dtyper  rO  rQ   r   r   s         r   test_groupby_sum_support_maskr  	  sl     
!Q/7K	LBRZZ_d+-F	seQCc)=>"H
 &+r   z
val, dtype)o   r'  )   uintc           	         [        SX /S.U S3S9nUR                  S5      R                  5       n[        SU S-  /0[        S/SU S3S9U S	3S
9n[        R
                  " X45        UR                  S5      R                  5       n[        SX S-  /0U S	3S9n[        R
                  " X45        UR                  S5      R                  5       n[        SX -  /0[        S/SU S3S9U S	3S
9n[        R
                  " X45        g )Nr   r   8r9   r   r   r6   rE  64rF  )r   r#   r$   r	   r*   r+   rX  r  )rO  r&   rQ   r   r   s        r   test_groupby_overflowr&  	  s    
#,ugQK	@BZZ_  "F	sQwiQCcE7!5rlH
 &+ZZ_##%F#1W~.rlCH&+ZZ_!!#F	sykQCcE7!5rlH
 &+r   zskipna, val)Tr   c                     [        SS[        R                  S/S.U S9nUR                  S5      R	                  US9n[        SS[        R                  U/0U S9n[
        R                  " XE5        g )Nr   r6   r   r9   r   r  r   )r   r   r  r#   rX  r*   r+   )r  r  rO  rQ   r   r   s         r   test_groupby_cumsum_maskr(  
  sj     
!RUUA/7K	LBZZ_##6#2F	q"%%o"H &+r   zval_in, index, val_out)r   r  r  r  r  )r1   r1   r2   r  blah)r  r  r  r  )r   r  r  r  r  g      @)r1   r1   r2   r  r)  r)  )r  r  g      &@r  c           	      d   [        U S[        USS9S9nUR                  S5      R                  5       n[        US[        / SQSS9S9n[        R
                  " XE5        UR                  5       R                  S5      R                  5       nUR                  5       n[        R                  " XE5        g )NrI  r)  rU  )r   r   r!   )r2   r  r)  r1   )r   r	   r#   r$   r*   rP   to_framer+   )val_inr!   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentr/  
  s    " heE6OPF^^F#'')F1?H
 6,__&&v.224F  "H&+r   r  )r   r       ri  r  c                     [        SS/U -  S.5      nUS   R                  S5      US'   UR                  S5      R                  5       n[        SU /0[	        S/SS9S9n[
        R                  " X#5        g )Nr   T)r  r&  r&  r  rU  r%  )r   eqr#   r$   r	   r*   r+   )r  rQ   r   r   s       r   test_sum_of_booleansr3  >
  so     
1tfqj9	:BFt$BvJZZ&**,F&1#eQCm.LMH&+r   z<ignore:invalid value encountered in remainder:RuntimeWarning)r  tailrg  r  r  c                    [        S[        R                  S[        R                  S/[        S5      S.5      nU S:X  a   [	        UR                  S5      U 5      " SS	9nO [	        UR                  S5      U 5      " 5       nU S
;   a)  [        S/ SQ05      R                  [        / SQSS95      nO[        / SQ/ SQS.[        SSS5      S9n[        R                  " X#5        g )Nr   r   r   r   r  rg  r   r   )r  )r  r  r   r  r   rU  r  r6   r%  )
r   r'   r   rK   rm  r#   r   r   r*   r+   )r,  rQ   r   r   s       r   test_groupby_method_drop_nar6  H
  s     
#rvvsBFFC8uQxH	IBC&1A6C&13""c9-.88?-
 !	2%1a.
 &+r   c                     [         R                  " SSSS9n [        [        S5      5      S-  nU R	                  5       nUR                  U5      n[        R                  " [        SS9   UR                  5         S S S 5        [        R                  " [        SS9   UR                  5         S S S 5        [        R                  " [        S	S9   UR                  5         S S S 5        [        R                  " [        S
S9   UR                  5         S S S 5        UR                  5       nUSS  n[        [        S5      [        S9Ul        ["        R$                  " XE5        UR'                  5       nUS S n[        [        S5      [        S9Ul        ["        R$                  " XE5        g ! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr"  ri  r<   r   r   z+Period type does not support sum operationsr   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir9   )r   period_ranger   rK   	to_seriesr#   r   r   r>  r$   rX  r  r  r  r	   r'  r!   r*   rP   r  )pigrpsr  r   r   r   s         r   test_groupby_reduce_periodr<  `
  sY   	s	=Bb	?RD
,,.C	T	B	y(U	V
 
W	I
 			
 
y(V	W
	 
X	J
 	



 &&(C34yH59C0HN3)
&&(C3BxH59C0HN3)+ 
W	V
 
 
X	W
 
s0   (F&F8G
>G&
F58
G

G
G)c                      [        / SQ/5      n / SQU l        U R                  U S   5      nUR                  nU R	                  / SQSS9n[
        R                  " X#5        g )N)r   r   r6   r   rJ  r   )r   r6   r   rW   )r   rF   r#   _obj_with_exclusionsr  r*   r+   )rQ   r   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsr?  
  sR    	L>	"BBJ	BqE	B$$Fwwyqw)H&+r   c                 N   SSS.SSS./n[        U[        S9nUR                  SSSS	9nU (       a3  UR                  S
S9n[        SS/S/S9n[        R
                  " XE5        g [        R                  " [        SS9   UR                  U S9  S S S 5        g ! , (       d  f       g = f)Nr1   r2   r   cardarr9   r   F)r   r  Tr  rE   z(could not convert string to float: 'bar'r   )	r   r   r#   r   r*   r+   r   r   r  )r  dicts_non_numericrQ   r  r   expected_dfs         r   'test_groupby_numeric_only_std_no_resultrE  
  s      %51U3KL	$F	3B::cE:6Dt,>
f2]]H
 HH,H/
 
 
s   =B
B$c                     [        / SQ/ SQS.5      n [        R                  " U S   [        R                  " SSS5      S9nU R                  US	/S
S9S   R                  S5      n[        [        SSSS9[        SSSS9[        SSSS9[        SSSS9/SS9n/ SQn[        R                  " X4/SS	/S9n[        [        R                  " S[        R                  S[        R                  S[        R                  S[        R                  [        R                  S[        R                  [        R                  /5      USS9n[        R                  " X&5        g )N)皙?皙?333333?皙ٿ      ?)r   r   r   r   r   )r\   wr\   r   r   r   rk   rL  Fr  r   gDlٿrG  rz  )closedrH  rI  rK  T)r@  r   rF  rJ  r  )r   r   qcutr'   linspacer#   rm   r   r
   r   rL  r   rJ   r   r*   rP   )rQ   qqr   categorical_index_level_1index_level_2rN  r   s          r   /test_grouping_with_categorical_interval_columnsrS  
  s7   	3:ST	UB	CBKK1a0	1BZZS	EZ237;;FCF +VS1S#g.S#g.S#g.		
 ! $M		 	 	"23*
B 
	
  %H( 6,r   bug_varc                 :   [        SX U [        R                  /05      n[        U [        5      (       a  UR                  [        5      nUR                  S 5      nUR                  SS9n[        X U S /S/US   R                  S9n[        R                  " X45        g )Nr   c                     U $ rg   r  rc   s    r   rd   ;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>
  s    r   r   )	min_count)rF   r&   )r   r'   r   r4  r;  r%   r   r#   r$   r&   r*   r+   )rT  rQ   r  r   rD  s        r   )test_groupby_sum_on_nan_should_return_nanrY  
  s     
C'GRVV<=	>B'3YYv::k"DXXX"F	7D)C53K &.r   )r  corrcummaxcumminr  r   rankro   r  rs  r  r  r.  r@   rz  rw  
pct_changec                     [        S[        U 5      S9nX l        U R                  S/5      S/   nU S/   R                  U S   5      n[	        X15      " 5       n[	        XA5      " 5       n[
        R                  " XV5        g )N2014r   r   r;   )r   rL   r!   r#   rm  r*   r+   )rQ   r,  rngrq   g_expr   rR  s          r   #test_groupby_selection_with_methodsrd  
  sv    0 VSW
-CH


C53% AuIbg&E !

C
%
 
"C ##r   c                    [        S[        U 5      S9nSU R                  l        Xl        U R                  S/5      S/   nU S/   R                  U S   5      n[        R                  " UR                  S 5      UR                  S 5      5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR                  S	 5      UR                  S
 5      5        g )Nr`  ra  r1   r   r;   c                 "    U R                  5       $ rg   rC  rc   s    r   rd   6test_groupby_selection_other_methods.<locals>.<lambda>  s
    AEEGr   c                 "    U R                  5       $ rg   rC  rc   s    r   rd   rg    s
    AEEGr   r<   c                     [        U 5      S:H  $ r  r  rc   s    r   rd   rg  	  s    3q6Q;r   c                     [        U 5      S:H  $ r  r  rc   s    r   rd   rg  	  s    A!r   )r   rL   rF   r   r!   r#   r*   r+   rM   resampler   rV  r  )rQ   rb  rq   rc  s       r   $test_groupby_selection_other_methodsrl  
  s   
VSW
-CBJJOH


C53% AuIbg&E !''"34ekkBS6TU!**S/..0%..2E2J2J2LM!**S/..0%..2E2J2J2LM	&'6K)Lr   c                 :   [        / SQ5      R                  U 5      n[        / SQ/ SQUS.5      n[        SSSU S9n[        U/ SQ/ SQS	.5      nUR	                  [        S
SS95      nUR                  5       R                  5       n[        R                  " Xd5        g )N)z2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)r   r   r  )quantquant2time2z2016-08-31 22:08:00r^  1min)r   r   r  )r   r   r   r   r   r   r   r   r   r   r   r   r   )rp  rn  ro  rp  )r   r   )
r   as_unitr   r   r#   r   r  ro  r*   r+   )r  idx2	test_datarp  expected_outputr   r   s          r   test_groupby_with_Time_Grouperrv    s    	
 gdm 	 !_tLI ,bvDQE<=	
O 
		7wV<	=BXXZ##%F&2r   c                      [        / SQ[        SSS9SS9n U R                  U 5      R                  5       n[        SS/SS	9nSUR                  l        [        R                  " X5        g )
N)r   r   r   z
2022-01-01r   ra  janr  r6   r   rU  )r   r   r#   r  r!   r   r*   rP   r  s      r   1test_groupby_series_with_datetimeindex_month_namery  )  sW    y
< C%PAYYq\!Fq!f5)HHNN6,r   test_serieszkwarg, value, name, warn)rb  r   r   Nrb  r  )r   r   r   Nc                 .   [        S/ SQ0[        / SQSS9S9nU (       a  US   nUR                  " S0 X0D6nUR                  U5      nU (       a  [	        SS/[        S	S	/SS9SS
9nO[        SSS/0[        S	S	/SS9S9n[
        R                  " Xx5        g )Nr   )r   r   r   )r   r   r6   r   rU  r%  r   r   r   r  r  )r   r	   r#   r[  r   r*   rA  )	rz  kwargr=   r   warnr-  r   r   r   s	            r   test_get_group_len_1_list_likesr~  2  s     S)$E)#,F
GC#h		&~	&B\\$F1a&q!f3(?cJcAq6]%AS2IJOOF%r   c                      [        [        [        R                  /5      S/S.5      n U R	                  SS/SSS9R                  5       n[        S/5      n[        R                  " X5        g )Nr   r   r   r   F)r   r   r   )	r   r   r'   r   r#   rh  r   r*   rP   r\  s      r   test_groupby_ngroup_with_nanr  J  sX    	bffX.aS9	:BZZc
55ZAHHJFqc{H6,r   c            	          [        SSSSS[        R                  [        R                  /0/ SQS9n U R                  SS	9R	                  5       n[        S/ S
Q0/ SQS9n[
        R                  " XSS9  g )Nr   r   r6   r   r   r  r%  r   r  )r   r6   r   r   r6   r   F)check_dtype)r   r'   r   r#   rz  r*   r+   r\  s      r   (test_groupby_ffill_with_duplicated_indexr  R  se    	C!Q1bffbff56>P	QBZZaZ &&(F#12:LMH&>r   c           	         [        [        R                  [        5      (       a   e[	        [        S5      [        S5      S S /[        S5      [        S5      [        S5      [        S5      /S.5      nUR                  SSS	9nU (       a  US
   nUR                  R                  n[        [        S5      S /SS9n[        R                  " X45        g )Nr   r6   r   r   r   )r   r=   r   Fr   r=   rU  )r4  decimalInvalidOperationr>  r   r   r#   rd  result_indexr	   r*   r  )rz  rQ   r   r   r   s        r   test_decimal_na_sortr  [  s    
 '22I>>>>	AJ
D$7aj'!*gaj'!*E	

B 
E%	(B[[[%%Fgaj$'e4H&+r   c                     / SQ/ SQ/ SQ/ SQ/n [        U / SQS9nUR                  / SQSS	9R                  S
SS/05      n[        R                  " SS[
        R                  S4S[
        R                  S4S[
        R                  S4// SQS9n[        R                  " SS/5      n[        SS/4SS/4SS/4SS/4/X4S9n[        R                  " X%5        g )N)r   r   r   r   )r   Nr   r   )r   Nr6   r   )r   Nr   r   )r   r   r   partnerrE   r   Fr  r  r  unique)r   r   r   r   r6   r   rF  )r  r  )r  r  r   r  )	r   r#   rm   r   rH  r'   r   r*   r+   )rQ   	df_dropnar   r!   rF   r   s         r   'test_groupby_dropna_with_nunique_uniquer  o  s    
+->@Q	RB"&@AIu=AA	Y)*F ""	q"&&!nq"&&!nq"&&!nEE $$&<>S%TUG
cUa#Z!cUa#Z8H &+r   c            	      P   [        / SQ/ SQ/ SQ/ SQ/ SQS.5      n U R                  / SQSS	9R                  [        R                  " S
SS9[        R                  " S
SS9[        R                  " SSS9S9n[        / SQ/ SQ/ SQ/ SQ/ SQS.5      n[
        R                  " X5        g )N)r6   r   r   r   r6   r   )r   r   $   r  r   r   )g@g       @   r   r   r  )   r   r   rT  r   r  )r  r   r  r   r  r  )r'  r(  col3col4col5)r'  r'  r(  Fra  r'  r  )r   r  r  r(  r  )new_colnew_col1new_col2)r   r   r   r   r6   )r   r  r   r  r   )r   r   r   r   r6   )r'  r(  r  r  r  )r   r#   rm   r   NamedAggr*   r+   r\  s      r   0test_groupby_agg_namedagg_with_duplicate_columnsr    s    	&'.)*	

B ZZ3eZDHH659FE:FG< I F #$&''	
H &+r   c            	          [        / SQS[        S5      S[        S5      // SQS.5      n U R                  SS/S	S
9R                  5       nUR                  n[
        R                  " U[        R                  " UR                  5       5      5        g )Nr  r   r   r6   )r6   r   r  r7   r_  r   r   Fr  )
r   rV  r#   r$   r!   r*   r  r   
from_framer+  )rQ   r   r!   s      r   test_groupby_multi_index_codesr    su    	!U5\1eEl!C,W
B S#Ju599;JE%!6!6u~~7G!HIr   c                      [        [        S5      [        S5      [        S5      [        R                  // SQS.5      n U R	                  SSS9n[        U5      nUS:X  d   eg )	Nz
2019-02-12z
2019-02-13r  r   r   Fr  r   )r   r   r   r   r#   rL   )rQ   r-   r   s      r   test_groupby_datetime_with_natr    se    	 L)L)L)	 	


B jjUj+G\FQ;;r   )r   r  r   r<  numpyr'   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr*   pandas.core.arraysr   pandas.core.commoncorecommonr  markfilterwarnings
pytestmarkr   r.   rS   rx   r   r   r   r   parametrizer   r   r   r   r  r  r*  r,  r6  r@  rS  r]  rd  rq  ru  ry  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$  r'  r/  r8  rC  rJ  rM  rQ  rW  r[  ri  rl  rw  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r8  rJ   rH  rM  rO  rQ  rY  r]  r`  rh  rk  rr  r  r  r  r  r  r  r  r  r  r  param
skip_if_nor  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/  r3  r6  r<  r?  rE  rS  rY  rd  rl  rv  ry  r~  r  r  r  r  r  r  r  r  r   r   <module>r     s
      	   , ) )      +    [[''(ST
D-*96E4$,@ 3%#s!459 69,4#n0%&P868+-+`6r  13EFG- H-@-*,D.2&,.,4	+( 
EN,	, : $70 8	
0@
'0(+0(..@-,$,.';D,,(
,-"(&,	,/.<	-B*
,?&D	8#$*0Z0-0,- S3*$56 74#/@*56$*.4b-:, Xy68"4vy6IJ \?\?4ST	2
$ S3%L13%#s!45		
		QC	Q1a|,
ac:
!G$
!I&
%	*	  : #;<
Ky& =; 6 2Fy&x;-&",8- - ,<:  3434		
 343434343434		
 343434343434		
7(+X,Y+X,,--&.$2, 
"
"0 	GS!	J&	FE"	L%(	J%	He$	#	U#		u%	T"	5!"<#"< !89, :, Ty!9:,, - edD\*VeT],CD,,	>) $$-- $7, 8,,$,.,(,(*M,4-, tS3%&89 :,( sElMQC;U !EF, G, z;&?@	, A	, m'DE, F,0 UBEEN(CD, E,  &0 	
 +8!	
,,  45, 6, B #KL, M,(*>, $70 80"&-R QH-/ ./ ,$-,$ (38- u6	udD!	1#tT"	& 7&-? u6, 7,&,(,>Jr   