U
    b                     @   s  d dl mZm Z  d dl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d Zdd	 Z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d*d+ Zejd,d-d. d/d. d0d. d1d. gd2d3 Zd4d5 Z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 Z,dRdS Z-dTdU Z.ejdVdWdXgdYdZ Z/d[d\ Z0d]d^ Z1d_d` Z2dadb Z3dcdd Z4dedf Z5dgdh Z6didj Z7dkdl Z8dmdn Z9dodp Z:dqdr Z;ejdse < e <  e < = gdtdu Z>dvdw Z?ejdxdXdWgdydz Z@d{d| ZAejd}eBed~eCd dejDddddeEdddggdd ZFejddd. d dgddggfdd. d dhddhgfdd. ddgfdd. d dddddgfdd. d d iddigd diddiggfgdd ZGdd ZHejddd. dd. gdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNejddWdXgdd ZOejddXe	dddgdddgge
dddgePddgdWeddgejEddgddgddggdd ZQdd ZRdd ZSdd ZTejddWdXgdd ZUdd ZVejddddgdddggdd ZWejddddgdddggdddgdddggdddgdddgggddÄ ZXdS )    )datedatetime)StringION)	DataFrameIndex
MultiIndexSeriesbdate_range)
Int64Indexc                  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-ck39h295/pandas/tests/groupby/test_apply.py<lambda>/       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   9   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datar3   r4   columns   float64r$   axiskeysc                 S   s   g | ]}t |qS r   str.0r   r   r   r   
<listcomp>E   s     z&test_apply_trivial.<locals>.<listcomp>r:   c                    s    j dd  S Nr7   ilocr   r'   r   r   r   F   r   z$test_apply_trivial.<locals>.<lambda>)	r   r   concatrD   r    dtypesr!   r"   r#   r(   r)   r   rE   r   test_apply_trivial=   s    ,
rI   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/   r0   r1   r2   r3   r4   r5   r7   r8   r$   r9   c                 S   s   g | ]}t |qS r   r<   r>   r   r   r   r@   S   s     z+test_apply_trivial_fail.<locals>.<listcomp>rA   c                    s    S r   r   r   rE   r   r   r   S   r   z)test_apply_trivial_fail.<locals>.<lambda>)r   r   rF   r    rG   r!   r"   r#   rH   r   rE   r   test_apply_trivial_failL   s    (rJ   zdf, group_namesr7         r+   r,   cr+   r,                  	   )r+   twoZ
aaabbbcccc)r+   BCr5   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   rY   r   r[   r]   r   r   f_nocopy   s    z1test_group_apply_once_per_group.<locals>.f_nocopyc                    s     | j dS Nr   r_   r[   r]   r   r   f_scalar   s    z1test_group_apply_once_per_group.<locals>.f_scalarc                    s     | j d S r   r_   r[   r]   r   r   f_none   s    z/test_group_apply_once_per_group.<locals>.f_nonec                    s     | j tdgdgdS )Nr7   rN   )rY   r   r   r[   r]   r   r   f_constant_df   s    z6test_group_apply_once_per_group.<locals>.f_constant_dfr+   )r    r!   AssertionError)r'   Zgroup_namesr^   r`   rb   rc   rd   funcr   r]   r   test_group_apply_once_per_groupX   s    '
rg   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 )NrK   r   r7   0246810Z12Z14)group_by_columnZtest_columnr   rn   c                 S   s   t dS )Nfunction_called)printrE   r   r   r   r      r   z2test_group_apply_once_per_group2.<locals>.<lambda>ro   )r   r    r!   Z
readouterroutcountre   )Zcapsysr(   r'   r)   r   r   r    test_group_apply_once_per_group2   s    rs   c                  C   sX   t dddgtdd} dd }dd }| d	|}| d	|}t|| d S )
Nr   r7   rL   )Ar,   c                 S   s   | S r   r   r[   r   r   r   slow   s    z,test_apply_fast_slow_identical.<locals>.slowc                 S   s   |   S r   rZ   r[   r   r   r   fast   s    z,test_apply_fast_slow_identical.<locals>.fastrt   )r   ranger    r!   r"   r#   )r'   ru   rw   Zfast_dfZslow_dfr   r   r   test_apply_fast_slow_identical   s    ry   rf   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   c                 C   s   | j ddS )NFdeeprv   r   r   r   r   r      r   c                 C   s   | j ddS )NTrz   rv   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 )Nr7   rK   rL   rP   rQ   rR   rS   rO   )gr+   r,   r|   r   r    r!   r"   r#   )rf   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 )NrR   onerU   threefoo1Zfoo2c                 S   s   | S r   r   r   r   r   r   r      r   z-test_apply_with_mixed_dtype.<locals>.<lambda>r7   rA   c1rK   rO   r.   c2Fas_index)r   nprandomrandnr!   rG   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+   rM   r7   rK   rL   rR   )Zitem_iduser_idr   r   Tr   Fr   rP   c                 S   s
   |  dS NrK   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     r   )r   r   )r   rK   r7   r7   rK   rP   r7   r   r7   rK   )rK   r7   )rL   rP   r]   abcderQ   r   c                 S   s   | S r   r   r   r   r   r   r     r   )r   rx   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 )Nrt   rV   c                 S   s   |   }d|j_|S Nstat)describer   r   r\   r)   r   r   r   desc  s    z.test_apply_concat_preserve_names.<locals>.descc                 S   s$   |   }d|j_|d t|  }|S r   )r   r   r   lenr   r   r   r   desc2!  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   desc3(  s    z/test_apply_concat_preserve_names.<locals>.desc3)rt   rV   r   )rt   rV   N)r    r!   r   r   re   )Zthree_groupgroupedr   r   r   r)   r   Zresult3r   r   r    test_apply_concat_preserve_names  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)r   Zerrstatelogr   r   )Zpiecer   r   r   r   f=  s
    z%test_apply_series_to_frame.<locals>.fz1/1/2000d   )periodsr   c                 S   s   | j S r   monthr   r   r   r   r   G  r   z,test_apply_series_to_frame.<locals>.<lambda>)r	   r   r   r   r   r    r!   
isinstancer   re   r"   r   r   )r   Zdrtsr   r)   r   r   r   test_apply_series_to_frame<  s    
r   c                 C   s4   |  ddgd t}|jjd d dks0td S )Nrt   rV   rW   rK   rt   rV   )r    r!   r   r   r   re   r'   r)   r   r   r    test_apply_series_yield_constantN  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 )Nrt   rV   rW   D)r    r!   r   r   r   re   r   r   r   r   r   test_apply_frame_yield_constantS  s    r   c                 C   sH   |  ddg}|t}| d }t|j|j t|j|j d S )Nrt   rV   rW   )	r    r!   r   rr   r"   r   r   assert_numpy_array_equalvalues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 )Nrt   rV   Fr   rW   r5   r   )r    r!   r   rr   renamer   nandropr"   r   r   r   r   r   r   r   r   )test_apply_frame_not_as_index_column_namef  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 )NrV   rW   rK   )r    sumsort_valuesr[   r   r   r   transq  s    z-test_apply_frame_concat_series.<locals>.transc                    s*   |   | jd }|  d d S )NrV   rK   )r    reindexr   r   r   )r\   r   rE   r   r   trans2t  s    z.test_apply_frame_concat_series.<locals>.trans2r   rQ     rt   rV   rW   rt   rW   F)Zcheck_names)r   r   r   randintr   r    r!   r"   r%   r   re   )r   r   r)   r   r   rE   r   test_apply_frame_concat_seriesp  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 )Nrt   r   r[   r   r   r   r     s    z%test_apply_multikey_corner.<locals>.f)r    r!   r"   r#   loc)tsframer   r   r)   r3   r\   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 )Nr7   rK   rL   rT   )r3   r   r3   FZ
group_keysc                 S   s   | d d S r   r   r   r   r   r   r     r   z'test_apply_chunk_view.<locals>.<lambda>r   rP   rR   rS   )r   rx   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 )Nr7   rK   r   rT   )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   rx   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,   rM   rK         @r   rM   vc                 S   s,   | d }||   | |    | d< | S Nr   v2minmaxr\   r   r   r   r   r     s     z#test_apply_typecast_fail.<locals>.fr                 ?r7   r   )	r   r   tilearanger    r!   rZ   r"   r#   )r'   r   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   r7   rK   rL   r-   r.   r+   r,   rM   r   r   r   c                 S   s,   | d }||   | |    | d< | S r   r   r   r   r   r   r     s     z%test_apply_multiindex_fail.<locals>.fr   r   r   r   )r   from_arraysr   r   r   r   r    r!   rZ   r"   r#   )r   r'   r   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   rK   )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,   rM   r7   rK   rL   rP   )id_fieldcategoryr   c                 S   s(   | j d dkr|  S | | jdk S d S Nr   r7   rM   )shaperZ   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}   )r4   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Yr7   rK   r6   r   r   )levelc                 S   s   | S r   r   r   r   r   r   r     r   z<test_apply_with_duplicated_non_sorted_axis.<locals>.<lambda>c                 S   s   | S r   r   r   r   r   r   r     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 )Nr7   rK   rL   rP   ZGroup1ZGroup2r\   r   r   r   r   r   c                 S   s"   |  t| j | j d S rB   )r   r   r   r   r   r   r   r   r   r   reindex_helper!  s    z1test_apply_reindex_values.<locals>.reindex_helperr\   )r   r   r    r   r!   r"   r%   )r   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 )Nr   r   r   )sizefoobarZbazZquxrP   )r3   value1Zvalue2r3   c                 S   s   | d d | d< | S )Nr  rK   value3r   r|   r   r   r   r   8  s    z"test_apply_corner_cases.<locals>.fr  )r   r   r   r   r   r    r!   re   )Nlabelsr'   r   r   r)   r   r   r   test_apply_corner_cases)  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 )$Nr7   rK   z
2017-03-02r  inf)NumberDateStrr  c                 S   s
   | j d S ra   rC   r   r   r   r   r   J  r   z;test_apply_numeric_coercion_when_datetime.<locals>.<lambda>c                 S   s
   | j d S ra   rC   r   r   r   r   r   L  r   r  
         3rj   z12:31:22rL   )rt   rV   Tc                 S   s   | j d dg S )Nr   rV   rC   r	  r   r   r   get_BT  s    z8test_apply_numeric_coercion_when_datetime.<locals>.get_Brt   rV   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=   Machiner   oTime)Ztoolrq   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   to_datetimer  r"   r%   	TimestamprV   rt   r   rZ   r  r  )r'   r(   r)   r  r  df1df2r   r   r   )test_apply_numeric_coercion_when_datetime@  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 )Nrt   rV   rW   z2017-02-01 00:00:00rL   )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   r   Z
datetime64r   r    r!   Ztimedelta64r   r"   r#   r   r   r   r   -test_apply_aggregating_timedelta_and_datetimeu  s$    
r)  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 )Nrt   r  rV   r  r  rW   (   2   NameValuez
2020-09-01z
2020-09-05r   Z   )r,  r-  Tr   )r   r   
date_ranger    r   r   r"   r#   )r4   r'   r)   r(   r   r   r    test_apply_groupby_datetimeindex  s    "  
r0  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 )Nr7   c                 S   s   g | ]}t  qS r   )r   now)r?   nnr   r   r   r@     s     z'test_time_field_bug.<locals>.<listcomp>r  rN   c                 S   s   t ddiS )NrM   rK   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  r7   rK   r,   rM   )r   r   r4  r   r   r   func_with_date  s    z+test_time_field_bug.<locals>.func_with_dater+   ZbyrM   rK   r   r7  r8  )	r   rx   r    r!   r   r   r   r"   r#   )r'   r6  r9  Zdfg_no_conversionZdfg_no_conversion_expectedZdfg_conversionZdfg_conversion_expectedr   r   r   test_time_field_bug  s    r;  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,   rM   r   eg?rK   rL   rP   rQ   rR   rO   r7   gffffff@rT   r        rS   )group1group2weightr   r?  r@  T)r   sortc                 S   s   t | | d}|S )NrL   )r   arrayrepeat)r   rA  rq   r   r   r   noddy  s    z7test_gb_apply_list_of_unequal_len_arrays.<locals>.noddyc                    s    | j | jS r   )r   rA  r   rE  r   r   r     r   z:test_gb_apply_list_of_unequal_len_arrays.<locals>.<lambda>)r   r   r    r!   )r'   Z
df_groupedr   rF  r   (test_gb_apply_list_of_unequal_len_arrays  s    
rG  c                  C   sL   t ddddgddddgd} dd	 }| d
|}t  }t|| d S )Nr   r7   rO   rS   rP   rQ   )groupsZrandom_varsc                 S   s   d S r   r   r   r   r   r   	test_func  s    z.test_groupby_apply_all_none.<locals>.test_funcrH  r}   )Ztest_dfrI  r)   r(   r   r   r   test_groupby_apply_all_none  s
    rJ  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 )Nr7   rK   r   rL   )rH  varsc                 S   s    | j d dk rd S | jddg S )Nr   rK   r   )r   rD   r   r   r   r   rI    s    z0test_groupby_apply_none_first.<locals>.test_funcrH  r]   r   )r   r    r!   r   r   r"   r#   )	Ztest_df1Ztest_df2rI  r   r   Zindex1index2Z	expected1Z	expected2r   r   r   test_groupby_apply_none_first  s    rM  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   r7   Zfilledempty)r   r\   r\   c                 S   s   | | j dk d S )Nr7   r   )r   r[   r   r   r   r     r   z7test_groupby_apply_return_empty_chunk.<locals>.<lambda>r   r]   )r   r   )	r   r    r!   r   r   from_productr   r"   r%   )r'   rH  r)   r(   r   r   r   %test_groupby_apply_return_empty_chunk  s    
 rP  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 br7   rK   rL   rP   rR   rQ   r   rt   c                 S   s   | |    S r   r   r   r   r   r   r     r   z-test_apply_with_mixed_types.<locals>.<lambda>gUUUUUU?gUUUUUU?皙?g333333?r-   rV   rW   c                 S   s   | |    S r   rQ  r   r   r   r   r     r   )r   splitr    r   r"   r#   r!   )r'   r|   r)   r(   r   r   r   test_apply_with_mixed_types  s     
rU  c                  C   sh   t dddgitddgd} | ddd }ttdgtdggtddgddd}t|| d S )Nr+   r7   rK   r   c                 S   s   | j S r   r   r	  r   r   r   r     r   z*test_func_returns_object.<locals>.<lambda>r   )r   r
   r    r!   r   r"   r%   r   r   r   r   test_func_returns_object  s     rW  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 )Nr  rN   r+   c                 S   s   t dgdgdS )Nspam*   r   r3  r   r   r   r   r   )  r   z+test_apply_datetime_issue.<locals>.<lambda>rY  r$   r   rZ  r5   r   r    r!   r   r"   r#   )rX  r'   r)   r(   r   r   r   test_apply_datetime_issue  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   r7   rK   rL   rP   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?   rM   r&   r   r   r   
<dictcomp>N  s      zYtest_apply_series_return_dataframe_groups.<locals>.most_common_values.<locals>.<dictcomp>)r   	iteritemsrE   r   r   r   most_common_valuesM  s    zEtest_apply_series_return_dataframe_groups.<locals>.most_common_valuesr]  r^  z
2015-02-24rV  r   )	r   r   r"  r    r!   r   DatetimeIndexr"   r%   )Ztdfra  r)   r(   r   r   r   )test_apply_series_return_dataframe_groups1  s:      rc  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 )Nr7   rK   rQ   rL   )
categoriesrV   )rd  r   rV  r  )rt   rV   rW   r   rt   c                 S   s   |   S r   rQ  r   r   r   r   r   c  r   z-test_apply_multi_level_name.<locals>.<lambda>r     )rW   r   r   )r   ZCategoricalCategoricalIndexr   r   r   r   r   rx   r   r    r!   r"   r#   r   r   re   )r   r,   Zexpected_indexr'   r)   r(   r   r   r   test_apply_multi_level_nameW  s    "rg  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  r7   ZredZdarkrl   r7  ZgreenZstormyrK   9i  ZblueZbrightrL   rm   i  ZcalmrP   ZpotatoZobservationcolorZmoodZ	intensityZscorer5   c                 S   s
   | j d S ra   rC   r	  r   r   r   r   t  r   z;test_groupby_apply_datetime_result_dtypes.<locals>.<lambda>zdatetime64[ns]r   )r   Zfrom_recordsr   r"  r    r!   rG   r   r   r   r$   Zint64r"   r%   )r4   r)   r(   r   r   r   )test_groupby_apply_datetime_result_dtypesi  s    	rj  r   abcZ2020r   )r   freq)r+   r   )r+   r7   )r,   r   c                 C   sB   t dddgdddgd| d}|ddd }t|| d S )	Nr7   rK   r   r   r   r\   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    rm  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   rn  r   r   r   r   r     r   c                 C   s   t | j S r   )tupler   rn  r   r   r   r   r     r   )r   r7   rK   rL   c                 C   s   dd t | j D S )Nc                 S   s   i | ]\}}||qS r   r   r?   nir   r   r   r_    s      z<lambda>.<locals>.<dictcomp>	enumerater   rn  r   r   r   r   r     r   c                 C   s   dd t | j D S )Nc                 S   s   g | ]\}}||iqS r   r   rr  r   r   r   r@     s     z<lambda>.<locals>.<listcomp>ru  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 )Nrt   rV   rH  r5   rV  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    ry  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 )NrV   )r   flattenr[   r   r   r   fct  s    z4test_apply_function_returns_numpy_array.<locals>.fctr+   r,   noner7   rK   rL   r   rt   r-   r.   r/   rV  r   )	r   r   r   r    r!   r   r   r"   r%   )r{  r'   r)   r(   r   r   r   'test_apply_function_returns_numpy_array  s      r}  rx  c                 C   s   | j S r   r   Zgrr   r   r   r     r   c                 C   s   | j d d S rB   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 )Nr7   rK   rL   idr5   r   rP   rS   rT   rQ   rR   rO   rV  r   rw  )rx  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   rU   r   r7   rK   rP   rQ   rR   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/   r0   )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-01rK   z
2001-01-02z
2001-01-03UTC)tzrL   rR   )r   ytr   Fr   c                 S   s   | ddg   S Nr   r  rv   rE   r   r   r   r     r   z1test_apply_with_timezones_aware.<locals>.<lambda>c                 S   s   | ddg   S r  rv   rE   r   r   r   r     r   )	r   rb  r   r   rx   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   r7   rK   rL   rP   rQ   rR   r  r  r  r*  r+  <   r+   r,   rM   i  i)        r+   rV  r   r:  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  r7   r  rK   rL   rP   r   r   e   f   g   idxrV  r   rt   rV   c                 S   s
   |  dS rB   r   r   r   r   r   r   	  r   zRtest_apply_with_date_in_multiindex_does_not_convert_to_timestamp.<locals>.<lambda>r   r5   )r   r   r   r    r!   rD   r   r   Z
from_framer   r   r"   r#   levelstypere   )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 )NrR   rP   rt   rV   r7   rK   r5   r   r:   r   c                 S   s   | j dddS )Nr   r  Z	droplevelr   r   r   r   r   !  r   zDtest_apply_by_cols_equals_apply_by_rows_transposed.<locals>.<lambda>c                 S   s   | j dddS )Nr7   r   r  r  r   r   r   r   r   #  r   )
r   r   r   r   rO  r  r    r!   r"   r#   )r'   Zby_rowsZby_colsr   r   r   2test_apply_by_cols_equals_apply_by_rows_transposed  s    r  dropnac                 C   sv   t dddddgdtjtjddgdtd	d
}|jd| ddd }| rR| n|jdddddg }t	|| d S )Nr7   rK   rL   rP   rQ   r+   r,   )colr\   Zxxyxzr   r\   r  c                 S   s   | S r   r   r   r   r   r   r   4  r   z5test_apply_dropna_with_indexed_same.<locals>.<lambda>r   )
r   r   r   r   r    r!   r  rD   r"   r#   )r  r'   r)   r(   r   r   r   #test_apply_dropna_with_indexed_same)  s     r  zas_index, expected)r   r   )rK   rK   r]   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 )	Nr7   rK   r  r+   r,   r   c                 S   s   dS rB   r   r   r   r   r   r   M  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_lambda9  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 )Nr7   rK   rL   rP   rQ   rR   rS   rO   rT   r   r   r   rW   c                 S   s
   | j  S r   )rt   r   r   r   r   r   r   W  r   z(test_sort_index_groups.<locals>.<lambda>r   r   r   rq  r   r]   rt   r   )	r   rx   r    r!   r   r   r   r"   r%   r   r   r   r   test_sort_index_groupsQ  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12HrQ   )rl  r   r   )r   valsletc                 S   s   | j dd  S ra   rC   r   r   r   r   r   l  r   z;test_positional_slice_groups_datetimelike.<locals>.<lambda>)r   r   r/  rx   r   r    r  r   dtr!   r"   r#   rH   r   r   r   )test_positional_slice_groups_datetimelikeb  s    r  c                  C   sx   t dddgdddgdddgd	} | d
}|ddg dd }t ddgddgdtddgd
dd}t|| d S )Nr+   r,   r7   rK   rL   rP   rR   rQ   r   rt   rV   rW   c                 S   s   |  t |   S r   )Zastypefloatr   r   r   r   r   r   r   u  r   z7test_groupby_apply_shape_cache_safety.<locals>.<lambda>r-   r   r.   rS  rV  r   r[  )r'   gbr)   r(   r   r   r   %test_groupby_apply_shape_cache_safetyq  s    "
 r  c                 C   sf   t ddddgddddgddtjtjgd}|jd| d}|dd	 }|d
d	 }t|| d S )Nr7   rK   r   rQ   )r  r  zr  r  c                 S   s   |  ddS )Nr7   r  )nlargest)Zgrp_dfr   r   r   r     r   ztest_apply_na.<locals>.<lambda>c                 S   s   | j ddddS )Nr  F)Z	ascendingr7   )r   r   r   r   r   r   r     r   )r   r   r   r    r!   r"   r#   )r  r'   Zdfgrpr)   r(   r   r   r   test_apply_na}  s    &r  c                  C   s   t ddddgddddgtjddddgdddd	d
gdd } t ddtjdddgddtjdddggd	d
dgtjddgd	d
gdd}t| | d S )Nr7   rK   r  rL   rP   r&   )unitr  r+   r,   c                 S   s
   | j d S )Nr   rC   rE   r   r   r   r     r   z8test_apply_empty_string_nan_coerce_bug.<locals>.<lambda>rM   )r7   r  )rK   r  r]   r   )	r   r   r!  r    r!   r   r   r"   r#   )r)   r(   r   r   r   &test_apply_empty_string_nan_coerce_bug  s"    

&r  index_valuesr-   r.   r/   c                 C   sj   t dddgdddgdt| d}t d	d
ddgitdddgddd}|ddd }t|| d S )NZaaZa2a3r7   rK   rL   rN   r   b_meanr.   r/   r-   r+   rV  c                 S   s   t | d  gdgdS )Nr,   r  r   )r   r   rE   r   r   r   r     r   z0test_apply_index_key_error_bug.<locals>.<lambda>)r   r   r    r!   r"   r#   )r  r)   r(   r   r   r   test_apply_index_key_error_bug  s      
r  zarg,idxg?g333333?g?rR  c                 C   s4   t d| i|d}|ddd }t|| d S )Nr  r   c                 S   s   | S r   r   r   r   r   r   r     r   z5test_apply_nonmonotonic_float_index.<locals>.<lambda>r}   )argr  r(   r)   r   r   r   #test_apply_nonmonotonic_float_index  s    +r  )Yr   r   ior   Znumpyr   ZpytestZpandasr   r   r   r   r   r	   Zpandas._testingZ_testingr"   Zpandas.core.apir
   r*   rI   rJ   markZparametrizerx   r   rg   rs   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r%  r)  r0  r;  rG  rJ  rM  rP  rU  rW  todayr   r\  rc  rg  rj  rf  Zinterval_rangeZperiod_ranger   rm  ry  r}  r  r  r  r  r  r  r  r$   r  r  r  r  r  r  r  r  r   r   r   r   <module>   sd  '*$(.
(
-	
%#
	
5
&

	



  


)