U
    sVc'                     @   s  d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZ ejddd	d
ddgejdejg i ddejdgi ddejg ddiddejg ddiddejddgddiddgejdddgdd Zejddd	d
ddgdd Zejd d	d!dd"gejdddgd#d$ Zejd d%d&d'd(d)d*d+d,gejdd-dgd.d/ Zejd0eeeejd1d2dejfd
ejfd3d4d	ejfd5dejfd"ejfd!ejfg
eeejdd6d7gd8d9d:d3d;d<d=d>d?d@g
eedA dBdCdDd3d;gdEdF Zejd0eeeejd1dGeg e
g ejd1fd(eg e
g ejd1fgeeejdd6d7gdGeejdd6dHgfd(eejdd7dHgfgeedA d(edIdJdKgfgdLdM Z ejdNeee	 dedOd1fdedOd1fd
edOd1fdPee!d1fdQee!d1fd	edOd1fdRedOd1fdedOd1fd"edOd1fd!edOd1fg
ee	ejdgdd6ggdedSd7gfdedSd6gfd
edSdgfdPeddgfdQeddgfd	eddTgfdRedSd6gfdeejdUgfd"eejdVgfd!eddTgfg
dWdX Z"ejdNeee	 dGe	 fd(e	 fgee	ejdgdd6ggdGe	ejdgdd6ggfd(e	ejdgdd7ggfgdYdZ Z#ejd ed[d\ Z$ejd ed]d^ Z%ejd_d%d`dad(dbgdcdd Z&dS )e    )chainN)	is_number)	DataFrameIndexSeries)"maybe_normalize_deprecated_kernels)frame_transform_kernelsseries_transform_kernelsfuncsummeanminmaxstdz	args,kwdsZno_args_or_kwds)id   Zaxis_from_argsaxisZaxis_from_kwdsZnumeric_onlyTZoptional_kwdsZargs_and_kwdshowaggapplyc                 C   sb   t |dkr,|dkr,| jtjjtdd t|||f||}t||||}t	|| d S )Nr   r   z>agg/apply signature mismatch - agg passes 2nd argument to funcZraisesreason)
lennode
add_markerpytestmarkxfail	TypeErrorgetattrtmassert_series_equal)requestfloat_framer
   argskwdsr   resultexpected r(   ?/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/apply/test_str.pytest_apply_with_string_funcs   s    r*   argc                 C   s&   |  |}t| | }||ks"td S N)r   r   AssertionError)Zdatetime_seriesr+   r&   r'   r(   r(   r)   test_with_string_args0   s    
r.   opmedianvarc                 C   sl   t ddgddgd}t||| }| dkr4ddini }ttt| |fdd	i||jd
}t|| d S )Nr            )ab)r   r1   Zddofr   r   )index)r   r   r   npcolumnsr    r!   )r/   r   r#   r&   kwargsr'   r(   r(   r)   test_apply_np_reducer7   s     r;   absceilcosZcumsumexplogsqrtZsquare	transformc              	   C   s`   d| j d< d }|dkrt}tj|dd" t| ||}tt|| }W 5 Q R X t|| d S )Ng      )r   r   )r@   rA   F)Zcheck_stacklevel)ZilocRuntimeWarningr    Zassert_produces_warningr   r8   assert_frame_equal)r#   r/   r   warnr&   r'   r(   r(   r)   test_apply_np_transformerE   s    	
rF   zseries, func, expected)Zdtype)r   r   )allT)anyF)prodr   r2   r3   )r      )r   r3   )r   r   )rH   T)r   r2   )rI   rJ   )r   r   )r1   r   )r0   r2   za b c)r   abc)r   c)r   r5   c                 C   s8   |  |}t|r(tj||dds4tn||ks4td S )NT)Z	equal_nan)r   r   r8   iscloser-   Zseriesr
   r'   r&   r(   r(   r)   test_agg_cython_table_series[   s    1
rO   ZcumprodrJ   r5   abrK   c                 C   s   |  |}t|| d S r,   r   r    r!   rN   r(   r(   r)   &test_agg_cython_table_transform_series   s    
rR   zdf, func, expectedfloat64rG   rH   rI   g      ?g      ?g۞?g      ?c                 C   s   | j ||d}t|| d S )Nr   rQ   dfr
   r'   r   r&   r(   r(   r)   test_agg_cython_table_frame   s    'rW   c                 C   s8   |dks|dkr| d}| j||d}t|| d S )Nr9   r   rS   rT   )Zastyper   r    rD   rU   r(   r(   r)   %test_agg_cython_table_transform_frame   s    
rX   c                 C   s   |dkr | j tjjtdd t|}|dkr6dgng }t|j	d }|
|j|f| }|j|df| }t|| d S )Nngroupngroup not valid for NDFramer   fillna        r   )r   r   r   r   r   
ValueErrorr   r8   onesshapegroupbyrB   r    r!   )r"   Zstring_seriesr/   r$   r^   r'   r&   r(   r(   r)   $test_transform_groupby_kernel_series   s    ra   c           
      C   sD  t |}|dkr(| jtjjtdd |dkr6dgng }|dksJ|dkr\t|j	d }nt|j	d }|j
||d	j|f| }|j||f| }t|| d
|jkst|d  |d
< t|jjdkst|dks|dkrt|j	d }nt|j	d }|j
||d	j|f| }|j||f| }	t|	| d S )NrY   rZ   r   r[   r\   r   r7   r   rT   EA)r   r   r   r   r   r   r]   r8   r^   r_   r`   rB   r    rD   r9   r-   copyr   Z_mgrZarrays)
r"   r   r#   r/   r$   r^   r'   r&   Z	expected2Zresult2r(   r(   r)   #test_transform_groupby_kernel_frame  s*    re   methodshiftZ
pct_changeZrankc                 C   s8   t dddgi}|| }t| |}t|| d S )Nrc   r2   )r   rB   operatormethodcallerr    rD   )rf   rV   r&   r'   r(   r(   r)   test_transform_method_name*  s    
rk   )'	itertoolsr   ri   Znumpyr8   r   Zpandas.core.dtypes.commonr   Zpandasr   r   r   Zpandas._testingZ_testingr    Zpandas.core.groupby.baser   Zpandas.tests.apply.commonr   r	   r   Zparametrizeparamr*   r.   r;   rF   Zget_cython_table_paramsrS   nansplitrO   rR   boolrW   rX   ra   re   rk   r(   r(   r(   r)   <module>   s0  

 

-


 
#
 


"