
     j                        d Z ddlZddlZddlmZ ddl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 ddlmZ ddlmZ d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d  Z0d! Z1d" Z2ej3        4                    d#d$d%d& fd'd%d( fd)d*d+ fd)d,d- fg          d.             Z5ej3        4                    d/d$d'g          ej3        4                    d0d1d2g          ej3        4                    d3d4gd5z  ej6        d6 eej6        gd5z  d78          fd4gd5z  d9gd:z  z   d;gd;z  ej6        gz   d;gd<z  z   d6g d=ej6        gd>z  z   d?d@gz   d?d@dAej6        dBdCdDdEdFdGd?d@gg dHej6        gd>z  z   d?dIgz   d?dId@ej6        dJdKdLdMdNdAd?dIgdOfg          dP                                     Z7ej8        dQ             Z9ej8        dR             Z:ej3        j;        ej3        4                    d#d$d%dS fd'd%dT fd)d*dU fd)d,dV fg          ej3        4                    dWdXdYg          ej3        4                    dZd[ej<        =                    d:          >                    dd\d5]          ?                    e@          id^did[d_i ejA        d[d`iej3        jB        a          d[dbd_gig          dc                                                 ZCej3        j;        ej3        4                    d#d$d%dd fd'd%de fd)d*df fd)d,dg fg          ej3        4                    dWdXdYg          ej3        4                    dZd[ej<        =                    d:          >                    dd\d5]          ?                    e@          id^did[d_id[dbd_gig          ej3        4                    dhg di          dj                                                             ZDdk ZEej3        4                    dld9 eg dmd98          fd9dng eg dmg dmdo          fg          ej3        4                    dpg dq          dr                         ZFds ZGej3        4                    dtd2d1g          ej3        4                    dud2d1g          ej3        4                    dvg dw          ej3        4                    dxdydej6        ej6        dzdzdzd{d{d{gfdyd|ej6        ej6        dzdzej6        d{d{ej6        gfd}ddzdzdzd{d{d{ej6        ej6        gfd}d|ej6        dzdzej6        d{d{ej6        ej6        gfg          d~                                                 ZHej3        4                    ddyd}g          d             ZIej3        4                    dd ejA        dej3        B                    d          a          g          ej3        4                    dd|dg          ej3        4                    dg d          ej3        4                    ddd|g          d                                                 ZJej3        4                    ddydddej6        dddgfd}ddddddej6        gfg          d             ZKej3        4                    dejL        ejM        g          d             ZNd ZOej3        4                    dePeQejP        ejQ        ddg          d             ZRej3        4                    dddgd:z  dgd>z  z   dgz   fddgd:z  dgd>z  z   dgz   fg          d             ZSd ZTej3        4                    dg d          d             ZUej3        4                    dg d          ej3        4                    ddd[ edg          fg          d                         ZVd ZWd ZXd ZYd ZZd Z[d Z\d Z]d Z^ej3        4                    ddgddgg          d             Z_d Z`d Zad Zbd Zcej3        4                    dejd        g dfd dej6        d;d:ej6        gfg          ej3        4                    ddgddgg          ej3        4                    dd2d1g          d                                     Zeej3        4                    ddddgg          d             Zfej3        4                    dddg          ej3        4                    dd2d1g          d                         ZgdS )z test with the .transform     N)lib)ensure_platform_int)Categorical	DataFrameIndex
MultiIndexSeries	Timestampconcat
date_range)get_groupby_method_argsc                 d    t          j        | |z
            dk                                     sJ d S )Ng-q=)npabsallabs     C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/tests/groupby/transform/test_transform.pyassert_fp_equalr      s1    F1q5MME!&&(((((((    c            	         t          t          j        d          dz  t          j        d                    } t          j        d          }t          j                            d                              |           |                     |          } |                     d           }|                    d           }|d         dk    sJ t          t          j        d	d
          
                    dd          ddgg d          }g d}|                                                    |                              d                               |                                          }|                    |                              d                               |                                          }t          j        ||           d }t          t          j                            d                              d          g dg d          }	g d}|	                    |                              |                              |                                          }|	                    |d                              |                              |                                          }t          j        ||           t          t          j                            d                              d          t#          t%          d          t&                    t)          ddd                    }|                    t+          j        d !                    }
|
                    d"            t          t/          d#d$          t/          d#          d%          }d&}t          j        t2          |'          5  |                    d                              t4                    }d d d            n# 1 swxY w Y   t          dt/          d#          i          }t          j        ||           d S )(N	      index   c                     | dz  S )Nr    xs    r   <lambda>z test_transform.<locals>.<lambda>#   s
    Q!V r   c                 0    | |                                  z  S N)sumr    s    r   r"   z test_transform.<locals>.<lambda>%   s    a!%%''k r            int64dtyper   r   )r   r      columnsr   r   r   r,   c                 0    | |                                  z
  S r$   meanr    s    r   r"   z test_transform.<locals>.<lambda>2   s    Q\ r   c                 0    | |                                  z
  S r$   r1   r    s    r   r"   z test_transform.<locals>.<lambda>6   s    QVVXX r   c                 4    | |                      d          z
  S Nr   axisr1   )arrs    r   demeanztest_transform.<locals>.demean9   s    SXX1X%%%%r   )   r:   r   r   cde)JoeSteveWesJimTravis)onetworD   rE   rD   F
group_keys)2      ABCDz
2000-01-01rH   BperiodsfreqME)rN   c                     | dz
  S Nr,   r   r    s    r   r"   z test_transform.<locals>.<lambda>M   s
    !a% r   r:   
   r   zusing DataFrameGroupBy.maxmatch)r	   r   arangerandomdefault_rngshufflereindexgroupby	transformr   reshape
sort_indexr2   tmassert_frame_equalstandard_normalapplyr   listobjectr   pdGrouperrangeassert_produces_warningFutureWarningmax)datar   groupedtransformeddfkeyexpectedresultr9   peoplegmsgs               r   test_transformrt      s   ")A,,!#29Q<<888DIaLLEI!$$U+++<<Dll++,,G##$9$9::Kq>R
 

	!7###++Aq11C:YYY
 
 
B ))C
		))	*	*		  ZZ__&&'='=>>FFsKKPPRRF&(+++& & & 
	a  0088)))666  F
 .
-
-C^^C  **622::3??DDFFF~~ce~44::6BBJJ3OOTTVVH&(+++ 

	a  0099d6ll&111r<<<
 
 
B
 	

2:4((())AKK    
q"E!HH55	6	6B
&C		#M	=	=	= 0 0C**3//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0#uQxx))H&(+++++s   .PP
P
c                     t          t          j        d          dz  t          j                            d                              d          d          } |                     d          d         }t          j        |                                j	        t          |                                j	                            }t          || j        d          }d}t          j        t           |	          5  |                    t          j                  }d d d            n# 1 swxY w Y   t          j        ||           |                    d
          }t          j        ||           d S )Ni r   r   )idvalrv   rw   r   nameusing SeriesGroupBy.meanrS   r2   )r   r   rU   rV   rW   r`   rZ   repeatr2   valuesr   countr	   r   r^   rg   rh   r[   assert_series_equal)rm   grpr|   ro   rs   rp   s         r   test_transform_fastr   X   sl   	)F##a'9((++;;FCC	
 	

 
B **T

5
!CYsxxzz(*=ciikk>P*Q*QRRFfBH5999H
$C		#M	=	=	= ( (rw''( ( ( ( ( ( ( ( ( ( ( ( ( ( (68,,,]]6""F68,,,,,s   7 D##D'*D'c                  >   t          g dg dt          dd          g ddg d          } |                     d	                              d
          }t	          t          d          t          d          t          d          t          d          gd          }t          g d|g ddg d          }t          j        ||           |                     d	          ddg                             d
          }|ddg         }t          j        ||           d S )N)r   r,   r,   r   )皙? @g@      @2014-1-12014-1-4r,   r   r   rI   )groupingfr=   i)r   r   r   r=   r.   r   first2014-1-2M8[ns]r*   )r   r   r   r   )r,   r   r   rI   )r   r=   r   )r   r   r=   r   r   )r   r   rZ   r[   r   r
   r^   r_   rm   rp   datesro   s       r   test_transform_fast2r   n   sT   	$%%%J
33		
 	
 ,++
 
 
B ZZ
##--g66Fj!!j!!j!!j!!		
   E """\\\BB  H &(+++ ZZ
##S#J/99'BBFc
#H&(+++++r   c                      t          g dg dgg d          } |                     d                              d          }|                     dd          }t	          j        ||           d S )	Nr,   r   r   )rI   r:   r(   )rr   r   r   r   rr   r   r,   r6   )r   rZ   r[   dropr^   r_   rm   rp   ro   s      r   test_transform_fast3r      sp    	IIIyyy)???	C	C	CBZZ__&&w//Fwwsw##H&(+++++r   c                    |                     d           }d}t          j        t          |          5  |                    t
          j                  }d d d            n# 1 swxY w Y   t          j        |j        |j                   |D ]?\  }}t          |
                    |j                  |                                           @|                      d           }d}t          j        t          |          5  |                    t
          j                  }d d d            n# 1 swxY w Y   t          j        |j        | j                   |D ]V\  }}|                    d          }|
                    |j                  }| D ]}	t          ||	         ||	                    Wd}t          j        t          |          5  |                      ddd	d	d
d	          }d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    t
          j                  }d d d            n# 1 swxY w Y   t          j        |j        | j                   t          j        |j        | j                   |D ]h\  }}|                    d	          }|
                    |j                  }|j        D ]+}
t          |                    |
          ||
                    ,id S )Nc                     | j         S r$   monthr    s    r   r"   z*test_transform_broadcast.<locals>.<lambda>       17 r   rz   rS   c                     | j         S r$   r   r    s    r   r"   z*test_transform_broadcast.<locals>.<lambda>        r   using DataFrameGroupBy.meanr   r6   +DataFrame.groupby with axis=1 is deprecatedr,   ArK   CDr   )rZ   r^   rg   rh   r[   r   r2   assert_index_equalr   r   rY   r.   xs)tsframetsrk   rs   rp   _gpaggedrescolidxs              r   test_transform_broadcastr      s   jj**++G
$C		#M	=	=	= , ,""27++, , , , , , , , , , , , , , , &,111 = =2rx00"''))<<<<oo//00G
'C		#M	=	=	= , ,""27++, , , , , , , , , , , , , , ,&,666 2 22QnnRX&& 	2 	2CCHeCj1111	2 8C		#M	=	=	= L L//"B"B/KKL L L L L L L L L L L L L L L
'C		#M	=	=	= , ,""27++, , , , , , , , , , , , , , ,&,666&.'/::: 5 52

nnRZn008 	5 	5CCFF3KKs4444	55 5sG    A  A$'A$? D++D/2D/G44G8;G8 IIIc                    t          ddgddgddgddd	g
          }t          ||          }d}t          j        t          |          5  |                    g dd          }d d d            n# 1 swxY w Y   |dk    rt          nd }d}t          j        ||          5   |j        |g|R  }d d d            n# 1 swxY w Y   d}t          j        ||          5   |j                            g d          j        |g|R  j        }d d d            n# 1 swxY w Y   |dv r|d                             d          |d<   t          j	        ||           d S )Nr,   r   r   rI   r:   r(   r   r   r<   r!   yr   r   rS   r/   r6   fillna%DataFrameGroupBy.fillna is deprecated)diffshiftr   r)   )
r   r   r^   rg   rh   rZ   r[   Tastypeassert_equal)	requesttransformation_funcrm   argsrs   gbwarnrp   ro   s	            r   test_transform_axis_1r      s\    
!Qq!fAq6::3*	M	M	MB"#6;;D
7C		#M	=	=	= + +ZZ			Z**+ + + + + + + + + + + + + + +/8;E==D
1C		#D	4	4	4 : :19D999: : : : : : : : : : : : : : :
1C		#D	4	4	4 S S424<<			**45HP4PPPRS S S S S S S S S S S S S S S // 6 ,,W55 OFH%%%%%s6   A11A58A5#B>>CC!.DD"Dc                 
   |dv r5t           j                            d          }|                     |           t	          ddgddgdd	gd
ddg          }d}t          j        t          |          5  |                    g dd          }d d d            n# 1 swxY w Y   |	                    |          }|j
                            g d          	                    |          j
        }t          j        ||           d S )N)corrwithngroupnthz&transform incorrectly fails - GH#45986reasonr,   r   r   rI   r:   r(   r   r!   r   r   r   rS   r/   r6   )pytestmarkxfailapplymarkerr   r^   rg   rh   rZ   r[   r   r   )r   reduction_funcmarkerrm   rs   r   rp   ro   s           r   test_transform_axis_1_reducerr      sK      $
 ""*R"SSF###	!Qq!fAq6::3*	M	M	MB
7C		#M	=	=	= + +ZZ			Z**+ + + + + + + + + + + + + + + \\.))Ft||III&&00@@BHOFH%%%%%s   4BB!Bc           
      V   | j         dd         }t          |j                  }t          |j                  }t	          t
          j                            d                              ||f          |j        |j        d          }|}|	                    d d          }||
                    d	          z
  }|                    d
           }t          j        ||           |j        }d}	t          j        t           |	          5  |	                    d dd          }d d d            n# 1 swxY w Y   ||
                    d	          z
  }|                    d           }t          j        ||           |j         ddgt#          t%          dt          |                              z            }|	                    d d          }||
                    d	          z
  }|                    d           }t          j        ||           |j        }d}	t          j        t           |	          5  |	                    d dd          }d d d            n# 1 swxY w Y   ||
                    d	          z
  }|                    d           }t          j        ||           d S )Nr   r:   r   float64)r   r.   r+   c                 *    |                                  S r$   weekdayr    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>       199;; r   FrF   r2   c                 4    | |                      d          z
  S r5   r1   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>       q166q6>>'9 r   r   rS   c                 *    |                                  S r$   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>      qyy{{ r   r,   )r7   rG   c                 F    | j         |                     d          z
  j         S rQ   r   r2   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>      affQii': r   c                 *    |                                  S r$   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>	  r   r   c                 4    | |                      d          z
  S r5   r1   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  r   r   c                 *    |                                  S r$   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  r   r   c                 F    | j         |                     d          z
  j         S rQ   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  r   r   )iloclenr   r.   r   r   rV   rW   r`   rZ   r[   ra   r^   r_   r   rg   rh   rb   rf   )
r   baserr<   tsor   rk   rp   ro   rs   s
             r   test_transform_axis_tsr      s*    <!DDJADLA

	a  00!Q88j	  C 
Bjj..5jAAG'##F+++F}}99::H&(+++	B
7C		#M	=	=	= N N**22u*MMN N N N N N N N N N N N N N N'##F+++F}}::;;H&(+++ 
1a&4aT 3 3444	5Bjj..5jAAG'##F+++F}}99::H&(+++	B
7C		#M	=	=	= N N**22u*MMN N N N N N N N N N N N N N N'##F+++F}}::;;H&(+++++s$   D..D25D25II"Ic                      t          ddgddgg          } |                     d                              d          }t          dgdgg          }t          j        ||           d S )Nr,   r   r   r2   g      ?r   rZ   r[   r^   r_   r   s      r   test_transform_dtyper     si     
QFQF#	$	$BZZ]]$$V,,F3%#((H&(+++++r   c                  >   t          t          d          t          j        d          d          } |                     d          d                             d           }t          t          j        ddd	          dd
          }t          j        ||           d S )N20130101r:   r   rK   r   rK   c                 .    |                      d          S )NF)	ascending)rankr    s    r   r"   z$test_transform_bug.<locals>.<lambda>$  s    affuf6M6M r   r   )stepr   ry   r+   )	r   r
   r   rU   rZ   r[   r	   r^   r~   r   s      r   test_transform_bugr      s     
:..RYq\\BB	C	CBZZ__S!++,M,MNNFbi12...S	JJJH68,,,,,r   c                     t          ddgd          } t          ddgddgd          }|                    d	          j                            d
           }t          j        ||            t          ddgddgd          }|                    d	          j                            d           }t          j        ||            d S )NTr   ry   r   g@r,   r   r   rK   c                     dS NTr   r    s    r   r"   z3test_transform_numeric_to_boolean.<locals>.<lambda>/      4 r   c                     dS r   r   r    s    r   r"   z3test_transform_numeric_to_boolean.<locals>.<lambda>3  r   r   )r	   r   rZ   r   r[   r^   r~   )ro   rm   rp   s      r   !test_transform_numeric_to_booleanr   )  s     tTl---H	#s1a&11	2	2BZZ__((88F68,,,	!Qq!f--	.	.BZZ__((88F68,,,,,r   c                     t          t          d          t          j        d          d          } t	          t          d          t          d          z
  t          d          d          }| d         d         |                     d          d                             fd          z
  }t          j	        ||           |                     d          d                             d           }t          j	        ||           d S )	Nr   r:   r   r   rx   r   c                 \    |                                  |                                 z
  z   S r$   ri   min)r!   	base_times    r   r"   z6test_transform_datetime_to_timedelta.<locals>.<lambda>B  s!    155771BY1N r   c                 T    |                                  |                                 z
  S r$   r   r    s    r   r"   z6test_transform_datetime_to_timedelta.<locals>.<lambda>H  s    aeegg6G r   )
r   r
   r   rU   r	   rf   rZ   r[   r^   r~   )rm   ro   rp   r   s      @r   $test_transform_datetime_to_timedeltar   7  s     
:..RYq\\BB	C	CB*	* 5 55U1XXC  H
 3
I


3&&'N'N'N'NOO
	  68,,, ZZ__S!++,G,GHHF68,,,,,r   c                     t          dt          ddd          d          } |                     d          j                            d           }t          d	d
gd          }t          j        ||           t          dt          ddd          d          } |                     d          j                            d           }t          ddgt          j	        d          }t          j        ||           d S )Nr,   z
2015-01-01r   r   rL   r   r   c                 X    | j         j        | j         j                                        z
  S r$   )dt	dayofweekr2   r    s    r   r"   z4test_transform_datetime_to_numeric.<locals>.<lambda>Q  s    !$.14>#6#6#8#88 r               ?r   r   c                 X    | j         j        | j         j                                        z
  S r$   )r   r  r   r    s    r   r"   z4test_transform_datetime_to_numeric.<locals>.<lambda>Z  s    !$.14>#5#5#7#77 r   r   )r+   ry   )
r   r   rZ   r   r[   r	   r^   r~   r   int32r   s      r   "test_transform_datetime_to_numericr  L  s     
L!#!N!N!NOO	P	PBZZ__((88 F tSk,,,H68,,, 
L!#!N!N!NOO	P	PBZZ__((77 F q!fBH3777H68,,,,,r   c                  .   g d} t          d t          d          D             t          j        g dg d          t	          j        d | D                       dt	          j        dd	          
          }|                    d          d                             d           }t          j
        |j        d          sJ |ddg                             d                              d           }t          j
        |j        j        d          sJ d S )N)z13:43:27z14:26:19z14:29:01z18:39:34z18:40:18z18:44:30z18:46:00z18:52:15z18:59:59z19:17:48z19:21:38c                     g | ]}d | S )zB-r   ).0r   s     r   
<listcomp>z*test_transform_casting.<locals>.<listcomp>r  s    ...q(q((...r      r;   )r   r,   r   r,   r   r,   r,   r,   rI   r,   r,   c                     g | ]}d | S )z2014-10-08 r   )r	  times     r   r
  z*test_transform_casting.<locals>.<listcomp>v  s!    'O'O'O(<d(<(<'O'O'Or   )r   ID3DATETIMEr   r   r   r  r  c                 *    |                                  S r$   r   r    s    r   r"   z(test_transform_casting.<locals>.<lambda>{  s    qvvxx r   mc                 *    |                                  S r$   r  r    s    r   r"   z(test_transform_casting.<locals>.<lambda>~  s     r   )r   rf   r   takerd   to_datetime
RangeIndexrZ   r[   r   is_np_dtyper+   r  )timesrm   rp   s      r   test_transform_castingr  a  s3     E 
..E"II...7)))+L+L+L  'O'O'O'O'OPP	
 	
 mBU+++	
 	
 	
B ZZz*445G5GHHF?6<-----
#$,,U33==>P>PQQF?6?0#6666666r   c                    |                      d d g          }|                    d            d}t          j        t          |          5  |                    t
          j                   d d d            d S # 1 swxY w Y   d S )Nc                     | j         S r$   )yearr    s    r   r"   z)test_transform_multiple.<locals>.<lambda>  s    AF r   c                     | j         S r$   r   r    s    r   r"   z)test_transform_multiple.<locals>.<lambda>  s    ag r   c                     | dz  S Nr   r   r    s    r   r"   z)test_transform_multiple.<locals>.<lambda>  s
    A r   rz   rS   )rZ   r[   r^   rg   rh   r   r2   )r   rk   rs   s      r   test_transform_multipler     s    jj**,=,=>??Goo&&&
$C		#M	=	=	= # #"'"""# # # # # # # # # # # # # # # # # #s    A::A>A>c                    | d d d                              | j                  }|                    d           }d}t          j        t
          |          5  |                    d          }d d d            n# 1 swxY w Y   d}d }t          j        t
          |          5  |                    d	                               |          }d d d            n# 1 swxY w Y   t          j        ||           d S )
Nr:   c                     | j         S r$   r   r    s    r   r"   z)test_dispatch_transform.<locals>.<lambda>  r   r   r   rS   padmethodz)Series.fillna with 'method' is deprecatedc                 .    |                      d          S )Nr#  r$  r   r    s    r   r"   z)test_dispatch_transform.<locals>.<lambda>  s    qxxux-- r   c                     | j         S r$   r   r    s    r   r"   z)test_dispatch_transform.<locals>.<lambda>  r   r   )	rY   r   rZ   r^   rg   rh   r   r[   r_   )r   rm   rk   rs   filledfillitro   s          r   test_dispatch_transformr+    s~   	1		gm	,	,Bjj**++G
1C		#M	=	=	= . .u--. . . . . . . . . . . . . . .
5C--F		#M	=	=	= C C:://00::6BBC C C C C C C C C C C C C C C&(+++++s$   A::A>A>%*CC"Cc                  t   t          g dg ddd          } d}t          j        t          |          5  t	          j        t          d          5  |                     dg                              d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        t          d          5  |                     dg          	                                 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	N)rR   rR      r-     r.  )d      i,  i  i  iX  )pricecolorcostr   rS   z'Must specify a fill 'value' or 'method'r1  r   )
r   r^   rg   rh   r   raises
ValueErrorrZ   r[   r   )rm   rs   s     r   test_transform_fillna_nullr6    s6   	------2	
 	

 
B 2C		#M	=	=	= 6 6]:-VWWW 	6 	6JJy!!++H555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	66 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
	#M	=	=	= + +]:-VWWW 	+ 	+JJy!!((***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	++ + + + + + + + + + + + + + + + + +sk   B*B;BB	BB	BB"%B"D- )D	D-D	D-D	D--D14D1c           
         
 t          g dddt          j        ddt          j        dgdt          dd          	          } d
k    rd }d n( dk    rd }d n dk    rd }d

fdn
 fd} fd dk    rd}d}t          }t          }n dk    rd}d}d }t          }ndx}}d x}}t          j        ||          5   ||                    d                    }d d d            n# 1 swxY w Y   |dg         j        dd         |dg         j        dd          |dg         j        d d         g}t          j        ||          5  t          fd|D                       
                                }	d d d            n# 1 swxY w Y   |	                    |j                  }	 d v rt          j        ||	           d S t          j        ||	           d S )!N)foor8  r8  r8  barr9  bazr,   r   r   rI   r   z
2020-01-01z
2020-01-07r   cumcountc                 ,    |                      d          S )Nr;  r[   r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKK
33 r   c                 `    t          t          t          |                     | j                  S r$   )r	   rf   r   r   r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    F5Q==!':: r   r   c                 0    |                      dd          S )Nr   r   valuer=  r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKKK:: r   c                 .    |                      d          S )Nr   r@  r'  r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AHH1H-- r   r   c                 ,    |                      d          S )Nr   r=  r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKK11 r   r   c                 :    dz  t          | j                  S )Nr,   r   )r	   r   )r!   counters    r   mock_opz3test_transform_transformation_func.<locals>.mock_op  s!    qLG'1111r   c                 .    |                                S r$   r=  r!   r   s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKK(;<< r   c                 4     t          |                       S r$   )getattrrH  s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    ;GA':;;== r   
pct_changezCThe default fill_method='pad' in DataFrame.pct_change is deprecatedLThe default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecated r   rS   r   rK   r(   c                 &    g | ]} |          S r   r   )r	  rr   rF  s     r   r
  z6test_transform_transformation_func.<locals>.<listcomp>  s!    666!771::666r   r;  r   )r   r   nanr   rh   r^   rg   rZ   r   r   r]   set_axisr   r~   r_   )r   rm   test_oprs   groupby_msgr   groupby_warnrp   groupsro   rE  rF  s   `         @@r   "test_transform_transformation_funcrV    s   	BBBQ1bfa0	
 	
 |44
 
 
B j( >33::		( >::--		( >11	2 	2 	2 	2 	2 	2 =<<<====l* #S 	 $		( #=$k""|		#L	D	D	D * *C))* * * * * * * * * * * * * * *
 #inQqS!2se9>!""#5r3%y~bqb7IJF		#D	4	4	4 E E6666v66677BBDDE E E E E E E E E E E E E E E   **H44 0
vx00000
fh/////s$   C..C25C2.F

FFc                    d }|                      d          ddg                             |          }| ddg         }|                     | d                                       |          }t          j        ||           d S )Nc                 *    |                                  S r$   r1   r    s    r   r"   z/test_transform_select_columns.<locals>.<lambda>  s    !&&(( r   r   r   r   )rZ   r[   r^   r_   )rm   r   rp   	selectionro   s        r   test_transform_select_columnsrZ    s{    AZZ__c3Z(22155FC:I  C))33A66H&(+++++r   c                    g d| _         |                     d          }|d         }t          j        t          d          5  |                    d            d d d            n# 1 swxY w Y   t          j        t          d          5  |                     d                              d            d d d            d S # 1 swxY w Y   d S )N)r   rK   rK   r   r   rK   Could not convertrS   c                 *    t          j        |           S r$   r   r2   r    s    r   r"   z0test_transform_nuisance_raises.<locals>.<lambda>  s    

 r   c                 *    t          j        |           S r$   r^  r    s    r   r"   z0test_transform_nuisance_raises.<locals>.<lambda>  s    BGAJJ r   )r.   rZ   r   r4  	TypeErrorr[   )rm   rk   gbcs      r   test_transform_nuisance_raisesrb    sJ    &%%BJ jjooG
#,C	y(;	<	<	< , ,**+++, , , , , , , , , , , , , , , 
y(;	<	<	< 8 8


3!!"6"67778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s$   A%%A),A)*CC	Cc                    |                      d                              dd          }d}t          j        t          |          5  |                      d          ddg                             t
          j                  }d d d            n# 1 swxY w Y   t          j        ||           |                      d          d                             d          }d	}t          j        t          |          5  |                      d          d                             t
          j                  }d d d            n# 1 swxY w Y   t          j        ||           d S )
Nr   r2   T)numeric_onlyr   rS   r   r   rz   )	rZ   r[   r^   rg   rh   r   r2   r_   r~   )rm   rp   rs   ro   s       r   test_transform_function_aliasesre    s   ZZ__&&vD&AAF
'C		#M	=	=	= B B::c??C:.88AAB B B B B B B B B B B B B B B&(+++ZZ__S!++F33F
$C		#M	=	=	= ; ;::c??3'11"'::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;68,,,,,s$   ;BBB:9D??EEc                  z   t          t          j        dddgt          dd          d          } |                     d          d                             d          }t          j        t          d	          t          d	          t          d          g}t          |dd
          }t          j        ||           d S )Nr,   r   r   r   )r   r=   r   r=   r   r   r   r   )r   r   rP  r   rZ   r[   rd   NaTr
   r	   r^   r~   r   s       r   test_series_fast_transform_daterh    s    	faA&Z
J-O-OPP
 
B ZZ
##C(227;;F
***	E e#X666H68,,,,,r   c                     t          g ddddt          j        gd          } t          dgdz            }d }d	}t	          j        t          |
          5  |                     d                              t                    d         |                     d          d                             t                    |                     d                              |          d         |                     d          d                             |          g}d d d            n# 1 swxY w Y   |D ]}t	          j
        ||d           d S )Nr,   r,   r   r   r,   r   r   )col1col2      @rI   c                 *    t          j        |           S r$   )r   nansumr    s    r   nsumz#test_transform_length.<locals>.nsum(  s    y||r   zusing DataFrameGroupBy.sumrS   rk  rl  F)check_names)r   r   rP  r	   r^   rg   rh   rZ   r[   r%   r~   )rm   ro   rp  rs   resultsrp   s         r   test_transform_lengthrs  #  s   	LLL1aBF2CDD	E	EBseai  H   'C		#M	=	=	= 
 
JJv((--f5JJvv&0055JJv((..v6JJvv&0066	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
  D D
vxUCCCCCD Ds   CD##D'*D'c                  Z   t          g dg dd          } |                     d          }d}t          j        t          |          5  |                    t          j                  }d d d            n# 1 swxY w Y   |                    d           }t          j        ||           d S )N)r   r   r   r   )r   r,   r   rI   r   r   r   rS   c                 .    t          j        | d          S r5   r^  r    s    r   r"   z)test_transform_coercion.<locals>.<lambda>B  s    2711#5#5#5 r   )	r   rZ   r^   rg   rh   r[   r   r2   r_   )rm   rr   rs   ro   rp   s        r   test_transform_coercionrv  7  s     
---LLLAA	B	BB


3A
'C		#M	=	=	= ( (;;rw''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( [[5566F&(+++++s   	 A55A9<A9c                     t          g dt          dd          t          g dd          dd          } t          j        d	          5  |                     d
          ddg                             d           }d d d            n# 1 swxY w Y   t          t          j        t          g dd          d          }t          j        ||           t          g ddg ddd          } t          j        d	          5  t          j
        t          d          5  |                     d
                              d            d d d            n# 1 swxY w Y   |                     d
          ddg                             d           }d d d            n# 1 swxY w Y   t          t          j        g dd          }t          j        ||           t          g d          }t          g dd|dd          } t          j        d	          5  t          j
        t          d          5  |                     d
                              d            d d d            n# 1 swxY w Y   |                     d
          ddg                             d           }d d d            n# 1 swxY w Y   |j        dd         }||                                z
  |                                z  }|j        dd         }||                                z
  |                                z  }t          t          j        t          ||g          d          }t          j        ||           |                     d
          ddg                             d           }t          dg dd          }t          j        ||           d S )N)r,   r,   r,   r   r   r   r,   r   r*   r,   r   r   r,   r   r   r8  r   ignore)r   r   rK   r   c                 Z    | |                                  z
  |                                 z  S r$   r2   stdr    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>T      q16688|quuww. r   )r   r   r,   r   r   r,   )rK   r   r\  rS   c                 Z    | |                                  z
  |                                 z  S r$   r{  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>f      QVVXX0H r   c                 Z    | |                                  z
  |                                 z  S r$   r{  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>h  r}  r   )                    ?r  r  r  )r   r   rI   rR   r:   r   c                 Z    | |                                  z
  |                                 z  S r$   r{  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>r  r  r   c                 Z    | |                                  z
  |                                 z  S r$   r{  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>t  r}  r   r   r   r(   c                     | dz  dz  S r  r   r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>  s    QUQY r   r  )       @rm        @      $@      @r  )r   r	   r   errstaterZ   r[   rP  r^   r_   r   r4  r`  r   r2   r|  r   )rm   rp   ro   ss1s2s         r   test_groupby_transform_with_intr  F  s(    
###+++***)<<<		
 	

 
B 
	"	"	" 
 
C#s,66..
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 f6"6"6"6iHHHII H &(+++ 
######		
 	

 
B 
	"	"	" 
 
]9,?@@@ 	J 	JJJsOO%%&H&HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	JC#s,66..
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 rv,L,L,LMMNNH&(+++ 	###$$A	+++!!%HH	I	IB		"	"	" 
 
]9,?@@@ 	J 	JJJsOO%%&H&HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	JC#s,66..
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
!B
rwwyy.BFFHH	$B	
!B
rwwyy.BFFHH	$BrvFB8,<,<==>>H&(+++ ZZ__c3Z(223F3FGGFs)I)I)IJJKKH&(+++++s~   2B

BBF *E
FE	FE	4FF"%F"J24*I*J2*I.	.J21I.	24J22J69J6c                     t          t          d          ddddt          j        dddddg
d          } d}t	          j        t          |	          5  |                     | j                  d
         	                    t                    }d d d            n# 1 swxY w Y   t          ddddt          j        dddddg
d
          }t	          j        ||           d S )NrR   r,   r   r   rI   r:   r   zusing SeriesGroupBy.maxrS   r   r  r  rm        @      "@r   )r   rf   r   rP  r^   rg   rh   rZ   r   r[   ri   r	   r~   )rm   rs   rp   ro   s       r   %test_groupby_transform_with_nan_groupr    s   	r!Q1bfaAq!)LMM	N	NB
#C		#M	=	=	= 6 6BD!!#&00556 6 6 6 6 6 6 6 6 6 6 6 6 6 6sCc263S#sKRUVVVH68,,,,,s   9BBBc                  z   t          j        g dg dg          } t          g dt          j        g dd          t          j        dd          d| 	          }d
 }|                    d          }d}t          j        t          |          5  |
                    |          }d d d            n# 1 swxY w Y   |d         j        t          j        k    sJ t          j        dd           5  |D ]0\  }} ||          }t          j        ||j        |                    1	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r,   r,   r,   rx  )r  r  r  r  r  r  r   r   r  g      @)r=   r<   vr   c                 2    | d         dz  | d<   | d d         S )Nr=   r   rr   r,   r   )groups    r   r   z$test_transform_mixed_type.<locals>.f  s!    3Z!^c
RaRyr   r<   7DataFrameGroupBy.apply operated on the grouping columnsrS   r=   zmode.chained_assignment)r   from_arraysr   r   tilerU   rZ   r^   rg   DeprecationWarningra   r+   r   rd   option_contextr_   loc)	r   rm   r   rk   rs   rp   rn   r  r   s	            r   test_transform_mixed_typer    s   "$6$6$68J8J8J#KLLE	///!,,3$$	
 	

 
 
 
B   jjooG
CC		#$6c	B	B	B " "q!!" " " " " " " " " " " " " " " #;
**** 
	4d	;	; 8 8! 	8 	8JC!E((C!#vz#7777	88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s$   B11B58B5.4D00D47D4zop, args, targopcumprodr   c                 *    |                                  S r$   r  r    s    r   r"   r"         !))++ r   cumsumc                 *    |                                  S r$   r  r    s    r   r"   r"          r   r   )r   c                 ,    |                      d          S Nr   r   r    s    r   r"   r"         1772;; r   )r,   c                 *    |                                  S r$   r  r    s    r   r"   r"         !'')) r   c           
         t          t          j                            d                              d                    }|                                }t          j        |j        dd<   t          j                            d                              ddd          	                    t                    }||fD ]}|                    |                              |          }t          j        | |                    |          j        | g|R             t          j        | t          |                    |          |           |            d S )Nr   i  rR   r   rH   size)r	   r   rV   rW   r`   copyrP  r   integersr   floatrZ   r[   r^   r~   rJ  )opr   targopr  	s_missinglabelsrj   ro   s           r   test_cython_transform_seriesr    s1    	ry$$Q''77==>>AI6IN1R4Y""1%%..q"4.@@GGNNF I S S<<''11&99
x)Gf)=)=)G)RT)R)R)RSSS
x)Jf1E1Er)J)JD)QRRRRS Sr   r  skipnaFTz
input, expr   rR   )rn   rA  rA  r   r   r   r      )rm  r        ;@r&   rm  r  r  g     @T@g     `n@g     Ȇ@g     @g     @g    8@)rm  r  r  r  g      (@g      .@g      2@g      5@g      8@))r  F)r  T)r  F)r  Tc                    t          |          }|                    d          d                             | |          }t          |t                    r|| |f         }n|}t          |d          }t          j        ||           d S )Nrn   rA  )r  r   )r   rZ   r[   
isinstancedictr	   r^   r~   )r  r  inputexprm   rp   ro   s          r   test_groupby_cum_skipnar    s    \ 
5		BZZw'11"V1DDF#t F|$hW---H8V,,,,,r   c                     t          t          j                            d                              d                    } |                                 }t          j        |j        dd<   t          d          dz  }|d d          }t          j        |d<   t          | |g ddz  t          dd          t          j        d	d
d          ||t          |          d          }|S )Nr   rR   r&   abcder:   )r,   r,   r,   r,   r   z1990-1-1rM   r,   r  )rN   rM   )r  float_missingintdatetime	timedeltastringstring_missingcat)r	   r   rV   rW   r`   r  rP  r   rb   r   r   rd   timedelta_ranger   )floatingfloating_missingstringsstrings_missingrm   s        r   framer    s    bi++A..>>rBBCCH}}!#!A#7mmaGaaajOOA	-"??Q&":r:::+ACDDD-w''		
 		

 
B Ir   c                 p    t          j        t          d          t          d          g          | _        | S )Nr:   r   )r   from_productrf   r   )r  s    r   frame_mir    s*    )588U1XX*>??EKLr   c                 *    |                                  S r$   r  r    s    r   r"   r"     r  r   c                 *    |                                  S r$   r  r    s    r   r"   r"     r  r   c                 ,    |                      d          S r  r  r    s    r   r"   r"      r  r   c                 *    |                                  S r$   r  r    s    r   r"   r"   !  r  r   df_fixr  r  	gb_targetbyrH   r  levelr  r  )marksr  c                 `   |                      |          } |j        dddi|}|dk    rQd|vrM|dg                             |          }|ddg                             |          }	t          |	|gd          }
n|dk    s/t	          |                    d	          t          t          f          sd }nt          }d
}t          j
        ||          5  |                    |          }
d d d            n# 1 swxY w Y   |
                    d          }
|dk    rd}t          j
        t          |          5  |
d                             t          j        d          |
d<   |
d                             t          j        d          |
d<   d d d            n# 1 swxY w Y    ||
j                 j        |g|R                      d          }t          j        ||
            t'          ||
j                 |          |                     d          }t          j        ||
           d S )NrG   Fr   r  r  r  r,   r6   r  r  rS   .The 'downcast' keyword in fillna is deprecatedr  downcastr  r   )getfixturevaluerZ   ra   r   r  getstrrb   r  r^   rg   r]   rh   r   r   rP  r.   r[   r_   rJ  )r   r  r   r  r  r  rm   r   r   r   ro   r   rs   depr_msgrp   s                  r   test_cython_transform_framer    s   , 
	 	 	(	(B		2	2u	2		2	2B	W} (i/ ( wKf%%)*00881a&q)))= 	&
9==+>+>d L L 	&DD%DG'C888 	( 	(xx''H	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( """**H	W} SC'XFFF 	S 	S)12B)C)J)J *K * *H%& "*(!3!:!:26E!:!R!RHX		S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S ,R !+B6666AAqAIIF&(+++.WR()2..5@@a@HHF&(+++++s%   C55C9<C99AFF!Fc                 *    |                                  S r$   r  r    s    r   r"   r"   U  r  r   c                 *    |                                  S r$   r  r    s    r   r"   r"   V  r  r   c                 ,    |                      d          S r  r  r    s    r   r"   r"   W  r  r   c                 *    |                                  S r$   r  r    s    r   r"   r"   X  r  r   column)r  r  r  r  r  r  r  c                    |                      |          } |j        dddi|}|}	|	dvr|dk    r|	dk    r|dk    sd                    g d          }
t          j        t
          |
	          5  ||	                             |           d d d            n# 1 swxY w Y   t          j        t
          |
	          5   t          ||	         |                       d d d            d S # 1 swxY w Y   d S ||	                             |          }|	|_	        |	d
v rVd}t          j        t          |	          5  |                    t          j        d          }d d d            n# 1 swxY w Y    ||	         j        |g|R  }t          j        ||            t          ||	         |          | }t          j        ||           d S )NrG   F)r  r  r  r   r  r  |)zdoes not support .* operationsz$.* is not supported for object dtypez!is not implemented for this dtyperS   )r  r  r  r  r   )r  rZ   joinr   r4  r`  r[   rJ  ra   ry   r^   rg   rh   r   r   rP  r~   )r   r  r   r  r  r  r  rm   r   r<   rs   ro   r  r   res2s                  r   "test_cython_transform_frame_columnr  Q  s   J 
	 	 	(	(B		2	2u	2		2	2BA	22/'M/ k!/ ')Hn/
 hh  
 
 ]9C000 	  	 qEOOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ]9C000 	! 	!GBqE2   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! a5;;v&&,, 	CGH+MJJJ C C#??26E?BBC C C C C C C C C C C C C C C beob(4(((
x---!wr!ub!!4(
x.....s6   /BBB=C))C-0C-9"E''E+.E+c                     t          j        g d          } t          t          j                            d                              ddd          | g d          }d}t          j        t          |	          5  |
                    dd
          }d d d            n# 1 swxY w Y   d}t          j        t          |	          5  |                    d            d d d            d S # 1 swxY w Y   d S )N))synr   )r8  r   )nonr   )r  r   )r8  r   )r  r   )r  r   )r8  r   )r  r   )r  G)r8  r  )r  r  r   r,   rR   )rI   r'   )r   r   r  r   r-   r   rS   )r7   r  z5transform must return a scalar value for each group.*c                 X    |                      |                     d          d          S )Nr,   r6   r   )divr%   )zs    r   r"   z6test_transform_with_non_scalar_group.<locals>.<lambda>  s"    quuQUUU]]u;; r   )r   from_tuplesr   r   rV   rW   r  r^   rg   rh   rZ   r   r4  r5  r[   )colsrm   rs   r   s       r   $test_transform_with_non_scalar_groupr    s   !	
 	
 	
 D  

	a  ))!R99"""
 
 
B 8C		#M	=	=	= ) )ZZQaZ(() ) ) ) ) ) ) ) ) ) ) ) ) ) )
AC	z	-	-	- = =
;;<<<= = = = = = = = = = = = = = = = = =s$   :BB"%B"C**C.1C.zcols,expected)r,   r,   r,   r<   )r   r<   agg_func)r}   r   r  c                    t          t          dd          t          d          t          dd          d          }|                    d          |                              |          }|dk    r|                    d	          }n)|d
k    r#| ddgk    r|d                             d           }t          j        ||           d S )N
2018-01-01r   r  r&   rR   r   r   r   r  r  r   r<   )	r   r   rf   rZ   r[   r   renamer^   r   )r  ro   r  rm   rp   s        r   test_transform_numeric_retr    s     
q111auQPR||TT
 
B ZZ__T",,X66F6 .??7++	V	 .c
 2 .C=''--OFH%%%%%r   c                     ddgdt          d          gddgdt          d          gg} t          | ddg          }|                    d                              d	          }t          dg d
i          }t	          j        ||           |                    d          d                             d	          }t          g d
d          }t	          j        ||           d S )Nr   r  rP  r   r  rn   r|   r   ffill)r  r  r  r  r   )r  r   rZ   r[   r^   r_   r	   r~   )rj   rm   rp   ro   s       r   test_transform_ffillr    s    #JeEll+c3Z#uU||9LMD	4%!2	3	3	3BZZ((11F($8$8$89::H&(+++ZZx(227;;F***:::H68,,,,,r   mix_groupings	as_seriesz	val1,val2))r8  r9  )r,   r   )r  r  zfill_method,limit,exp_valsr  val1val2r,   bfillc                 N   t           j        t           j        |t           j        t           j        |t           j        t           j        g}t          |          }t          |          D ]\  }	}
|
dk    r|||	<   |
dk    r|||	<   | r.ddgt	          |          z  }d } ||          } ||          }n1dgt	          |          z  dgt	          |          z  z   }|dz  }|dz  }t          ||d          }|r[ t          |                    d          d	         |          |
          }t          |d	          }t          j
        ||           d S  t          |                    d          |          |
          }t          d	|i          }t          j        ||           d S )Nr  r  r   r   c                 B    g }| D ]}|                     ||g           |S r$   )extend)list_objtempr!   s      r   
interweavez+test_group_fill_methods.<locals>.interweave  s4    D $ $QF####Kr   r   )rn   rw   rn   rw   limitr   )r   rP  rb   	enumerater   r   rJ  rZ   r	   r^   r~   r_   )r  r  r  r  fill_methodr  exp_valsvals	_exp_valsr   exp_valkeysr  rm   rp   r  s                   r   test_group_fill_methodsr    s   . FBFD"&"&$GDXI#I.. $ $wf 	$#Ie 	$#Ie  SzCII%	 	 	 Jy))	z$us4yy C53t99#44M	ax	4--	.	.B +?E**51;??eLLLYU+++
vs+++++8E**K88uEEE	*++
fc*****r   r  c                 4   dgdz  }t           j        gdz  dgdz  z   }| dk    r|d d d         }t          ||d          }|                    dd	          } t	          |                    d          |                       }t          j        ||           d S )
Nr   r-  rR   r,   r  r   r!   r   r!   r6   )r   rP  r   r   rJ  rZ   r^   r_   )r  r!   r   rm   ro   rp   s         r   test_pad_stable_sortingr    s     
bA	2b Ag dddG	##	$	$Bwwsw##H2WRZZ__k2244F&(+++++r   rN   r   z7GH#23918 before method uses freq in vectorized approachr   rM   r   )r  r  Nr  c           
      <   dt           j        t           j        t           j        ddddt           j        dg
}ddg}t          j        |t          |                    }t	          ||dz  d          }|}	|- t          |                    d	          |          |
          }	|	                    |j                  }
|
d         j        |
d         	                    |          z  dz
  }|                    d	          }| t          u r	|d         }n|                    d          }dt          |          j         d}t          j        t           |          5  |                    ||||          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   r,   r   rI   rR   r   r   )rn   r  rn   r  r  zDThe 'fill_method' keyword being not None and the 'limit' keyword in z.pct_change are deprecatedrS   )rM   r  r  rN   )r   rP  r{   r   r   rJ  rZ   rn   objr   r	   to_frametype__name__r^   rg   rh   rK  r   )frame_or_seriesrN   rM   r  r  r  r  key_vrm   df_gr   ro   r   rs   rp   s                  r   test_pct_changer#  ,  s   " rvrvrvq!QBFA>D:DIdCII&&E	5$(33	4	4BD D6wrzz%((+66UCCC
,,rv

C6{V!2!27!;!;;a?H	E		B&  -Z$$V,,	988	9 	9 	9  
	#M	=	=	= 
 
E  
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 OFH%%%%%s   E<<F F zfunc, expected_statusshrtlngntrlc                    t          j        g d          }g d}dt          j        dt          j        ddt          j        g}t	          |||d          }|                    ddg          } t          |                    d          d	         |                       }t          j	        t          t          ||g           ddg
          }t          ||d	          }t          j        ||           d S )N)r  r  r  r  
2018-01-02r  r(  )MSFTr)  r)  AAPLr*  TSLAr+  r$  r%  r&  )datesymbolstatusr,  r-  r.  )tuplesnamesrx   )rd   r  r   rP  r   	set_indexrJ  rZ   r   r  rb   zipr	   r^   r~   )	funcexpected_statusr,  r-  r.  rm   rp   r   ro   s	            r   &test_ffill_bfill_non_unique_multilevelr5  [  s    >	
 	
 	

 
D FEEFbfeRVVVRVDF	DFfEE	F	FB	vx(	)	)B:WRZZ))(3T::<<F"C$())&(1C  E oUBBBH68,,,,,r   r3  c                 ~   t          ddgt          j        dgddggddg          }t          dt          j        dgd          }d}t	          j        t          |          5  |                    d          d                             |           }d d d            n# 1 swxY w Y   t	          j	        ||           d S )	Nr8  Trn   rw   r   r   zusing SeriesGroupBy.[any|all]rS   )
r   r   rP  r	   r^   rg   rh   rZ   r[   r~   )r3  rm   r  rs   r   s        r   test_any_all_np_funcr7  ~  s     

6
 
 
B $%E
2
2
2C
)C		#M	=	=	= 7 7jj&00667 7 7 7 7 7 7 7 7 7 7 7 7 7 73$$$$$s   "/BB!$B!c                  ~   d } t          t          d          g dd          }t          dg di          }|                    d                              |           }t	          j        ||           |                    d          j                            |           }t	          j        ||d                    d S )Nc                     | |                                  z
  }t          | t                    r|S |                    d |j        D                       }|S )Nc                     i | ]}|| d 	S )	_demeanedr   )r	  r<   s     r   
<dictcomp>zHtest_groupby_transform_rename.<locals>.demean_rename.<locals>.<dictcomp>  s     'S'S'Sqa???'S'S'Sr   r   )r2   r  r	   r  r.   )r!   rp   s     r   demean_renamez4test_groupby_transform_rename.<locals>.demean_rename  sS    QVVXXa   	M'S'SFN'S'S'STTr   ababa)r,   r,   r,   r   r   )r  rA  rA  )UUUUUUտr  r?  r  gUUUUUU?r  )r   rb   rZ   r[   r^   r_   rA  r~   )r=  rm   ro   rp   result_singles        r   test_groupby_transform_renamerA    s       
T']]___EE	F	FB'#K#K#KLMMHZZ  **=99F&(+++JJw''-77FFM=(7*;<<<<<r   r   lastc                    t          j        dd                              d          }t          |gdgd          }t	          | t
                    st          nd }d}t          j        ||          5  |	                    d	          j
                            |           |d
<   d d d            n# 1 swxY w Y   t          |d|ggg d          }t          j        ||           d S )NnowT)utczAsia/Singaporer,   )end_timerv   zusing SeriesGroupBy.[min|max]rS   rv   max_end_time)rF  rv   rG  r   )rd   r  
tz_convertr   r  r  rh   r^   rg   rZ   rF  r[   r_   )r3  r   rp   r   rs   ro   s         r   &test_groupby_transform_timezone_columnrI    s:    
4	(	(	(	3	34D	E	EBRD4455F *4 5 5?==4D
)C		#D	4	4	4 O O!'!5!5!>!H!H!N!N~O O O O O O O O O O O O O O O2q"+0R0R0RSSSH&(+++++s   41B11B58B5zfunc, valuesidxmin1/1/2011z1/3/2011z	1/10/2011idxmaxz1/2/2011z1/9/2011c                    t          ddd          }t          dt          j        d          i|          }|                                j        |d<   |                    |d                   d                             |           }t          t          j
        |                              d	          |d
          }t          j        ||           d S )NrK  rR   r   rL   r1  r  r   week_idns)rj   r   ry   )r   r   r   rU   isocalendarweekrZ   r[   r	   rd   r  as_unitr^   r~   )r3  r|   r   stocksrp   ro   s         r   %test_groupby_transform_with_datetimesrT    s     z2C888E41???F))++0F9^^F9-..w7AA$GGF^F##++D11W  H 68,,,,,r   c                     t          dgdgd          } | d                             d           }t          dgdd          }t          j        ||           |                     d	          d                             d
           }t          j        ||           |                     d	          d                             d           }t          dgdd          }t          j        ||           | d                             t                    | d<   |                     d	          d                             d           }t          j        ||           d S )Nr,   g?)r   rw   rw   c                 .    |                      d           S )Nc                     d|  S N+r   r   s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  s    7q77 r   mapr    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>  s    1551B1B+C+C r   z+1.35rc   r   r   c                 .    |                      d           S )Nc                     d|  S rX  r   rZ  s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>      A r   r[  r    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>      >O>O8P8P r   c                 .    |                      d           S )Nc                     d|  dS )Nz+()r   rZ  s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  s    	Q			 r   r[  r    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>  s    >Q>Q8R8R r   z+(1.35)c                 .    |                      d           S )Nc                     d|  S rX  r   rZ  s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  r_  r   r[  r    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>  r`  r   )r   r[   r	   r^   r~   rZ   r   rc   )rm   rp   	expected1	expected2s       r   test_groupby_transform_dtyperh    sA   	!dV,,	-	-BY  !C!CDDFyuH===I69---ZZ__U#--.P.PQQF69---ZZ__U#--.R.RSSF	{h???I69---5	  ((BuIZZ__U#--.P.PQQF69-----r   )r  r  cummincummaxc                    dg}t          d          }dg}t          t          ||          |d          } t          |j                            |j        d          |                       }|j        }t          j        ||           d S )Nr,   r   r  Fobserved)	rf   r   r   rJ  r   rZ   r!   r^   r~   )r3  x_valsx_catsr   rm   rp   ro   s          r    test_transform_absent_categoriesrp    s     SF1XXF	
A	VV441==	>	>B>WRT\\"$\77>>@@FtH68,,,,,r   )r  r  r   zkey, val)r  r   c           	          t          t          j        gg          } t           |j        di ||i|                       }|}t          j        ||           d S )Nr   )r   r   rP  rJ  rZ   r^   r_   )r3  rn   rw   rm   rp   ro   s         r   test_ffill_not_in_axisrr    sb     
RVH:		B4WZRZ--3*--t4466FH&(+++++r   c                  j   t          dg di          } |                     g d          }t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          |d          sJ t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   | d                             g d          }t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   )r   r,   r,   r   )r   r   r   r<   znot a valid function namerS   some_arbitrary_name	aggregate)r   rZ   r   r4  r5  r[   hasattr)rm   rr   s     r   "test_transform_invalid_name_raisesrw    s   	C&	'	'B


'''((A	z)D	E	E	E + +	)***+ + + + + + + + + + + + + + + 1k"""""	z)D	E	E	E ! !	K   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 	3,,,--A	z)D	E	E	E + +	)***+ + + + + + + + + + + + + + + + + +s6   A((A,/A, CC	CD((D,/D,c                 z   |}t          g dt          d          dg d          }|t          u r|d         }|                    t	          j        ddgd	                    }|d
k    r)t          |t                    rt          ||          rJ d S t          ||          } |j	        |g|R  }t          j        |j        |j                   |dvr*|j        dk    rt          j        |j        |j                   t          t!          t          |          j        dd df                             dk    sJ d S )Nr  r(   r   )r   rK   r   r   EFr   r   r   r,   r   r   )r   r  r   r   )r   rf   r	   rZ   r   r{   r  rv  r   r[   r^   r   r   ndimr.   r   setr   )r   r   r   r3  r  rr   r   rp   s           r   test_transform_agg_by_namer~    sa   D
   uQxx00,,,  C &  #hBIq!fa(())Az jf55 1d#####">377DQ[%%%%F &,	222%% ;#(a- ;
fnck::: s9V$$)"##r'23344999999r   c                  R   t          t          d          t          d          gddgd          } |                     dg          d                             d           }t	          t          dd	          t          dd	          gd
          }t          j        ||           d S )Nz2010-07-15 03:14:45z2010-11-19 18:47:06z	Etc/GMT+4z
US/Eastern)r  timezoner  r  c                 @    | j                             | j                  S r$   )r   tz_localizery   r    s    r   r"   z7test_transform_lambda_with_datetimetz.<locals>.<lambda>/  s    !$""16** r   )tzr   )r   r
   rZ   r[   r	   r^   r~   r   s      r   %test_transform_lambda_with_datetimetzr  #  s    	 /00/00 %l3	
 	

 
B ZZ%%f-77** F +<<<+===	
   H 68,,,,,r   c                     t          g dg dd          } |                     d          }d }|j        }|j                            ||j                  }|                    |          \  }}t          |          \  }}t          j	        t          d          5   ||           d d d            n# 1 swxY w Y   |                    |          }	t          g d	d
g          }
t          j        |	|
           d S )Nrj  )r,   r   r,   r   r   r   c                 @    | j         dk    rt          d          | dz  S )Nr   Don't cross the streams)r|  NotImplementedError)r   s    r   r3  z,test_transform_fastpath_raises.<locals>.funcB  s+     8q= 	A%&?@@@Qwr   r6   r  rS   )r   r   rI   rK   r   )r   rZ   _obj_with_exclusions_grouperget_iteratorr7   _define_pathsnextr   r4  r  r[   r^   r_   )rm   r   r3  r  gen	fast_path	slow_pathr   r  rp   ro   s              r   test_transform_fastpath_raisesr  ;  sL    
MMM::	;	;B	CB   
!C
+
"
"3RW
"
5
5C++D11IyCyyHAu	*2K	L	L	L  	%               \\$F666H&(+++++s   B44B8;B8c            	         t          g dg dt          d          t          d          t          d          d          } |                     ddg          } |                                 } |                     d                              d           }t          g d	g d	g d	d
t          j        g dddg                    }t          j	        ||           d S )N)r8  r9  r8  r9  r8  fluxr8  r  )rD   rD   rE   threerE   sixfiver  r  )r   rK   r   r   ry  r   rK   )r  c                     | j         d         S r  )r   r    s    r   r"   z0test_transform_lambda_indexing.<locals>.<lambda>f  s    qvbz r   )r   r   r&   r&   rI   rI   rI   rI   )r   r   ry  ))r9  rD   )r9  r  )r  r  )r  r  )r8  r  )r8  rD   r8  rE   r  )r0  r   )
r   rf   r1  r]   rZ   r[   r   r  r^   r_   r   s      r   test_transform_lambda_indexingr  Y  s   	KKKNNNqqq	
 	

 
B 
sCj	!	!B	BZZcZ"",,-A-ABBF)))))))))	
 	

 $	 	 	 *
 
 
  H( &(+++++r   c                    t          t          g dg d          g dg dd          }t          g dg dg dd          }|                    ddg|                               d	          }|                    ddg                              d	          }t	          j        ||           t          d
g di          }t	          j        ||           |                    ddg|           d
                             d	          }|                    ddg          d
                             d	          }t	          j        ||           t          g dd
          }t	          j        ||           d S )N)r   r   r   r   )
categoriesr   )r   rK   r   r   r   rl  r%   rK   )rI   r   rI   r   )r   r   rZ   r[   r^   r_   r~   r	   )rm  df_with_categoricaldf_without_categoricalrp   ro   expected_explicits         r   (test_categorical_and_not_categorical_keyr  ~  s   
 $___III 	
 	
  'ooIIIOOODD 
 !((#sh(GGQQRWXXF%--sCj99CCEJJH&(+++!3			"233&"3444 !((#sh(GGLVV F &--sCj99#>HHOOH68,,,yyys3336#455555r   c                      t          g dg dd          } |                     d                              d          }t          dg di          }t          j        ||           d S )N)r,   r,   r   r   r   r   r   rK   )r  r  r  r   r   s      r   test_string_rank_groupingr    sk    	33	4	4BZZ__&&v..F#/00H&(+++++r   c                  d   t          g dt          d          d          } |                     t          j        ddgd                    }|                                }t          g d          }t          j        ||           |	                    d          }t          j        ||           d S )	Nr  r(   r   r   r,   r   )r   r,   r   r   r,   r   r;  )
r   rf   rZ   r   r{   r;  r	   r^   r~   r[   )rm   r   rp   ro   s       r   test_transform_cumcountr    s    	+++%((;;	<	<B
**RY1vq))
*
*C\\^^F((())H68,,,]]:&&F68,,,,,r   r  A1A2c                 V   d}t           j                            d                              ddg|          }t           j                            d                              ddg|          }t	          |          dk    r|n||z  }t           j                            d                              dd|                              t                    }t           j        ||<   t           j                            d                              dd|                              t                    }t           j        ||<   t           j                            d                              dd|j	                  }	t          |||	d	          }
|	}|r=|                                r)|                    t                    }t           j        ||<   t          |d
g          }|
                    |||           }|d
g                             d           }t          j        ||           d S )NrH   r   FTr,   r   r:   r  )r  r  rK   rK   r   )dropnasortc                     | S r$   r   r    s    r   r"   z-test_null_group_lambda_self.<locals>.<lambda>  s    1 r   )r   rV   rW   choicer   r  r   r  rP  shaper   anyrZ   r[   r^   r_   )r  r  r  r  nulls1nulls2nulls_groupera1a2r|   rm   expected_valuesro   r   rp   s                  r   test_null_group_lambda_selfr    s    DY""1%%,,eT]DAAFY""1%%,,eT]DAAF!$ii1nAFF&6/M			q	!	!	*	*1ad	*	;	;	B	B5	I	IBBvJ			q	!	!	*	*1ad	*	;	;	B	B5	I	IBBvJY""1%%..q!"(.CCF	"BV44	5	5BO 0-##%% 0)0077)+&3%888H	Dd	3	3BY  --F&(+++++r   c                 b   |dk    r5d}|                      t          j                            |                     g d}t	          ddt
          j        t
          j        gg dd|          }|                    d	|
          }t          ||          }|dk    rt	          dg di|          }n|dk    rt	          dg di|          }n|dk    rt	          dg di|          }n|dk    rt          g d|          }n|dk    rt	          dg di|          }n|                    d	d
          }	g }
|	D ]L\  }} t          |d         |                      }|
                    t          ||j                             Mt          |
                              d          }|ra|dv rt          nt           }|                    |          }|j        dk    rt
          j        |j        ddgdf<   nt
          j        |j        ddg<    |j        |g|R  }t+          j        ||           d S )Nr   zincorrectly raisesr   r   r,   r,   r   r   r   r   r   r   r  r   rK   rj  rB  r   r   r   r   r   r  r   r   r   r   )r  r  r  r  Fr  r   r   r   r   )r   r   r   r   r   r   rP  rZ   r   r	   rJ  appendr   r   r  rc   r  r   r|  r   r[   r^   r   )r   r  r   rs   r   rm   r   r   ro   expected_gbbufferr   r  r   r+   rp   s                   r   test_null_group_str_reducerr    s   # ;"FK--S-99:::LLE	!Q/lllCC5	Q	Q	QB	C	'	'B">266D   0c<<<0>>>	6	! 0c<<<0>>>	5	  0c<<<0>>>	6	! 
0,,,e444	:	% 0c#7#7#78FFFjjUj33% 	: 	:JC5'%*n5577CMM&EK8889999&>>**3// +(N:E??5))=A 	+')vHM1a&!)$$$&FHM1a&!R\.04000FOFH%%%%%r   c           	         t          ddt          j        gg ddg d          }t          ||          }|                    d|          }g }t          |          D ]\  }\  }}	|dk    r3t          d	t          t          |	                    i|	j                  }
nJ|d
k    r*t          t          |	          |gz  |	j        d	g          }
n t          |	d	g         |          | }
|
                    |
           |rA|dv rt          nd }|
                    t          t          j        ggdg|d	g                     t          |          }|dv r|d	                             d           }|dk    r|s
t          }d}n|dk    r
t          }d}nd }d}t          j        ||          5   |j        |g|R  }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr,   r,   r   r   r   r   r   r   r  r;  rK   r   )r   r.   r  r   )r   r+   r.   rO  rK  rL  r   r   rM  rS   )r   r   rP  r   rZ   r  rf   r   r   rJ  r  rc   r   r  rh   r^   rg   r[   r   )r   r  r   rm   r   r   r  kr   r  r   r+   ro   r   rs   rp   s                   r   test_null_group_str_transformerr    ss   	!Qiii88				J	J	JB"#6;;D	C	'	'BF$R==  <C*, 	DS%E

"3"34EKHHHCC H, 	DCJJ!,EK#OOOCC<'%,(;<<dCCc T-?ITi"&
1#USERRRSSSf~~H44 .C=''--l* 6  	 
	( 5		#D	4	4	4 : :19D999: : : : : : : : : : : : : : : OFH%%%%%s   ,GGGc                    g d}t          g d|          }|                    ddt          j        t          j        g|          }|dk    rt	          ||          rJ d S t          ||          }|dk    rt          g d|          }n|d	k    rt          g d
|          }n|dk    rt          g d|          }n|dk    rt          g d|          }n|dk    rt          g d|          }n|                    ddt          j        t          j        gd          }g }	|D ]F\  }
} t          ||                      }|	                    t          ||j                             Gt          |	          }|r=|dv rt          nt          }|                    |          }t          j        |j        ddg<    |j        |g|R  }t          j        ||           d S )Nr   r  r   r,   r  r   r   rj  rB  r  r   r  r  Fr  r   r   )r	   rZ   r   rP  rv  r   rJ  r  r   r   rc   r  r   r   r[   r^   r~   )r   r  r   r   serr   r   ro   r  r  r   r  r   r+   rp   s                  r   "test_null_group_str_reducer_seriesr  %  s%   LLE
U
+
+
+C	aBFBF+F	;	;B# 2~.....">377D   ",,,e444	6	! ",,,e444	5	  ",,,e444	6	! 
",,,e444	:	% ",,,e444kk1a"8kGG% 	: 	:JC0'%0022CMM&EK8889999&>> '(N:E??5)) "q!fR\.04000F68,,,,,r   c                 &   t          g dg d          }t          ||          }|                    ddt          j        g|           }g }t          |          D ]\  }\  }}|dk    r1t          t          t          |                    |j                  }	n0|dk    rt          ||j                  }	n t          ||          | }	|
                    |	           | r>|dv rt          nd }
|
                    t          t          j        gd	g|

                     t          |          }|dk    rt          nd }d}t          j        ||          5   |j        |g|R  }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr  r   r   r,   r  r;  r   r  r   )r   r+   r   z"SeriesGroupBy.fillna is deprecatedrS   )r	   r   rZ   r   rP  r  rf   r   r   rJ  r  rc   r   rh   r^   rg   r[   r   )r  r   r  r   r   r  r  r   r  r   r+   ro   r   rs   rp   s                  r   &test_null_group_str_transformer_seriesr  N  s   
)))
,
,
,C"#6<<D	aBF^F	3	3BF$R==  <C*, 	=s5zz**%+>>>CC H, 	=%+...CC5'%!455t<Cc @-?ITfbfXaS>>>???f~~H/8;E==D
.C		#D	4	4	4 : :19D999: : : : : : : : : : : : : : : OFH%%%%%s   E11E58E5zfunc, expected_valuesr:   rI   r   r   r,   c                 ,    |                      d          S rQ   )headr    s    r   r"   r"   o  s    166!99 r   r  r  r  keys_in_indexc                 t   t          g dg dd          }d|v r|d         |d<   |r|                    |d          }|                    |          }|t          u r|d         }|                    |           }t          d|i|j        	          }|t          u r|d         }t          j        ||           d S )
N)r,   r,   r   r   r   r  )r  r   r  r  T)r  r   r   )r   r1  rZ   r	   r[   r   r^   r   )	r3  r   r  r  r  rm   r   rp   ro   s	            r   test_transform_alignsr  k  s     
///@@	A	ABt| d84 -\\$t\,,	D		B&  W\\$F#/rx@@@H&  !C=OFH%%%%%r   r   rK   c                    | dk    r|                     d          }t          ||          }|                    | d          }|                    | d          }|dk    rt          nd }d}t	          j        ||	          5   |j        |g|R  }d d d            n# 1 swxY w Y   t	          j        ||	          5   |j        |g|R  }	d d d            n# 1 swxY w Y   t	          j        ||	           d S )
Nr   rK   r   T)as_indexFr   r   rS   )r   r   rZ   rh   r^   rg   r[   r   )
r  rm   groupby_funcr   gb_as_index_truegb_as_index_falser   rs   rp   ro   s
             r   test_as_index_no_changer    s    s{ "WWSW!!"<44Dzz$z66

4%
88(H4>==$D
1C		#D	4	4	4 A A+!+L@4@@@A A A A A A A A A A A A A A A		#D	4	4	4 D D.$.|CdCCCD D D D D D D D D D D D D D DOFH%%%%%s$   BB!$B!>CC Chowrd  c                 
   t          g dddt          j        dgt          d          d          }|                    d          }d|  d	}t          j        t          |
          5  |                    | d||          }d d d            n# 1 swxY w Y   |rd nt          }d|  d}t          j        ||
          5  |                    | ||          }d d d            n# 1 swxY w Y   t          j	        ||           d S )N)r,   r,   r,   r   rm  r  r  abcdr   r   z#'axis' keyword in DataFrameGroupBy.z is deprecatedrS   r   z!The behavior of DataFrameGroupBy.z  with .* any-NA and skipna=False)r  rd  )
r   r   rP  rb   rZ   r^   rg   rh   r[   r_   )	r  r  rd  rm   r   rs   rp   r   ro   s	            r   !test_idxmin_idxmax_transform_argsr    s    
S#rvs,C$v,,WW	X	XB	CB
C
C
C
CC		#M	=	=	= < <c1fl;;< < < < < < < < < < < < < < <,44}D
Sc
S
S
SC		#D	4	4	4 O O<<F<NNO O O O O O O O O O O O O O O&(+++++s$   'BBB>C##C'*C')h__doc__numpyr   r   pandas._libsr   pandas.core.dtypes.commonr   pandasrd   r   r   r   r   r	   r
   r   r   pandas._testing_testingr^   pandas.tests.groupbyr   r   rt   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r+  r6  rV  rZ  rb  re  rh  rs  rv  r  r  r  r   parametrizer  rP  r  fixturer  r  slowrV   rW   r  r   r  paramr   r  r  r  r  r  r  r  r#  r5  r  r   r7  rA  r   ri   rI  rT  rh  rp  rr  rw  r~  r  r  r  r  r  r  r  r  r  r  r  sort_valuesr  r  r  r   r   r   <module>r     s                  9 9 9 9 9 9    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       8 8 8 8 8 8) ) )9, 9, 9,x- - -,, , ,D, , ,"5 "5 "5J& & &0& & &(+, +, +,\, , ,- - -- - -- - -*- - -*7 7 7B# # #, , ,+ + +";0 ;0 ;0|, , ,8 8 8"- - -- - - D D D(, , ,;, ;, ;,|- - -8 8 8: 	B--.	2++,	%../	$++,	 S S S  	8455E4=11 bf	-	-vvrvhm'/R/R/RS EBJ#*aS1Wx5G1#PQ'5QRR$4$4$4x!|$CsCj$PF$ $3??bfX\#AS#J#NF## "	
	'* *V- -W* * 21 65Z-   .   
 	B--.	2++,	%../	$++,	  GZ#899	ry$$Q''00BR0@@GGNNO	!	xd,-V[5FGGG	x !	 	, ,	 	 :9  *,D 	B--.	2++,	%../	$++,	  GZ#899	ry$$Q''00BR0@@GGNNO	!	x 
x !
 
    !/ !/ 
 
 :9  D!/H= = =@ 	ffYYYS)))*#JIIIIIII6677	
	 	 %>%>%>??& & @?	 	&	- 	- 	- 4-88tUm44&J&J&JKK  VRVVVVVVVL	

 
!bfbfffbfffbfUVVVVVVRVRVL	

 
!bfffbfffbfbfUV "'+ '+#  LK 54 98('+T '(:;;, , <;,  
+##P $  	
 	
 	
  QG,,(@(@(@AA4),,& & -, BA -, &@ 	665"&&&&IJ	65%HI - - -8 "&"&!122% % 32%= = =* #sBFBFGV!LMM	, 	, NM	, 	J<!#zlQ&66+FG	J<!#zlQ&66+FG - - - . . .( !J!J!JKK	- 	- LK	- !<!<!<==lT661#;;4G%HII, , JI >=,+ + +$: : :>- - -0, , ,<", ", ",J6 6 6B, , ,
- 
- 
- 4&4,!788, , 98,4(& (& (&V(& (& (&V&- &- &-R& & &: 		___-		sBFAq"&9:  4&4,!7884-88& & 98 98 && #Sz!233& & 43&" 8 455$77, , 87 65, , ,r   