U
    *ifl                     @   s  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mZmZ d dlmZ d dlmZ dd Zdd Zd	d
 Zdd Zdd Zejddi d fdddidfdi dfdddidfgdd Zdd Zdd Zdd  Zd!d" Zd#d$ Z ejd%d&d&ej!gd&d'ej!ggd(d) Z"d*d+ Z#d,d- Z$ejd.ed/d0 Z%d1d2 Z&d3d4 Z'd5d6 Z(d7d8 Z)d9d: Z*d;d< Z+ejd=d>d?gd@dA Z,dBdC Z-dDdE Z.dFdG Z/dHdI Z0dJdK Z1dLdM Z2dNdO Z3dPdQ Z4dRdS Z5dTdU Z6dVdW Z7dXdY Z8dZd[ Z9d\d] Z:d^d_ Z;d`da Z<dbdc Z=ddde Z>dfdg Z?ejdhe@diejAdjiejAgdk djg fe@diddlidlgejAgdk  fe@eBdkd dmidmgejAgdk  fgdndo ZCejdpeddgeDd dqgdreejEddggdd dsdtdufejFdvdweejEddggdvd dsdtdufgejdxdydzgd{d| ZGd}d~ ZHdd ZIdd ZJejdejKgdgfejKejLgddgfeMejKgdgfeMejKejLgddgfgejd=d>d?gdd ZNejddejKiejKejLdedejKieejKejLdgejd=d>d?gdd ZOejdejPgdgfejQejPgddgfeMejPgdgfeMejQejPgddgfgdd ZRejddejPiejPejSdedejPieejPejSdgdd ZTdd ZUdS )    )CounterdefaultdictN)	DataFrameIndex
MultiIndexSeriesconcatisnatimedelta_range)series_transform_kernelsc                  C   s@   t tdddd} dd }| | | | t| | d S )Nz	1 day 1 s   h)periodsfreqc                 S   s   |   S N)total_secondsx r   W/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/apply/test_series_apply.pyf   s    z(test_series_map_box_timedelta.<locals>.f)r   r
   mapapplyr   Zapplymap)serr   r   r   r   test_series_map_box_timedelta   s
    

r   c              	   C   s   t jddB t| t jt |  dd l}t| |jt |  W 5 Q R X tt	dt
g ddd}|dd	 }t|| ||k	st|j|jkst|j|jkst|j|jksttd
ddgt jd}|dd	 }t|| d S )Nignoreallr   foobarname)dtyper!   indexc                 S   s   | S r   r   r   r   r   r   <lambda>.       ztest_apply.<locals>.<lambda>         r#   r"   c                 S   s   | S r   r   r   r   r   r   r$   9   r%   )nperrstatetmassert_series_equalr   sqrtmathexpr   objectr   AssertionErrorr#   r"   r!   Zfloat64)datetime_seriesr/   srsr   r   r   
test_apply#   s    $r6   c                  C   sf   t ddg} dd }| |}| |}t|| t dddg} | |}| |}t|| d S )Nr&   r'   c                 S   s   | | d fS Nr&   r   r   r   r   r   r   @   s    z/test_apply_same_length_inference_bug.<locals>.fr(   )r   r   r   r,   r-   )r4   r   resultexpectedr   r   r   $test_apply_same_length_inference_bug=   s    



r:   c                  C   s8   t tjd} dd }| j|dd}|jtks4td S )N
   c                 S   s   | dkr| S t jS )Nr   )r*   nanr   r   r   r   r   P   s    z(test_apply_dont_convert_dtype.<locals>.fF)Zconvert_dtype)r   r*   randomZrandnr   r"   r1   r2   )r4   r   r8   r   r   r   test_apply_dont_convert_dtypeM   s    r>   c                  C   sD   t dg} | jtjdd}|d ddgks.tt|d ts@td S )Nzfoo,bar),)argsr   r   r   )r   r   strsplitr2   
isinstancelistr4   r8   r   r   r   test_apply_argsW   s    
rF   zargs, kwargs, incrementr   ar&   )r'   r(       r&   cr'      c                 C   sB   ddd}t ddg}|j|df| |}|| }t|| d S )Nr   c                 S   s   | | d|  d|  S )Nr;   d   r   )r   rG   brJ   r   r   r   r   e   s    ztest_agg_args.<locals>.fr&   r'   )r   r   r   )r   aggr,   r-   )r@   kwargs	incrementr   r4   r8   r9   r   r   r   test_agg_args_   s
    
rQ   c                  C   s2   t tjddd} dd }| | | | d S )Nz1/1/2000r;   )r   c                 S   s   | j | j| jfS r   )hourdaymonthr   r   r   r   funcr   s    z,test_series_map_box_timestamps.<locals>.func)r   pd
date_ranger   r   )r   rU   r   r   r   test_series_map_box_timestampsn   s    
rX   c                 C   s^   t dddgdddg| d}t ddddg| d	}||}t dddtjg| d	}t|| d S )
NcatdograbbitZid1Zid2Zid3)datar#   r"   Zid7000)r\   r"   )r   r   rV   ZNAr,   r-   )Zany_string_dtypeZser1Zser2r8   r9   r   r   r   test_series_map_stringdtypez   s    
r]   c                  C   sV  t dt dg} t| }|jdks*t|dd }tddg}t|| t jddd	t jddd	g} t| }|jd
kst|dd }tddg}t|| t dt dg} t| }|jdkst|dd }tddg}t|| t j	dddt j	dddg} t| }|jdks,t|dd }tddg}t|| d S )N
2011-01-01
2011-01-02datetime64[ns]c                 S   s   t | j d| j d| j S N_type__name__rS   tzr   r   r   r   r$      r%   z test_apply_box.<locals>.<lambda>Timestamp_1_NoneTimestamp_2_None
US/Easternrf   datetime64[ns, US/Eastern]c                 S   s   t | j d| j d| j S ra   rc   r   r   r   r   r$      r%   Timestamp_1_US/EasternTimestamp_2_US/Eastern1 days2 daystimedelta64[ns]c                 S   s   t | j d| j S ra   rd   re   daysr   r   r   r   r$      r%   Timedelta_1Timedelta_2Mr   	Period[M]c                 S   s   t | j d| j S ra   rd   re   Zfreqstrr   r   r   r   r$      r%   Period_M
rV   	Timestampr   r"   r2   r   r,   r-   Z	TimedeltaZPeriodvalsr4   resr0   r   r   r   test_apply_box   s4    r   c                  C   s   t jddddd} t| dd}|dd	 }t jdd
ddd}t|dd}t|| |dd	 }tttddg dt	j
d}t|| dd }||}tdgd dd}t|| d S )Nr^   r_   Hrv   
Asia/TokyoXXr    c                 S   s   | t j  S r   rV   offsetsZDayr   r   r   r   r$      r%   z'test_apply_datetimetz.<locals>.<lambda>
2011-01-03c                 S   s   | j S r   rR   r   r   r   r   r$      r%      r   r!   r"   c                 S   s   t | tjstt| jS r   rC   rV   r{   
ValueErrorrA   rf   r   r   r   r   r      s    z test_apply_datetimetz.<locals>.f   )rV   rW   tz_localizer   r   r,   r-   rD   ranger*   int64r   valuesr4   r8   
exp_valuesr0   r   r   r   r   test_apply_datetimetz   s"    
r   c                  C   s   t jtdtddd} t| dtdd}|dd	 }t jtd
tddd} t| dtdd}t|| t|j|j |dd	 }tdgd dtdd}t|| |j	t
kstd S )NABBABCDDCBAT
categoriesZorderedr   abcdefgr!   r#   c                 S   s   |   S r   lowerr   r   r   r   r$      r%   z(test_apply_categorical.<locals>.<lambda>abbabcddcbac                 S   s   dS NAr   r   r   r   r   r$      r%   r      )rV   CategoricalrD   r   r   r,   r-   assert_categorical_equalr   r"   r1   r2   )r   r   r8   r0   r   r   r   test_apply_categorical   s    r   seriesz1-1z1-2c                 C   sR   t | dd}|dd }|t}t ddtjgdd}|t}t|| d S )Ncategoryr"   c                 S   s   |  dd S )N-r   )rB   r   r   r   r   r$      r%   z8test_apply_categorical_with_nan_values.<locals>.<lambda>1)r   r   Zastyper1   r*   NaNr,   r-   )r   r4   r8   r9   r   r   r   &test_apply_categorical_with_nan_values   s    

r   c                  C   s6   t g tjdddtd} | dd }t||  d S )Nz
2018-01-01r   )startr   r)   c                 S   s   | S r   r   r   r   r   r   r$      r%   zEtest_apply_empty_integer_series_with_datetime_index.<locals>.<lambda>)r   rV   rW   intr   r,   r-   rE   r   r   r   3test_apply_empty_integer_series_with_datetime_index   s    r   c              	   C   s  t jdd t | }t | }| t j}| }t|| | t jg}|  }dg|_	t
|| | dg}t
|| t||gdd}ddg|_	| t jt jg}t
|| t||gdd}ddg|_	| d	}| t jt jd
}t||| W 5 Q R X d S )Nr   r   r.   r&   Zaxisabsoluter   r   r   )r   r   )r*   r+   r.   absr   copyr,   r-   Zto_framecolumnsassert_frame_equalr   ZunstackrenameZreindex_like)string_seriesZf_sqrtZf_absr8   r9   r   r   r   test_transform   s*    



r   opc              	   C   s  | dkr&|j tjjt|  dd | dkr>t|  d tdtg }|	dg}d|  d	}t
jt|d
 |	| dg}W 5 Q R X t
|| |	ddi}d}t
jt|d
 |	| dd}W 5 Q R X t
|| |	ddgi}d}t
jt|d
 |	| gdgd}W 5 Q R X t
|| d}t
jt|d
 |	dg| gd}W 5 Q R X d|  d	}t
jt|d
 |	| dg| gd}W 5 Q R X t
|| d S )N)ZffillZbfillpadZbackfillshiftz is successful on any dtype)Zraisesreason)ZrankZfillnaz" doesn't raise TypeError on objectr(   r   z\['z"'\] did not transform successfullymatchBz&\['A'\] did not transform successfullyr   r   z&\['B'\] did not transform successfully)nodeZ
add_markerpytestmarkZxfailr2   skipr   r1   	transformr,   assert_produces_warningFutureWarningassert_equal)r   requestr   r9   r   r8   r   r   r   test_transform_partial_failure  s@      r   c               	   C   sD  d} dd }dd }t dtg }||g}tjt| d |||g}W 5 Q R X t|| |d|i}tjt| d |||d	}W 5 Q R X t|| |d|gi}tjt| d ||g|gd	}W 5 Q R X t|| ||g|gd	}tjt| d |||g|gd	}W 5 Q R X t|| d S )
Nz .*did not transform successfullyc                 S   s   | S r   r   r   r   r   r   noopD  s    z7test_transform_partial_failure_valueerror.<locals>.noopc                 S   s   t d S r   )r   )rb   r   r   r   
raising_opG  s    z=test_transform_partial_failure_valueerror.<locals>.raising_opr(   r   r   r   )r   r1   r   r,   r   r   r   )r   r   r   r   r9   r8   r   r   r   )test_transform_partial_failure_valueerror@  s(     r   c                  C   sr   t tdddd} | ddg}t ddgddgdd	}t|| | d
di}t dgd
gdd	}t|| d S )N   r   r   )r"   r!   minmaxr   r   )r#   r!   r   )r   r   rN   r,   r-   r4   r8   r9   r   r   r   	test_demoa  s    r   c                 C   sL   |  dd }| dd }t|| |  t}| t}t|| d S )Nc                 S   s   t | S r   rA   r   r   r   r   r$   q  r%   z:test_agg_apply_evaluate_lambdas_the_same.<locals>.<lambda>c                 S   s   t | S r   r   r   r   r   r   r$   r  r%   )r   rN   r,   r-   rA   r   r8   r9   r   r   r   (test_agg_apply_evaluate_lambdas_the_samen  s    

r   c                 C   sJ   |  dd }t| | d d}t|| | dd }t|| d S )Nc                 S   s   t | | d gddgdS Nr'   r   x^2r#   r   r   r   r   r   r$   }  r%   z)test_with_nested_series.<locals>.<lambda>r'   )r   r   c                 S   s   t | | d gddgdS r   r   r   r   r   r   r$     r%   )r   r   r,   r   rN   )r3   r8   r9   r   r   r   test_with_nested_seriesz  s
    r   c                 C   s<   |   }| dddddd ddd d	d
}t|| d S )Ncountmeanstdr   c                 S   s
   |  dS )Ng      ?Zquantiler   r   r   r   r$     r%   z)test_replicate_describe.<locals>.<lambda>Zmedianc                 S   s
   |  dS )Ng      ?r   r   r   r   r   r$     r%   r   )r   r   r   r   z25%z50%z75%r   )Zdescriber   r,   r-   )r   r9   r8   r   r   r   test_replicate_describe  s    r   c                 C   s>   |  ddg}t|  |  gddg| jd}t|| d S )Nsumr   r    )rN   r   r   r   r!   r,   r-   r   r   r   r   test_reduce  s    r   howrN   r   c                 C   sb   t ddd g}t|| d}|j}||ks.tt|| dddg}t dddd	}t|| d S )
Nr&   r'   sizer   r         @       @      ?)r   r   r   )r   getattrr   r2   r,   r-   )r   r4   r8   r9   r   r   r   test_non_callable_aggregates  s    r   c                  C   sN   t dgd } | ddd dd g}t dddgdddgd}t|| d S )	N   r(   r   c                 S   s   |   S r   )r   r   r   r   r   r$     r%   z3test_series_apply_no_suffix_index.<locals>.<lambda>   z<lambda>r   )r   r   r,   r-   r   r   r   r   !test_series_apply_no_suffix_index  s    r   c              	   C   s  t  \}}t|d |d d}t|d d d |d d d d}||}| D ]\}}||||  ksVtqV|| }| D ]\}}||||  kstq| dd }t || d  td	dd
dg}	tddddgdd}
tddddg}tdddtj	gdd}t |	|
| tdddtj	g}t |	|| tddddg}	td	dd
dgt
ddddgd}
td	dd
dgtddddgd}ttj	d	dd
g}t |	|
| ttj	d	dd
g}t |	|| tddddg}	tddddgdt
ddddgd}
tddddgtddddgd}tt
jtj	dddgddddgd}t |	|
| ttj	dddg}t |	|| d S )Nr   Cr   r   Dc                 S   s   | d S Nr'   r   r   r   r   r   r$     r%   ztest_map.<locals>.<lambda>r'   r&   r(   ZevenZoddr   r   rG   rM   rJ   deE)r"   r#   )r   )r,   ZgetMixedTypeDictr   r   itemsr2   to_dictr-   r*   r<   rV   ZCategoricalIndexr   r   )r3   r#   r\   sourcetargetmergedkvr8   rG   rM   rJ   r0   r   r   r   test_map  sL    $
" 
 r   c                 C   sF   t | trtd t| }|i }ttj|jd}t	
|| d S )Nz8Initializing a Series from a MultiIndex is not supportedr   )rC   r   r   r   r   r   r*   r<   r#   r,   r-   )r#   r4   r8   r9   r   r   r   test_map_empty  s    


r   c                  C   sP   t dddgdddgd} | ddd	}t dddgdddgd}t|| d S )
NTFr&   r'   r(   r   r   r   )TF)r   r   r,   r-   r   r   r   r   test_map_compat  s    r   c                  C   s   t ddddd} t dddd	}| jtjks2tt|jjtjsFt| |}|jtjks`tt	|d
 sptt	|d rtd S )N      ?r   r   r   )rG   rM   rJ   r         !   )r&   r'   r(   r   rJ   )
r   r"   r*   Zfloat_r2   
issubclassrd   integerr   r	   )leftrightr   r   r   r   test_map_int  s    
r  c                  C   s2   t td} | dd }t|jjtjs.td S )Nr(   c                 S   s   t | dkddS )Nr   r&   )r*   wherer   r   r   r   r$     r%   z)test_map_type_inference.<locals>.<lambda>)	r   r   r   r   r"   rd   r*   r   r2   )r4   s2r   r   r   test_map_type_inference  s    r  c                    sD   ddl m  |  fdd}|jtjks.tt|d  s@td S )Nr   Decimalc                    s    t | S r   r   r   r  r   r   r$     r%   z"test_map_decimal.<locals>.<lambda>)decimalr  r   r"   r*   Zobject_r2   rC   )r   r8   r   r  r   test_map_decimal  s    r  c                  C   s@   t dtjdtjdg} | jdd dd}| d }t|| d S )	Nr   r(   r   c                 S   s   | d S r   r   r   r   r   r   r$   %  r%   z'test_map_na_exclusion.<locals>.<lambda>r   )Z	na_actionr'   r   r*   r<   r   r,   r-   )r4   r8   r0   r   r   r   test_map_na_exclusion"  s    r
  c                  C   sj   t dddddgi} ddddd}| d || d	< tddddg| jd
| d< tj| d	 | d dd dS )z
    Due to new MultiIndex-ing behaviour in v0.14.0,
    dicts with tuple keys passed to map were being
    converted to a multi-index, preventing tuple values
    from being mapped properly.
    rG   rI   r'   r(   r   r   r   r   r   )rI   r  r  r  labelsr   Zexpected_labelsF)Zcheck_namesN)r   r   r   r#   r,   r-   )dfZlabel_mappingsr   r   r   test_map_dict_with_tuple_keys*  s
    r  c                  C   sh   t dddgdddgd} t }d|d< |d  d7  < | |}t d	ddgdddgd}t|| d S )
NrG   rM   rJ   r&   r'   r(   r   r   r   )r   r   r   r,   r-   )r4   counterr8   r9   r   r   r   test_map_counter;  s    
r  c                  C   s^   t dddgdddgd} tdd	 }d
|d< | |}t d
ddgdddgd}t|| d S )Nr&   r'   r(   rG   rM   rJ   r   c                   S   s   dS )Nblankr   r   r   r   r   r$   G  r%   z&test_map_defaultdict.<locals>.<lambda>stuffr  )r   r   r   r,   r-   )r4   Zdefault_dictr8   r9   r   r   r   test_map_defaultdictE  s    
r  c                  C   sF   t ddtjg} t dddg}| ddddtjdi}t|| d S )Nr&   r'   rG   rM   rJ   r	  )r4   r9   r8   r   r   r   test_map_dict_na_keyN  s    r  c                  C   sR   G dd dt } tdddg}| ddi}||}tdddg}t|| dS )	zy
    Test Series.map with a dictionary subclass that defines __missing__,
    i.e. sets a default value (GH #15999).
    c                   @   s   e Zd Zdd ZdS )z<test_map_dict_subclass_with_missing.<locals>.DictWithMissingc                 S   s   dS Nmissingr   )selfkeyr   r   r   __missing__^  s    zHtest_map_dict_subclass_with_missing.<locals>.DictWithMissing.__missing__Nre   
__module____qualname__r  r   r   r   r   DictWithMissing]  s   r  r&   r'   r(   threer  N)dictr   r   r,   r-   )r  r4   
dictionaryr8   r9   r   r   r   #test_map_dict_subclass_with_missingW  s    
r#  c                  C   sV   G dd dt } tdddg}| ddi}||}ttjtjdg}t|| d S )Nc                   @   s   e Zd ZdS )zBtest_map_dict_subclass_without_missing.<locals>.DictWithoutMissingN)re   r  r  r   r   r   r   DictWithoutMissingi  s   r$  r&   r'   r(   r   )r!  r   r   r*   r<   r,   r-   )r$  r4   r"  r8   r9   r   r   r   &test_map_dict_subclass_without_missingh  s    
r%  c                 C   sF   t dddg}| ddi}||}t tjtjdg}t|| d S )Nr&   r'   r(   r   r   r   r*   r<   r,   r-   )non_dict_mapping_subclassr4   not_a_dictionaryr8   r9   r   r   r   test_map_abc_mappings  s
    
r)  c                 C   sV   G dd d| }t dddg}|ddi}||}t tjtjdg}t|| d S )Nc                   @   s   e Zd Zdd ZdS )zDtest_map_abc_mapping_with_missing.<locals>.NonDictMappingWithMissingc                 S   s   dS r  r   )r  r   r   r   r    s    zPtest_map_abc_mapping_with_missing.<locals>.NonDictMappingWithMissing.__missing__Nr  r   r   r   r   NonDictMappingWithMissing  s   r*  r&   r'   r(   r   r&  )r'  r*  r4   r(  r8   r9   r   r   r   !test_map_abc_mapping_with_missing}  s    
r+  c                  C   sV  t dt dg} t| }|jdks*t|dd }tddg}t|| t jddd	t jddd	g} t| }|jd
kst|dd }tddg}t|| t dt dg} t| }|jdkst|dd }tddg}t|| t j	dddt j	dddg} t| }|jdks,t|dd }tddg}t|| d S )Nr^   r_   r`   c                 S   s   t | j d| j d| j S ra   rc   r   r   r   r   r$     r%   ztest_map_box.<locals>.<lambda>rg   rh   ri   rj   rk   c                 S   s   t | j d| j d| j S ra   rc   r   r   r   r   r$     r%   rl   rm   rn   ro   rp   c                 S   s   t | j d| j S ra   rq   r   r   r   r   r$     r%   rs   rt   ru   rv   rw   c                 S   s   t | j d| j S ra   rx   r   r   r   r   r$     r%   ry   rz   r|   r   r   r   test_map_box  s4    r,  c                  C   s   t jtdtddd} t| dtdd}|dd	 }t jtd
tddd}t|dtdd}t|| t|j| |dd	 }tdgd dtdd}t|| |j	t
kstd S )Nr   r   Tr   r   r   r   c                 S   s   |   S r   r   r   r   r   r   r$     r%   z&test_map_categorical.<locals>.<lambda>r   r   c                 S   s   dS r   r   r   r   r   r   r$     r%   r   r   )rV   r   rD   r   r   r,   r-   r   r   r"   r1   r2   )r   r4   r8   r   r0   r   r   r   test_map_categorical  s    r-  c                  C   s   t jddddd} t| dd}|dd	 }t jdd
ddd}t|dd}t|| |dd	 }tttddg dt	j
d}t|| dd }||}tdgd dd}t|| d S )Nr^   r_   r   rv   r   r   r    c                 S   s   | t j  S r   r   r   r   r   r   r$     r%   z%test_map_datetimetz.<locals>.<lambda>r   c                 S   s   | j S r   r   r   r   r   r   r$     r%   r   r   r   c                 S   s   t | tjstt| jS r   r   r   r   r   r   r     s    ztest_map_datetimetz.<locals>.fr   )rV   rW   r   r   r   r,   r-   rD   r   r*   r   r   r   r   r   test_map_datetimetz  s"    
r.  zvals,mapping,expabcznot NaNr(   za letter*   c                 C   s.   t | tjg }||}t|t | d S r   r	  )r}   mappingr0   r4   r8   r   r   r   test_map_missing_mixed  s    

r2  zdti,expl    ,b/ r   r   r   r      ZnperawareTFc                 C   s:   |r|  dj}n| j}t|dd }t|| d S )NUTCc                 S   s   t ddgS )Nr&   r'   r   r   r   r   r   r$     r%   zCtest_apply_series_on_date_time_index_aware_series.<locals>.<lambda>)r   r#   r   r   r,   r   )Zdtir0   r5  r#   r8   r   r   r   1test_apply_series_on_date_time_index_aware_series  s
    r7  c                  C   sD   t jddd} t| jdd }t |ttddd d S )Nr3  r4  r6  c                 S   s   dS r7   r   r   r   r   r   r$     r%   zCtest_apply_scalar_on_date_time_index_aware_series.<locals>.<lambda>r   r   )	r,   makeTimeSeriesr   r   r#   r   r-   r*   Zones)r   r8   r   r   r   1test_apply_scalar_on_date_time_index_aware_series	  s    r9  c                  C   s2   t d} | dd  }ddi}||ks.td S )NgUUUUUU?c                 S   s   t | S r   r   )valr   r   r   r$     r%   z4test_map_float_to_string_precision.<locals>.<lambda>r   z0.3333333333333333)r   r   r   r2   )r   r8   r9   r   r   r   "test_map_float_to_string_precision  s    r;  c               	   C   s   ddg} t | }t| t j}tt|| dtjt jt jg}t |}tj	t
dd t|}W 5 Q R X |t j}tt|| d S )Nz00:00:01z00:00:02zInferring timedelta64r   )rV   Zto_timedeltar   r   r,   r-   r*   r<   ZNaTr   r   )Zlist_of_valid_stringsrG   rM   Zlist_of_stringsr   r   r   r   test_apply_to_timedelta  s    

r<  z
ops, namesr   r   c                    s@   t  fddt||D }d|_t ||}t|| d S )Nc                    s   i | ]\}}|| qS r   r   .0r!   r   r   r   r   
<dictcomp>4  s      z/test_apply_listlike_reducer.<locals>.<dictcomp>r   )r   zipr!   r   r,   r-   )r   opsnamesr   r9   r8   r   r?  r   test_apply_listlike_reducer(  s    rD  rB  r   r   c                    s@   t  fdd| D } j|_t ||}t|| d S )Nc                    s   i | ]\}}|| qS r   r   r=  r?  r   r   r@  F  s      z/test_apply_dictlike_reducer.<locals>.<dictcomp>)r   r   r!   r   r,   r-   )r   rB  r   r9   r8   r   r?  r   test_apply_dictlike_reducer:  s    rE  r.   r   c              	      sR   t jdd< t fdd|D dd}||_ |}t|| W 5 Q R X d S )Nr   r   c                    s   g | ]}| qS r   r   )r>  r   r?  r   r   
<listcomp>X  s     z3test_apply_listlike_transformer.<locals>.<listcomp>r&   r   )r*   r+   r   r   r   r,   r   )r   rB  rC  r9   r8   r   r?  r   test_apply_listlike_transformerL  s
    
rG  c              	      sT   t jdd> t fdd| D } j|_ |}t|| W 5 Q R X d S )Nr   r   c                    s   i | ]\}}|| qS r   r   r=  r?  r   r   r@  j  s      z3test_apply_dictlike_transformer.<locals>.<dictcomp>)r*   r+   r   r   r!   r   r,   r-   )r   rB  r9   r8   r   r?  r   test_apply_dictlike_transformer^  s
    
rH  c                  C   s   t dtdittddd} | jdd }t dtjtjgddtjgdddggttdd	dttdddd
}t|| d S )Nr   r(   r    c                 S   s"   t t| d tt| d ddS )Nr&   yr    )r   r   r   r   r   r   r   r$   s  r%   z0test_apply_retains_column_name.<locals>.<lambda>g        r   r   rI  )r   r#   )	r   r   r   r   r   r*   r<   r,   r   )r  r8   r9   r   r   r   test_apply_retains_column_namep  s     rJ  )Vcollectionsr   r   numpyr*   r   ZpandasrV   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr,   Zpandas.tests.apply.commonr   r   r6   r:   r>   rF   r   ZparametrizerQ   rX   r]   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r#  r%  r)  r+  r,  r-  r.  rD   r<   r   r2  ZDatetimeIndexrepeatr8  r7  r9  r;  r<  r   r   arrayrD  rE  r.   r   rG  r0   rH  rJ  r   r   r   r   <module>   s   $	
*
% 

'
)!
	8
		
$ "

			
		
	