
    gK                        d dl mZm Z  d dlZd dlZd dlZd dl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ej                            d
 eg dg dd          g df eg dg dd          d dgf eddgi          dgf eg d ed          d          ddgf eg dg dd          g df e ed          g dg dd          g df eg dg dgg d          ddgfgg d !          d"             Zd# Zd$ Zej                            d%d& d' d( d) g          d*             Zd+ Zd, Zd- Z d. Z!d/ Z"d0 Z#d1 Z$d2 Z%d3 Z&d4 Z'd5 Z(ej                            d6d7d8g          d9             Z)d: Z*d; Z+d< Z,d= Z-d> Z.ej                            d?d7d8g          d@             Z/dA Z0dB Z1dC Z2dD Z3dE Z4dF Z5dG Z6dH Z7dI Z8dJ Z9dK Z:dL Z;ej                            dM e j<                     e j<                                                     e j<                    =                                g          dN             Z>dO Z?ej                            dPd8d7g          dQ             Z@dR ZAej                            dS ejB         edT                     ejC        d dU           ejD        dVdUdWX           e	jE        g dY          g          dZ             ZFej                            d[d\ d dgddUggfd] d dhddUhgfd^ d_d`gfda d dd_ddUd_gfdb d d iddigd diddUiggfg          dc             ZGdd ZHej                            dedf dg g          dh             ZIdi ZJej                            djdk dl g          ej                            d6d7d8g          dm                         ZKdn ZLdo ZMdp ZNdq ZOdr ZPej                            dsd7d8g          dt             ZQej                            dud8 eg dvg dwg eg dxeRy                    gd7 e
ddg e	jE        dzd{gdd|g}          ~          gg          d             ZSd ZTd ZUd ZVd ZWej                            dsd7d8g          d             ZXd ZYej                            dg dg dg          d             ZZej                            dg dg dgg dg dgg dg dgg          d             Z[ej                            dd7gi fg dd7ifg          d             Z\ej                            dddg          d             Z]ej                            ddd fdd fdddg          d             Z^ej                            dd7d8g          d             Z_ej                            de`eaebg          ej                            ddddgg          d                         ZcdS )    )datedatetimeN)	DataFrameIndex
MultiIndexSeriesbdate_range)get_groupby_method_argsc                     t          dt          t          d                    dz  dg                                          } g fd}d}t	          j        t          |          5  |                     d                              |           d d d            n# 1 swxY w Y   t          dgdz  dgdz  d	t          j
        dd
d                    }t	          j        d         |           d S )N   
   r   )indexcolumnsc                 2                         |            d S N)append)groupgroupss    k/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tests/groupby/test_apply.pystorezFtest_apply_func_that_appends_group_to_list_without_copy.<locals>.store   s    e    7DataFrameGroupBy.apply operated on the grouping columnsmatchr   )r   r   d   r   )r   listrangereset_indextmassert_produces_warningDeprecationWarninggroupbyapplypd
RangeIndexassert_frame_equal)dfr   msgexpected_valuer   s       @r   7test_apply_func_that_appends_group_to_list_without_copyr+      sD    
1DrOOb01#	>	>	>	J	J	L	LBF     DC		#$6c	B	B	B ) )


7!!%((() ) ) ) ) ) ) ) ) ) ) ) ) ) )#(sRx((ab0I0I  N &)^44444s   ()BB!$B!c                 l   g d}t          dg dit          t          j        |          d                    }|                    |j        j                                                  }|                    |j        j                                      d           }t          j
        ||           d S )Nz2011-05-16 00:00z2011-05-16 01:00z2011-05-16 02:00z2011-05-16 03:00z2011-05-17 02:00z2011-05-17 03:00z2011-05-17 04:00z2011-05-17 05:00z2011-05-18 02:00z2011-05-18 03:00z2011-05-18 04:00z2011-05-18 05:00value	/?ݓ?Q?j?r0   r1   r2   r3   r0   r1   r2   r3   	date_timenamer   c                 *    |                                  S r   idxmaxxs    r   <lambda>z'test_apply_index_date.<locals>.<lambda>L   s    qxxzz r   )r   r   r%   to_datetimer#   r   r   r9   r$   r    r'   )using_infer_stringtsr(   expectedresults        r   test_apply_index_daterB   (   s    
 
 
B 
   	
  BN2&&[999#
 
 
B& zz"(-((//11HZZ&&,,-A-ABBF&(+++++r   c                    g d}t          d |D             ddg          }g d|d<   | rdnt          }t          g d	|d
          }t          g d|          }d}t	          j        t          |          5  |                    dd                              d           }d d d            n# 1 swxY w Y   t	          j	        ||           d S )Nr-   c                 6    g | ]}|                                 S  )split).0rows     r   
<listcomp>z0test_apply_index_date_object.<locals>.<listcomp>a   s     ...CCIIKK...r   r   timer   r/   r.   zstring[pyarrow_numpy])z
2011-05-16z
2011-05-17z
2011-05-18dtyper6   )z00:0002:00rN   r   r   r   F
group_keysc                 N    | d         | d                                                   S )NrJ   r.   r8   r:   s    r   r<   z.test_apply_index_date_object.<locals>.<lambda>x   s    ai'
 1 1 3 34 r   )
r   objectr   r   r    r!   r"   r#   r$   assert_series_equal)r>   r?   r(   rM   exp_idxr@   r)   rA   s           r   test_apply_index_date_objectrU   P   sU   
 
 
B 
..2...8H	I	I	IB  BwK (:E##vE222%f  G 111AAAH
CC		#$6c	B	B	B 
 
Fu55;;44
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 68,,,,,s   8,B00B47B4c                    t          g dg ddddg          | rdnd}t          j        j        d	d          j        d	d          gd	d
|g          }d}t	          j        t          |          5                      d j        D             d	          }d d d            n# 1 swxY w Y   |	                    fd          }t	          j
        ||           d S )NarX   brY   rX         ?       @      @      @g      @keydatar`   ra   rK   stringrR   r   float64axiskeys+DataFrame.groupby with axis=1 is deprecatedr   c                 ,    g | ]}t          |          S rE   strrG   r;   s     r   rI   z&test_apply_trivial.<locals>.<listcomp>       333AQ333r   re   c                 "    j         dd          S Nr   ilocr;   r(   s    r   r<   z$test_apply_trivial.<locals>.<lambda>   s     r   )r   r%   concatrq   r    r!   FutureWarningr#   dtypesr$   r'   r>   rM   r@   r)   gbrA   r(   s         @r   test_apply_trivialrx   }   sF    
)))3L3L3LMM
 
 
B +8HHEy"'!""+rwqrr{3!9eBTUUUH
7C		#M	=	=	= = =ZZ33333!Z<<= = = = = = = = = = = = = = =XX++++,,F&(+++++s   4'B''B+.B+c                    t          g dg ddddg          | rdnd}t          j        gd	d
|g          }d}t          j        t
          |          5                      d j        D             d	d          }d d d            n# 1 swxY w Y   |                    fd          }t          j	        ||           d S )NrW   rZ   r_   r`   ra   rK   rb   rR   r   rc   rd   rg   r   c                 ,    g | ]}t          |          S rE   ri   rk   s     r   rI   z+test_apply_trivial_fail.<locals>.<listcomp>   rl   r   T)re   rP   c                     S r   rE   rr   s    r   r<   z)test_apply_trivial_fail.<locals>.<lambda>   s     r   )
r   r%   rs   r    r!   rt   r#   ru   r$   r'   rv   s         @r   test_apply_trivial_failr|      s>   	)))3L3L3LMM
 
 
B +8HHEy"bE0BCCCH
7C		#M	=	=	= N NZZ33333!ZMMN N N N N N N N N N N N N N NXXllll##F&(+++++s   (BBBzdf, group_names)r   r   r         )rX   rX   rX   rY   crX   rY   r   r}   r~   r   r   r   r   )r   r   r   r   r   rX   )r   r   r   r}   r}   r   r   r}      r}   r   r}   r~   r   r}   r~   )            r   	   )rX   two
aaabbbcccc)
r~   r   r~   r   r   r}   r   r   r   r   )
r   r   r}   r}   r}   r   r   r   r}   r   )rX   BCrX   rY   r   )r}   r}   r~   rK   )GH2936zGH7739 & GH10519GH10519GH2656GH12155GH20084GH21417)idsc                 *  	 g 		fd}	fd}	fd}	fd}	fd}|||||fD ]n}	d d = d}t          j        t          |          5  |                     dd	
                              |           d d d            n# 1 swxY w Y   	|k    sJ od S )Nc                 `                         | j                   |                                 S r   )r   r6   copyr   namess    r   f_copyz/test_group_apply_once_per_group.<locals>.f_copy   s%    UZ   zz||r   c                 <                         | j                   | S r   r   r6   r   s    r   f_nocopyz1test_group_apply_once_per_group.<locals>.f_nocopy   s    UZ   r   c                 <                         | j                   dS Nr   r   r   s    r   f_scalarz1test_group_apply_once_per_group.<locals>.f_scalar   s    UZ   qr   c                 <                         | j                   d S r   r   r   s    r   f_nonez/test_group_apply_once_per_group.<locals>.f_none   s    UZ     r   c                 `                         | j                   t          dgdgd          S )Nr   r   )r   r6   r   r   s    r   f_constant_dfz6test_group_apply_once_per_group.<locals>.f_constant_df   s1    UZ   s!--...r   r   r   rX   FrO   )r    r!   r"   r#   r$   )
r(   group_namesr   r   r   r   r   funcr)   r   s
            @r   test_group_apply_once_per_groupr      sb   N E    
    
    
! ! ! ! !/ / / / /
 8V]C $ $!!!HG'(:#FFF 	: 	:JJsuJ--33D999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:#####$ $s   +A??B	B	c                 f   d}t          g dg ddg d          }d}t          j        t          |          5  |                    dd	
                              d            d d d            n# 1 swxY w Y   |                                 j                            d          }||k    sJ d S )Nr}   )r   r   r   r   r   r   r   r   )02468101214)group_by_columntest_columnr   r   r   r   FrO   c                      t          d          S )Nfunction_called)printr(   s    r   r<   z2test_group_apply_once_per_group2.<locals>.<lambda>   s    u.// r   r   )	r   r    r!   r"   r#   r$   
readouterroutcount)capsysr@   r(   r)   rA   s        r    test_group_apply_once_per_group2r      s#    H	777FFF	
 	
 :99
 
 
B DC		#$6c	B	B	B 
 



$
77==//	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 

   $**+<==FXs   ,A22A69A6c                     t          g dt          d          d          } d }d }d}t          j        t          |          5  |                     dd	
                              |          }d d d            n# 1 swxY w Y   t          j        t          |          5  |                     dd	
                              |          }d d d            n# 1 swxY w Y   t          j        ||           d S )N)r   r   r   r~   )ArY   c                     | S r   rE   r   s    r   slowz,test_apply_fast_slow_identical.<locals>.slow  s    r   c                 *    |                                  S r   r   r   s    r   fastz,test_apply_fast_slow_identical.<locals>.fast  s    zz||r   r   r   r   FrO   )r   r   r    r!   r"   r#   r$   r'   )r(   r   r   r)   fast_dfslow_dfs         r   test_apply_fast_slow_identicalr     s    
q22	3	3B     DC		#$6c	B	B	B @ @**SU*3399$??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @		#$6c	B	B	B @ @**SU*3399$??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '7+++++s$   +A<<B B "+CC Cr   c                     | S r   rE   r:   s    r   r<   r<     s    ! r   c                     | d d          S r   rE   r:   s    r   r<   r<     s    !AAA$ r   c                 .    |                      d          S )NFdeepr   r:   s    r   r<   r<     s    !&&e&$$ r   c                 .    |                      d          S )NTr   r   r:   s    r   r<   r<      s    !&&d&## r   c                     t          g dg dg dd          }d}t          j        t          |          5  |                    dd	                              |           }d d d            n# 1 swxY w Y   t          j        ||           d S )
Nr   r}   r}   r}   r   r}   r~   r   )r   r   r   r   )grX   rY   r   r   r   FrO   r   r    r!   r"   r#   r$   r'   )r   r(   r)   rA   s       r   5test_groupby_apply_identity_maybecopy_index_identicalr     s     
LLL|||LL	M	MB
CC		#$6c	B	B	B ? ?CE2288>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?&"%%%%%s   +A..A25A2c                  B   t          t          j                            d                              d          g dd          } |                     d d          j        }| j        }t          j        ||           t          dg d	i          } | j	        d
z  | d<   | 
                    d                                                                          j        }| 
                    dd                                          j        }t          j        ||           d S )Nr}   r   oner   r   threer   r   foo1foo2c                     | S r   rE   r:   s    r   r<   z-test_apply_with_mixed_dtype.<locals>.<lambda>9  s     r   r   rm   c1)r   r}   r   r   r   r\   c2Fas_index)r   nprandomdefault_rngstandard_normalr$   ru   r    rS   r   r#   meanr   r   )r(   rA   r@   result1result2s        r   test_apply_with_mixed_dtyper   1  s   	I))!,,<<Q??@@@	
 	

 
B XXkkX**1FyH68,,, 
D///*	+	+Bus{BtHjj##%%11336Gjjj..33558G7G,,,,,r   c                     t          g dg dt          d          d          } |                     dd          }|                     dd          }|                    d	          j        }|                    d	          j        }t          g d
          }t          j        ||           t          j        ||           d}t          j        t          |          5  |
                    d           j        }d d d            n# 1 swxY w Y   t          j        t          |          5  |
                    d           j        }d d d            n# 1 swxY w Y   t          j        g d          }	g d}
t          j        |
dd g          }t          j        ||           t          j        ||	           t          t          d                    }t          dd	gd	dgddgddgd	dgg|          } d}t          j        t          |          5  |                     ddd          
                    d           j        }d d d            n# 1 swxY w Y   t          j        ||           d S )N)rY   rY   rX   r   rX   rY   )r   r}   r   r   r~   r   r   )item_iduser_idrJ   r   Tr   Fr}   )r   r   r}   r   r   r   c                 ,    |                      d          S Nr}   headr:   s    r   r<   z-test_groupby_as_index_apply.<locals>.<lambda>Z  s    AFF1II r   c                 ,    |                      d          S r   r   r:   s    r   r<   z-test_groupby_as_index_apply.<locals>.<lambda>\  s    AFF1II r   ))r   r   )r   r}   r   r   r}   r   )r   r   r   r}   )r}   r   )r~   r   r   abcder   r~   r   r   r   r   )r   rP   c                     | S r   rE   r:   s    r   r<   z-test_groupby_as_index_apply.<locals>.<lambda>k  s    a r   )r   r   r#   r   r   r   r    assert_index_equalr!   r"   r$   r   from_tuplesr   )r(   g_asg_not_asres_as
res_not_asexpr)   res_as_applyres_not_as_applyexp_not_as_applytpexp_as_applyindress                 r   test_groupby_as_index_applyr  E  sN   	555)))!HH	
 	

 
B ::i$://Dzz)ez44HYYq\\Fq!!'J


C&#&&&*c***
CC		#$6c	B	B	B = =zz"5"566<= = = = = = = = = = = = = = =		#$6c	B	B	B E E#>>*=*=>>DE E E E E E E E E E E E E E E
 "-.N.N.NOO	)	)	)B)"Y4EFFFL,555*,<===
W

C	QFQFQFQFQF;3	G	G	GB
CC		#$6c	B	B	B W WjjUuj==CCKKPPVW W W W W W W W W W W W W W W#s#####s6   DDD-EEE2IIIc                 n   |                      ddg          }d }d }d }d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   |j        j        dk    sJ d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   |j        j        dk    sJ d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   |j        j        d	k    sJ d S )
Nr   r   c                 F    |                                  }d|j        _        |S Nstat)describer   r6   r   rA   s     r   descz.test_apply_concat_preserve_names.<locals>.descr  s     !!"r   c                 t    |                                  }d|j        _        |d t          |                    }|S r  )r
  r   r6   lenr  s     r   desc2z/test_apply_concat_preserve_names.<locals>.desc2w  s4    !!"#e**%r   c                     |                                  }dt          |           d|j        _        |d t          |                    }|S )Nstat_d)r
  r  r   r6   r  s     r   desc3z/test_apply_concat_preserve_names.<locals>.desc3~  sG    !! 3CJJ222#e**%r   r   r   )r   r   r	  )r   r   N)r#   r    r!   r"   r$   r   r   )	three_groupgroupedr  r  r  r)   rA   r   result3s	            r    test_apply_concat_preserve_namesr  o  s   !!3*--G  
     DC		#$6c	B	B	B % %t$$% % % % % % % % % % % % % % %<!33333
CC		#$6c	B	B	B ' '--&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '="44444
CC		#$6c	B	B	B ' '--&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '="2222222s5   A  A$'A$B<<C C 6DDDc                     d } t          dd          }t          t          j                            d                              d          |          }|                    d d	          }|                    |           }t          |t                    sJ t          |d
          rJ t          j        |j        |j                   d S )Nc                     t          j        d          5  t          j        |           }d d d            n# 1 swxY w Y   t          | | |                                 z
  |d          S )Nignore)invalid)r.   demeanedlogged)r   errstatelogr   r   )piecer  s     r   fz%test_apply_series_to_frame.<locals>.f  s    [*** 	# 	#VE]]F	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#)=PP
 
 	
s   7;;z1/1/2000r   )periodsr}   r   c                     | j         S r   monthr:   s    r   r<   z,test_apply_series_to_frame.<locals>.<lambda>      17 r   FrO   r6   )r	   r   r   r   r   r   r#   r$   
isinstancer   hasattrr    r   r   )r!  drr?   r  rA   s        r   test_apply_series_to_framer*    s    
 
 
 
Z	-	-	-B		%%a((88==R	H	H	HBjj**uj==G]]1Ffi(((((vv&&&&&&,11111r   c                     |                      ddg          d                             t                    }|j        j        d d         dk    sJ d S )Nr   r   r   r}   r   r   )r#   r$   r  r   r   )r(   rA   s     r    test_apply_series_yield_constantr-    sO    ZZc
##C(..s33F<bqb!Z//////r   c                    d}t          j        t          |          5  |                     ddg                              t
                    }d d d            n# 1 swxY w Y   t          |t                    sJ |j        J |                     ddg          ddg                             t
                    }t          |t                    sJ |j        J d S )Nr   r   r   r   r   D)	r    r!   r"   r#   r$   r  r'  r   r6   )r(   r)   rA   s      r   test_apply_frame_yield_constantr0    s   
CC		#$6c	B	B	B 3 3S#J''--c223 3 3 3 3 3 3 3 3 3 3 3 3 3 3ff%%%%%;ZZc
##S#J/55c::Fff%%%%%;s   0AA!Ac                    |                      ddg          }d}t          j        t          |          5  |                    t
                    }d d d            n# 1 swxY w Y   |                                d         }t          j        |j        |j                   t          j	        |j
        |j
                   d S )Nr   r   r   r   r   )r#   r    r!   r"   r$   r  r   r   r   assert_numpy_array_equalvaluesr(   r  r)   rA   r@   s        r   test_apply_frame_to_seriesr5    s    jj#s$$G
CC		#$6c	B	B	B $ $s##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $}}s#H&,777x?????s   AA #A c                    |                      ddgd          }d}t          j        t          |          5  |                    t
                    }d d d            n# 1 swxY w Y   |                                                    dt          j	        i          
                    d	          }t          j        |j        |j                   t          j        |j        |j                   d S )
Nr   r   Fr   r   r   r   rK   r/  )r#   r    r!   r"   r$   r  r   renamer   nandropr   r   r2  r3  r4  s        r   )test_apply_frame_not_as_index_column_namer:    s   jj#sej44G
CC		#$6c	B	B	B $ $s##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $}}%%sBFm%<<AA#ANNH&,777x?????s   AA"%A"c                     d } fd}t          t          j                            d                              ddd          t          j                            d                              ddd          t          j                            d                              d          d          d}t          j        t          |	          5  	                    d
          
                    |           }d d d            n# 1 swxY w Y   	                    d
          d         
                    |          }t          j        ||d           |j        dk    sJ d S )Nc                     |                      d          d                                                                         j        d d         S )Nr   r   r}   )r#   sumsort_valuesrq   r   s    r   transz-test_apply_frame_concat_series.<locals>.trans  s=    }}S!!#&**,,88::?CCr   c                     |                                          | j                  d                   }|                                                                j        d d         S )Nr   r}   )r#   reindexr   r=  r>  rq   )r   r  r(   s     r   trans2z.test_apply_frame_concat_series.<locals>.trans2  sM    --

5; 7 7 <=={{}}((**/33r   r}   r   r     r   r   r   r   r   r   r   F)check_names)r   r   r   r   integersr   r    r!   r"   r#   r$   rS   r6   )r?  rB  r)   rA   r   r(   s        @r   test_apply_frame_concat_seriesrG    s   D D D4 4 4 4 4 
&&q))221a>>&&q))221a>>&&q))99$??	
 	

 
B DC		#$6c	B	B	B . .C&&u--. . . . . . . . . . . . . . .
**S//#

$
$V
,
,C63E::::;#s   )DD
Dc                     |                      d d          }|                    d           }|                    d           }t          j        ||           d S )Nc                     | j         S r   r$  r:   s    r   r<   z&test_apply_transform.<locals>.<lambda>  r&  r   FrO   c                     | dz  S r   rE   r:   s    r   r<   z&test_apply_transform.<locals>.<lambda>  s
    QU r   c                     | dz  S r   rE   r:   s    r   r<   z&test_apply_transform.<locals>.<lambda>  s
    1q5 r   )r#   r$   	transformr    rS   )r?   r  rA   r@   s       r   test_apply_transformrM    s\    jj**uj==G]]??++F  11H68,,,,,r   c                     |                      d d g          }d }|                    |          }|D ].\  }}t          j        |j        |          ||                     /d S )Nc                     | j         S r   yearr:   s    r   r<   z,test_apply_multikey_corner.<locals>.<lambda>  s     r   c                     | j         S r   r$  r:   s    r   r<   z,test_apply_multikey_corner.<locals>.<lambda>  s    17 r   c                 <    |                      d          dd          S )Nr   r>  r   s    r   r!  z%test_apply_multikey_corner.<locals>.f  s      %%bcc**r   )r#   r$   r    r'   loc)tsframer  r!  rA   r`   r   s         r   test_apply_multikey_cornerrX    s    oo//1B1BCDDG+ + + ]]1F 9 9
U
fjoqqxx88889 9r   rP   TFc                    t          g dt          d          d          }d}t          j        t          |          5  |                    d|                               d           }d d d            n# 1 swxY w Y   |                    g d	          }| r&t          j	        g d
|j
        gdd g          |_
        t          j        ||           d S )N)	r   r   r   r}   r}   r}   r~   r~   r~   r   )r`   r.   r   r   r`   rO   c                      | j         d d         S r   rp   r:   s    r   r<   z'test_apply_chunk_view.<locals>.<lambda>  s    !&QSRSQS* r   )r   r   r~   r   r   r   )r   r   r}   r}   r~   r~   r   )r   r   r    r!   r"   r#   r$   taker   from_arraysr   r'   )rP   r(   r)   rA   r@   s        r   test_apply_chunk_viewr]    s9    
666qJJ	K	KB
CC		#$6c	B	B	B V VEj99??@T@TUUV V V V V V V V V V V V V V Vww)))**H 
#/0
 
 
 &(+++++s   ,A77A;>A;c            	         t          g dg dt          ddd          d          } |                     ddg          }d}t          j        t
          |	          5  |                    d
            d d d            d S # 1 swxY w Y   d S )N)
r   r   r   r   r   r   r}   r}   r}   r}   )
r   r   r   r   r   r   r   r   r   r   r   )r6   name2r.   r6   r`  r   r   c                 0    |                      dd          S )Nr.   TinplacerU  r:   s    r   r<   z4test_apply_no_name_column_conflict.<locals>.<lambda>  s    gt D D r   )r   r   r#   r    r!   r"   r$   )r(   r  r)   s      r   "test_apply_no_name_column_conflictrd    s    	2223331b"%%	
 	

 
B jj&'*++G
CC		#$6c	B	B	B F FDDEEEF F F F F F F F F F F F F F F F F Fs   A??BBc                     t          g dt          j        g dd          t          j        dd          d          } d }d}t	          j        t          |	          5  |                     d
d                              |          }d d d            n# 1 swxY w Y   | 	                                }t          j        g dd          |d<   t	          j
        ||           d S )Nr[   r[   r[   r\   r\   r\   r   r}   r[         @r  r   vc                     | d         }||                                 z
  |                                |                                 z
  z  | d<   | S Nri  v2minmaxr   ri  s     r   r!  z#test_apply_typecast_fail.<locals>.f'  ?    #J15577{quuww'89dr   r   r   r  FrO           g      ?r   rl  )r   r   tilearanger    r!   r"   r#   r$   r   r'   )r(   r!  r)   rA   r@   s        r   test_apply_typecast_failrv    s-   	///!,,3$$	
 	

 
B  
 DC		#$6c	B	B	B < <CE2288;;< < < < < < < < < < < < < < < wwyyHW]]]A..HTN&(+++++s   +BBBc                     t          j        g dg dg          } t          g dt          j        g dd          t          j        dd          d| 	          }d
 }d}t          j        t          |          5  |	                    dd          
                    |          }d d d            n# 1 swxY w Y   |                                }t          j        g dd          |d<   t          j        ||           d S )N)r   r   r   r   r   r   r   rf  r   r}   r[   rg  rh  r   c                     | d         }||                                 z
  |                                |                                 z
  z  | d<   | S rk  rm  rp  s     r   r!  z%test_apply_multiindex_fail.<locals>.fA  rq  r   r   r   r  FrO   rr  rl  )r   r\  r   r   rt  ru  r    r!   r"   r#   r$   r   r'   )r   r(   r!  r)   rA   r@   s         r   test_apply_multiindex_failry  6  sZ   "$6$6$68J8J8J#KLLE	///!,,3$$	
 	

 
 
 
B  
 DC		#$6c	B	B	B < <CE2288;;< < < < < < < < < < < < < < < wwyyHW]]]A..HTN&(+++++s   :+B11B58B5c                     |                      d d                              d           }| dz  }t          j        ||           d S )Nc                     | j         S r   rP  r:   s    r   r<   z#test_apply_corner.<locals>.<lambda>Q  s    qv r   FrO   c                     | dz  S r   rE   r:   s    r   r<   z#test_apply_corner.<locals>.<lambda>Q  s    QRUVQV r   r}   )r#   r$   r    r'   )rW  rA   r@   s      r   test_apply_cornerr}  P  sM    __--%_@@FFWWF{H&(+++++r   c                     t          g dg dg dd          } d }d }d}t          j        t          |          5  |                     d	                              |          }d d d            n# 1 swxY w Y   t          j        t          |          5  |                     d	                              |          }d d d            n# 1 swxY w Y   t          j        ||           d S )
N)r   r      i,  )rX   rY   r   r   r   )id_fieldcategoryr.   c                 n    | j         d         dk    r|                                 S | | j        dk             S Nr   r   r   )shaper   r  r:   s    r   filt1z&test_apply_without_copy.<locals>.filt1b  s0    71:??6688OQZ3&''r   c                 J    | j         d         dk    r| S | | j        dk             S r  )r  r  r:   s    r   filt2z&test_apply_without_copy.<locals>.filt2h  s(    71:??HQZ3&''r   r   r   r  r   )ra   r  r  r)   r@   rA   s         r   test_apply_without_copyr  V  s    ,,,,,,!\\	
 	
 D( ( (( ( ( DC		#$6c	B	B	B 9 9<<
++11%889 9 9 9 9 9 9 9 9 9 9 9 9 9 9		#$6c	B	B	B 7 7j))//667 7 7 7 7 7 7 7 7 7 7 7 7 7 7&(+++++s#   )A22A69A6)CCCtest_seriesc                    t          ddgddgddggddgg d          }| r|                    d          d         }|                    dd	
                              d           }|                                }|                                }t          j        ||           d S d}t          j        t          |          5  |                    dd	                              d           }d d d            n# 1 swxY w Y   |	                    d          }|	                    d          }t          j
        ||           d S )Nr;   poXY)r   r}   r}   r   r   r   F)levelrP   c                     | S r   rE   r:   s    r   r<   z<test_apply_with_duplicated_non_sorted_axis.<locals>.<lambda>~  s     r   r   r   rO   c                     | S r   rE   r:   s    r   r<   z<test_apply_with_duplicated_non_sorted_axis.<locals>.<lambda>      q r   )r   	set_indexr#   r$   
sort_indexr    rS   r!   r"   r>  r'   )r  r(   serrA   r@   r)   s         r   *test_apply_with_duplicated_non_sorted_axisr  v  s    

sc3Z#s,sCj			
 
 
B  0ll3$177==kkJJ ""$$>>##
vx00000G'(:#FFF 	J 	JZZZ66<<[[IIF	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J ##C((>>#&&
fh/////s   ,C<<D D c                      g d} g d}t          ddgdz  | d|          }t          | |d	          }d
 }|                    dd          j                            |          }t          j        ||           d S )Nr   r   r   r}   r}   Group1Group2r}   r   r.   r   r.   r   r6   c                     |                      t          j        | j                                        | j                                        dz                       S ro   )rA  r   ru  r   rn  ro  r:   s    r   reindex_helperz1test_apply_reindex_values.<locals>.reindex_helper  s9    yy17;;==!'++--!2CDDEEEr   r   FrO   )r   r   r#   r.   r$   r    rS   )r3  indicesr(   r@   r  rA   s         r   test_apply_reindex_valuesr    s    
 \\FllG	h1A5GGw	W	W	WBfG':::HF F F ZZEZ228>>~NNF8V,,,,,r   c                     d} t           j                            d                              dd|           }t	          |t           j                            d                              |           g d| dz  z  d          }|                    d	d
          }d }d}t          j        t          |          5  |
                    |          }d d d            n# 1 swxY w Y   d|v sJ d S )NrC  r}   r   r   )size)foobarbazquxr   )r`   value1value2r`   FrO   c                 "    | d         dz  | d<   | S )Nr  r}   value3rE   r   s    r   r!  z"test_apply_corner_cases.<locals>.f  s    kAo(r   r   r   r  )r   r   r   rF  r   r   r#   r    r!   r"   r$   )Nlabelsr(   r  r!  r)   rA   s          r   test_apply_corner_casesr    sD    	AY""1%%..q#A.>>F	i++A..>>qAA222a1f=	
 	

 
B jj5j11G   DC		#$6c	B	B	B " "q!!" " " " " " " " " " " " " " "vs   :CC #C c                     t          ddgdgdz  ddgd          } d}t          j        t          |          5  |                     d	g                              d
           }d d d            n# 1 swxY w Y   t          j        | j                  | _        d}t          j        t          |          5  |                     d	g                              d           }d d d            n# 1 swxY w Y   t          j	        |d         |d                    t          g dg dt          j
        d          gdz  d          } d }d}t          j        t          |          5  |                     d                              |          d         }d d d            n# 1 swxY w Y   | j        }| j        |_        t          j	        ||           d }t          g dg dg dg dd          }|                                }t          j        |j                  |_        d}t          j        t          |          5  |                    d                              |          j        }d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d                              |          j        }d d d            n# 1 swxY w Y   t          j	        ||           d S )Nr   r}   z
2017-03-02r  inf)NumberDateStrr   r   r  c                     | j         d         S r   rp   r:   s    r   r<   z;test_apply_numeric_coercion_when_datetime.<locals>.<lambda>  s    !&) r   c                     | j         d         S r   rp   r:   s    r   r<   z;test_apply_numeric_coercion_when_datetime.<locals>.<lambda>  s    q	 r   r  )r         )r  3r   z12:31:22r~   )r   r   Tc                 *    | j         d         dg         S )Nr   r   rp   r  s    r   get_Bz8test_apply_numeric_coercion_when_datetime.<locals>.get_B  s    vay#r   r   r   c                    t          g dt                    }dt          | j                  v r1t	          | | j        dk             j        j        d                   |d<   dt          | j                  v rbt	          | | j        dk             j        j        d                   |d<   t	          | | j        dk             j        j        d                   |d<   |S )	N)p1p2useTime)r   rM   step1r   r  step2r  r  )r   rR   r   Staterj   Machiner3  oTime)toolr   s     r   predictionsz>test_apply_numeric_coercion_when_datetime.<locals>.predictions  s    222&AAAd4:&&&&Dw!67?FqIJJCId4:&&&&Dw!67?FqIJJCI djG&;!<!B!I!!LMMC	N
r   )r   r   r   r   )r  r  r  r  ) z2016-09-19 05:24:33r  z2016-09-19 23:59:04)2336L36Rr  )Keyr  r  r  r  )r   r    r!   r"   r#   r$   r%   r=   r  rS   	Timestampr   r   r   r   r  r  )r(   r)   r@   rA   r  r  df1df2s           r   )test_apply_numeric_coercion_when_datetimer    s\    
q6L>A#5uenMM
 
B DC		#$6c	B	B	B E E::xj))//0C0CDDE E E E E E E E E E E E E E EnRW%%BG
CC		#$6c	B	B	B C CXJ''--.A.ABBC C C C C C C C C C C C C C C6%=(5/::: 
ll!2!2!2",z:R:R9SVW9WXX
 
B      DC		#$6c	B	B	B 3 3C&&u--c23 3 3 3 3 3 3 3 3 3 3 3 3 3 3tHTHN68,,,   '''999KKK222		
 	
 C ((**Csy))CI
CC		#$6c	B	B	B < <;;u%%++K88;< < < < < < < < < < < < < < <		#$6c	B	B	B : :U##))+669: : : : : : : : : : : : : : :8V,,,,,sY   +A00A47A46+C--C14C1&/F!!F%(F%.I<<J J ".KK #K c                     t          g dt          j        d          gdz  d          } | j        | j        z
  | d<   d}t	          j        t          |          5  |                     d                              d	           }d d d            n# 1 swxY w Y   t          g dt          j	        d
d          gdz  t          j        d          gdz  d          
                    d          }t	          j        ||           d S )NrD  z2017-02-01 00:00:00r~   )clientidr   time_delta_zeror   r   r  c                     t          | j                                        | j                                        d          S )N)clientid_ager   )r   r  rn  r   )ddfs    r   r<   z?test_apply_aggregating_timedelta_and_datetime.<locals>.<lambda>  s8    !$!4!8!8!:!:CLDTDTDVDVWW  r   r   r/  )r  r  r   )r   r   
datetime64r   r    r!   r"   r#   r$   timedelta64r  r'   r(   r)   rA   r@   s       r   -test_apply_aggregating_timedelta_and_datetimer    sh    
''<==>B	
 	

 
B K"+5B
CC		#$6c	B	B	B 
 
J''-- 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 '^As334q8]#899:Q>	
 	
  i
  &(+++++s   *BBBc                  H   ddgddgddgddgddgg} t          | d	d
gt          j        dd                    }|                    d	                                          }t          g dg dd          }|                    d	d           t          j        ||           d S )Nr   r   r   r  r  r   (   2   NameValuez
2020-09-01z
2020-09-05r  rD  )r   r  Z   )r  r  Trb  )r   r%   
date_ranger#   r=  r  r    r'   )ra   r(   rA   r@   s       r    test_apply_groupby_datetimeindexr    s     "IRy3)c2Yb	BD	vw'r}\</X/X
 
 
B ZZ##%%F///LLLIIJJHvt,,,&(+++++r   c                     t          dd t          d          D             d          } d }d }d}t          j        t          |          5  |                     d	g
                              |          }d d d            n# 1 swxY w Y   t          ddidg          }d	|j        _        d}t          j        t          |          5  |                     d	g
                              |          }d d d            n# 1 swxY w Y   t          t          j
        ddd                              d          dddg          }d	|j        _        t          j        ||           t          j        ||           d S )Nr   c                 4    g | ]}t          j                    S rE   )r   now)rG   nns     r   rI   z'test_time_field_bug.<locals>.<listcomp>,  s    !E!E!ER(,..!E!E!Er   r   r   c                 $    t          ddi          S )Nr   r}   r   batchs    r   func_with_no_datez.test_time_field_bug.<locals>.func_with_no_date.  s    sAhr   c                 D    t          t          ddd          dd          S )N  r   r}   rY   r   )r   r   r  s    r   func_with_datez+test_time_field_bug.<locals>.func_with_date1  s$    HT1a00q99:::r   r   r   rX   byr   r}   r   r  nsr  )r   r   r    r!   r"   r#   r$   r   r6   r%   r  as_unitr'   )r(   r  r  r)   dfg_no_conversiondfg_no_conversion_expecteddfg_conversiondfg_conversion_expecteds           r   test_time_field_bugr  &  s=    
!E!E599!E!E!EFF	G	GB     ; ; ; DC		#$6c	B	B	B J JJJ3%J00667HIIJ J J J J J J J J J J J J J J!*C8A3!?!?!?,/$)
CC		#$6c	B	B	B D Du--33NCCD D D D D D D D D D D D D D D'l4A&&..t441==aS   *-!&+-GHHH.*ABBBBBs$   +BBB+DD
Dc                      t          g dg dg dg dd          } |                     ddg          } |                     ddgd	          }d
 |                    fd           d S )N)rX   rX   rX   rY   rY   rY   rX   rX   rX   rY   rY   rY   )r   r   r  r  r  er   r   r  r  r  r  )g?r}   r~   r   r   r   r}   r   r   r   r   r}   )gffffff@r   r   r         r   r   r   r   r   r~   )group1group2weightr.   r  r  T)r  sortc                 Z    t          j        | |z                                d          }|S )Nr~   )r   arrayrepeat)r.   r  r   s      r   noddyz7test_gb_apply_list_of_unequal_len_arrays.<locals>.noddyS  s(    huv~&&--a00
r   c                 0     | j         | j                  S r   )r.   r  )r;   r  s    r   r<   z:test_gb_apply_list_of_unequal_len_arrays.<locals>.<lambda>]  s    uuQWah77 r   )r   r  r#   r$   )r(   
df_groupedr  s     @r   (test_gb_apply_list_of_unequal_len_arraysr  F  s    	RRRRRR<<<>>>		
 	

 
B 
x*	+	+B8X"6TBBJ   777788888r   c                  8   t          g dg dd          } d }d}t          j        t          |          5  |                     d                              |          }d d d            n# 1 swxY w Y   t                      }t          j        ||           d S )Nr   )r   r   r   r   )r   random_varsc                     d S r   rE   r:   s    r   	test_funcz.test_groupby_apply_all_none.<locals>.test_funce  s    r   r   r   r   r   )test_dfr  r)   rA   r@   s        r   test_groupby_apply_all_noner  `  s     <<<MMNNG   DC		#$6c	B	B	B < <**00;;< < < < < < < < < < < < < < <{{H&(+++++s   )A,,A03A0c                      t          g dg dd          } t          g dg dd          }d }d}t          j        t          |          5  |                     d                              |          }d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d                              |          }d d d            n# 1 swxY w Y   t          j        d	d	gd
dggdd g          }t          j        ddgd	dggdd g          }t          d	d	gd
dgd|          }t          ddgd	dgd|          }	t          j        ||           t          j        ||	           d S )N)r   r   r   r}   )r   r   r}   r~   )r   varsr   c                 F    | j         d         dk     rd S | j        ddg         S )Nr   r}   r_  )r  rq   r:   s    r   r  z0test_groupby_apply_none_first.<locals>.test_funct  s&    71:>>4vq"gr   r   r   r   r   r   r}   r   r~   r   )	r   r    r!   r"   r#   r$   r   r\  r'   )
test_df1test_df2r  r)   r   r   index1index2	expected1	expected2s
             r   test_groupby_apply_none_firstr  o  s+   LLL,,,GGHHHLLL,,,GGHHH  
 DC		#$6c	B	B	B > >""8,,229==> > > > > > > > > > > > > > >		#$6c	B	B	B > >""8,,229==> > > > > > > > > > > > > > >#aVaV$4Xt<LMMMF#aVaV$4Xt<LMMMFaVaV<<FKKKIaVaV<<FKKKI'9---'9-----s$   )BB	B()CC!$C!c            	         t          ddgddgd          } |                     d          }d}t          j        t          |          5  |                    d	           }d d d            n# 1 swxY w Y   t          dgd
t          j        ddgdggdd g          	                    d                    }t          j
        ||           d S )Nr   r   filledempty)r.   r   r   r   r   c                 0    | | j         dk             d         S )Nr   r.   )r.   r   s    r   r<   z7test_groupby_apply_return_empty_chunk.<locals>.<lambda>  s    E%+2B,CG,L r   r.   r   )r6   r   )r   r#   r    r!   r"   r$   r   r   from_productr9  rS   )r(   r   r)   rA   r@   s        r   %test_groupby_apply_return_empty_chunkr    s4   	aVx.ABB	C	CBZZ  F
CC		#$6c	B	B	B N NLLMMN N N N N N N N N N N N N N N	
%x 1#&wo
 
 

$w--  H 68,,,,,s   	A,,A03A0c                  ^   t          d                                g dg dd          } |                     dd          }|                    d           }t          g d	g d
d          }t	          j        ||           |                    d           }t	          j        ||           d S )Nza a br   r   r   r   rD  r   FrO   c                 0    | |                                  z  S r   r=  r:   s    r   r<   z-test_apply_with_mixed_types.<locals>.<lambda>  s    1quuww; r   )gUUUUUU?gUUUUUU?r   )皙?g333333?r[   r   r   c                 0    | |                                  z  S r   r!  r:   s    r   r<   z-test_apply_with_mixed_types.<locals>.<lambda>  s    q15577{ r   )r   rF   r#   rL  r    r'   r$   )r(   r   rA   r@   s       r   test_apply_with_mixed_typesr%    s    	yyyyyyII	J	JB


35
))A[[..//F444???KKLLH&(+++WW**++F&(+++++r   c                     t          dddgit          ddg                    } d}t          j        t          |          5  |                     d                              d           }d d d            n# 1 swxY w Y   t          t          dg          t          dg          gt          ddgd                    }t          j        ||           d S )	NrX   r   r}   r   r   r   c                     | j         S r   r   r  s    r   r<   z*test_func_returns_object.<locals>.<lambda>  s     r   r5   )	r   r   r    r!   r"   r#   r$   r   rS   r  s       r   test_func_returns_objectr(    s	   	C!Q=q!f	6	6	6B
CC		#$6c	B	B	B : :C&&'8'899: : : : : : : : : : : : : : :uaSzz5!::.eQF6M6M6MNNNH68,,,,,s   *A88A<?A<group_column_dtlikec                 j   t          dg| gd          }d}t          j        t          |          5  |                    d                              d           }d d d            n# 1 swxY w Y   |rdnd}t          d	gt          dg|d
          dg          }t          j        ||           d S )Nr  r   r   r   rX   c                 (    t          dgdg          S )Nspam*   r   r  r:   s    r   r<   z+test_apply_datetime_issue.<locals>.<lambda>  s    1M1M1M r   rb   rR   r,  rL   r-  rK   )r   r    r!   r"   r#   r$   r   r'   )r)  r>   r(   r)   rA   rM   r@   s          r   test_apply_datetime_issuer.    s    
%(;'<==	>	>B
CC		#$6c	B	B	B O OC&&'M'MNNO O O O O O O O O O O O O O O +8HHE&5%C#H#H#HSURVWWWH&(+++++s   *A((A,/A,c            
      J   t          t          j        d          t          j        d          t          j        d          t          j        d          t          j        d          dddddddddddddd          } d }d}t          j        t
          |	          5  |                     d
                              |          d         }d d d            n# 1 swxY w Y   t          dgt          j	        dgd
          d          }t          j
        ||           d S )Nz2015-02-24 00:00:00)r   r   r}   r~   r   zsome UA stringzanother UA string17661101)day	userAgentuserIdc                 X    t          d |                                 D                       S )Nc                 T    i | ]%\  }}||                                 j        d          &S )r   )value_countsr   )rG   r   ss      r   
<dictcomp>zYtest_apply_series_return_dataframe_groups.<locals>.most_common_values.<locals>.<dictcomp>  s0    KKK1q!..**03KKKr   )r   itemsr   s    r   most_common_valueszEtest_apply_series_return_dataframe_groups.<locals>.most_common_values  s'    KK

KKKLLLr   r   r   r1  r3  z
2015-02-24r5   r  )r   r%   r  r    r!   r"   r#   r$   r   DatetimeIndexrS   )tdfr:  r)   rA   r@   s        r   )test_apply_series_return_dataframe_groupsr=    s   
 < 566< 566< 566< 566< 566  $##&#   	
 	
 C4M M M DC		#$6c	B	B	B H HU##))*<==hGH H H H H H H H H H H H H H H	B,l^%HHHx  H 68,,,,,s    /CC"Cr  c           
      d   ddgdz  }| r8t          j        |g d          }t          j        g dg dd          }g d}nt          ddgd	          }d
dg}t	          ||d|          }t	          t          j        d          |t          t          d                    t          t          d                    d          	                    ddg          }|
                    dd                              d           }t          j        ||           |j        j        ddgk    sJ d S )Nr   r}   r   r   )
categoriesr   )r?  r6   )r     r   r5   r  r@  )r   r/  r   r   )r   r   r   r/  r   F)observedc                 *    |                                  S r   r!  r:   s    r   r<   z-test_apply_multi_level_name.<locals>.<lambda>  s    QUUWW r   )r%   CategoricalCategoricalIndexr   r   r   ru  r   r   r  r#   r$   r    r'   r   r   )r  rY   expected_indexexpected_valuesr@   r(   rA   s          r   test_apply_multi_level_namerG    sK    
A
A #N1333,YYY999SVWWW%++1vC000r(O44N  H 
imm!$uRyy//U2YYPP
 
ic
  ZZeZ,,223D3DEEF&(+++8>c3Z''''''r   c           
      t   t          j        t          j        ddd          ddddft          j        ddd          ddd	d
ft          j        ddd          ddddft          j        ddd          ddddfgg d          }d}t	          j        t          |          5  |                    d                              d           j	        }d d d            n# 1 swxY w Y   | rdnt          }t          t          j        d          ||t          j        |gg d          }t	          j        ||           d S )Ni  r   reddarkr   r  greenstormyr}   9i  bluebrightr~   r   i  calmr   potato)observationcolormood	intensityscorerK   r   r   rS  c                     | j         d         S r   rp   r  s    r   r<   z;test_groupby_apply_datetime_result_dtypes.<locals>.<lambda>  s    qvay r   rb   zdatetime64[ns]r   )r   from_recordsr%   r  r    r!   r"   r#   r$   ru   rR   r   r   rM   int64rS   )r>   ra   r)   rA   rM   r@   s         r   )test_groupby_apply_datetime_result_dtypesrZ    s   !\$1%%ufa=\$1%%w!SA\$1%%vxDA\$1%%vvq(C		
 GFF  D DC		#$6c	B	B	B I Ig&&,,-@-@AAHI I I I I I I I I I I I I I I*6HHE	"	#	#UE28UCDDD  H 68,,,,,s   /CC Cr   abcr~   2020r/  )r"  freq))rX   r   )rX   r   )rY   r   c                     t          g dg dd|           }d}t          j        t          |          5  |                    dd	                              d
           }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   r   r}   )r   r   r   r  r   r   r   r   FrO   c                     | S r   rE   r:   s    r   r<   z8test_apply_index_has_complex_internals.<locals>.<lambda>&  r  r   r   )r   r(   r)   rA   s       r   &test_apply_index_has_complex_internalsra    s     
YYY;;5	I	I	IB
CC		#$6c	B	B	B J JG66<<[[IIJ J J J J J J J J J J J J J J&"%%%%%s   ,A..A25A2zfunction, expected_valuesc                 4    | j                                         S r   )r   to_listr:   s    r   r<   r<   -  s    17??$$ r   c                 N    t          | j                                                  S r   )setr   rc  r:   s    r   r<   r<   .  s    3qw(()) r   c                 N    t          | j                                                  S r   )tupler   rc  r:   s    r   r<   r<   /  s    5**++ r   )r   r   r}   r~   c                 h    t          t          | j                                                            S r   )dict	enumerater   rc  r:   s    r   r<   r<   1  s"    d9QW__%6%67788 r   c                 b    d t          | j                                                  D             S )Nc                     g | ]	\  }}||i
S rE   rE   )rG   nis      r   rI   z<lambda>.<locals>.<listcomp>5  s     III&1a1vIIIr   )rk  r   rc  r:   s    r   r<   r<   5  s)    IIIagoo6G6G,H,HIII r   c                 V   t          g ddg          }d}t          j        t          |          5  |                    d                              |           }d d d            n# 1 swxY w Y   t          |t          ddgd          	          }t          j        ||           d S )
N)r   r   r   r   r   rK   r   r   r   r   r5   r   	r   r    r!   r"   r#   r$   r   r   rS   )functionrF  r(   r)   rA   r@   s         r   1test_apply_function_returns_non_pandas_non_scalarrs  *  s    $ 
'''(	<	<	<B
CC		#$6c	B	B	B 6 6H%%++H556 6 6 6 6 6 6 6 6 6 6 6 6 6 6oUC:H-M-M-MNNNH68,,,,,   )A''A+.A+c                     d } t          g ddddt          j        gd          }d}t          j        t
          |          5  |                    d	                              |           }d d d            n# 1 swxY w Y   t          d
dgdgt          j        ggt          g dd	                    }t          j
        ||           d S )Nc                 @    | d         j                                         S )Nr   )r3  flattenr   s    r   fctz4test_apply_function_returns_numpy_array.<locals>.fctF  s    Sz ((***r   )rX   rX   rY   noner   r}   r~   r,  r   r   r   r[   r\   r]   )rX   rY   ry  r5   r   )r   r   r8  r    r!   r"   r#   r$   r   r   rS   )rx  r(   r)   rA   r@   s        r   'test_apply_function_returns_numpy_arrayrz  D  s!   + + + 
0001a7HII	J	JB
CC		#$6c	B	B	B , ,C&&s++, , , , , , , , , , , , , , ,
scURVH%U3E3E3EC-P-P-P  H 68,,,,,s   )A88A<?A<rr  c                     | j         S r   r   grs    r   r<   r<   T  s     r   c                     | j         dz   dz
  S ro   r   r|  s    r   r<   r<   T  s    bhQRlUVFV r   c                    t          g ddg          }d}t          j        t          |          5  |                    d                              |           }d d d            n# 1 swxY w Y   t          t          g d          t          g d          t          dd	g          gt          g d
d                    }t          j        ||           d S )N)
r   r}   r}   r}   r   r}   r~   r   r~   r   idrK   r   r   )r   r   r   r   )r   r}   r~   r   r   r   r   r5   r   rq  )rr  r(   r)   rA   r@   s        r    test_apply_function_index_returnr  T  s    
111D6	B	B	BB
CC		#$6c	B	B	B 2 2D!!''112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	|||		eLLL115!Q==AIIID)))  H 68,,,,,rt  c                      t          g dg dd          } |                     dd                              d           }t          g dg d	d          }t          j        ||           d S )
Nr   )r   r}   r   r   r   r   r   r   Fr   c                 *    |                                  S r   )r   r:   s    r   r<   zAtest_apply_function_with_indexing_return_column.<locals>.<lambda>j  s     r   )r   r   r   )r]   r^   r^   )r   r#   r$   r    r'   )r(   rA   r@   s      r   /test_apply_function_with_indexing_return_columnr  b  s    	@@@&&&	
 	

 
B ZZZ//556H6HIIF+++#OO	
 	
 H &(+++++r   udfc                 *    |                                  S r   r   r:   s    r   r<   r<   v  s     r   c                 R    |                                                      d           S )Nc                     | dz   S ro   rE   )ys    r   r<   z<lambda>.<locals>.<lambda>v  s
    A r   )r   r7  r:   s    r   r<   r<   v  s    affhhoooo&F&F r   c                    t          ddgddgd          }d}t          j        t          |          5  |                    d| 	                              |          }d d d            n# 1 swxY w Y   |j                            |j        | 	                              |          }| r&|j        j	        dk    sJ |j        j	        dk    sJ d S |j        j	        dk    sJ |j        j	        dk    sJ d S )
NrX   rY   r   r}   r,  r   r   r   rO   )
r   r    r!   r"   r#   r$   r   r   r   nlevels)rP   r  r(   r)   	df_resultseries_results         r   test_apply_result_typer  t  s[    
#s1a&11	2	2B
CC		#$6c	B	B	B F FJJszJ::@@EE	F F F F F F F F F F F F F F FDLL*L==CCCHHM 0&!++++"*a//////&!++++"*a//////s   +A++A/2A/c                     t          g dg dd          } d}t          j        t          |          5  |                     dd                              d	           }d d d            n# 1 swxY w Y   t          j        t          |          5  |                     dd                              d
           }d d d            n# 1 swxY w Y   t          j        ||           d S )N)r}   r   r}   r   r,  r   r   r   FrO   c                     | S r   rE   r:   s    r   r<   z4test_result_order_group_keys_false.<locals>.<lambda>  s    1 r   c                 *    |                                  S r   r   r:   s    r   r<   z4test_result_order_group_keys_false.<locals>.<lambda>  s    QVVXX r   r   r  s       r   "test_result_order_group_keys_falser    s    
33	4	4B
CC		#$6c	B	B	B F FCE2288EEF F F F F F F F F F F F F F F		#$6c	B	B	B O O::ce:44::;M;MNNO O O O O O O O O O O O O O O&(+++++s#   ,A,,A03A0,C

CCc                     dgdz  dgdz  z   dgdz  z   } t          j        |           }t          j        | d          }t          t          t	          d                    dz  t	          d          |d	          }t          t          t	          d                    dz  t	          d          |d	          }d
}t          j        t          |          5  |                    dd          	                    d           }d d d            n# 1 swxY w Y   t          j        t          |          5  |                    dd          	                    d           }d d d            n# 1 swxY w Y   t          j
        ||           d S )Nz
2001-01-01r}   z
2001-01-02z
2001-01-03UTC)tzr~   r   )r;   r  tr   r   r;   FrO   c                 :    | ddg                                          S Nr;   r  r   r   s    r   r<   z1test_apply_with_timezones_aware.<locals>.<lambda>      r3*~**,, r   c                 :    | ddg                                          S r  r   r   s    r   r<   z1test_apply_with_timezones_aware.<locals>.<lambda>  r  r   )r%   r;  r   r   r   r    r!   r"   r#   r$   r'   )datesindex_no_tzindex_tzr  r  r)   r   r   s           r   test_apply_with_timezones_awarer    s   NQ,!!33|nq6HHE"5))K%000H
$uQxx..1,588+NN
O
OC
$uQxx..1,588(KK
L
LC
CC		#$6c	B	B	B 
 
++ce+44::,,
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
	#$6c	B	B	B 
 
++ce+44::,,
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 '7+++++s$   ,DDD4,E,,E03E0c                    t          g dg dg dd          }t          ddgddgd	t          d
dgd                    }|                    d          }d}t          j        t
          |d          5  |                    t          d          }d d d            n# 1 swxY w Y   t          j        ||           |                    d          }t          | |          } t          ||           | }t          j        t
          |d          5  |                    t          d          }d d d            n# 1 swxY w Y   t          j        ||           d S )N)c   r  r  X   r  r  )r   r}   r~   r   r   r   )r   r  r  r  r  <   r      r      r  r  r  r  rX   r5   r   r  :The behavior of DataFrame.sum with axis=None is deprecatedF)r   check_stacklevelinclude_groups)r   r   r#   r    r!   rt   r$   r=  r'   r
   getattr)reduction_funcr(   r@   grpr)   rA   args_s           r   ;test_apply_is_unchanged_when_other_methods_are_called_firstr    s    
)))###)))	
 	

 
B 1gS"I&&RH3'''  H ***

C
FC		#Mu	U	U	U 6 63u556 6 6 6 6 6 6 6 6 6 6 6 6 6 6&(+++ ***

C">266D$^$$d+A		#Mu	U	U	U 6 63u556 6 6 6 6 6 6 6 6 6 6 6 6 6 6&(+++++s$   7B  B$'B$D>>EEc                     t          g dt          ddd          t          ddd          t          ddd          t          ddd          gg ddt          g dd	
                    } |                     ddg          }d}t	          j        t          |          5  |                    d           }d d d            n# 1 swxY w Y   | j        g d         }|	                                }t          j        |g d                   |_        |                    d	          }t	          j        ||           |j        j        d         D ]}t!          |          t          u sJ d S )N)rX   rX   rX   rY   i  r   r   r}   r   rD  )r   e   f   g   idxr5   r   r   r   r   r   c                 ,    |                      d          S ro   r   r:   s    r   r<   zRtest_apply_with_date_in_multiindex_does_not_convert_to_timestamp.<locals>.<lambda>  s    QVVAYY r   )r   r}   r~   )r   r   r  rK   )r   r   r   r#   r    r!   r"   r$   rq   r   r   
from_framer   r9  r'   levelstype)r(   r  r)   rA   r@   vals         r   @test_apply_with_date_in_multiindex_does_not_convert_to_timestampr    s    
%%%T1b!!T1b!!T1b!!T1b!!	 		
 		
 (((u555
 
 
B **c3Z
 
 C
CC		#$6c	B	B	B 0 0..//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wyyy!H##%%H*84E4E4E+FGGHN}}U}++H&(+++|"1% ! !CyyD     ! !s   CC	Cc                     t          t          j                            d                              ddg          t	          j        ddgddgg                    } d}t          j        t          |	          5  | j	        
                    d
d
          }d d d            n# 1 swxY w Y   |                    d           }d}t          j        t          |	          5  | 
                    dd
          }d d d            n# 1 swxY w Y   |                    d           }t          j        ||j	                   t          j        ||            d S )Nr}   r   r   r   r   r   rK   z5The 'axis' keyword in DataFrame.groupby is deprecatedr   r   re   r  c                 0    |                      dd          S )Nr   r  	droplevelr:   s    r   r<   zDtest_apply_by_cols_equals_apply_by_rows_transposed.<locals>.<lambda>  s    !1!=!= r   rg   c                 0    |                      dd          S )Nr   r   r  r  r:   s    r   r<   zDtest_apply_by_cols_equals_apply_by_rows_transposed.<locals>.<lambda>  s    !++1A+">"> r   )r   r   r   r   r   r  r    r!   rt   r  r#   r$   r'   )r(   r)   rw   by_rowsgb2by_colss         r   2test_apply_by_cols_equals_apply_by_rows_transposedr    s    

	a  ''A//'#saV(<==
 
 
B
 BC		#M	=	=	= + +T\\q\**+ + + + + + + + + + + + + + +hh==>>G
7C		#M	=	=	= * *jjaqj))* * * * * * * * * * * * * * *ii>>??G'79---'2&&&&&s$   9B""B&)B& DDDdropnac                    t          g ddt          j        t          j        ddgdt          d                    }d}t	          j        t          |          5  |                    d	| d
                              d           }d d d            n# 1 swxY w Y   | r|	                                n|j
        g d         }t	          j        ||           d S )Nr   r}   r~   r   r   rX   rY   )colr   xxyxzr   r   r   r   F)r  rP   c                     | S r   rE   r:   s    r   r<   z5test_apply_dropna_with_indexed_same.<locals>.<lambda>  s    VW r   )r   r~   r   r}   r   )r   r   r8  r   r    r!   r"   r#   r$   r  rq   r'   )r  r(   r)   rA   r@   s        r   #test_apply_dropna_with_indexed_samer    s,    
"??262634	
 	
 7mm
 
 
B DC		#$6c	B	B	B Y YGFuEEKKKKXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y$Bryy{{{"'///*BH&(+++++s   -BBBzas_index, expected)r   r   r   )r}   r}   r   )rX   rY   N)rM   r   )r}   r}   rY   r   r   c                 &   t          g dg dg dd          }d}t          j        t          |          5  |                    ddg|                               d	           }d d d            n# 1 swxY w Y   t          j        ||           d S )
Nr  )r   r   r   r   r   r   r   rX   rY   r   c                     dS ro   rE   r:   s    r   r<   z5test_apply_as_index_constant_lambda.<locals>.<lambda>-      1 r   )r   r    r!   r"   r#   r$   assert_equal)r   r@   r(   r)   rA   s        r   #test_apply_as_index_constant_lambdar    s    & 
LLL|||LL	M	MB
CC		#$6c	B	B	B N NS#J::@@MMN N N N N N N N N N N N N N NOFH%%%%%s   .A11A58A5c                     t          g dg dg ddt          d                    } d}t          j        t          |          5  |                     d	                              d
           }d d d            n# 1 swxY w Y   t          t          dd          t          j	        g dd	d g          d          }t          j
        ||           d S )Nr  )r   r   r   r   r   )r   r   r   r}   r}   rD  r   r   r   r   r   c                 4    | j                                         S r   )r   r  r:   s    r   r<   z(test_sort_index_groups.<locals>.<lambda>9  s    1A1A r   r   r   )r   r   r   rh  r   r   r   r  )r   r   r    r!   r"   r#   r$   r   r   r   rS   r  s       r   test_sort_index_groupsr  1  sA   	ooOOO///JJAhh
 
 
B DC		#$6c	B	B	B C CC&&'A'ABBC C C C C C C C C C C C C C Ca$444S$K
 
 
   H 68,,,,,s   *A<<B B c                     t          t          j        ddd          t          d          t	          d          d          } d}t          j        t          |          5  |                     | j	        | j
        j        j
        gd	
                              d           }d d d            n# 1 swxY w Y   t          j        ||            d S )Nz
2010-01-0112hr   )r]  r"  r   )r   valsletr   r   FrO   c                      | j         dd          S r   rp   r:   s    r   r<   z;test_positional_slice_groups_datetimelike.<locals>.<lambda>Q  s    !&* r   )r   r%   r  r   r   r    r!   r"   r#   r  r   dtr$   r'   )r@   r)   rA   s      r   )test_positional_slice_groups_datetimeliker  D  s   M,UAFFF!HH==	
 	
 H DC		#$6c	B	B	B & &!!\8=+01e " 
 

%$$
%
% 	& & & & & & & & & & & & & & & &(+++++s    AB..B25B2c                     t          g dg dg dd          } |                     d          }|ddg                             d           }t          d	d
gdd
gdt          ddgd                    }t	          j        ||           d S )N)rX   rX   rY   r   r  rD  r   r   r   c                     |                      t                                                    |                                 z
  S r   )astypefloatro  rn  r:   s    r   r<   z7test_groupby_apply_shape_cache_safety.<locals>.<lambda>Y  s)    AHHUOO,?,?,A,AAEEGG,K r   r[   rs  r\   r#  rX   rY   r5   r   )r   r#   r$   r   r    r'   )r(   rw   rA   r@   s       r   %test_groupby_apply_shape_cache_safetyr  U  s    	yyyyyyII	J	JB	CBc
^!!"K"KLLFCjSz**%c
2M2M2M  H &(+++++r   c                  6   t          j        g dg dg dd          } |                     d          ddg         }|                    d           }t	          j        g d	g d
gdd g          }t          g d|d          }t          j        ||           d S )N)rX   rY   rX   rY   )aaacr  ad)r  r  r  r  )rX   b1b2rX   r  r  c                 N    |                                                                  S r   )unstackr6  r:   s    r   r<   z3test_groupby_apply_to_series_name.<locals>.<lambda>k  s    !9!9!;!; r   )rX   rX   rY   rY   rY   )r  r  r  r  r  )arraysr   )r~   r   r}   r   r   r   r  )	r   	from_dictr#   r$   r   r\  r   r    rS   )r(   r  rA   expected_idxr@   s        r   !test_groupby_apply_to_series_namer  a  s    		%%%******	
 	

 
B **S//4,
'CYY;;<<F))))+I+I+IJDk  L ooo\HHHH68,,,,,r   c                    t          g dg dddt          j        t          j        gd          }|                    d|           }d}t	          j        t          |	          5  |                    d
           }d d d            n# 1 swxY w Y   t	          j        t          |	          5  |                    d           }d d d            n# 1 swxY w Y   t	          j        ||           d S )Nr  )r   r   r}   r   r   r}   )r  r  zr  )r  r   r   c                 .    |                      dd          S )Nr   r  )nlargest)grp_dfs    r   r<   ztest_apply_na.<locals>.<lambda>~  s    FOOAs,C,C r   c                 V    |                      dd                              d          S )Nr  F)	ascendingr   )r>  r   r:   s    r   r<   ztest_apply_na.<locals>.<lambda>  s%    se)L)L)Q)QRS)T)T r   )	r   r   r8  r#   r    r!   r"   r$   r'   )r  r(   dfgrpr)   rA   r@   s         r   test_apply_nar  u  s    
<<<q!RVRV6LMM
 
B JJuVJ,,E
CC		#$6c	B	B	B E ECCDDE E E E E E E E E E E E E E E		#$6c	B	B	B V V;;TTUUV V V V V V V V V V V V V V V&(+++++s$   $BBB-CCCc            	         d} t          j        t          |           5  t          g dg dt	          j        g dd          d                              d	d
g                              d           }d d d            n# 1 swxY w Y   t          ddt	          j        dd          gddt	          j        dd          ggg dt          j	        ddgd	d
g                    }t          j
        ||           d S )Nr   r   r  )r  r  r  r  r   r7  )unitr   rX   rY   c                     | j         d         S Nr_  rp   r   s    r   r<   z8test_apply_empty_string_nan_coerce_bug.<locals>.<lambda>  s    bgbk r   r   r  r}   r   )r   r  )r}   r  r   r  )r    r!   r"   r   r%   r=   r#   r$   r   r   r'   )r)   rA   r@   s      r   &test_apply_empty_string_nan_coerce_bugr    sa   
CC		#$6c	B	B	B 
 
%)))3???   Wc3Z  U))** 	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
R,,,	-2r~ac7R7R7R/ST$gw%7SzJJJ  H
 &(+++++s   ABBBindex_values)r[   r\   r]   c                    t          g dg ddt          |                     }t          dg dit          g dd	                    }d
}t          j        t          |          5  |                    d                              d           }d d d            n# 1 swxY w Y   t          j        ||           d S )N)r  a2a3r   r   r   b_mean)r\   r]   r[   )r  r  r  rX   r5   r   r   c                 X    t          | d                                         gdg          S )NrY   r  r   )r   r   r   s    r   r<   z0test_apply_index_key_error_bug.<locals>.<lambda>  s$    vr#w||~~.xjAAA r   )r   r   r    r!   r"   r#   r$   r'   )r  rA   r@   r)   s       r   test_apply_index_key_error_bugr    s2    ###	
 	
 L!!  F ooo	
 &&&S111	  H DC		#$6c	B	B	B 
 
$$**AA
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &(+++++s   )*BB#&B#zarg,idx)皙?333333?皙?)r   r  r  )r   r   r~   )r   r"  r  c                    t          d| i|          }d}t          j        t          |          5  |                    dd                              d           }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr  r   r   r   FrO   c                     | S r   rE   r:   s    r   r<   z5test_apply_nonmonotonic_float_index.<locals>.<lambda>  r  r   r   )argr  r@   r)   rA   s        r   #test_apply_nonmonotonic_float_indexr    s    V %S111H
CC		#$6c	B	B	B N N!!%E!::@@MMN N N N N N N N N N N N N N N&(+++++s   ,A))A-0A-zargs, kwargsnumeric_onlyc                     |                      d          } |j        dg|R i |}|                    d          }t          j        ||           d S )Nr   r=  T)r  )r#   r$   r=  r    r'   )r(   r  kwargsrw   rA   r@   s         r   test_apply_str_with_argsr
    s`     
CBRXe-d---f--Fvv4v((H&(+++++r   r6   	some_namec                     t          ddg|           }|                    ddgd                              d           }t          ddg|           }t          j        ||           d S )Nr   r}   r5   rX   FrO   c                     | S r   rE   r:   s    r   r<   z1test_result_name_when_one_group.<locals>.<lambda>  r  r   )r   r#   r$   r    rS   )r6   r  rA   r@   s       r   test_result_name_when_one_groupr    sr     !Qd
#
#
#C[[#s[66<<[[IIFq!f4(((H68,,,,,r   z
method, opr$   c                     | j         d         S r  )r3  rw   s    r   r<   r<     s    RYr] r   c                 (    | d         j         d         S )NrY   r   rp   r  s    r   r<   r<     s    RW\!_ r   )aggskew)r  prod)r  r=  c           
         t          g g d          }|                    dd          }t          |d          } t          ||           |          }t          g ddt	          g dd                    }t          j        ||           d S )	Nr   rX   TrO   rY   rc   rL   )r6   rM   r   )r   r#   r  r   r   r    rS   )methodopempty_dfrw   r   rA   r@   s          r   test_empty_dfr    s     r++,,H			#$		/	/BBE#WUF##B''F
IU2YS-Q-Q-Q  H 68,,,,,r   r  c                    t          g dg dd          }|                    d          }| rt          nd }d}t          j        ||          5  |                    d |           }d d d            n# 1 swxY w Y   t          d	d	gd
dgdt          dd	gd                    }| s	|dg         }t          j        ||           d S )Nr_  )r~   r   r   r   rX   r   r   c                 *    |                                  S r   r!  r:   s    r   r<   z%test_include_groups.<locals>.<lambda>  s    AEEGG r   r  r}   r   r   r   r5   r   rY   )r   r#   r"   r    r!   r$   r   r'   )r  r(   rw   warnr)   rA   r@   s          r   test_include_groupsr    s9    
33	4	4B	CB!/9TD
CC		#D	4	4	4 L L++NKKL L L L L L L L L L L L L L L1vQF335!Qc;R;R;RSSSH #SE?&(+++++s   A44A8;A8r!  rf   jimjoec                    t           j                            d          }t          |                    ddd          ddg          }|                    d          |d	<   |                    |           }|j        |t          urd nt          }d
}t          j        ||dd          5  |                    |          }d d d            n# 1 swxY w Y   t          |                    |                     }d|j         d| d}	|j        |dfk    s
J |	            fdd}t          j        t           |          5  |                              }
d d d            n# 1 swxY w Y   t          j        ||
           t          j        t           |          5  |                    fd          }d d d            n# 1 swxY w Y   t          j        ||           |t          k    rV|                                                              }
|
                    | dd           t          j        ||
d           t          j         t-          |          d           t-          |          d                     d S )Nr}   r   r   )r   r}   r  r  rK   r   jolier  F)r   r  raise_on_extra_warnings)subsetzinvalid frame shape: z (expected (z, 3))r~   c                 D     t          t                    | d          S )Nr   rm   )r  r   )r;   fnames    r   r<   z%test_builtins_apply.<locals>.<lambda>7  s!    )wr5))!!444 r   r   r   c                      |           S r   rE   )r;   npfuncs    r   r<   z%test_builtins_apply.<locals>.<lambda>>  s    vvayy r   T)rc  r9  )check_dtyper   rm   )r   r   r   r   rF  r   r#   __name__r=  rt   r    r!   r$   r  drop_duplicatesr  r"   r'   r  r   r  rS   r  )rf   r!  rsr(   rw   r  r)   rA   ngroups
assert_msgr@   r  r%  r'  s               @@r   test_builtins_applyr.    sD    
		q	!	!B	2;;q!W--u~	F	F	FB$$R((BwK	D		BJEC<<44]D
FC		#C%
 
 
   !	              
 "$$D$1122GQQQ7QQQJ<GQ<''''''4444F
CC		#$6c	B	B	B $ $88F##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $&(+++		#$6c	B	B	B 2 2HH000011	2 2 2 2 2 2 2 2 2 2 2 2 2 2 2&),,,Cxx66%==,,..4E:::
fhEBBBB176511q999;M72u;M;MST;U;U;UVVVVVs6   *CCCE##E'*E'GG
G)dr   r   numpyr   pytestpandasr%   r   r   r   r   r	   pandas._testing_testingr    pandas.tests.groupbyr
   r+   rB   rU   rx   r|   markparametrizer   r   r   r   r   r   r   r  r  r*  r-  r0  r5  r:  rG  rM  rX  r]  rd  rv  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r%  r(  todayrJ   r.  r=  rG  rZ  rD  interval_rangeperiod_ranger   ra  rs  rz  r  r  r  r  r  r  r  r  r  rR   r  r  r  r  r  r  r  r  r  r
  r  r  r  ro  rn  r=  r.  rE   r   r   <module>r:     s         
                             8 8 8 8 8 85 5 5&%, %, %,P*- *- *-Z, , ,$, , ,  	/H/H/HII	J	JIIIV	LLL99	:	:QFC	C!:		$	111aAA	B	BQFK	+++4F4F4FGG	H	H)))TIl++777777   OO		
 
IIIyyy)???	C	C	CaVL!$	 	 	)   <+$ +$= <+$\  2, , ,, 
$$##	 & & &- - -('$ '$ '$T&3 &3 &3R2 2 2&0 0 0

 
 
@ @ @	@ 	@ 	@  0- - -9 9 9 e}55, , 65, F F F , , ,0, , ,4, , ,, , ,@ u660 0 7600- - -$  2;- ;- ;-|, , ,:, , ,"C C C@9 9 94, , ,. . ..- - -"
, 
, 
,- - - X^~x~'',,..0@0@0E0E0G0GH , ,	 , %- %- %-P eT]33( ( 43(,- - -, DDKK((!Q444
===>>	 & & & 	$	$1v1v&67	)	)QFQF+;<	+	+ff-=>88q\\qQ<<(	

 JI!fq!fAA/0	
  - -!  -- - -  &9&9;V;V%WXX
- 
- YX
-, , ,$ 	FFH  e}550 0 65	 
0$	, 	, 	,, , ,*, , ,@! ! !@' ' '2 D%=11, , 21,"  IIII&6F6F6Ff0U0U0U  	
 FA4j4ff5EcSVZXXX  	
 "& &# "&- - -&, , ,"	, 	, 	,- - -( D%=11, , 21,, , ,. )))___)EFF, , GF,.   
  	
  
  	
  
  	
3%( (R, ,S( (R, D62,nd=S8T)UVV, , WV, +t!455- - 65- 	**+	,,-	 	- -	 	- )D%=99, , :9, sCo..%%!899%W %W :9 /.%W %W %Wr   