U
    *ifs&                     @   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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
g ejd0fd'eg 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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'   N/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/apply/test_str.pytest_apply_with_string_funcs   s    r)   c                 C   s0   dD ]&}|  |}t| | }||kstqd S )N)r   r   r   r   r   )r   r   AssertionError)Zdatetime_seriesargr%   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   r/   Zddofr   r   )index)r   r   r   npcolumnsr   r    )r"   r-   r   r%   kwargsr&   r'   r'   r(   test_apply_np_reducer8   s     r9   absceilcosZcumsumexplogsqrtZsquare	transformc              	   C   s\   d| j d< d }|dkrt}t|" t| ||}tt|| }W 5 Q R X t|| d S )Ng      )r   r   )r>   r?   )ZilocRuntimeWarningr   Zassert_produces_warningr   r6   assert_frame_equal)r"   r-   r   warnr%   r&   r'   r'   r(   test_apply_np_transformerF   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_seriesZ   s    1
rM   ZcumprodrH   r3   abrI   c                 C   s   |  |}t|| d S )N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   s8   |dks|dkr| d}| j||d}t|| d S )Nr7   r   rQ   rR   )Zastyper   r   rB   rS   r'   r'   r(   %test_agg_cython_table_transform_frame   s    
rV   c                 C   sb   t |}|dkrdgng }t| jd }| |j|f| }| j|df| }t|| d S )Nfillna        r   )r   r6   onesshapegroupbyr@   r   r    )Zstring_seriesr-   r#   rY   r&   r%   r'   r'   r(   $test_transform_groupby_kernel_series   s    r\   c                 C   sP  t |}|r2|dkr2| dkr2|jtjjdd |dkr@dgng }| dksT| dkrft|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rt|jd }nt|jd	 }|j	|| d
j
|f| }	|j
|| f| }
t|
|	 d S )N
pct_change)r   r7   z1shift axis=1 not yet implemented for ArrayManager)r   rW   rX   r   r5   r   rR   EA)r   r   r   r   r   r   r6   rY   rZ   r[   r@   r   rB   r7   r*   copyr   Z_mgrZarrays)r   r"   r-   Zusing_array_managerr!   r#   rY   r&   r%   Z	expected2Zresult2r'   r'   r(   #test_transform_groupby_kernel_frame  s.    ra   methodshiftr]   Zrankc                 C   s8   t dddgi}|| }t| |}t|| d S )Nr_   r0   )r   r@   operatormethodcallerr   rB   )rb   rT   r%   r&   r'   r'   r(   test_transform_method_name(  s    
rg   )'	itertoolsr   re   numpyr6   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,   r9   rD   Zget_cython_table_paramsrQ   nansplitrM   rP   boolrU   rV   r\   ra   rg   r'   r'   r'   r(   <module>   s.  
 

-


 
#
 


%