
    .iks                       d dl m Z  d dlZd dlmZ d dlZd dlZd dlZd dlmZ d dl	m
c mZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dl m!c m"Z# ejH                  jK                  d      Z&d Z'd	 Z(d
 Z)d Z*d Z+d Z,d Z-d Z.ejH                  j_                  ddgddgg      d        Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9ejH                  j_                  dd d g      d         Z:d! Z;d" Z<d# Z=d$ Z>d% Z?d& Z@d' ZAd( ZBd) ZCd* ZDejH                  j_                  d+d,d-g      d.        ZEejH                  j_                  d+g d/      ejH                  j_                  d0d1d2g      d3               ZFd4 ZGd5 ZHd6 ZId7 ZJd8 ZKd9 ZLd: ZMd; ZNd< ZOd= ZPd> ZQd? ZRd@ ZSdA ZTdB ZUdC ZVdD ZWdE ZXdF ZYdG ZZdH Z[dI Z\dJ Z]dK Z^dL Z_dM Z`dN ZadO ZbdP ZcdQ ZddR ZedS ZfdT ZgdU ZhdV ZidW ZjdX ZkdY ZldZ ZmejH                  j_                  d[d\d\d]gg      d^        Znd_ Zod` Zpda Zqdb Zrdc Zsdd Ztde Zudf ZvejH                  j_                  dgdhdidjdhdigdhdjgg      ejH                  j_                  dkdldmdldmgg      dn               Zwdo ZxejH                  j_                  dpdqdqgg      ejH                  j_                  dd\gd\d]gg      ejH                  j_                  drd1gd gdsgdg ed g       ed       g ed dtdtduv       ej                  dwdxdyz       ej                  d gd{|       ej                  d gd}|       ej                  d2gd~|      gg d      ejH                  j_                  dg d      ejH                  j_                  dg d      d                                    Z{d Z|d Z}d Z~d Zd Zd Zd Zd Zd ZejH                  j_                  ddddd ed       ed      ddgifdd ed       ed       ed       ed       ed       ed      gifdd ed       ed       ed       ed       ed       ed      gifg      d        Zd Zd Zd Zd Zd ZejH                  j_                  dg d      d        Zd ZejH                  j_                  deddfedd2fedd2fedd2fedd1fedd2feddfedd2fedd2fedd2fedd1fedd2fg      d        ZejH                  j_                  dg d      d        ZejH                  j_                  dd2 ej                  d1 ej                   d            g      d        Zd ZejH                  j_                  ddddgfdddgfg      d        Zd Zd Zd Zd Zd ZejH                  j_                  d0d1d2g      d        Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZejH                  j_                  ddddgg      dɄ        Zdʄ ZejH                  j_                  dd gd2fdd gd1fdg      d΄        ZejH                  j_                  dg dϢ      dЄ        ZejH                  j_                  dddg      dԄ        ZejH                  j_                  dddg      d؄        ZejH                  j_                  ddd2ejR                  fg      dۄ        ZejH                  j_                  dg dݢg dޢg dߢfg dg dg dfg      d        ZejH                  j_                  dg d      d        ZejH                  jK                  d      ejH                  j_                  dg d      d               Zd Zd ZejH                  j_                  d0d1d2g      d        Zd ZejH                  j_                  ddtdg      d        ZejH                  j_                  dg d      d        Zd Zd Zd ZejH                  j_                  dd1d2g      ejH                  j_                  ddddgddfddd gddfg      d               Zd Zd ZejH                  j_                  dd1d2g      d        Zd Zd  Zd Zd Zy(      )datetimeN)Decimal)SpecificationError)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  B    t        t        dd            } d}| |k(  sJ y )NAB)keylevelz4Grouper(key='A', level='B', sort=False, dropna=True))reprr   )resultexpecteds     _/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/groupby/test_groupby.py	test_reprr   "   s&    'c-.FEHX    c                    | j                   j                  d   }| j                  |      }|j                         }| j                  |j	                  d            j                         }|j                   j
                  t        j                  k(  sJ |j                   j
                  t        j                  k(  sJ t        j                  ||d       y )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            
         t        g dg dt        j                  j                  d      j	                  d      t        j
                  t        j                  j                  d      j	                  d      d      d      } t        t        |             | d<   d	 }| j                  d
      j                  |      }|j                  }| j                  d
      j                  }t        j                  ||       y )Nfoobarr1   r2   r1   r2   r1   r1   )oner3   twothreer4   r4   r3   r5         float32r&   r   r   CDvaluec                 B    | j                   | d   j                            S )Nr=   )locidxmaxgroups    r   	max_valuez5test_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_mixedrR   4   s    	IM&&q)99!<"))//2BB1EYW		

B B.BwK2 jjo##I.G^^Fwwsw#**H68,r   c                    d	d}d }| j                  d       }|j                  t        j                  dd      }|j	                  t        j                  dd      }|j                  t        j                  dd      }|j                  d      }|j                  |      }t        j                  ||       t        j                  ||       t        j                  ||       |j                  |d      }|j	                  |d      }|j                  |d      }t        j                  ||       t        j                  ||       t        j                  ||       y )
Nr   c                 2    t        j                  | ||      S Naxisr'   
percentilexqrW   s      r   fz test_pass_args_kwargs.<locals>.fJ       }}Q--r   c                 2    t        j                  | dd      S )NP   r   rV   rX   r[   s    r   <lambda>z'test_pass_args_kwargs.<locals>.<lambda>M   s    "--2A. r   c                     | j                   S Nmonthra   s    r   rb   z'test_pass_args_kwargs.<locals>.<lambda>P   s
    agg r   r`   rV   皙?r\   Nr   )	r#   aggr'   rY   rL   	transformquantiler*   rO   )	tsr]   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expecteds	            r   test_pass_args_kwargsru   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                    dd}| j                  d |      }|j                  t        j                  dd      }|j	                  t
        j                  d      }|j                  d      }t        j                  ||d	       t        j                  ||       |j	                  t
        j                  d
dg      }|j                  d
dg      }|s<t        d      |_
        |j                  ddg d       |j                  ddg d       t        j                  ||d	       |j                  |d      }|j	                  t
        j                  d      }t        j                  ||       t        j                  ||d	       y )Nr   c                 2    t        j                  | ||      S rU   rX   rZ   s      r   r]   z*test_pass_args_kwargs_dataframe.<locals>.fe   r^   r   c                     | j                   S rd   re   ra   s    r   rb   z1test_pass_args_kwargs_dataframe.<locals>.<lambda>h   s
    177 r   as_indexr`   rV   rg   Fcheck_names皙?   level_0   r   r6   r6   )r?   columnr=   r   level_1)r}   rg   r}   rg   rh   ri   )r#   rj   r'   rY   rL   r   rl   r*   r+   rJ   r!   insert)tsframerz   r]   
df_groupedrp   rq   r   expected_seqs           r   test_pass_args_kwargs_dataframer   d   sI   . !2XFJr:J##I$6$6<L""3'H,eD*h/##I$6$6c
CL&&Sz2L"1X)<H);OP,%HR(J##I$6$6##>L*h/,eDr   c            	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | j                  d
 d d g      }t        |      t        |       k(  sJ | j                  d d g      }t        | j                  D ch c]  }|j                  |j                  f c}      }t        |      |k(  sJ y c c}w )Nr6   
   r~   ABCDr9   
2000-01-01r   r   periodsfreqrE   r!   c                     | j                   S rd   yearra   s    r   rb   ztest_len.<locals>.<lambda>   
    AFF r   c                     | j                   S rd   re   ra   s    r   rb   ztest_len.<locals>.<lambda>   
    agg r   c                     | j                   S rd   dayra   s    r   rb   ztest_len.<locals>.<lambda>   
     r   c                     | j                   S rd   r   ra   s    r   rb   ztest_len.<locals>.<lambda>   r   r   c                     | j                   S rd   re   ra   s    r   rb   ztest_len.<locals>.<lambda>   r   r   )r   r'   rF   rG   rH   r	   listobjectr   r#   rK   r!   r   rf   )rP   r-   r[   r   s       r   test_lenr   ~   s    	
		a 009d6l&1r<
B
 jj*,=OPGw<3r7"""jj*,=>?Grxx8!QVVQWW%89Hw<8### 9s   7C.c                     t        t        j                  gdz  g dd      } t        | j	                  d            dk(  sJ t        | j	                  d            dk(  sJ t        | j	                  ddg            dk(  sJ y )N   r   r6   r   abr   r   r   )r   r'   nanrK   r#   rP   s    r   test_len_nan_groupr      sq    	"&&AI6	7Brzz#1$$$rzz#1$$$rzz3*%&!+++r   c                      t        t        d      dgd      } t        ddgt        j                  t        d      gd      }|j                  d      d   }|j                         }t        j                  || d	       y )
N1Dr1   zm8[us])datar!   r&   )label	timedeltar   r   Fr{   )	r   r   r   pdNaTr#   medianr*   rO   )r   rP   gbactuals       r   test_groupby_timedelta_medianr      sf    9T?5'JH	eU^2669T?:ST	UB	G	[	)BYY[F68?r   keysr   r   c           	      P   t        t        dddt        j                  gg d      t        dddt        j                  gg d      dd      }|j	                  |||       }t        |      }|r| rd}n"|r| sd}nt        |      dk(  r| rdnd}n| rd	nd
}||k(  sJ | d|        y )Nr   r6   r   
categoriesr   r   c)observeddropnar   r~   	      z vs )r   r   r'   r   r#   rK   )r   r   r   rP   r   r   r   s          r   test_len_categoricalr      s     
aArvv.9EaArvv.9E	

B 
D8F	;BWFF	&	Ta1A1BX8&hZ88r   c                  ,   t        t        t        dd            dz  D  cg c]  } d| z  	 c}       }t        j                  j                  d      j	                  d      dz  }t        |      }|j                  |      }|j                          y c c} w )Nr   r         ?r6   iL  g      $@)r   r   rJ   r'   rF   rG   r#   mean)r[   r   r   	groupingsr-   s        r   test_basic_regressionr      st    d5B<&82&=>S1W>?F99  #**4047DtInnY'GLLN ?s   Bc                     d } d }d }t        g dt        d      t        dd      d      }t        g d	t        d      t        dd      d      }|j                  d
      j                  |       }|j                  d
      j                  |       }t	        j
                  ||       d}t        j                  t        |      5  |j                  d
      j                  |       d d d        t        j                  t        |      5  |j                  d
      j                  |       d d d        t        j                  t        |      5  |j                  d
      j                  |       d d d        t        j                  t        |      5  |j                  d
      j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)Nc                     | | j                   dz  dk(     dz  }|j                  r(t        g gdz  g gdz  ddg      }t        dg|      }|S |j	                  ddg      }|S )Nr6   r   r   r   levelsr"   namesr   r   )r   emptyr   r   	set_indexr[   y
multiindexress       r   f1z,test_indices_concatenation_order.<locals>.f1   sm    qssQw1n"77#B4!8B4!8CQT:VJSE<CJS#J'AHr   c                     | | j                   dz  dk(     dz  }|j                  r
t               S |j                  ddg      }|S )Nr6   r   r   r   )r   r   r   r   )r[   r   s     r   f2z,test_indices_concatenation_order.<locals>.f2   sC    qssQw1n"77;S#J'AHr   c                     | | j                   dz  dk(     dz  }|j                  r)t        g gdz  g gdz  ddg      }t        ddg|      }|S |S )	Nr6   r   r1   r2   r   r   r   r   )r   r   r   r   r   s       r   f3z,test_indices_concatenation_order.<locals>.f3   sa    qssQw1n"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   rJ   r#   rL   r*   r+   pytestraisesAssertionError)r   r   r   rP   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'7+ MC	~S	1 "


3b!"	~S	1 #Cr"# 
~S	1 "


3b!"	~S	1 #Cr"# #" "# #" "# #s0   !F;	!G!G!G;GGGG(c                 D   | j                  d       }|j                         }|j                  d       }t        j                  ||       |j                         }|D ci c]  \  }}||j                          }}}t        |      j                  }t        j                  ||       |j                  }|j                  d       }t        j                  ||       d}t        j                  t        |      5  |j                   d d d        y c c}}w # 1 sw Y   y xY w)Nc                 "    | j                         S rd   weekdayra   s    r   rb   z#test_attr_wrapper.<locals>.<lambda>   s    199; r   c                 0    t        j                  | d      S )Nr   )ddof)r'   stdra   s    r   rb   z#test_attr_wrapper.<locals>.<lambda>   s    RVVAA%6 r   c                     | j                   S rd   r9   ra   s    r   rb   z#test_attr_wrapper.<locals>.<lambda>  s
    QWW r   z-'SeriesGroupBy' object has no attribute 'foo'r   )r#   r   rj   r*   rO   describer   Tr+   r&   r   r   AttributeErrorr1   )rm   r-   r   r   namegpr   s          r   test_attr_wrapperr      s    jj./G[[]F{{67H68, F4;<bbkkm#<H<"$$H&(+ ]]F{{,-H68, :C	~S	1   = s    D:DDc                 .   | j                  d       }|j                  d      }t        |      dk(  sJ t        |j                        dk(  sJ | j	                         }|j
                  D cg c]  }|j                          c}|d<   |j                  d      j                  d      }t        j                  ||d       | j                  d      j                  d	       }|j                  d
       }t        |      dk(  sJ t        |j                        dk(  sJ |j                  d       }|D ]M  \  }}|j                         }	|j
                  D ])  }
t        j                  |j                  |
      |	d       + O |D ]'  \  }}|j
                  d   j                         |k(  r'J  |j                  }|j                  }|j!                         D ]8  \  }}| j
                  j#                  ||         }||k(  j%                         r8J  y c c}w )Nc                 "    | j                         S rd   r   ra   s    r   rb   z$test_frame_groupby.<locals>.<lambda>  s    		 r   r   r   r~   r   Fr{      c                 "    | j                         S rd   r   ra   s    r   rb   z$test_frame_groupby.<locals>.<lambda>  s     r   c                 (    | | j                         z
  S rd   r   ra   s    r   rb   z$test_frame_groupby.<locals>.<lambda>  s    a!&&(l r   c                 "    | j                         S rd   r   ra   s    r   rb   z$test_frame_groupby.<locals>.<lambda>#  s    affh r   r   )r#   	aggregaterK   rE   copyr!   r   r*   r+   headrk   r   rO   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;;F9~~i(226:H(JEB ll2&&'<=G##$:;K{r!!!{""#q((( ##$67K Qezz|;; 	QC"";>>##6%P	QQ " 3{{1~%%'72223 ^^FooG &1MM&&wqz2	Q##%%%&3 <s   ,Hc                 j   | j                  d      }|j                  d      }|j                  j                  dk(  sJ | j                  dd      j                  d      }|j                  j                  dk7  sJ |ddg   j	                  d      }|j                  j                  dk(  sJ |j	                  dd	d
      }|j                  j                  dk(  sJ |d   j                         }|j                  j                  dk(  sJ |d   j	                  d      }|j                  j                  dk(  sJ |d   j	                  dd	g      }|j                  j                  dk(  sJ d}t        j                  t        |      5  |d   j	                  dd	d       d d d        y # 1 sw Y   y xY w)Nr   Tnumeric_onlyFry   r;   r<   r   r   r;   r<   znested renamer is not supportedr   r1   r2   )r#   r   r!   r   rj   r   r   r   )rP   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 8678 8 8s   F))F2c           	         | d   }| d   }| j                  |j                  |j                  g      }|j                  d      }| j                  ddg      j                         }t        j                  |j
                  d d ddgf   |j
                  d d ddgf   d       t        t        j                  j                  d	      j                  d
      t        j                  j                  d	      j                  d
      t        j                  g d      t        j                  g d      dg d      } | j                  ddg      }|j                  d       y )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'   rF   rG   rH   rI   rj   )rP   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                     | j                  ddg      d   }|j                  ddg      }t        |j                  d      |j                  d      d      }t        j                  ||       y )Nr   r   r;   r   r   )r   r   )r#   rj   r   r*   r+   )rP   r-   r  r   s       r   !test_multi_key_multiple_functionsr!  m  s\    jj#s$S)GKK(E'++f"5gkk%>PQRH%*r   c            	         t        g dg dt        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      } | j                  ddg      }dd	g}|j                  |      }t        j                  |d
   j                  |      |d   j                  |      |d   j                  |      gg dd      }t        |j                  t              sJ t        |j                  t              sJ t        j                  ||       y )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<   r&  r'  )r<   r&  r'  r   )r   rW   )r   r'   rF   rG   rH   r#   rj   r   concat
isinstancer!   r   r*   r+   )r   r-   funcsr  r   s        r   "test_frame_multi_key_function_listr+  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%*r   c           
         t        g dg dg dt        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      }|j                  ddg      }d	d
g}t        j                  d      }| rd}t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr#  r$  )dullr-  shinyr-  r-  r.  r.  r-  r.  r.  r.  r6   r%  )r   r   r;   r<   r&  r'  r   r   r   r   &agg function failed [how->mean,dtype->-dtype 'str' does not support operation 'mean'r   )r   r'   rF   rG   rH   r#   reescaper   r   	TypeErrorrj   )using_infer_stringr   r-   r*  r   s        r   2test_frame_multi_key_function_list_partial_failurer5    s     &&q)99"=&&q)99"=&&q)99"=U+	
-D^ llC:&GUOE
))<
=C=	y	, E  s   (DDopc                 "    | j                         S rd   r$   ra   s    r   rb   rb     s    !%%' r   c                 "    | j                         S rd   r   ra   s    r   rb   rb     s    QVVX r   c           
         | }|j                  ddg      } ||      }g }g }|j                  d      D ][  \  }}|j                  d      D ]B  \  }	}
|j                  ||	f       |j                   ||
j                  d d ddgf                D ] t        j                  |ddg      }t        j                  |d      j                  }||_        dD ]C  } |||         }||   }||   }t        j                  ||       t        j                  ||       E |d   j                  |d   |d   g      j                         }|j                  ddg      j                         d   }t        j                  ||       y )	Nr   r   r;   r<   r   r   rV   r
  )r#   appendr?   r   from_tuplesr   r(  r   r!   r*   rO   r   )rP   r6  r   r-   r   r   valuesn1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsrH    sx   DllC:&GkGDF<<$ 6C{{3' 	6GBKKR!MM"SWWQc
]345	66
 
		S#J	7Byya(**HHN  -%
#,sm
z3/
w,- #YS	4956;;=F||S#J',,.s3H68,r   c                  t   t        ddgddgddggddg      } | j                  dd	
      d   j                  d      }t        ddgd      }t	        j
                  ||       | j                  dd	d      d   j                  d       }t        g ddt        d            }t	        j
                  ||       y )Nr   r6   r~   r   r  r   r   rD   Fry   r   T)rz   
group_keysc                 "    | j                         S rd   )cumsumra   s    r   rb   z-test_as_index_select_column.<locals>.<lambda>  s    !((* r   )r6   r  r  r   r   r!   )r   r#   	get_groupr   r*   rO   rL   rJ   rP   r   r   s      r   test_as_index_select_columnrQ    s    	QFQFQF+c3Z	@BZZeZ,S1;;A>Fq!f3'H68,ZZeZ=cBHHF icq:H68,r   c                     t        t        g dd            } | j                  dd      d   j                  d	      }t        | j                  d d
 t        d            }d g|j                  _        t        j                  ||       y )Nr   r   r;   alpharJ  rD   r   Fbyrz   r   r  r6   r   r   )	r   r	   r#   r$   rE   rJ   r   r*   r+   )rP   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfrX    sr    	5w?	@B::u:-c266E6JDBQuQx@H"VH$)r   c                     | dv rt        j                  d|         t        t        j                  j                  d      j                  ddd      dd	g
      } t        |j                  d      |              }| dk(  r|j                  d      }|j                         }| dk7  r$|d   j                  |d   j                        |d<   |j                  dd      } t        ||              }t        j                  ||       |j                  |       }t        j                  ||        t        |d	   |              }t        j                  ||       |d	   j                  |       }t        j                  ||       y )N)corrwithnthngroupz!GH 5755: Test not applicable for r6   r   r   )d   r6   )sizer   r   rD   r^  Fry   )r   skipr   r'   rF   rG   integersgetattrr#   renamereset_indexr%   r&   r*   r+   rj   )reduction_funcrP   r   rn   r   s        r   test_ops_not_as_indexre    sU    6677GHI	
		a ))!QX)>c

B 8wrzz#79H??6*##%H ,,RW]];


3
'A'WQ')F&(+UU>"F&(+,WQsV^,.F&(+sVZZ'F&(+r   c                 L   | j                  dd      }| j                  ddgd      }|d   j                  d      }|j                  d      j                  d d ddgf   }t        |t              sJ t        j                  ||       |d   j                  d      }|j                  d      j                  d d g df   }t        |t              sJ t        j                  ||       |d   j                         }|j                         j                  d d ddgf   }t        |t              sJ t        j                  ||       |d   j                         }|j                         j                  d d g df   }t        |t              sJ t        j                  ||       y )Nr   Fry   r   r;   r$   rS  )r#   rj   r?   r)  r   r*   r+   r$   )rP   r-   grouped2r   r   r   	expected2s          r   !test_as_index_series_return_frameri  :  sn   jjuj-Gzz3*uz5HS\e$F{{5!%%a#sm4Hfi(((&(+sm&GU#''?(:;Igy)))'9-S\F{{}  S#J/Hfi(((&(+sm!G""1o#56Igy)))'9-r   c                     | j                  dd      }d}t        j                  t        |      5  |d   j	                  d       d d d        y # 1 sw Y   y xY w)Nr   Fry   zColumn\(s\) C already selectedr   r;   r<   )r#   r   r   
IndexError__getitem__)rP   r-   r   s      r   (test_as_index_series_column_slice_raisesrm  S  sN    jjuj-G
+C	z	- &  %& & &s   AAc                    | }|j                  dd      }|j                  d      }|j                  dg      j                  d      }|j                  dd|j                         t	        t        |            |_        t        j                  ||       |j                  ddgd      }|j                         }|j                  ddg      j                         }t        t        |j                  j                  ddi      }|j                  dd|d          |j                  d	d|d	          t	        t        |            |_        t        j                  ||       y )
Nr   Fry   Tr  r   r   strictr   )r#   r   r   r!   r   rK   r*   r+   r   zipr>  )rP   r   r-   r   r   arrayss         r   test_groupby_as_index_cythonrr  \  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                     | j                  ddgd      }|d   j                  t              }|j                  t              j                  d d g df   }t	        j
                  ||       y )Nr   r   Fry   r;   rS  )r#   rj   rK   r?   r*   r+   )rP   r-   r   r   s       r   #test_groupby_as_index_series_scalarrt  s  s\    jj#sej4G S\c"F{{3##A$67H&(+r   c            	      b   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | j                  d
 d d g      }|j                         }t        j                  | j                  |j                         y )Nr6   r   r   r9   r   r   r   r   r   c                     | j                   S rd   r   ra   s    r   rb   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j                   S rd   re   ra   s    r   rb   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j                   S rd   r   ra   s    r   rb   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   )r   r'   rF   rG   rH   r	   r   r   r   r#   r$   r*   assert_almost_equalr>  )rP   r-   r  s      r   test_groupby_multiple_keyrz  }  s    	
		a 009d6l&1r<
B
 jj*,=OPGKKME299ell3r   c                     | j                         } t        j                  | d<   | j                  ddg      j	                         }| j                  ddg      j	                         }t        j                  |d<   t        j                  ||       y )Nbadr   r   )r   r'   r   r#   r   r*   r+   )rP   r  r   s      r   test_groupby_multi_cornerr}    sm    	BBuIJJSz"'')Ezz3*%**,HffHUO%*r   c                    | j                  d      }t        j                  d      }|rd}t        j                  t
        |      5  |j                  d       d d d        t        j                  t
        |      5  |j                          d d d        | j                  d d g df   } t        j                         | d<   | j                  d      }d}t        j                  t
        |      5  |j                  d	       d d d        t        j                  t
        |      5  |j                          d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   VxY w# 1 sw Y   y xY w)
Nr   r/  r0  r   r   r   r;   r<   r&  z0datetime64 type does not support operation 'sum'r$   )r#   r1  r2  r   r   r3  rj   r   r?   r   nowr$   )rP   r4  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                 `   | j                  d      } t        ||             }|j                         } t        | j                  | d   dk(  df   |             |j                  d<    t        | j                  | d   dk(  df   |             |j                  d<   t	        j
                  ||       y )Nr   r2   r   )r2   r   r1   )r1   r   )r#   ra  r   r?   r*   r+   )rP   r  r-   r   r   s        r   test_keep_nuisance_aggr    s     jjoG+WWl+-F{{}HSwrvvbg.>.C'DlSUHLLSwrvvbg.>.C'DlSUHLL&(+r   )r$   r   prodr   varsemr   r	  TFc                    | j                  d      }d}||v rq|so|rd| d}t        }n,|dv r	t        }d}nt        }t        j                  d| d      }t        j                  ||	      5   t        ||      |
       d d d        y  t        ||      |
      }|s
|dk(  rg d}	ng d}	 t        | j                  d d |	f   j                  d      |      |
      }
t        j                  ||
       y # 1 sw Y   y xY w)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#   r3  
ValueErrorr1  r2  r   r   ra  r?   r*   r+   )rP   r  r	  r4  r-   no_drop_nuisancer   klassr   rE   r   s              r   test_omit_nuisance_aggr    s    jjoGF'' <\N!LCE^+E<CE))8hOPC]]5, 	F*GG\*E	F 	F 0,/\J 5*G%GI7266!W*-55c:LI%
 	fh/	F 	Fs   ,C66C?c                     | j                  d      }t        }d}|rt        }d}t        j                  ||      5  |j                          d d d        y # 1 sw Y   y xY w)Nr   zcould not convertz-dtype 'str' does not support operation 'skew'r   )r#   r  r3  r   r   skew)rP   r4  r-   errr   s        r   $test_raise_on_nuisance_python_singler    sR    jjoG
C
C=	s#	&   s   AAc                 ^   | j                  ddg      }t        j                  d      }|rd}t        j                  t
        |      5  |j                  d       d d d        t        j                  t
        |      5  |j                          d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)Nr   r   r/  r0  r   r   )r#   r1  r2  r   r   r3  rj   r   )three_groupr4  r-   r   s       r   &test_raise_on_nuisance_python_multipler    s    !!3*-G
))<
=C=	y	, F	y	,    s   B=B#B #B,c           	         t        t        j                  g d      t        j                  g d      ddgdz  t        j                  j	                  d      j                  d      t        j                  j	                  d      j                  d      d      }|j                  d	d
g      }|ddg   j                  d      }|j                  d      }t        j                  ||       | dd j                  d      }|j                  d       }|d   j                  d      }t        j                  |d   |       |j                  j                  dk(  sJ y )Nr  r  r1   r2   r   r6   r  )r  r  k3r  r  r  r  r  r  r   Tr  r   r   r   c                 "    | j                         S rd   r   ra   s    r   rb   z*test_empty_groups_corner.<locals>.<lambda>  s    AFFH r   r   first)r   r'   rI   rF   rG   rH   r#   rj   r   r*   r+   rL   rO   r!   r   )r,   rP   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                      t        dg      } d}t        j                  t        |      5  | j	                  d        d d d        y # 1 sw Y   y xY w)Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r   c                     | dz   S )Nr1    ra   s    r   rb   z$test_nonsense_func.<locals>.<lambda>  s
    QY r   )r   r   r   r3  r#   )rP   r   s     r   test_nonsense_funcr    sB    	A3B
BC	y	, (


&'( ( (s   AAc                    | j                   }d|d<   t        j                  g d      t        j                  g d      g}t        j                  d      }|rd}t        j                  t        |      5  |j                  |      j                  d       d d d        |j                  d      j                  |      j                  d      }t        |j                  t              sJ d	 }t        j                  t        d
      5  |j                  |      j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Npeekaboo)bazr4   r   r   r   r/  r0  r   r   rD   c                 V    | j                   dk(  rt        d      | j                         S )N)r1   r3   Test error message)r   r3  r$   )sers    r   aggfunz5test_wrap_aggregated_output_multindex.<locals>.aggfun!  s&    88~%011wwyr   r  )r   r'   rI   r1  r2  r   r   r3  r#   rj   rN   r)  rE   r   r   )r,   r4  rP   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
 
y(<	= +


4""6*+ +% %+ +s   4!D1!D=1D:=Ec                 l   | j                  d      j                         }|j                  j                  dk(  sJ | j                  d      j                         }|j                  j                  dk(  sJ | d   j                  d      j                         }|j                  j                  dk(  sJ y )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                    | j                         }ddddd}dddd}| j                  |d      j                         }| j                  |d      j                         }t        j                  |d   D cg c]  }|j                  |       c}t        j                        }t        j                  |d   D cg c]  }|j                  |       c}t        j                        }| j                  |      j                         }	| j                  |      j                         }
d	\  |	j                  _        |
j                  _        t        j                  ||	       t        j                  ||
       y c c}w c c}w )
Nr   r   )r1   r2   r  qux)r3   r4   r5   r  r  r9   r  )r  r  )rc  r#   r$   r'   rI   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4AQ4BHHM HH!*8!45AQ5RXXM 188GKKMI088GKKMI1B.IOO)//.'9-'9- 	5 	6s   6E8;E=c                  z   t        g dt        g dd            } t        g dt        t        t        dd            d            }| j	                  d	      j                         }t        j                  ||       | j	                  dg	      j                         }t        j                  ||       | j	                  d
	      j                         }t        j                  ||       | j	                  d
g	      j                         }t        j                  ||       d}t        j                  t        |      5  | j	                  d	       d d d        t        j                  t        |      5  | j	                  d	       d d d        d}t        j                  t        |      5  | j	                  g 	       d d d        d}t        j                  t        |      5  | j	                  ddg	       d d d        t        j                  t        |      5  | j	                  ddg	       d d d        d}t        j                  t        |      5  | j	                  dg	       d d d        y # 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)N)r   r6   r   r   r~   r      r  )r   r6   r   r   r~   r   r6   r  r1   rJ  )r%     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   rJ   r#   r$   r*   rO   r   r   r  )sr   r   r   s       r   test_groupby_level_nonmultir  K  s(   )51IPU+VWA*E$uQ{2C%,PQHYYQY##%F68,YYaSY!%%'F68,YYRY $$&F68,YYbTY"&&(F68,
>C	z	- 					z	- 				
!C	z	- 				
6C	z	-  			A	 	z	-  			A	 
>C	z	- 				           sH   ?I45J-J%JJ%J14I>J
JJ"%J.1J:c                      t        t        j                  d      dz  g d      } t        dt        ddg            }| j	                  d	      j                         }t        j                  ||       y )
Nr~         ?       @)r   r   r   r   r   r!   )r  y      @      $@r   r   r  r  )r   r'   aranger	   r#   r$   r*   rO   )r   r   r   s      r   test_groupby_complexr  k  sY    BIIaLF+<@A'uaV}=HYYQY##%F68,r   c                      t        dddddddddg      } | j                  d      j                         }t        dgdggt        ddgd	      t        d
g            }t	        j
                  ||       y )Nr6   r  r   r         ?      ?r   r         ?rJ  r   r!   rE   )r   r#   r   r	   r*   r+   rP  s      r   test_groupby_complex_meanr  t  s    	&!&!&!	

B ZZ_!!#F
f(s3seH
 &(+r   c                     t        dddddddddg      } t        t        j                  g dt        j                        t	        g dd	
      t	        dg            }| j                  d	d      j                         }t        j                  ||       t	        g dd	
      |_	        | j                  d	d      j                         }t        j                  ||       y )Nr   r  r   r  r~   )r   r   r   r9   )r  r        ?        r   rJ  r   r  Fsort)r  r  r  T)
r   r'   rI   r)   r	   r#   r  r*   r+   r!   rP   r   r   s      r   test_groupby_complex_numbersr    s    	&!&!!	

B 
"((+2=seH
 ZZ%Z(..0F&(+ 9DHNZZ$Z'--/F&(+r   c                  ^   t        g dt        g d            } t        g dt        g d            }| j                  |      }|j                         }| j                  |j	                  | j
                        j                        j                         }t        j                  ||       y )N)      @g      "      @g      Y@g      g     K@g@)r   r   r   der]   rn   r  )r   r   r  r  r  g      @)r   r   r  r]   rn   h)	r   r	   r#   r   reindexr!   r  r*   rO   )s1s2r-   r  rG  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                  Z   t        t        g dg dgddi      } t        j                  |       }t        j                  g d      }t	        t
        j                  j                  d      j                  d      ||      }|j                  d	
      j                         }t        j                  |j                  |       |j                  d	
      j                  d      }t        j                  |j                  |       |j                  d	
      j                  d       }t        j                  |j                  |       |j!                  d	      \  }}d|d<   |j                  d	
      j                  d      }t        j                  |j                  |j                  d d        y )N)r2   r2   r  r  r1   r1   r  r  )r3   r4   r3   r4   r3   r4   r3   r4   ro  T))r   cat)r   dog)r   r  )r   r  r6   )r7   r~   r  r   r  r   c                 "    | j                         S rd   r   ra   s    r   rb   z0test_groupby_with_hier_columns.<locals>.<lambda>  s     r   r2   )r   r1   r  r  )r   rp  r   r=  r   r'   rF   rG   rH   r#   r   r*   assert_index_equalrE   rj   rL   	sortlevel)tuplesr!   rE   rP   r   sorted_columns_s          r   test_groupby_with_hier_columnsr    se   HH	

 	
F ""6*E$$@G 

		a 008w
B ZZaZ %%'F&..'2ZZaZ $$V,F&..'2ZZaZ &&'9:F&..'2  ))!,NABzNZZaZ %%4%8F&.."**Sb/:r   c                     | j                  | d   j                        }| j                  | d   j                  d             }|j                         }|j                         }t	        j
                  ||       y )Nr   )r#   r>  rb  r$   r*   r+   )rP   r-   rg  r   r   s        r   test_grouping_ndarrayr    sY    jjC(Gzz"S'.../H[[]F||~H&(+r   c                      t        g dd      } t        g dg dg dg dg dd	| 
      }|j                  g d      }|j                  d      }|j	                         }t        j                  ||       y )Nr   r   r6   r   r~   r!   rJ  )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#   rj   r   r*   r+   )r!   r   r-   r   r   s        r   test_groupby_wrong_multi_labelsr    sk    /0E;;;A(	
 	D ll89G[[ F||~H&(+r   c                    | j                  | d         j                  d      }| j                  | d   d      j                  d      }|j                  j                  dk(  sJ d|v sJ | j                  | d   | d   g      j                         }| j                  | d   | d   gd      j                         }|j                  j                  dk(  sJ d|v sJ d|v sJ y )Nr   Tr  Fry   r   r   r   )r#   r   r!   r   r   rP   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                     | j                  d      d   }|j                         j                  dk(  sJ |j                         j                  dk(  sJ d }|j	                  |      j                  dk(  sJ y )Nr   r;   c                 2    t        j                  |       dz  S Nr6   )r'   r$   ra   s    r   rb   z.test_seriesgroupby_name_attr.<locals>.<lambda>  s    Q r   )r#   r  r   r   rj   )rP   r   testFuncs      r   test_seriesgroupby_name_attrr    sj    ZZ_S!F<<>#%%%;;=$$$&H::h$$+++r   c                     t        g dg dt        j                  j                  d      j	                  d      dz   t        j
                  d      d      } | j                  dg      j                  j                         }| j                  j                  | j                        j                         }t        j                  ||       y )Nr0   )r3   r3   r4   r4   r4   r4   r3   r4   r6   r7   r   r:   r   )r   r'   rF   rG   rH   r  r#   r   r  r   r*   rO   r  s      r   test_consistency_namer    s     
II&&q)99!<sB1		

B zz3% ""((*HTT\\"$$%%'F68,r   c                 j   dd}d }| j                  d      j                  |      }|j                  j                  J | j                  d      j                  |d      }|j                  j                  dk(  sJ | j                  d      j                  |      }|j                  j                  J y )Nc                 $    t        dddd|      S )Nr   r6   r   r  r   	omissionsrJ  )r   )rP   r   s     r   	summarizez0test_groupby_name_propagation.<locals>.summarize  s    11=DIIr   c                 D    t        dddd| j                  d   d         S )Nr   r6   r   r  r   r;   rJ  )r   ilocr   s    r   summarize_random_namez<test_groupby_name_propagation.<locals>.summarize_random_name  s$     11=BGGAJsOTTr   r   metricsrd   )r#   rL   rE   r   )rP   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                  *   t        t        d      D  cg c]  } t        j                  d       c}       }|j	                  d      }|j                         }|j	                  |d         j                         }t        j                  ||       y c c} w )Nr   r   )r   rJ   r'   r  r#   r   r*   r+   )r[   rP   r-   r   r   s        r   test_groupby_nonstring_columnsr  &  sk    	595aBIIbM5	6BjjmG\\^Fzz"Q% %%'H&(+	 6s   Bc                  :   t        g dgg d      } t        ddggddgt        dgd	      
      }| j                  d      j                         }t	        j
                  ||       | j                  d      j                         }t	        j
                  ||       y )Nr   r   r6   )r   r   r   rD   r   r6   r   r   r   rJ  r   )r   r	   r#   r  r*   r+   r$   r  s      r   test_groupby_mixed_type_columnsr  .  s}    	I;	6B1a&C85!3;OPHZZ_""$F&(+ZZ_  "F&(+r   c                  j   t        j                  d      } | j                  t         j                         t	        | d d df         }t        j
                  t        d      d      }|j                  |      j                  t        j                        }|j                         j                         sJ y )N)r]  r]  r   r   )r'   r   fillr   r   tilerJ   r#   rj   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                  J   t        dgdz        } t        t        j                  j	                  d      j                  d      | d d d         }t        j                  j	                  d      j                  ddd      }|j                  |      }d }|j                  |       y )	N
aaaaaaaaaar]  r6   r  r  r   r   c                 Z    t        t        t        t        | j                                    S rd   )rK   setmapidr!   ra   s    r   rb   z5test_series_grouper_noncontig_index.<locals>.<lambda>N  s    #c#b!''*+, r   )	r	   r   r'   rF   rG   rH   r`  r#   rj   )r!   r>  labelsr-   r]   s        r   #test_series_grouper_noncontig_indexr#  D  s    8*s"#EBII))!,<<R@cPQc
SFYY""1%..q!R8F nnV$G 	-AKKNr   c                     t        t        d            } t        j                  g dd      }d }d }| j	                  |      }|j                  |      }|j                  t        j                  k(  sJ t        |j                  d   t              sJ |j                  |      }|j                  t        j                  k(  sJ t        |j                  d   t              sJ y )Nr   )r   r   r   r  r  r   r9   c                 F    t        t        | j                                     S rd   )r   strr   ra   s    r   convert_fastz>test_convert_objects_leave_decimal_alone.<locals>.convert_fastV  s    s1668}%%r   c                     t        | j                  j                        dkD  sJ t        t	        | j                                     S ri   )rK   r>  baser   r&  r   ra   s    r   convert_force_purezDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pureY  s2    188==!A%%%s1668}%%r   r   )r   rJ   r'   rI   r#   rj   r&   object_r)  r  r   )r  r"  r'  r*  r-   r   s         r   (test_convert_objects_leave_decimal_aloner,  R  s    uQxAXX/s;F&&
 iiG[[&F<<2::%%%fkk!ng...[[+,F<<2::%%%fkk!ng...r   c                  f   t        g t        j                  dd      d      } | d   j                  t        j                  k(  sJ | j                  d      j                         }t        g dt        j                        }t        dt        g |d      i      }t        j                  ||d	
       y )Nr   r)   r9   )r[   rJ   r[   r   r&   rJ   r!   r&   T)	by_blocks)r   r'   r  r&   float64r#   r  r	   r   r*   r+   )rP   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyr3  i  s    	bii&AB	CBc7==BJJ&&&ZZ_""$Fbs"**5I'6"IW#MNOH&(d;r   c                      t        dgdgdgd      } | j                  ddg      d   j                         }t        dgt	        j
                  dgdggddg      d      }t        j                  ||       y )	Nr   l    4;PU  )r  r  r=   r  r  r=   r;  rJ  )r   r#   r  r   r   from_productr*   rO   rP  s      r   $test_groupby_unit64_float_conversionr6  t  s~    	aSQC;O:PQ	RBZZ(+,W599;F	!qc
7H2EFH
 68,r   c                    | j                  t        | d               j                  d      }| j                  | d         j                  d      }t        j                  ||d       t        j                  t        d      5  | j                  t        | d   d d              d d d        t        d	d
gddgt        j                  j                  d      j                  d      d      } | j                  ddg      j                         }| j                  | d   | d   g      j                         dg   }y # 1 sw Y   xY w)Nr   Tr  Fr{   z^'foo'$r   r  r   r   r   r~   r6   )r1   r2   valr1   r2   r8  )r#   r   r   r*   r+   r   r   KeyErrorr   r'   rF   rG   rH   rP  s      r   "test_groupby_list_infer_array_liker:    s   ZZRW&+++>Fzz"S'"''T':H&(>	xz	2 '


43%&' 
q6q699((+;;A>	

B ZZ',,.Fzz2e9bi01668%AH' 's   !D::Ec                  F   d} t        t        d      d|       }t        ddgddggd	d
g|      }|j                  t	        d|       d	g      j                         }|j                  |j                  d	g      j                  t              }t        j                  ||       y )Nr  z2015-09-29T11:34:44-0700r6   )startr   r   r   r   r      metricr>  r   r   )r   r   )r   r   r   r#   r   r   r   r!   r%   floatr*   r+   )r   r!   rP   r   r   s        r   $test_groupby_keys_same_size_as_indexr@    s    D23QTE 
S"IRy)Hh3Gu	UBZZqt4h?@EEGF||RXXx0188?H&(+r   c                     d} t        t        j                  j                  d      j	                  d      t        d            }t        j                  t        |       5  |j                  d       d d d        t        t        j                  j                  d      j	                  d      t        d            }t        j                  t        |       5  |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	Nz^'Z'$r6   )r   r~   r   rD   r   Z)r6   r~   )
r   r'   rF   rG   rH   r   r   r   r9  r#   )r   df1r   s      r   test_groupby_one_rowrD    s    
C

		a 008$v,C 
xs	+ C

		a 008$v,C 
xs	+ C  
 s    C2C>2C;>Dc                  <	   t        t        j                  j                  d      j	                  d      t        j
                  t        d      t        j
                  t        d      t        j
                  t        d      t        j
                  t        d      gt        j
                  dt        j
                  dt        j
                  dt        j
                  dgd      } | j                  d      }t        d	d
d      t        ddd      g}t        |j                  j                               }t        |      dk(  sJ t        ||d      D ](  \  }}t        j                  |j                  |   |       * t        j                   |j"                  j$                  d   j&                  |        |j(                  dk(  sJ t        d      t        j*                  d	dgt        j,                        t        d      t        j*                  ddgt        j,                        i}|j.                  D ](  }t        j0                  |j.                  |   ||          * t        j                   |j3                  t        d            | j4                  d	dg          t        j                   |j3                  t        d            | j4                  ddg          t7        j8                  t:        d      5  |j3                  t<        j>                         d d d        t        t        j
                  t        j
                  t        j
                  gt<        j>                  t<        j>                  t<        j>                  gd      }|d   j@                  dk(  sJ |d   j@                  dk(  sJ dD ]  }|j                  |      }|j                  i k(  sJ |j(                  dk(  sJ |j.                  i k(  sJ t7        j8                  t:        d      5  |j3                  t        j
                         d d d        t7        j8                  t:        d      5  |j3                  t<        j>                         d d d         y # 1 sw Y   lxY w# 1 sw Y   \xY w# 1 sw Y   xY w)Nr6   r7   z
2013-01-01z
2013-02-01r   r   )r>  dtr&  rF  r      r  )r<  stopstepr   r  Tro  r   z2013-01-01 00:00:00r9   z2013-02-01 00:00:00r   z^NaT$r   )r   natr   r1  rK  zdatetime64[s]z^nan$)!r   r'   rF   rG   rH   r   r   r#   r   sortedr   r   rK   rp  r*   r  r+   _grouperr   r  ngroupsrI   intpr   assert_numpy_array_equalrO  r  r   r   r9  r   r   r&   )rP   r-   r   r   r  r  nan_dfr   s           r   test_groupby_nat_excluderR    s   	ii++A.>>qA,',',','	 FFCbffc2663G	

B  jjG 	!,+H '..%%'(Dt9>>D(40 41 	gnnQ/34 '**44Q7;;R@??a 	'("((Aq6*I'("((Aq6*IH
 __ E
##GOOA$6DE '++Il,CDbggqRSfoV'++Il,CDbggqRSfoV	xx	0 ""&&!" ("&&"&&"&&1IJF %=)+++%=/111 &..%~~###!###"$$$]]884 	&bff%	&]]884 	&bff%	& 	&&" "	& 	&	& 	&s$   / Q9 R R9RR	R	c                      t        t        j                  t        j                  gt        j                  t        j                  gddgd      } | j                  ddg      j                  }|i k(  sJ y )Nr   r6   r   r   r   )r   r'   r   r#   r   rP   r   s     r   #test_groupby_two_group_keys_all_nanrU    sU    	"&&"&&)0@1vN	OBZZc
#++FR<<r   c                  v   t        t        d            } ddg| d<   ddg| d<   ddg| d	<   d
dg| d<   | j                  dg      j                  d      }t	        j
                  ddgddgg      }t        j                  |j                  t        dd	g             t        j                  |j                  |       y )Nr6   r  g1g2rB   r   zerosr   onesl1l2r   Tr          r   )r   rJ   r#   r   r'   rI   r*   r  rE   r	   rP  r>  )r  tmp
res_valuess      r   test_groupby_2d_malformedr`    s    a!AAgJQAgJAAfIAgJ
))WI

#
#
#
6CC:Sz23J#++ugv->'?@

J7r   c            	          t        j                  t        j                  d      t        j                  d      t        j                  d      f      } t        j                  d      }t        || || t         j                  j                  d      j                  d      d      }|j                  g d      j                         }|j                  g d      j                         }t        |      t        |      k(  sJ y )Ni'  i  ia  r6   )r   r   r;   r<   r&  r:   )r<   r;   r   r   )
r'   concatenater  r   rF   rG   rH   r#   r$   rK   )r   r   rP   rW  rights        r   test_int32_overflowrd    s    
		%("))E*:BIIdOLMA
		%A	&&q)99%@	

B ::*+//1DJJ+,002Et9E
"""r   c                     t        g dg dg dt        j                  j                  d      j	                  d      d      } | g d   j
                  D cg c]  }t        |       }}t        j                  |      }| j                  g dd	      j                         }t        j                  |j                  j
                  |g d
          | g d   j
                  D cg c]  }t        |       }}t        j                  |      }| j                  g dd	      j                         }t        j                  |j                  j
                  |       | g d   j
                  D cg c]  }t        |       }}t        j                  |      }| j                  g dd	      j                         }t        j                  |j                  j
                  |g d          t        g dg dt        j                  j                  d      j	                  d      d      } | j                  ddg      d   }|j                         }d fd} || |ddgd       y c c}w c c}w c c}w )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                 "    | j                         S rd   r8  ra   s    r   rb   z)test_groupby_sort_multi.<locals>.<lambda>;  s    AEEG r   c                     | |   j                   D cg c]  }t        |       }}t        j                  |      } || j	                  |      |         }|j                         D ]  \  }}	||   |	k(  rJ  y c c}w rd   )r>  tuplecomasarray_tuplesafer#   r   )
rP   r   r   fieldr]   rowtupsr   r  r  s
             r   _check_groupbyz/test_groupby_sort_multi.<locals>._check_groupby;  sx    &(hoo6sc
66$$T*RZZ%e,-NN$ 	"DAq!9>!>	" 7s   A8)r   r'   rF   rG   rH   r>  rk  rl  rm  r#   r$   r*   rP  r!   )rP   ro  rp  r   r[   r-   rq  s          r   test_groupby_sort_multirr    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E!H9D9  &DZZdZ3779F 3 3T)_E	##&&q)99!<	

B jj#s$S)G[[]F2C " 2vSz3/A >
 >
 :s   I!$I&-I+c                      t        g dg ddz  d      } | j                  dd      j                  d       }t        j                  || d	g          y )
N)r   r   r   r   r   r   rf  r6   )r   r   r   FrK  c                     | S rd   r  ra   s    r   rb   z/test_dont_clobber_name_column.<locals>.<lambda>J  s     r   r   )r   r#   rL   r*   r+   rT  s     r   test_dont_clobber_name_columnrv  E  sP    	.8MPQ8QR
B ZZ%Z066{CF&"fX,/r   c            	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | j                  d
 d      }|j                  d       }|D cg c]  \  }}|j                  d      d d  }}}t        j                  |      }t        j                  ||       | d   j                  d d      }|j                  d       }|D cg c]  \  }}|j                         d d  }}}t        j                  |      }t        j                   ||       y c c}}w c c}}w )Nr6   r   r   r9   r   r   r   r   r   c                     | j                   S rd   re   ra   s    r   rb   z&test_skip_group_keys.<locals>.<lambda>U  s
    AGG r   Frt  c                 ,    | j                  d      d d S )Nr   rV  r   sort_valuesra   s    r   rb   z&test_skip_group_keys.<locals>.<lambda>V  s    Q]]c]%:2A%> r   r   rz  r   c                     | j                   S rd   re   ra   s    r   rb   z&test_skip_group_keys.<locals>.<lambda>]  s
     r   c                 (    | j                         d d S Nr   r{  ra   s    r   rb   z&test_skip_group_keys.<locals>.<lambda>^  s    Q]]_Ra%8 r   )r   r'   rF   rG   rH   r	   r   r   r   r#   rL   r|  r   r(  r*   r+   rO   )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F
Ue3'+FFFyy H&(+#h0UCG]]89F8?@*#ue!"1%@F@yy H68, G As   
EEc                     | d   j                         }d |_        |j                  | d         j                  d      }|j                  J y )Nr;   r   r$   )r   r   r#   rj   )float_framer  r   s      r   test_no_nonsense_namer  f  sJ    CAAFYY{3'(,,U3F;;r   c                     t        t        j                  d      j                  dd            } d| d<   g d| d<   | j	                  d      }|j                  ddd	      }|d   j                  t        j                  k(  sJ y )
Nr   r   r   test)g?r  g?flr$   r^  )r  r6   )r   r'   r  reshaper#   rj   r&   r1  )r[   r-   r   s      r   test_multifunc_sum_bugr  o  sp    "))A,&&q!,-AAfIAdGiiG[[&12F$<+++r   c                     d }d }| j                  d      d   j                  |      }| j                  d      d   j                  |      }t        |t              sJ t	        j
                  ||       y )Nc                 D    | j                         | j                         dS Nr  r  r  rA   s    r   r]   z(test_handle_dict_return_value.<locals>.f{  s    yy{599;77r   c                 V    t        | j                         | j                         d      S r  )r   r  r  rA   s    r   rn   z(test_handle_dict_return_value.<locals>.g~  s    eiik%))+>??r   r   r;   )r#   rL   r)  r   r*   rO   )rP   r]   rn   r   r   s        r   test_handle_dict_return_valuer  z  si    8@ ZZ_S!''*Fzz#s#))!,Hff%%%68,r   grouperr   r   c                 t   d }d fd}| j                  |d      }|j                  |       |j                         |j                  d       |j                  |       |d   j                  |       |d   j                         |d   j                  |g       |d   j                  |       y )Nc                 "    | j                   J | S rd   rJ  rA   s    r   r]   ztest_set_group_name.<locals>.f  s    zz%%%r   c                 >    | j                   J | j                         S rd   )r   r$   rA   s    r   freducez$test_set_group_name.<locals>.freduce  s    zz%%%yy{r   c                      |       S rd   r  )r[   r  s    r   freducexz%test_set_group_name.<locals>.freducex  s    qzr   Frt  r
  r;   )r#   rL   r   rk   )rP   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                      t        g dt        j                  d      d      } g fd}| j                  ddd      j	                  |       g d}|k(  sJ y )	N)r   r   r   r   r6   r6   r  r   c                 Z    j                  | j                         | j                         S rd   )r<  r   r   )rB   r   s    r   r]   z6test_group_name_available_in_inference_pass.<locals>.f  s    UZZ zz|r   r   F)r  rK  r  )r   r'   r  r#   rL   )rP   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                 8   | j                  | d   j                        j                         }|j                  j                  J | j                  | d   j                  | d   j                  g      j                         }|j                  j
                  dk(  sJ y )Nr   r   )NN)r#   r>  r$   r!   r   r   r  s      r   test_no_dummy_key_namesr    s{    ZZ3'++-F<<$$$jj"S'.."S'..9:>>@G==,...r   c                     t        ddgddggg dg dgddg      } t        g d| 	      }t        ddgddggg d
g dgddg      } t        g d| 	      }|j                  ddgd      j                         }t	        j
                  ||       |j                  ddgd      j                         }t	        j
                  ||j                                y )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*   rO   
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                     d} t        dd|       }t        t        j                  |       t        j                  |       d|      }dd}|j	                  d       }|j                  d	 |t        j                        i      }|j                  d	 |t        j                  d
      i      }t        j                  ||       y )N  z2012/1/15min)r<  r   r   )highlowr  c                       fd}|S )z>
        Run an aggregate func on the subset of data.
        c                     | j                   | j                  j                  d          j                         }r| | j                  d       t	        |      dk(  ry  |      S )Nc                      | j                   dk  S )Nr%  )hourra   s    r   rb   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>  s    !&&2+ r   r   )r?   r!   r   r   rK   )r   r  fixfuncs     r   _funczGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func  sR    (=>?FFHATZZ]#1v{7Nr   r  )r  r  r  s   `` r   
agg_beforez8test_groupby_reindex_inside_function.<locals>.agg_before  s    
	 r   c                 X    t        | j                  | j                  | j                        S rd   )r   r   rf   r   ra   s    r   rb   z6test_groupby_reindex_inside_function.<locals>.<lambda>  s    8AFFAGGQUU#C r   r  T)F)	r   r   r'   r  r#   rj   r  r*   r+   )r   indrP   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                  ,   t        g dg dg dd      } | j                  ddg      } | j                  ddgd      }|j                  d	      }t	        j
                  g d
ddg      }t        dgdgdgg|dg      }t        j                  ||       y )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   r;  r6   r   r   r=   r  )r   r   r#   rj   r   r=  r*   r+   )rP   r   r   r  rG  s        r   $test_groupby_multiindex_missing_pairr    s    	**!	

B 
x*	+B8X"6TBJ
..
C

 
 ,Xx4HC aS1#sO3	
BC#s#r   c                 D   t        j                  g dddg      }t        g dg|      }|j                  j	                         sJ t        g dg dg d	g
      }|j                  dddgd      }|j                         }|j                  j	                         rJ |j                  d      j                         }t        j                  |       5  |j                  d      j                         }d d d        t        j                  |       t        g dg dg dd      j                  ddg      }|j                  j	                         rJ ddddgfD ]  }dD ]  }|j                  ||d      j                  t        j                        }|}t        j                  ||       |j!                         j                  ||d      j                  t        j                        }|j!                         }t        j                  ||         y # 1 sw Y   $xY w)N))r    )b1c1)b2c2r   r   r;  r   r   r~   rD   rg  )r   r  r  r   )r   r  r  r~   )rE   r   r   r  )r!   rE   r>  )r   r   r   r   r   r   r6   r   r~   r[   r   zr[   r   r   r   )FTF)r   r  rK  )r   r=  r   rE   _is_lexsortedpivot_tablerc  r#   r   r*   assert_produces_warningr+   r   r!   rL   drop_duplicatesr  )	performance_warninglexsorted_milexsorted_dfnot_lexsorted_dfr   r   rP   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##C(--/H		#	#$7	8 6!))#.3356(F+ 
"LI
ic
  xx%%'''QA 4! 	4DZZe$5ZIOO))F H!!(F3 u4EBy001 
 }}H!!(F3	446 6s    HHc                  0   t        t        d      g d      } | j                  t        d            }|j                  d       }| j                  g d   }t        j                  ||       | d   }|j                  t        d            }|j                  d       }|j                  g d      }t        j                  ||       | j                  j                  t              | _	        | j                  t        d            }|j                  d	       }| j                  g d   }t        j                  ||       | d   }|j                  t        d            }|j                  d
       }|j                  g d      }t        j                  ||       y )NABCDE)r6   r   r6   r   r   r  ababbc                     t        |       dkD  S r   rK   ra   s    r   rb   z4test_index_label_overlaps_location.<locals>.<lambda>6      A
 r   r  r   c                     t        |       dkD  S r   r  ra   s    r   rb   z4test_index_label_overlaps_location.<locals>.<lambda><  r  r   c                     t        |       dkD  S r   r  ra   s    r   rb   z4test_index_label_overlaps_location.<locals>.<lambda>C  r  r   c                     t        |       dkD  S r   r  ra   s    r   rb   z4test_index_label_overlaps_location.<locals>.<lambda>I  r  r   )r   r   r#   filterr  r*   r+   r   rO   r!   r%   r?  )rP   rn   r   r   r  s        r   "test_index_label_overlaps_locationr  1  s8    
4=	8B


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


4=!AXX*+Fwwy!H&(+
Q%CDM"AXX*+Fxx	"H68,r   c                  L   d} t        j                  |       }t        |dz  d|z  d|z  d      }t        |dz  dz  d|z  d|z  d      }|j                  d      }|j	                  d      }|j                  d      }|j	                  d      }t        j                  ||       y )	Nr  r6          @      @r   r   r   r   )r'   r  r   r#   rk   r*   r+   )nr[   rP   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                      t        g dg dg dg dg dd      }|j                         }|j                  |      } fd}|j                  |       y )	N)r   r   r   r   r   r   r   r   )r  r   r  r   r   rn   rn   rn   )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  rz  c                 R    t        j                  | | j                               y )Nrz  )r*   r+   r|  )r[   r  s    r   	test_sortz.test_groupby_preserves_sort.<locals>.test_sortw  s    
a+!>?r   )r   r|  r#   rL   )r  r  rP   rn   r  s   `    r   test_groupby_preserves_sortr  ]  sW     
2E,=H	

B 
;	'B


< A@ GGIr   c                     t        t        t        j                         dd      j	                         t        d      d      } | j                  d      j                  j                  | d<   | j                  d      j                  j                  | d<   t        j                  t        d	      5  | j                         j                  ddd
d       d d d        y # 1 sw Y   y xY w)Nr  MEr   )	eventDatethenamer  r   rf   z	'badname'r   badnamer  )r!   rE   r>  aggfunc)r   r   r   todaytolistrJ   r   r!   r   rf   r   r   r9  rc  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 	% 	

 
 
s   /$CC%rE   r;   r>  r]  r   z
US/Eastern)tz
2016-01-01r   r<   r   Int64r9   Float64boolean)boolintr?  r&  r  dt64dt64tzperiodr  r  r  )idsmethod)attrrj   rL   )r@   idxminr  r  r$   r  r  kurtc                    d }t        t              rdv rd}t        d   t              rdv rd}t        dt	        d            }t        d	      r)|j                  j                  k(  j                         sJ |j                  d d }|j                  d
|d
      |    fd}	fd}
t        |j                  j                  d   t        j                        }|j                  j                  d   j                  dk(  }t        t              }t        |j                  j                  d   t        j                        }t        t              rj                   sdv rdv rd d}t"        }nd d}t$        }t'        j(                  ||      5   |	        d d d        dv r6t        | t              r& |	d      } |
       }t+        j,                  ||       y dv r|s|s	|s|rdk7  r|rd}n|rd}n|rd d}nd}dv rd j/                  |d! dg      }t'        j(                  t"        |      5   |	        d d d        t        | t              sy dv ry  |	d      }|j1                        g    }|r |
       }t+        j,                  ||       y  |	       }|j1                        |    }d"v r%|j3                  |j4                  j                        }||j3                  |      }t7              d#k(  rd   |j4                  _        t+        j,                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)$N)r$   r  r  r   )r  r$   r)   rS  ABCrD   r&   F)rK  r   r   c                  X    dk(  r t              di | S  t              fi | S )Nr  r  )ra  )kwargsr   r  r6  s    r   
get_resultz&test_empty_groupby.<locals>.get_result  s:    V"72r?,V,,&72v&r4V44r   c                      t        dgj                        } t              dk7  rt        j                  | | g      }nt        | d         }rt        g d      }ng }t        g ||      }|S )Nr   r9   r   r;  rJ  r&  r   )r   r&   rK   r   r5  r	   r   )levr  rE   r   r   r4  r>  s       r    get_categorical_invalid_expectedz<test_empty_groupby.<locals>.get_categorical_invalid_expected  sq    
 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   )r)  r   r  r   r   hasattrrM   r&   r   r  r#   r   PeriodDtypekindr   StringDtypeorderedr3  r  r   r   r*   assert_equaljoinr   r%   r!   rK   r   )rE   r   r>  r  r6  r   r4  override_dtyperP   r  r  is_peris_dt64is_catis_strr   r  r   r   r   s    ```` `            @r   test_empty_groupbyr    s   J N&,'B/,A &)T"r_'< 	f6:DK	PBvw		V\\)..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
7D8QT2F79HOOFH-	,,f6bEk 84@AF6%%hh'CB4q%IJKy4  gt,'' $6 <<-b1?AH1\F||D!'*H	!!??288>>2!??>2
4yA~"1gOOFH%s	 	2 s   (MMMMc                     t        t        j                  j                  d      j	                  d            } | d   j                  t        j                        | d<   g d| _        | j                  | d   d      }|j                  d       }|j                  | j                  d	      j                  k(  j                         sJ y )
Nr6   )r   r~   r   r   r   r6   r   r   Frt  c                     | S rd   r  ra   s    r   rb   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>4  s    Q r   rD   )r   r'   rF   rG   rH   r%   r)   rE   r#   rL   rM   rN   r   )rP   r   r   s      r   *test_empty_groupby_apply_nonunique_columnsr#  .  s    	299((+;;FC	DBqELL"BqEBJ	BqEe	,B
((;
CJJ"''!',33388:::r   c                  f   t        g dg dg dg dd      } t        j                  t        d      5  | g d   j	                  d       d d d        | j	                  d      d   j                         }t        d	gdt        d
gd            }t        j                  ||       y # 1 sw Y   ]xY w)N)r   r   r   r   )r6   r6   r6   r6   )r   r   r   r   z
('a', 'b')r   r   r   r   r~   r   rJ  rN  )
r   r   r   r9  r#   r$   r   r	   r*   rO   rP  s      r   test_tuple_as_groupingr%  8  s    	$		

B 
x}	5 0
?##J/0 ZZ
#C(,,.Fqc5!:+FGH68,0 0s   B''B0c            	         t        dt        d      t        j                  ddgddgg            } t	        j
                  t        d      5  | j                  d      j                          d d d        y # 1 sw Y   y xY w)	Nr   r   r6   r~   r  z
^\(7, 8\)$r   )r  r7   )	r   rJ   r   r5  r   r   r9  r#   r   r   s    r   test_tuple_correct_keyerrorr'  K  sf    	1E!Hj.E.E1vPQSTvFV.W	XB	x}	5 "


6!" " "s    A55A>c            
      N   t        dgdggt        dgd      t        dddd	      
      } t        g dg dgt        j                  dg d      t        dddd	      
      }| j                  t        d            j                  ddg      }t        j                  ||       y )Nr   r1   mycolsrJ  
2018-01-01r6   r<   dti)r   r   r   r   )r   r   r   r   r   ))r1   r$   r1   )r1   ohlcopen)r1   r,  r  )r1   r,  r  )r1   r,  close)r)  NNr;  )r   r$   r,  )
r   r	   r   r   r=  r#   r   rj   r*   r+   r  s      r   test_groupby_agg_ohlc_non_firstr/  R  s    	
qc
ugH-qsG
B 	/*&& )	
 qsGH ZZS)*..v?F&(+r   c                  \   t         j                  dft        ddd      dft        ddd      dft        ddd      dfg} t        j                  | dd g      }t        g d	|
      }|j                  d      j                         }t        ddgddg
      }t        j                  ||       y )Nr   i  r   r6   r   r   dater;  )r   r6         @r~   r  r  r  r2  )
r   r   r   r   r=  r   r#   r   r*   rO   )r>  rC  r  r   r   s        r   test_groupby_multiindex_natr3  n  s     
	$1	s#	$1	s#	$1	s#	F 
		vtn	=B
r
*C[[q[!&&(FsCjc
3H68,r   c                      t        t        d      t        d      d      } t        | ddg      }d}t        j                  t
        |      5  |j                  g g       d d d        y # 1 sw Y   y xY w)	Nr   TrJ  appler   rD   z$Grouper and axis must be same lengthr   )rp  rJ   r   r   r   r  r#   )r>  rP   r   s      r   test_groupby_empty_list_raisesr6  ~  s^    rE"Id3F	6GS>	2B
0C	z	- 


B4  s   A))A2c                  :   ddgddgddgg} g d}t        j                  | |      }t        ddg|	      }|j                  d
dg      j	                         }dgdgg} d
dg}t        j                  | |      }t        dg|      }t        j                  ||       y )Nr[   r   r   r  )r  r  thirdr;  r   r6   r  r  r8  r   r  )r   from_arraysr   r#   r$   r*   rO   )index_arrayindex_namesrir  r   eir   s          r   8test_groupby_multiindex_series_keys_len_equal_group_axisr>    s    :SzC:6K.K			;	?BQF"%AYY)*..0F53%.KG$K			;	?Bqc$H68,r   c                     t        j                  ddgddggddg      } t        g dg d	d
|       }|j                  t	        d      dg      }|j                  ddg      }|j
                  |j
                  k(  sJ |j                  dt	        d      g      }|j                  ddg      }|j
                  |j
                  k(  sJ y )Nr   r   r;   r<   rT  betar;  )r   r6   r   r6   r  r  r  r  )r   r5  r   r#   r   r   )rC  rP   r   r   s       r   "test_groupby_groups_in_BaseGrouperrA    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                    t        ddgt        j                  dgddgg      }dt        j                  dfdg}t        dd	      t        d	d
      t        d
d      g}| r|rd
dgng d}n
|rdd
gng d}|D ci c]  }||   ||    }}|j	                  dd	g| |      }|j
                  }	t        |	j                         |j                         d      D ]E  \  }
}t        j                  |
      }
t        j                  |      }t        j                  |
|       G t        |	j                         |j                         d      D ]  \  }}t        j                  ||        y c c}w )Nr  r   r  r]  r  )r  r   )r]  r  r   r   r6   r   )r6   r   r   r  )r  r   TrJ  )r   r'   r   r   r#   r   rp  r   rI   r*   rP  r>  r  )r  r   rP   r   r>  takerr  r   r   r   
result_keyexpected_keyresult_valueexpected_values                 r   test_groups_sort_dropnarH    sW   	S#JSz:	;Bz2D1a1a1aF
  Ai Ai2783S	6#;&8H8	QFf	5BYYF$'x}}t$T > 
LXXj)
xx-
##J=	>
 ),*4) <$n 	lN;< 9s   6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           	      T   | g dt        d      t        d      d d t        d      t        d      gd}t        |      j                  fd      }|j                  d	      } t	        ||             }t        |      j                  fd
      }t        j                  ||       y )N)r   r   r   r   r   r   rK  rL  rN  rO  )r!  rJ  c                 N    | j                   j                  j                        S rd   rJ  rF  tz_localizer[   r  s    r   rb   z+test_shift_bfill_ffill_tz.<locals>.<lambda>  s    qvvyy/D/DR/H r   )rJ  r!  c                 N    | j                   j                  j                        S rd   rS  rU  s    r   rb   z+test_shift_bfill_ffill_tz.<locals>.<lambda>   s    9N9Nr9R r   )r   r   assignr#   ra  r*   r+   )tz_naive_fixturer6  r   r   rP   r-   r   r  s          @r   test_shift_bfill_ffill_tzrY    s    \ 
B,+,+,+,+,

D 
4		%H		IBjjG!WWb!#F"))/R)SH&(+r   c                      t        d gdd      } | j                  d      d   j                  d      }t        t        j
                  gd      }t        j                  ||       y )Nr   )rn   r[   rn   r[   r$   rJ  )r   r#   rk   r   r'   r   r*   rO   )rP   r   r   s      r   test_groupby_only_none_groupr[    sT     
$a(	)BZZ_S!++E2FrvvhS)H68,r   c                      t        g dg d      } | j                  d      }|j                         }t        g dg d      }t        j                  ||       y )N)r6   r   r  r7   )r  r  r  r  r  r   r  )r6   g      @r7   )r  r  r  )r   r#   r   r*   rO   )r  r   r   r   s       r   test_groupby_duplicate_indexr]    sF    
%9
:C	1	BWWYFk9H68,r   c                    t        dt        d      ddggg d      }|d   j                  t              |d<   |d   j                  t              |d<   |j	                  d	d
g      }|j
                  d d j                  d	g      j                  |       }|j                  d	g      j                  |       j
                  d d }| dv r|j                  t              }t        j                  ||       |d   j
                  d d j                  d	g      j                  |       }|d   j                  d	g      j                  |       j
                  d d }| dv r|j                  t              }t        j                  ||       y )Nr   r  r   r~   )col_1col_2col_3col_4r   rE   ra  rb  r_  r`  r   )diffrI  )
r   r   r%   r   r   r  r#   rk   r*   r  )transformation_funcrequestrP   r   r   s        r   test_group_on_empty_multiindexrg    se    
)G$a+,4
B W+$$S)BwKW+$$S)BwK	w(	)BWWRa[  '+556IJFzz7)$../BCHH!LH//??3'OOFH%[bq!))7)4>>?RSF'{""G9-778KLQQRTSTUH//??3'OOFH%r   c                     t        ddd      } t        ddgddgddgd      }d	|j                  _        | |_        |j
                  }|j                  d
      }|j                         }t        ddgddgd|       }d|j                  _        |j
                  }t        j                  ||       |g    j                  d
      }|g    }|j                         }t        j                  ||       y )Nr  r6   r1   )r   r   r   r   r   )r  )r   r;   )r<   r   )r2   r  r  )r   r<   r  r2   )r   r   rE   r   r!   r   r#   nuniquer   r*   r+   )r+  rP   r   r   r   r  rG  r   s           r   test_groupby_crash_on_nuniquerj  /  s    
\15
9C	AQFAO	PB%BJJBH	B	!	BZZ\F1vQF33?H!HzzH&(+ R&..q.
!C
2,C
++-C#s#r   c                      t        t        j                  dd      j                  dd      t              } | j                  dg      j                         }t        j                  ||        y )Nr   r   r   r9   r  )	r   r'   r  r  r?  r#   r   r*   r+   )r   r   s     r   test_groupby_list_levelrl  H  sS    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                    t        t        j                  j                  d      j	                  d            }|j
                  |d<   t        j                  d|       5  |j                  d      j                  j                         }||k(  sJ |j                  t        j                  |j                              j                  j                         }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr6   )r   r   r   zdisplay.max_seq_items)r   r'   rF   rG   rH   r!   r   option_contextr#   r   __repr__rI   r   )max_seq_itemsr   rP   r   s       r   test_groups_repr_truncatesrq  O  s     
299((+;;FC	DBhhBsG			2M	B "C''002!!!BHHRTTN+22;;=!!!" " "s   A>C%%C.c                  >   t        ddddddddg      } | j                  ddg      } | j                  ddg      }|j                  }dt	        j
                  d	dgt        j                  
      i}t        |      dk(  sJ d}||   ||   k(  j                         sJ y )Nr   r6   c   r   X   r   r   )r   r6   r   r9   )	r   r   r#   r   r'   rI   r)   rK   r   )rP   grpr   r   r   s        r   6test_group_on_two_row_multiindex_returns_one_tuple_keyrv  d  s    	!!"-QQR/HI	JB	sCj	!B
**c3Z
 C[[F!Qrxx89Hv;!
C3K8C=(--///r   zklass, attr, valuer   rz   r  rK  r   r   c                     t        dgdgdgd      }|dk7  r|j                  d      } |j                  di ||i}| t         u r|dg   n|d   }t        ||      t        ||      k(  sJ y )	Nr   r6   r   r   rW   r   r   )r   )r   r   r#   ra  )r  r  r=   rP   r   r   s         r   #test_subsetting_columns_keeps_attrsrx  r  s{    & 
!A3aS1	2Bv~\\#rzz/$/H % 2Xse_F64 GHd$;;;;r   r  )r$   anyrI  c                     t        dgd      }t        dgg|      }|j                  dg      } t        ||              j                  }t        j                  ||       y )Nr   r  rJ  r   rD   )r	   r   r#   ra  rE   r*   r  )r  r   rP   r   r   s        r   #test_groupby_column_index_name_lostr{    sX     cU'H	QC5(	+BQCJ&WZ&(00F&(+r   infer_stringpyarrow)marksc                    | rt        j                  d       t        g dg dg dd      j                  t              }g d|_        t        j                  d|       5  |j                  g d      j                         }d d d        t        g d	gt        j                  d
g      g dt              }t        j                  |       y # 1 sw Y   LxY w)Nr}  )r]   r  rn   r  rg  r  rS  )r   r   r   zfuture.infer_string)r   r   r   r   )r  r   r   r   )r!   rE   r&   )r   importorskipr   r%   r   rE   r   rn  r#   r  r'   rI   r*   r+   )r|  rP   r   r   s       r   test_groupby_duplicate_columnsr    s     I&	")=LQ
fVn  !BJ			0,	? 0L)--/0	rxx}oVH &(+0 0s   "CCc                      t        g dg dd      } d| j                  _        | j                  d      j	                         }t        dd	gd
dgd      }d|j                  _        t        j                  ||       y )Nr  r   )r   r   r!   r   )r   r   r   r  r6   r~   r   )r   r!   r   r#   lastr*   rO   )r  r   r   s      r   #test_groupby_series_with_tuple_namer    sf    
\

CCCIIN[[q[!&&(Fq!fQF<H$HNN68,r   zfunc, valuesr$        @X@     X@r   g     @8@g     8@c                     g d}t        ddgdz  ||d      } t        |j                  d      |              }t        ||dt        ddgd      	      }t	        j
                  ||       y )
N 7yACr  a   b    7y1r  r  r  r   r6   r~   rB   r   r   rB   r   rJ  r  )r   ra  r#   r	   r*   r+   )r  r>  r   rP   r   r   s         r   )test_groupby_numerical_stability_sum_meanr    sh    
 <D	aVaZd>	?B/WRZZ($/1FvF35!Qg;VWH&(+r   c                      g d} t        ddgdz  | | d      }|j                  d      j                         }dgdz  dd	gz   d
dgz   ddgz   }t        ||d      }t        j                  ||d       y )Nr  r   r6   r~   r  rB   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)check_exact)r   r#   rM  r*   r+   )r   rP   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr    s    ;D	aVaZd>	?BZZ '')F	
i++y).DDd|S  xh78H&(=r   c                  ~   t         j                  j                  d      j                  d      } t	        |       }t        d      D ]!  }t         j                  |j                  ||f<   # d|d<   |j                  d      }|j                  d      }|g d   j                  d      }t        j                  ||       y )	Nr6   )r   r   r   r   r   Fskipnar  )r'   rF   rG   rH   r   rJ   r   r  r#   rM  r*   r+   )r  rP   ir   r   r   s         r    test_groupby_cumsum_skipna_falser    s    
))


"
2
26
:C	3B1X 1 BsG	CB
))5)
!C/")))7H#x(r   c            	      ,   t        ddd      } t        |       | d   z
  }t        j                  |d<   t	        d|d      }|j                  d	      }|j                  d
d      }t	        d|d   |d   t        j                  |d   |d   dz  gi      }t        j                  ||       |j                  d
d
      }t	        d|d   |d   t        j                  t        j                  t        j                  gi      }t        j                  ||       y )Nr  r   ns)r   unitr   r6   r   r  r   FT)r	  r  r   r~   )	r   r   r   r   r   r#   rM  r*   r+   )r+  r  rP   r   r   rG  s         r   test_groupby_cumsum_timedelta64r    s    
\14
8C
+A
CVVCF	%	&B	CB
))t)
4C
S3q63q62663q63q6A:FG
HC#s#
))u)
5C
S3q63q6266266266BC
DC#s#r   c                     | }|j                  d      j                         }|j                  |j                        j                         }t        j                  ||       y )Nr   r  )r#   r   r!   r*   rO   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr    sK    3D\\\"'')F||DJJ',,.H68,r   c                  b   t        g dt        j                  t        j                  t        j                  g      } | j                  | j                        j                         }t        g t        g t        j                        t        j                        }t        j                  ||       y )Nr   r9   r/  )r   r'   r   r#   r!   r$   r	   r1  r)   r*   rO   r  r   r   s      r    test_groupby_all_nan_groups_dropr    si    y26626626623AYYqww##%Fbb

 ;288LH68,r   c                 4   t        g g d      }|j                  ddg|       }|j                  |      }| r't        g g gg g gddg      }|sdgnt	        g d	
      }nt        d      }|sg dnddg}t        g ||      }t        j                  ||       y )NrS  rc  r   r   ry   r  r;  r;   r&  r9   r   r   )r   r#   r$   r   r	   r   r*   r+   )rz   r	  rP   r   r   r!   rE   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:WE:H&(+r   c                      t        ddggddggddggddgggddg      } t        dddgddggit        ddgd	      
      }| j                  dg      }|j                         }t	        j
                  ||       y )Nr  r   Wr   r  MWr  rD   rJ  r  rz  )r   r	   r#   r$   r*   r+   )rP   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                     t        g dt        dd      D  cg c]  } t        | d       c} t        dd      D  cg c]  } t        | dz  d       c} d      }t        t        dd      D  cg c]  } t        | d       c} t        dd      D  cg c]  } t        | dz  d       c} d	t        d
dgdd            }|j	                  dg      }|j                         }t        j                  ||       y c c} w c c} w c c} w c c} w )Nr   r   r   r   r   r   r  daysr   r  r  r   r   r  r   r)   r[   r&   r   r  rz  )r   rJ   r   r	   r#   r$   r*   r+   r  rP   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   C8
C=,DD
c            
      x   t        g dt        dd      D  cg c]  } t        | d       c} t        t        dd            d      }t        t        dd      t        dd      gddgdt	        d	dgd
d            }|j                  dg      }|j                         }t        j                  ||       y c c} w )Nr  r   r  r  r  r  r7   r  r   r)   r[   r  r  rz  )	r   rJ   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   B7
c                     dddddddddddddddg} t        |       }||d   dk(     }|j                  d      }|j                         }t        g d	gg d
t        dgd            }t	        j
                  ||       y )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r  r  )r]  r]  g$+H@)r  r  r  rJ  r   )r   r#   r   r	   r*   r+   )dictsrP   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdr  O	  s     TtRVWDdQUVDdQUVE
 
5	B2l#t+,I]+DXXZF	7TF/H
 &(+r   c            	         t        t        t        d            t        t        g d      d      t	        j
                  g dddg      d	      } | j                  d
dgd      j                  }d
t        d      ft        j                  dg      dt        d      ft        j                  dg      dt        d      ft        j                  dg      i}||k(  sJ y )Nabc)r*  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'   rI   rP  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
 Xr   c            
         dgdz  dgdz  z   } t         j                  t         j                  dddt         j                  ddddg
}t        | |g      j                  }dd	g|_        d
}t        j                  t        |      5  |j                  d      d	   j                  dd      j                          d d d        y # 1 sw Y   y xY w)NAlicer   Bobr   r6   r   r~   r   r8  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'r   )window
min_period)r'   r   r   r   rE   r   r   r3  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 M&..aA.FJJLM M Ms   4B>>Cc                    | }t        g dg dt        g d|      d      }t        j                  dd}|j                  dg      j	                  |      }t        d	d
gd	gddgddgd      j                  d      }t        |dd       dk(  r t        j                  d	d
g|      }|d	g|d<   t        j                  ||       y )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#   rj   r   ra  r   rI   r*   r+   )any_string_dtyper&   rP   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                     g dg dg} t        dt        j                  | ddg            }|j                  ddg	      j	                         }t        dd
gt        j
                  ddgddg            }t        j                  ||       y )N)Nr   r   r   )r6   r   r6   r   r   r   r   r;  r  r   r  r6   )r]  r6   )r   r   )r   r   r9  r#   r$   r=  r*   rO   )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 68,r   c                    t        g dg dg dd      }| rt        j                  gnd g}|j                  |      }|j	                         }t        ddgdd	gd
t        ddg|d               }t        j                  ||       y )Nr   )r   r   r6   r   )r~   r   r  r  )Nr   r   rz  r6   r   r   rG  r  r   r   rJ  r  )r   r'   r   r#   r$   r	   r*   r+   )r4  rP   rV  r   r   r   s         r   test_groupby_none_column_namer  	  sx    	,\M	NB'"&&dVB	r	BVVXF1vQG4E1a&rRSu<UVH&(+r   	selectionc                 
   t        ddgt        j                  dgt        j                  dgdddg      }| |j                  dg      n|j                  dg      |    }|D cg c]  \  }}|	 }}}d	d
g}||k(  sJ y c c}}w )Nr   r6   r   r   r[   r   r  r   r   r6   )r   r'   r   r#   )r  rP   r-   r   r  r   r   s          r   !test_single_element_list_groupingr  	  s     
!QrvvqkDSRUJ	WB#,#4bjj#"**cU:KI:VG '(fc1c(F(d|HX )s   $A?c                     t        g dg dd      } | d   j                  d      | d<   t        g dg dd      }|d   j                  d      |d<   | j                  dd	      }|j                         }t	        j
                  ||       y )
N)r   r   r   r   )r   r6   r   r6   )str_colnum_colr  stringr   )r  r  r  Fry   )r   r%   r#   r   r*   r+   )rP   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                     t        ddgddgddgddd	g
      }|r|j                  ddg      }|j                  |       D cg c]  \  }}|	 }}}|rddgnddg}||k(  sJ y c c}}w )Nr   r6   r   r~   r   r  r   r[   r   r  r   r   r  r  r  ra   )r   )r   r   r#   )	level_argr   rP   r   r  r   r   s          r   +test_single_element_listlike_level_groupingr  	  s    
 
!Qq!fAq6:3*	MB\\3*% "


 ;<fc1c<F<)d|/?HX =s   A%)r$   rM  cumprodr  c                     d}t        d|gd      } t        |j                  d      |              |z
  }t        ddgit        dgd            }| d	v r|j	                  d
      }t        j                  ||       y )Nl   L33ffr   r   r   r   r   rJ  r  )rM  r  T)rN   )r   ra  r#   r	   rc  r*   r+   )r  r8  rP   r   r   s        r   #test_groupby_avoid_casting_to_floatr  	  s     C	#'	(B+WRZZ_d+-3F#s5!3+?@H$$''T'2&(+r   z	func, val)r$   r   )r  r6   c                     t        dddt        j                  gd|       } t        |j	                  d      |             }t        d|git        dgd|       |       }t        j                  ||       y )	Nr   r6   r   r9   r   r   r.  r/  )r   r   NAra  r#   r	   r*   r+   )any_numeric_ea_dtyper  r8  rP   r   r   s         r   test_groupby_sum_support_maskr  	  sp     
!Q/7K	LB+WRZZ_d+-F	seQCc)=>"H
 &(+r   z
val, dtype)o   r   )   uintc           	      6   t        d| | gd| d      }|j                  d      j                         }t        d| dz  git        dgd| d      | d	
      }t	        j
                  ||       |j                  d      j                         }t        d| | dz  gi| d	      }t	        j
                  ||       |j                  d      j                         }t        d| | z  git        dgd| d      | d	
      }t	        j
                  ||       y )Nr   r   8r9   r   r   r6   r.  64r/  )r   r#   r$   r	   r*   r+   rM  r  )r8  r&   rP   r   r   s        r   test_groupby_overflowr  	  s    
#s,ugQK	@BZZ_  "F	sQwiQCcE7!5rlH
 &(+ZZ_##%F#S1W~.rlCH&(+ZZ_!!#F	sSykQCcE7!5rlH
 &(+r   zskipna, val)Tr   c                     t        ddt        j                  dgd|       }|j                  d      j	                  |      }t        ddt        j                  |gi|       }t        j                  ||       y )Nr   r6   r   r9   r   r  r   )r   r   r  r#   rM  r*   r+   )r  r  r8  rP   r   r   s         r   test_groupby_cumsum_maskr  
  sl     
!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                 |   t        | dt        |d            }|j                  d      j                         }t        |dt        g dd            }t	        j
                  ||       |j                         j                  d      j                         }|j                         }t	        j                  ||       y )Nr>  r  rJ  )r   r   r!   )r2   r  r  r1   )r   r	   r#   r$   r*   rO   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
 68,__&&v.224F  "H&(+r   r  )r   r       r]  r  c                     t        ddg| z  d      }|d   j                  d      |d<   |j                  d      j                         }t        d| git	        dgd            }t        j                  ||       y )Nr   T)r  r  r  r  rJ  r  )r   eqr#   r$   r	   r*   r+   )r  rP   r   r   s       r   test_sum_of_booleansr  >
  sq     
1tfqj9	:BFt$BvJZZ&**,F&1#eQCm.LMH&(+r   z<ignore:invalid value encountered in remainder:RuntimeWarning)r   tailr[  r  r  c                    t        dt        j                  dt        j                  dgt        d      d      }| dk(  r# t	        |j                  d      |       d	      }n  t	        |j                  d      |              }| d
v r,t        dg di      j                  t        g dd            }nt        g dg ddt        ddd            }t        j                  ||       y )Nr   r   r   r   r  r[  r   r   )r  )r  r  r   r  r   rJ  r  r6   r  )
r   r'   r   rJ   ra  r#   r   r   r*   r+   )r  rP   r   r   s       r   test_groupby_method_drop_nar  H
  s     
#rvvsBFFC8uQxH	IB1C&1A61C&13""c9-.88?-
 !	2%1a.
 &(+r   c                     t        j                  ddd      } t        t        d            dz  }| j	                         }|j                  |      }t        j                  t        d      5  |j                          d d d        t        j                  t        d      5  |j                          d d d        t        j                  t        d	      5  |j                          d d d        t        j                  t        d
      5  |j                          d d d        |j                         }|dd  }t        t        d      t              |_        t#        j$                  ||       |j'                         }|d d }t        t        d      t              |_        t#        j$                  ||       y # 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr  r]  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   rJ   	to_seriesr#   r   r   r3  r$   rM  r  r  r  r	   r   r!   r*   rO   r  )pigrpsr  r   r   r   s         r   test_groupby_reduce_periodr  `
  sq   	s	=Bb	?RD
,,.C	T	B	y(U	V 
	I
  			 
y(V	W 
		J
  	


 &&(C34yH59C0HN3)
&&(C3BxH59C0HN3)+    s0   ,F6 GGG6G GGG%c                      t        g dg      } g d| _        | j                  | d         }|j                  }| j	                  g dd      }t        j                  ||       y )N)r   r   r6   r   r!  r   )r   r6   r   rV   )r   rE   r#   _obj_with_exclusionsr   r*   r+   )rP   r   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsr  
  sT    	L>	"BBJ	BqE	B$$Fwwyqw)H&(+r   c                 \   ddddddg}t        |t              }|j                  ddd	      }| r9|j                  d
      }t        ddgdg      }t	        j
                  ||       y t        j                  t        d      5  |j                  |        d d d        y # 1 sw Y   y xY w)Nr1   r2   r   cardarr9   r   F)rz   r  Tr  rD   z(could not convert string to float: 'bar'r   )	r   r   r#   r   r*   r+   r   r   r  )r	  dicts_non_numericrP   r  r   expected_dfs         r   'test_groupby_numeric_only_std_no_resultr  
  s      %51U3KL	$F	3B::cE:6Dt,>
fk2]]H
 	0 HH,H/	0 	0 	0s   B""B+c                     t        g dg dd      } t        j                  | d   t        j                  ddd            }| j                  |d	gd
      d   j                  d      }t        t        ddd      t        ddd      t        ddd      t        ddd      gd      }g d}t        j                  ||gdd	g      }t        t        j                  dt        j                  dt        j                  dt        j                  dt        j                  t        j                  dt        j                  t        j                  g      |d      }t        j                  ||       y )N)皙?皙?333333?皙ٿ      ?)r   r   r   r   r   )r[   wr[   r   r   r   rh   r!  Fr  r   gDlٿr  rc  )closedr  r  r   T)r  r   r;  r  r  )r   r   qcutr'   linspacer#   rj   r   r
   r   r5  r   rI   r   r*   rO   )rP   qqr   categorical_index_level_1index_level_2rC  r   s          r   /test_grouping_with_categorical_interval_columnsr(  
  s;   	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		 	 	"M23*
B 
	
  %H( 68,r   bug_varc                 @   t        d| | | t        j                  gi      }t        | t              r|j                  t              }|j                  d       }|j                  d      }t        | | | d gdg|d   j                        }t        j                  ||       y )Nr   c                     | S rd   r  ra   s    r   rb   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>
  s     r   r   )	min_count)rE   r&   )r   r'   r   r)  r&  r%   r   r#   r$   r&   r*   r+   )r)  rP   r  r   r  s        r   )test_groupby_sum_on_nan_should_return_nanr-  
  s     
C'7GRVV<=	>B'3YYv::k"DXXX"F	'7D)C53K &+.r   )r  corrcummaxcumminr  r   rankrl   rd  rI  r   ry  r  r@   rP  rM  
pct_changec                 
   t        dt        |             }|| _        | j                  dg      dg   }| dg   j                  | d         } t	        ||             } t	        ||             }t        j                  ||       y )N2014r   r   r;   )r   rK   r!   r#   ra  r*   r+   )rP   r  rngrn   g_expr   rG  s          r   #test_groupby_selection_with_methodsr8  
  s    0 VSW
-CBH


C53% AuIbg&E '!V

C
 '%
 
"C #s#r   c                    t        dt        |             }d| j                  _        || _        | j                  dg      dg   }| dg   j                  | d         }t        j                  |j                  d       |j                  d              t        j                  |j                  d      j                         |j                  d      j                                t        j                  |j                  d      j                         |j                  d      j                                t        j                  |j                  d	       |j                  d
              y )Nr4  r5  r1   r   r;   c                 "    | j                         S rd   r8  ra   s    r   rb   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEG r   c                 "    | j                         S rd   r8  ra   s    r   rb   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEG r   r<   c                     t        |       dk(  S r  r  ra   s    r   rb   z6test_groupby_selection_other_methods.<locals>.<lambda>	  s    3q6Q; r   c                     t        |       dk(  S r  r  ra   s    r   rb   z6test_groupby_selection_other_methods.<locals>.<lambda>	  s    A! r   )r   rK   rE   r   r!   r#   r*   r+   rL   resampler   r,  r  )rP   r6  rn   r7  s       r   $test_groupby_selection_other_methodsr?  
  s   
VSW
-CBJJOBH


C53% AuIbg&E !''"34ekkBS6TU!**S/..0%..2E2J2J2LM!**S/..0%..2E2J2J2LM	&'6K)Lr   c                 F   t        g d      j                  |       }t        g dg d|d      }t        ddd|       }t        |g dg dd	      }|j	                  t        d
d            }|j                         j                         }t        j                  ||       y )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:00rG  1min)r   r   r  )r   r   r   r   r   r   r   r   r   r   r   r   r   )rC  rA  rB  rC  )r   r   )
r   as_unitr   r   r#   r   r  rc  r*   r+   )r  idx2	test_datarC  expected_outputr   r   s          r   test_groupby_with_Time_GrouperrI    s    	
 gdm 	 !_tLI ,bvDQE<=	
O 
		7wV<	=BXXZ##%F&/2r   c                      t        g dt        dd      d      } | j                  |       j                         }t        ddgd	      }d|j                  _        t        j                  ||       y )
N)r   r   r   z
2022-01-01r   r5  janr  r6   r   rJ  )r   r   r#   r  r!   r   r*   rO   r  s      r   1test_groupby_series_with_datetimeindex_month_namerL  )  sY    y
< C%PAYYq\!Fq!f5)HHNN68,r   test_serieszkwarg, value, name, warn)rV  r   r   NrV  r  )r   r   r   Nc                 @   t        dg dit        g dd            }| r|d   } |j                  di ||i}|j                  |      }| rt	        ddgt        d	d	gd      d
      }nt        dddgit        d	d	gd            }t        j                  ||       y )Nr   )r   r~   r   )r   r   r6   r   rJ  r  r   r~   r   r  r  )r   r	   r#   rO  r   r*   r  )	rM  kwargr=   r   warnr  r   r   r   s	            r   test_get_group_len_1_list_likesrQ  2  s     S)$E)#,F
GC#h		&u~	&B\\$F1a&q!f3(?cJcAq6]%AS2IJOOFH%r   c                      t        t        t        j                  g      dgd      } | j	                  ddgdd      j                         }t        dg      }t        j                  ||       y )Nr   r   r   r   F)r   r   r   )	r   r   r'   r   r#   r\  r   r*   rO   rP  s      r   test_groupby_ngroup_with_nanrS  J  sZ    	bffX.aS9	:BZZc
55ZAHHJFqc{H68,r   c            	          t        dddddt        j                  t        j                  gig d      } | j                  d	      j	                         }t        dg d
ig d      }t        j                  ||d       y )Nr   r   r6   r   r~   rh  r  r   r  )r   r6   r   r~   r6   r   F)check_dtype)r   r'   r   r#   rP  r*   r+   rP  s      r   (test_groupby_ffill_with_duplicated_indexrV  R  sg    	C!Q1bffbff56>P	QBZZaZ &&(F#12:LMH&(>r   c           	         t        t        j                  t              rJ t	        t        d      t        d      d d gt        d      t        d      t        d      t        d      gd      }|j                  dd	      }| r|d
   }|j                  j                  }t        t        d      d gd      }t        j                  ||       y )Nr   r6   r   r~   r   )r   r=   r   Fr   r=   rJ  )r)  decimalInvalidOperationr3  r   r   r#   rM  result_indexr	   r*   r  )rM  rP   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                     g dg dg dg dg} t        | g d      }|j                  g dd	      j                  d
ddgi      }t        j                  ddt
        j                  dfdt
        j                  dfdt
        j                  dfgg d      }t        j                  ddg      }t        ddgfddgfddgfddgfg||      }t        j                  ||       y )N)r   r   r   r   )r   Nr   r   )r   Nr6   r   )r   Nr   r   )r   r   r   partnerrD   r   FrX  r^  ri  unique)r   r   r   r   r6   r   r;  )r^  ri  )r^  r_  r   r  )	r   r#   rj   r   r=  r'   r   r*   r+   )rP   	df_dropnar   r!   rE   r   s         r   'test_groupby_dropna_with_nunique_uniquera  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wH &(+r   c                  h   t        g dg dg dg dg dd      } | j                  g dd	      j                  t        j                  d
d      t        j                  d
d      t        j                  dd            }t        g dg dg dg dg dd      }t        j                  ||       y )N)r6   r   r   r   r6   r   )r~   r   $   r  r~   r   )g@g       @   r   r~   r  )   r   r   r=  r   r  )r  r   r  r   r  r  )r  r  col3col4col5)r  r  r  FrU  r  r  )r   r  r  r  r  )new_colnew_col1new_col2)r   r   r   r   r6   )r   r  r   rc  r~   )r   r   r   r   r6   )r  r  ri  rj  rk  )r   r#   rj   r   NamedAggr*   r+   rP  s      r   0test_groupby_agg_namedagg_with_duplicate_columnsrm    s    	&'.)*	

B ZZ3eZDHH659FE:FG< I F #$&''	
H &(+r   c            	      "   t        g ddt        d      dt        d      gg dd      } | j                  ddgd	
      j                         }|j                  }t        j                  |t        j                  |j                                      y )Nr  r   r   r6   )r6   r~   r  r7   rS  r   r   FrX  )
r   r?  r#   r$   r!   r*   r  r   
from_framer   )rP   r   r!   s      r   test_groupby_multi_index_codesrp    su    	!U5\1eEl!C,W
B S#Ju599;JE%!6!6u~~7G!HIr   c                      t        t        d      t        d      t        d      t        j                  gg dd      } | j	                  dd      }t        |      }|dk(  sJ y )	Nz
2019-02-12z
2019-02-13r  r   r   FrX  r   )r   r   r   r   r#   rK   )rP   r-   r   s      r   test_groupby_datetime_with_natrr    se    	 L)L)L)	 	


B jjUj+G\FQ;;r   )r   rY  r   r1  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commonrl  markfilterwarnings
pytestmarkr   r.   rR   ru   r   r   r   r   parametrizer   r   r   r   r  r  r  r!  r+  r5  rH  rQ  rX  re  ri  rm  rr  rt  rz  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,  r3  r6  r:  r@  rD  rR  rU  r`  rd  rr  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rI   r  r#  r%  r'  r/  r3  r6  r>  rA  rH  rY  r[  r]  rg  rj  rl  rq  rv  rx  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  r  r  r  r  r  r(  r-  r8  r?  rI  rL  rQ  rS  rV  r\  ra  rm  rp  rr  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   