U
    f/ev                     @   sf  d dl mZm Z  d dlmZ d dlZd dlZd dlm  m	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 Zdd Zd	d
 Ze
jdd Zejjdedddddgdddddgddddgfed d ddgd dd dgdd dgfeddgidgfeddddddddgeddddgfeddddddgddddddgddddgfeedddddddddddg
dd ddddddddg
ddddgfedddgdddggdddgdddgfgdd d!d"d#d$d%gd&d'd( Zd)d* Ze
jejj d+d,d-d. Z!e
jejd/d0d1 ej"d2d1 ejj d+d,d3d4d1 ej"d5d1 ejj d+d,d3gd6d7 Z#d8d9 Z$d:d; Z%d<d= Z&d>d? Z'd@dA Z(dBdC Z)dDdE Z*dFdG Z+dHdI Z,dJdK Z-dLdM Z.dNdO Z/dPdQ Z0dRdS Z1dTdU Z2dVdW Z3dXdY Z4ejdZd[d\gd]d^ Z5d_d` Z6dadb Z7dcdd Z8dedf Z9dgdh Z:didj Z;dkdl Z<dmdn Z=dodp Z>dqdr Z?dsdt Z@dudv ZAejdwe B e B  e B C gdxdy ZDdzd{ ZEejd|d\d[gd}d~ ZFdd ZGejdeHedeId dejJddddeKdddggdd ZLejddd1 d dgddggfdd1 d dhddhgfdd1 ddgfdd1 d dddddgfdd1 d d iddigd diddiggfgdd ZMdd ZNejddd1 dd1 gdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUejdd\edddgdddggedddgeVddgd[eddgejKddgddgddggdd ZWdd ZXdd ZYdS )    )datedatetime)StringION)	DataFrameIndex
MultiIndexSeriesbdate_rangec                  C   s   d} t jt| d dddgddggd}|d}||jj }||jjdd }t	
|| t jt| d dddgd	}td
ddgtdd}tdddg|d}|ddd }t	|| d S )Na+  2011.05.16,00:00,1.40893
2011.05.16,01:00,1.40760
2011.05.16,02:00,1.40750
2011.05.16,03:00,1.40649
2011.05.17,02:00,1.40893
2011.05.17,03:00,1.40760
2011.05.17,04:00,1.40750
2011.05.17,05:00,1.40649
2011.05.18,02:00,1.40893
2011.05.18,03:00,1.40760
2011.05.18,04:00,1.40750
2011.05.18,05:00,1.40649r   timevalue)headernamesZparse_dates	date_timec                 S   s   |   S Nidxmaxx r   C/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/groupby/test_apply.py<lambda>0       z#test_apply_issues.<locals>.<lambda>)r   r   z
2011.05.16z
2011.05.17z
2011.05.18dtypenamez00:00z02:00indexc                 S   s   | d | d    S )Nr
   r   r   r   r   r   r   r   :   r   )pdZread_csvr   	set_indexgroupbyr   r   r   applytmassert_frame_equalr   objectr   assert_series_equal)sdfexpectedresultZexp_idxr   r   r   test_apply_issues   s(    
  r)   c                     s   t dddddgdddddgdd	d
gd tj jdd   jdd  gdddgd}  jdd  jD dd fdd}t||  d S )Nab      ?       @      @      @      @keydatar2   r3   columns   float64r#   axiskeysc                 S   s   g | ]}t |qS r   str.0r   r   r   r   
<listcomp>F   s     z&test_apply_trivial.<locals>.<listcomp>r9   c                    s    j dd  S Nr6   ilocr   r&   r   r   r   G   r   z$test_apply_trivial.<locals>.<lambda>)	r   r   concatrC   r   dtypesr    r!   r"   r'   r(   r   rD   r   test_apply_trivial>   s    ,
rH   c                     sz   t dddddgdddddgdd	d
gd tj  gdddgd}  jdd  jD dd fdd}t||  d S )Nr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r6   r7   r#   r8   c                 S   s   g | ]}t |qS r   r;   r=   r   r   r   r?   T   s     z+test_apply_trivial_fail.<locals>.<listcomp>r@   c                    s    S r   r   r   rD   r   r   r   T   r   z)test_apply_trivial_fail.<locals>.<lambda>)r   r   rE   r   rF   r    r!   r"   rG   r   rD   r   test_apply_trivial_failM   s    (rI   c                  C   s   d} t jjdd| d}t jjdd| d}t||t j| dddd	g| d
  d}dd }|ddg}|j}|j|j|j	d}|
 }|j}	|||	|\}
}|rtd S )N  r   i  size   foobarbazqux   )r2   key2value1value2c                 S   s   dS rA   r   gr   r   r   fk   s    ztest_fast_apply.<locals>.fr2   rS   r@   )nprandomrandintr   randnr   grouperZ_get_splitterZ_selected_objr9   Z_get_group_keysZsorted_dataZ
fast_applyAssertionError)NlabelsZlabels2r&   rX   rW   r]   Zsplitter
group_keysZsdatavaluesZmutatedr   r   r   test_fast_applyY   s$    
	rc   zdf, group_namesr6      rM   r*   r+   cr*   r+      rR            	   )r*   twoZ
aaabbbcccc)r*   BCr4   ZGH2936zGH7739 & GH10519ZGH10519ZGH2656ZGH12155ZGH20084ZGH21417)idsc                    s~   g   fdd} fdd} fdd} fdd} fd	d
}|||||fD ]*} d d = |  d|  |ksNtqNd S )Nc                    s     | j |  S r   )appendr   copygroupr   r   r   f_copy   s    z/test_group_apply_once_per_group.<locals>.f_copyc                    s     | j | S r   rp   r   rr   rt   r   r   f_nocopy   s    z1test_group_apply_once_per_group.<locals>.f_nocopyc                    s     | j dS Nr   rv   rr   rt   r   r   f_scalar   s    z1test_group_apply_once_per_group.<locals>.f_scalarc                    s     | j d S r   rv   rr   rt   r   r   f_none   s    z/test_group_apply_once_per_group.<locals>.f_nonec                    s     | j tdgdgdS )Nr6   rf   )rp   r   r   rr   rt   r   r   f_constant_df   s    z6test_group_apply_once_per_group.<locals>.f_constant_dfr*   )r   r    r^   )r&   Zgroup_namesru   rw   ry   rz   r{   funcr   rt   r   test_group_apply_once_per_group{   s    '
r}   c              
   C   sz   d}t ddddddddgdddddd	d
dgddddddd	d
dgd}|ddd  |  jd}||ksvtd S )Nrd   r   r6   0246810Z12Z14)group_by_columnZtest_columnr   r   c                 S   s   t dS )Nfunction_called)printrD   r   r   r   r      r   z2test_group_apply_once_per_group2.<locals>.<lambda>r   )r   r   r    Z
readouterroutcountr^   )Zcapsysr'   r&   r(   r   r   r    test_group_apply_once_per_group2   s    r   zGH-34998)reasonc                  C   sX   t dddgtdd} dd }dd }| d	|}| d	|}t|| d S )
Nr   r6   rM   )Ar+   c                 S   s   | S r   r   rr   r   r   r   slow   s    z,test_apply_fast_slow_identical.<locals>.slowc                 S   s   |   S r   rq   rr   r   r   r   fast   s    z,test_apply_fast_slow_identical.<locals>.fastr   )r   ranger   r    r!   r"   )r&   r   r   Zfast_dfZslow_dfr   r   r   test_apply_fast_slow_identical   s    r   r|   c                 C   s   | S r   r   r   r   r   r   r      r   r   c                 C   s   | d d  S r   r   r   r   r   r   r      r   )Zmarksc                 C   s   | j ddS )NFdeepr   r   r   r   r   r      r   c                 C   s   | j ddS )NTr   r   r   r   r   r   r      r   c                 C   sH   t ddddgddddgddddgd	}|d
| }t|| d S )Nr6   rd   rM   rR   rh   ri   rj   rg   )rW   r*   r+   rW   r   r   r    r!   r"   )r|   r&   r(   r   r   r   5test_groupby_apply_identity_maybecopy_index_identical   s    (r   c                  C   s   t tjdddddddgd} | jdd dd	j}| j}t|| t d
dddddgi} | jd | d< | 	d
  j}| j	ddd
 j}t|| d S )Nri   onerl   threefoo1Zfoo2c                 S   s   | S r   r   r   r   r   r   r     r   z-test_apply_with_mixed_dtype.<locals>.<lambda>r6   r@   c1rd   rg   r-   c2Fas_index)r   rY   rZ   r\   r    rF   r!   r$   r   r   meanreset_indexr   )r&   r(   r'   result1result2r   r   r   test_apply_with_mixed_dtype  s    
r   c                 C   sP  t ddddddgddddddgtdd} | jd	d
d}| jd	dd}|dj}|dj}tddddg}t|| t|| |dd j}|dd j}t	
ddddg}ddddg}	t	j
|	d	d gd}
t||
 t|| ttd}t ddgddgddgddgddgg|d} | jddddd j}t|| d S )Nr+   r*   re   r6   rd   rM   ri   )Zitem_iduser_idr
   r   Tr   Fr   rR   c                 S   s
   |  dS Nrd   headr   r   r   r   r   /  r   z-test_groupby_as_index_apply.<locals>.<lambda>c                 S   s
   |  dS r   r   r   r   r   r   r   0  r   )r   r   )r   rd   r6   r6   rd   rR   r6   r   r6   rd   )rd   r6   )rM   rR   rt   abcderh   r   c                 S   s   | S r   r   r   r   r   r   r   =  r   )r   r   r   r   r   r   r!   assert_index_equalr    r   from_tupleslist)r&   Zg_asZg_not_asZres_asZ
res_not_asexpZres_as_applyZres_not_as_applyZexp_not_as_applytpZexp_as_applyindresr   r   r   test_groupby_as_index_apply  s0    *r   c                 C   sx   |  ddg}dd }dd }dd }||}|jjd	ks@t||}|jjd	ksZt||}|jjd
ksttd S )Nr   rm   c                 S   s   |   }d|j_|S Nstat)describer   r   rs   r(   r   r   r   descD  s    z.test_apply_concat_preserve_names.<locals>.descc                 S   s$   |   }d|j_|d t|  }|S r   )r   r   r   lenr   r   r   r   desc2I  s    z/test_apply_concat_preserve_names.<locals>.desc2c                 S   s0   |   }dt| d|j_|d t|  }|S )NZstat_d)r   r   r   r   r   r   r   r   desc3P  s    z/test_apply_concat_preserve_names.<locals>.desc3)r   rm   r   )r   rm   N)r   r    r   r   r^   )Zthree_groupgroupedr   r   r   r(   r   Zresult3r   r   r    test_apply_concat_preserve_namesA  s    



r   c                  C   sb   dd } t ddd}ttjd|d}|dd }|| }t|tsNt	t
|j|j d S )	Nc              	   S   s:   t jdd t | }W 5 Q R X t| | |   |dS )Nignore)invalid)r   Zdemeanedlogged)rY   Zerrstatelogr   r   )Zpiecer   r   r   r   rX   e  s
    z%test_apply_series_to_frame.<locals>.fz1/1/2000d   )periodsr   c                 S   s   | j S r   monthr   r   r   r   r   o  r   z,test_apply_series_to_frame.<locals>.<lambda>)r	   r   rY   rZ   r\   r   r    
isinstancer   r^   r!   r   r   )rX   Zdrtsr   r(   r   r   r   test_apply_series_to_framed  s    
r   c                 C   s4   |  ddgd t}|jjd d dks0td S )Nr   rm   rn   rd   r   rm   )r   r    r   r   r   r^   r&   r(   r   r   r    test_apply_series_yield_constantv  s    r   c                 C   sl   |  ddgt}t|ts"t|jd ks0t|  ddgddg t}t|tsZt|jd kshtd S )Nr   rm   rn   D)r   r    r   r   r   r^   r   r   r   r   r   test_apply_frame_yield_constant{  s    r   c                 C   sH   |  ddg}|t}| d }t|j|j t|j|j d S )Nr   rm   rn   )	r   r    r   r   r!   r   r   assert_numpy_array_equalrb   r&   r   r(   r'   r   r   r   test_apply_frame_to_series  s
    
r   c                 C   s^   | j ddgdd}|t}| jdtjidjdd}t	|j
|j
 t|j|j d S )Nr   rm   Fr   rn   r4   r   )r   r    r   r   renamerY   nandropr!   r   r   r   rb   r   r   r   r   )test_apply_frame_not_as_index_column_name  s
    
r   c                     s   dd }  fdd}t tjdddtjdddtjdd  d	| } d	d
 |}tj||dd |j	d
kst
d S )Nc                 S   s   |  dd   d d S )Nrm   rn   rd   )r   sumsort_valuesrr   r   r   r   trans  s    z-test_apply_frame_concat_series.<locals>.transc                    s*   |   | jd }|  d d S )Nrm   rd   )r   reindexr   r   r   )rs   r   rD   r   r   trans2  s    z.test_apply_frame_concat_series.<locals>.trans2r   rh   rJ   r   rm   rn   r   rn   F)Zcheck_names)r   rY   rZ   r[   r\   r   r    r!   r$   r   r^   )r   r   r(   r   r   rD   r   test_apply_frame_concat_series  s    
r   c                 C   s:   |  dd }|dd }|dd }t|| d S )Nc                 S   s   | j S r   r   r   r   r   r   r     r   z&test_apply_transform.<locals>.<lambda>c                 S   s   | d S r   r   r   r   r   r   r     r   c                 S   s   | d S r   r   r   r   r   r   r     r   )r   r    	transformr!   r$   )r   r   r(   r'   r   r   r   test_apply_transform  s    r   c                 C   sP   |  dd dd g}dd }||}|D ]\}}t|j| || q,d S )Nc                 S   s   | j S r   yearr   r   r   r   r     r   z,test_apply_multikey_corner.<locals>.<lambda>c                 S   s   | j S r   r   r   r   r   r   r     r   c                 S   s   |  ddd  S )Nr   r   rr   r   r   r   rX     s    z%test_apply_multikey_corner.<locals>.f)r   r    r!   r"   loc)tsframer   rX   r(   r2   rs   r   r   r   test_apply_multikey_corner  s
    
r   c               
   C   sb   t dddddddddg	tdd} | jdddd	d
 }| ddddddg}t|| d S )Nr6   rd   rM   rk   )r2   r   r2   Fra   c                 S   s   | d d S r   r   r   r   r   r   r     r   z'test_apply_chunk_view.<locals>.<lambda>r   rR   ri   rj   )r   r   r   r    Ztaker!   r"   r&   r(   r'   r   r   r   test_apply_chunk_view  s    $r   c                  C   s`   t ddddddddddg
ddddddddddg
tdddd} | ddg}|d	d
  d S )Nr6   rd   r   rk   )r   name2r   r   r   c                 S   s   | j dddS )Nr   TZinplacer   r   r   r   r   r     r   z4test_apply_no_name_column_conflict.<locals>.<lambda>)r   r   r   r    )r&   r   r   r   r   "test_apply_no_name_column_conflict  s    
	r   c                  C   sx   t ddddddgtdddgdtddd} d	d
 }| d|}|  }tdddgd|d< t|| d S )Nr,   r-   r*   r+   re   rd         @r   re   vc                 S   s,   | d }||   | |    | d< | S Nr   v2minmaxrs   r   r   r   r   rX     s     z#test_apply_typecast_fail.<locals>.fr                 ?r6   r   )	r   rY   tilearanger   r    rq   r!   r"   )r&   rX   r(   r'   r   r   r   test_apply_typecast_fail  s    
r   c               	   C   s   t ddddddgddddddgg} tddddddgtddd	gdtdd
d| d}dd }|d|}| }tdddgd|d< t	
|| d S )Nr   r6   rd   rM   r,   r-   r*   r+   re   r   r   r   c                 S   s,   | d }||   | |    | d< | S r   r   r   r   r   r   rX     s     z%test_apply_multiindex_fail.<locals>.fr   r   r   r   )r   from_arraysr   rY   r   r   r   r    rq   r!   r"   )r   r&   rX   r(   r'   r   r   r   test_apply_multiindex_fail  s    &
	r   c                 C   s0   |  dd dd }| d }t|| d S )Nc                 S   s   | j S r   r   r   r   r   r   r     r   z#test_apply_corner.<locals>.<lambda>c                 S   s   | d S r   r   r   r   r   r   r     r   rd   )r   r    r!   r"   )r   r(   r'   r   r   r   test_apply_corner  s    r   c                  C   sh   t ddddgddddgddd	d
gd} dd }dd }| d|}| d|}t|| d S )Nr      i,  r*   r+   re   r6   rd   rM   rR   )id_fieldcategoryr   c                 S   s(   | j d dkr|  S | | jdk S d S Nr   r6   re   )shaperq   r   r   r   r   r   filt1  s    z&test_apply_without_copy.<locals>.filt1c                 S   s$   | j d dkr| S | | jdk S d S r   )r  r   r   r   r   r   filt2  s    z&test_apply_without_copy.<locals>.filt2r   r   )r3   r  r  r'   r(   r   r   r   test_apply_without_copy  s    


r  test_seriesTFc                 C   s   t ddgddgddggddgdddgd}| rp|dd }|jd	d
dd }| }| }t|| n4|ddd }|d}|d}t|| d S )Nr   poXYr6   rd   r5   r   r   )levelc                 S   s   | S r   r   r   r   r   r   r   0  r   z<test_apply_with_duplicated_non_sorted_axis.<locals>.<lambda>c                 S   s   | S r   r   r   r   r   r   r   7  r   )	r   r   r   r    
sort_indexr!   r$   r   r"   )r  r&   Zserr(   r'   r   r   r   *test_apply_with_duplicated_non_sorted_axis(  s      

r  c                  C   sj   ddddg} ddddg}t ddgd | d|d}t| |d	d
}dd }|dj|}t|| d S )Nr6   rd   rM   rR   ZGroup1ZGroup2rs   r   r   r   r   r   c                 S   s"   |  t| j | j d S rA   )r   rY   r   r   r   r   r   r   r   r   reindex_helperI  s    z1test_apply_reindex_values.<locals>.reindex_helperrs   )r   r   r   r   r    r!   r$   )rb   indicesr&   r'   r  r(   r   r   r   test_apply_reindex_values?  s    r  c                  C   sj   d} t jjdd| d}t|t j| ddddg| d	  d
}|d}dd }||}d|ksftd S )NrJ   r   r   rK   rN   rO   rP   rQ   rR   )r2   rT   rU   r2   c                 S   s   | d d | d< | S )NrT   rd   value3r   rV   r   r   r   rX   `  s    z"test_apply_corner_cases.<locals>.fr  )rY   rZ   r[   r   r\   r   r    r^   )r_   r`   r&   r   rX   r(   r   r   r   test_apply_corner_casesQ  s    


r  c                  C   sN  t ddgdgd ddgd} | dgdd	 }t| j| _| dgd
d	 }t|d |d  t dddgdddgtdgd d} dd }| d|d }| j	}| j
|_t|| dd }t ddddgddddgddddgdd d!d!gd"}| }t|j|_|d#|j}|d#|j}t|| d S )$Nr6   rd   z
2017-03-02rN   inf)NumberDateStrr  c                 S   s
   | j d S rx   rB   r   r   r   r   r   r  r   z;test_apply_numeric_coercion_when_datetime.<locals>.<lambda>c                 S   s
   | j d S rx   rB   r   r   r   r   r   t  r   r  
         3r   z12:31:22rM   )r   rm   Tc                 S   s   | j d dg S )Nr   rm   rB   rV   r   r   r   get_B|  s    z8test_apply_numeric_coercion_when_datetime.<locals>.get_Br   rm   c                 S   s   t dddgtd}dt| jkr>t| | jdk jjd |d< dt| jkrt| | jdk jjd |d< t| | jdk jjd |d< |S )Np1p2ZuseTime)r   r   step1r   step2)r   r#   r   Stater<   Machinerb   oTime)Ztoolr   r   r   r   predictions  s    z>test_apply_numeric_coercion_when_datetime.<locals>.predictionsr!  r"   z2016-09-19 05:24:33z2016-09-19 23:59:04Z23Z36LZ36R)Keyr#  r%  r$  r(  )r   r   r    r   Zto_datetimer  r!   r$   	Timestamprm   r   r   rq   r%  r  )r&   r'   r(   r  r&  df1df2r   r   r   )test_apply_numeric_coercion_when_datetimeh  s8    "	



r,  c                  C   s   t dddgtdgd d} | j| j | d< | dd	d
 }t dddgtddgd tdgd dd}t	|| d S )Nr   rm   rn   z2017-02-01 00:00:00rM   )clientidr   time_delta_zeror-  c                 S   s   t | j | j dS )N)clientid_ager   )r   r.  r   r   )Zddfr   r   r   r     s   z?test_apply_aggregating_timedelta_and_datetime.<locals>.<lambda>r   r   )r-  r/  r   )
r   rY   Z
datetime64r   r   r    Ztimedelta64r   r!   r"   r   r   r   r   -test_apply_aggregating_timedelta_and_datetime  s$    
r0  c                  C   s   ddgddgddgddgddgg} t | d	d
gtddd}|d	 }t dddgdddgd}|jd	dd t|| d S )Nr   r  rm   r  r  rn   (   2   NameValuez
2020-09-01z
2020-09-05r
  Z   )r3  r4  Tr   )r   r   
date_ranger   r   r   r!   r"   )r3   r&   r(   r'   r   r   r    test_apply_groupby_datetimeindex  s    "  
r7  c                  C   s   t ddd tdD d} dd }dd	 }| jd
gd|}t ddidgd}d
|j_| jd
gd|}t tddddddgd}d
|j_t|| t|| d S )Nr6   c                 S   s   g | ]}t  qS r   )r   now)r>   nnr   r   r   r?     s     z'test_time_field_bug.<locals>.<listcomp>r  rf   c                 S   s   t ddiS )Nre   rd   r   batchr   r   r   func_with_no_date  s    z.test_time_field_bug.<locals>.func_with_no_datec                 S   s   t tdddddS )N  r6   rd   r+   re   )r   r   r;  r   r   r   func_with_date  s    z+test_time_field_bug.<locals>.func_with_dater*   Zbyre   rd   r   r>  r?  )	r   r   r   r    r   r   r   r!   r"   )r&   r=  r@  Zdfg_no_conversionZdfg_no_conversion_expectedZdfg_conversionZdfg_conversion_expectedr   r   r   test_time_field_bug  s    rB  c                     s   t ddddddddddddgddddddddddddgdddd	d
ddd	ddddgdddddddddd
d	dgd} | ddg} | jddgdd}dd  | fdd d S )Nr*   r+   re   r   eg?rd   rM   rR   rh   ri   rg   r6   gffffff@rk   r        rj   )group1group2weightr   rF  rG  T)r  sortc                 S   s   t | | d}|S )NrM   )rY   arrayrepeat)r   rH  r   r   r   r   noddy  s    z7test_gb_apply_list_of_unequal_len_arrays.<locals>.noddyc                    s    | j | jS r   )r   rH  r   rL  r   r   r     r   z:test_gb_apply_list_of_unequal_len_arrays.<locals>.<lambda>)r   r   r   r    )r&   Z
df_groupedr   rM  r   (test_gb_apply_list_of_unequal_len_arrays  s    
rN  c                  C   sL   t ddddgddddgd} dd	 }| d
|}t  }t|| d S )Nr   r6   rg   rj   rR   rh   )groupsZrandom_varsc                 S   s   d S r   r   r   r   r   r   	test_func  s    z.test_groupby_apply_all_none.<locals>.test_funcrO  r   )Ztest_dfrP  r(   r'   r   r   r   test_groupby_apply_all_none  s
    rQ  c            	      C   s   t ddddgddddgd} t ddddgddddgd}dd }| d|}|d|}tjddgddggdd gd	}tjddgddggdd gd	}t ddgddgd|d
}t ddgddgd|d
}t|| t|| d S )Nr6   rd   r   rM   )rO  varsc                 S   s    | j d dk rd S | jddg S )Nr   rd   r   )r  rC   r   r   r   r   rP    s    z0test_groupby_apply_none_first.<locals>.test_funcrO  rt   r   )r   r   r    r   r   r!   r"   )	Ztest_df1Ztest_df2rP  r   r   Zindex1index2Z	expected1Z	expected2r   r   r   test_groupby_apply_none_first  s    rT  c                  C   sl   t ddgddgd} | d}|dd }tdgd	tjddgdggdd gd
dd}t|| d S )Nr   r6   Zfilledempty)r   rs   rs   c                 S   s   | | j dk d S )Nr6   r   )r   rr   r   r   r   r   #  r   z7test_groupby_apply_return_empty_chunk.<locals>.<lambda>r   rt   )r   r   )	r   r   r    r   r   from_productr   r!   r$   )r&   rO  r(   r'   r   r   r   %test_groupby_apply_return_empty_chunk  s    
 rW  c                  C   s|   t d dddgdddgd} | d	}|d
d }t dddgdddgd}t|| |dd }t|| d S )Nza a br6   rd   rM   rR   ri   rh   r   r   c                 S   s   | |    S r   r   r   r   r   r   r   3  r   z-test_apply_with_mixed_types.<locals>.<lambda>gUUUUUU?gUUUUUU?g?g333333?r,   )rm   rn   c                 S   s   | |    S r   rX  r   r   r   r   r   7  r   )r   splitr   r   r!   r"   r    )r&   rW   r(   r'   r   r   r   test_apply_with_mixed_types.  s     
rZ  c                  C   sp   t dddgitddgd} | ddd }ttdgtdggtjddgddd}t|| d S )Nr*   r6   rd   r   c                 S   s   | j S r   r   rV   r   r   r   r   >  r   z*test_func_returns_object.<locals>.<lambda>r   )r   r   Z
Int64Indexr   r    r   r!   r$   r   r   r   r   test_func_returns_object;  s     r\  group_column_dtlikec                 C   sT   t dg| gd}|ddd }t dgtdgdddd	gd
}t|| d S )NrN   rf   r*   c                 S   s   t dgdgdS )Nspam*   r   r:  r   r   r   r   r   Q  r   z+test_apply_datetime_issue.<locals>.<lambda>r^  r#   r   r_  r4   )r   r   r    r   r!   r"   )r]  r&   r(   r'   r   r   r   test_apply_datetime_issueF  s    
  r`  c               	   C   s   t tdtdtdtdtddddddddddddddd} dd }| d	|d
 }tdgtjdgd	dd
d}t|| d S )Nz2015-02-24 00:00:00)r   r6   rd   rM   rR   zsome UA stringzanother UA stringZ17661101)dayZ	userAgentuserIdc                 S   s   t dd |  D S )Nc                 S   s    i | ]\}}||  jd  qS )r   )Zvalue_countsr   )r>   re   r%   r   r   r   
<dictcomp>v  s      zYtest_apply_series_return_dataframe_groups.<locals>.most_common_values.<locals>.<dictcomp>)r   	iteritemsrD   r   r   r   most_common_valuesu  s    zEtest_apply_series_return_dataframe_groups.<locals>.most_common_valuesra  rb  z
2015-02-24r[  r  )	r   r   r)  r   r    r   DatetimeIndexr!   r$   )Ztdfre  r(   r'   r   r   r   )test_apply_series_return_dataframe_groupsY  s:      rg  r   c                 C   s   ddgd }| r@t j|dddgd}t jddgdddgdd}ntddgdd}ttd	|ttd	ttd	d
	ddg}|
ddd }tddgddgd|d}t|| |jjddgkstd S )Nr6   rd   rh   rM   )
categoriesrm   )rh  r   r[  r  )r   rm   rn   r   r   c                 S   s   |   S r   rX  r   r   r   r   r     r   z-test_apply_multi_level_name.<locals>.<lambda>r     )rn   r   r   )r   ZCategoricalCategoricalIndexr   r   rY   r   r   r   r   r   r    r!   r"   r   r   r^   )r   r+   Zexpected_indexr&   r(   r'   r   r   r   test_apply_multi_level_name  s    "rk  c               	   C   s   t jtdddddddftdddddd	d
ftdddddddftdddddddfgdddddgd} | ddd j}tt	dt
t
tjt
gdddddgd}t|| d S )Ni  r6   ZredZdarkr   r>  ZgreenZstormyrd   9i  ZblueZbrightrM   r   i  ZcalmrR   ZpotatoZobservationcolorZmoodZ	intensityZscorer4   c                 S   s
   | j d S rx   rB   rV   r   r   r   r     r   z;test_groupby_apply_datetime_result_dtypes.<locals>.<lambda>zdatetime64[ns]r   )r   Zfrom_recordsr   r)  r   r    rF   r   rY   r   r#   Zint64r!   r$   )r3   r(   r'   r   r   r   )test_groupby_apply_datetime_result_dtypes  s    	rn  r   abcZ2020r   )r   freq)r*   r   )r*   r6   )r+   r   c                 C   sB   t dddgdddgd| d}|ddd }t|| d S )	Nr6   rd   r   r  r   rs   c                 S   s   | S r   r   r   r   r   r   r     r   z8test_apply_index_has_complex_internals.<locals>.<lambda>r   )r   r&   r(   r   r   r   &test_apply_index_has_complex_internals  s    rq  zfunction, expected_valuesc                 C   s
   | j  S r   )r   to_listr   r   r   r   r     r   c                 C   s   t | j S r   )setr   rr  r   r   r   r   r     r   c                 C   s   t | j S r   )tupler   rr  r   r   r   r   r     r   )r   r6   rd   rM   c                 C   s   dd t | j D S )Nc                 S   s   i | ]\}}||qS r   r   r>   nir   r   r   rc    s      z<lambda>.<locals>.<dictcomp>	enumerater   rr  r   r   r   r   r     r   c                 C   s   dd t | j D S )Nc                 S   s   g | ]\}}||iqS r   r   rv  r   r   r   r?     s     z<lambda>.<locals>.<listcomp>ry  r   r   r   r   r     r   c                 C   sN   t ddddgdgd}|d| }t|tddgddd}t|| d S )Nr   rm   rO  r4   r[  r   r   r   r    r   r   r!   r$   )functionZexpected_valuesr&   r(   r'   r   r   r   1test_apply_function_returns_non_pandas_non_scalar  s    r}  c                  C   sr   dd } t ddddgdddtjgd	}|d
| }tddgdgtjggtdddgd
dd}t|| d S )Nc                 S   s   | d j  S )Nrm   )rb   flattenrr   r   r   r   fct  s    z4test_apply_function_returns_numpy_array.<locals>.fctr*   r+   noner6   rd   rM   r   r   r,   r-   r.   r[  r   )	r   rY   r   r   r    r   r   r!   r$   )r  r&   r(   r'   r   r   r   'test_apply_function_returns_numpy_array  s      r  r|  c                 C   s   | j S r   r   Zgrr   r   r   r     r   c                 C   s   | j d d S rA   r   r  r   r   r   r     r   c                 C   s   t ddddddddddg
dgd}|d| }ttdddd	gtdddd
gtddggtdddgddd}t|| d S )Nr6   rd   rM   idr4   r   rR   rj   rk   rh   ri   rg   r[  r   r{  )r|  r&   r(   r'   r   r   r    test_apply_function_index_return  s    "(r  c               	   C   s   t ddddddgddddddgd	} tjtd
d | jddddd }W 5 Q R X t dddgdddgd	}t|| d S )Nr   rl   r   r6   rd   rR   rh   ri   r   zSelect only valid)matchr   Fr   c                 S   s   |   S r   )r   r   r   r   r   r     r   zAtest_apply_function_with_indexing_return_column.<locals>.<lambda>r.   r/   )r   r!   Zassert_produces_warningFutureWarningr   r    r"   r   r   r   r   /test_apply_function_with_indexing_return_column  s    "r  c                  C   s   dgd dgd  dgd  } t | }t j| dd}tttdd td|d	}tttdd td|d	}|jd
dddd }|jd
dddd }t|| d S )Nz
2001-01-01rd   z
2001-01-02z
2001-01-03UTC)tzrM   ri   )r   ytr   Fr   c                 S   s   | ddg   S Nr   r  r   rD   r   r   r   r     r   z1test_apply_with_timezones_aware.<locals>.<lambda>c                 S   s   | ddg   S r  r   rD   r   r   r   r     r   )	r   rf  r   r   r   r   r    r!   r"   )datesZindex_no_tzZindex_tzr*  r+  r   r   r   r   r   test_apply_with_timezones_aware  s    
  r  c              	   C   s   t ddddddgddddddgd	d
ddddgd}t ddgddgddgdtddgddd}|jdd}|t}t|| |jdd}dg|gd| g }t|| | }|t}t|| d S )Nc   X   r6   rd   rM   rR   rh   ri   r  r  r  r1  r2  <   r*   r+   re   i  i)        r*   r[  r   rA  r   )ZnthZcorrwith)	r   r   r   r    r   r!   r"   getgetattr)Zreduction_funcr&   r'   grpr(   args_r   r   r   ;test_apply_is_unchanged_when_other_methods_are_called_first  s$    

r  c               	   C   s   t ddddgtdddtdddtdddtdddgddddgd	td
dddgddd} | ddg}|dd }| jdddg }| }t|dddg |_	|j
dd}t|| |j	jd D ]}t|tkstqd S )Nr*   r+   i  r6   r  rd   rM   rR   r   r   e   f   g   idxr[  r   r   rm   c                 S   s
   |  dS rA   r   r   r   r   r   r   1  r   zRtest_apply_with_date_in_multiindex_does_not_convert_to_timestamp.<locals>.<lambda>r   r4   )r   r   r   r   r    rC   r   r   Z
from_framer   r   r!   r"   levelstyper^   )r&   r  r(   r'   valr   r   r   @test_apply_with_date_in_multiindex_does_not_convert_to_timestamp  s(    






r  c                  C   sz   t tjddgtddgddggd} | jjddd	d
d }| jddd	dd }t	||j t	||  d S )Nri   rR   r   rm   r6   rd   r4   r   r9   r  c                 S   s   | j dddS )Nr   r  Z	droplevelr   r   r   r   r   I  r   zDtest_apply_by_cols_equals_apply_by_rows_transposed.<locals>.<lambda>c                 S   s   | j dddS )Nr6   r   r  r  r   r   r   r   r   K  r   )
r   rY   rZ   r   rV  r  r   r    r!   r"   )r&   Zby_rowsZby_colsr   r   r   2test_apply_by_cols_equals_apply_by_rows_transposed=  s    r  c                  C   st   t dddddgdtjtjddgdtd	d
} | ddd }t dddgdddgdtdd
}t|| d S )Nr6   rd   rM   rR   rh   r*   r+   )colrs   Zxxyxzr   rs   c                 S   s   | S r   r   r   r   r   r   r   [  r   z5test_apply_dropna_with_indexed_same.<locals>.<lambda>Zxxz)r   rY   r   r   r   r    r!   r"   r   r   r   r   #test_apply_dropna_with_indexed_sameQ  s    r  zas_index, expected)r   r   )rd   rd   rt   r   c                 C   sT   t ddddgddddgddddgd}|jddg| ddd }t|| d S )	Nr6   rd   r  r*   r+   r   c                 S   s   dS rA   r   r   r   r   r   r   {  r   z5test_apply_as_index_constant_lambda.<locals>.<lambda>)r   r   r    r!   Zassert_equal)r   r'   r&   r(   r   r   r   #test_apply_as_index_constant_lambdag  s    (r  c                  C   s   t dddddgdddd	d
gdddddgdtdd} | ddd }ttddtjdddddgdd gddd}t|| d S )Nr6   rd   rM   rR   rh   ri   rj   rg   rk   r   r   r   rn   c                 S   s
   | j  S r   )r   r  r   r   r   r   r     r   z(test_sort_index_groups.<locals>.<lambda>r   r   r   ru  r   rt   r   r  )	r   r   r   r    r   r   r   r!   r$   r   r   r   r   test_sort_index_groups  s    ( r  c                  C   sT   t tjddddtdtdd} | | j| jjjg	dd }t
||  d S )	Nz
2010-01-01Z12Hrh   )rp  r   r   )r   valsletc                 S   s   | j dd  S rx   rB   r   r   r   r   r     r   z;test_positional_slice_groups_datetimelike.<locals>.<lambda>)r   r   r6  r   r   r   r  r   dtr    r!   r"   rG   r   r   r   )test_positional_slice_groups_datetimelike  s    r  )Zr   r   ior   ZnumpyrY   ZpytestZpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r   r   r   r	   Zpandas._testingZ_testingr!   r)   rH   rI   Z&skip_array_manager_not_yet_implementedrc   markZparametrizer   r   r}   r   Zxfailr   paramr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r,  r0  r7  rB  rN  rQ  rT  rW  rZ  r\  todayr
   r`  rg  rk  rn  rj  Zinterval_rangeZperiod_ranger   rq  r}  r  r  r  r  r  r  r  r  r#   r  r  r  r   r   r   r   <module>   s&  '
!*$(.
(
- %#
	
5
&

	


  
