U
    >vf%                     @   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
 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d/eee
ejd0d1d
ejfd	ejfd2d3dejfd4dejfd!ejfd ejfg
ee
ejdd5d6gd7d8d9d2d:d;d<d=d>d?g
ee
d@ dAdBdCd2d:gdDdE Zejd/eee
ejd0dFe
g ejd0fd'e
g ejd0fgee
ejdd5d6gdFe
ejdd5dGgfd'e
ejdd6dGgfgee
d@ d'e
dHdIdJgfgdKdL ZejdMeee	 de
dNd0fd
e
dNd0fd	e
dNd0fdOe
ed0fdPe
ed0fde
dNd0fdQe
dNd0fde
dNd0fd!e
dNd0fd e
dNd0fg
ee	ejdgdd5ggde
dRd6gfd
e
dRd5gfd	e
dRdgfdOe
ddgfdPe
ddgfde
ddSgfdQe
dRd5gfde
ejdTgfd!e
ejdUgfd e
ddSgfg
dVdW ZejdMeee	 dFe	 fd'e	 fgee	ejdgdd5ggdFe	ejdgdd5ggfd'e	ejdgdd6ggfgdXdY Z ejdedZd[ Z!ejded\d] Z"ejd^d$d_d`d'dagdbdc Z#dS )d    )chainN)	is_number)	DataFrameSeries)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-vdrwu74i/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_args.   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   r/   Zddofr   r   )index)r   r   r   npcolumnsr   r   )r-   r   r!   r$   kwargsr%   r&   r&   r'   test_apply_np_reducer5   s     r9   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>   r?   F)Zcheck_stacklevel)ZilocRuntimeWarningr   Zassert_produces_warningr   r6   assert_frame_equal)r!   r-   r   warnr$   r%   r&   r&   r'   test_apply_np_transformerC   s    	
rD   zseries, func, expected)Zdtype)r	   r   )allT)anyF)prodr   r0   r1   )r	      )r   r1   )r   r   )rF   T)r
   r0   )rG   rH   )r   r   )r/   r   )r.   r0   za b c)r	   abc)r   c)r   r3   c                 C   s8   |  |}t|r(tj||dds4tn||ks4td S )NT)Z	equal_nan)r   r   r6   iscloser+   Zseriesr   r%   r$   r&   r&   r'   test_agg_cython_table_seriesY   s    1
rM   ZcumprodrH   r3   abrI   c                 C   s   |  |}t|| d S r*   r   r   r   rL   r&   r&   r'   &test_agg_cython_table_transform_series   s    
rP   zdf, func, expectedfloat64rE   rF   rG   g      ?g      ?g۞?g      ?c                 C   s   | j ||d}t|| d S )Nr   rO   dfr   r%   r   r$   r&   r&   r'   test_agg_cython_table_frame   s    'rU   c                 C   s0   |dkr| d}| j||d}t|| d S )N)r7   r   rQ   rR   )Zastyper   r   rB   rS   r&   r&   r'   %test_agg_cython_table_transform_frame   s    
rV   c                 C   sz   |dkr | j tjjtdd |dkr.d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   
ValueErrorr6   onesshapegroupbyr@   r   r   )r    Zstring_seriesr-   r"   r\   r%   r$   r&   r&   r'   $test_transform_groupby_kernel_series   s    r_   c           
      C   s,  |dkr | j tjjtdd |dkr.dgng }|dkrLt|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rt|jd }nt|jd }|j	||d	j
|f| }|j
||f| }	t|	| d S )NrW   rX   r   rY   rZ   )r   r5   r   r   rR   EA)r   r   r   r   r   r[   r6   r\   r]   r^   r@   r   rB   r7   r+   copyr   Z_mgrZarrays)
r    r   r!   r-   r"   r\   r%   r$   Z	expected2Zresult2r&   r&   r'   #test_transform_groupby_kernel_frame  s(    rc   methodshiftZ
pct_changeZrankc                 C   s8   t dddgi}|| }t| |}t|| d S )Nra   r0   )r   r@   operatormethodcallerr   rB   )rd   rT   r$   r%   r&   r&   r'   test_transform_method_name#  s    
ri   )$	itertoolsr   rg   Znumpyr6   r   Zpandas.core.dtypes.commonr   Zpandasr   r   Zpandas._testingZ_testingr   Zpandas.tests.apply.commonr   r   r   Zparametrizeparamr(   r,   r9   rD   Zget_cython_table_paramsrQ   nansplitrM   rP   boolrU   rV   r_   rc   ri   r&   r&   r&   r'   <module>   s.  

 

-


 
#
 


