o
    d%                     @   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g d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g ddd Zejdg dejdddgdd Zejdg dejdd dgd!d" Zejd#eee
ejd$d%d&ejfd'ejfd(d)d*ejfd+d,ejfd-ejfd.ejfg
ee
ejdd/d0gg d1ee
d2 g d3d4d5 Zejd#eee
ejd$d6e
g ejd$fd7e
g ejd$fgee
ejdd/d0gd6e
ejdd/d8gfd7e
ejdd0d8gfgee
d2 d7e
g d9fgd:d; Zejd<eee	 d=e
d>d$fd&e
d>d$fd'e
d>d$fd?e
ed$fd@e
ed$fd*e
d>d$fdAe
d>d$fd,e
d>d$fd-e
d>d$fd.e
d>d$fg
ee	ejdgdd/ggd=e
dBd0gfd&e
dBd/gfd'e
dBdgfd?e
ddgfd@e
ddgfd*e
ddCgfdAe
dBd/gfd,e
ejdDgfd-e
ejdEgfd.e
ddCgfg
dFdG Zejd<eee	 d6e	 fd7e	 fgee	ejdgdd/ggd6e	ejdgdd/ggfd7e	ejdgdd0ggfgdHdI Z ejdedJdK Z!ejdedLdM Z"ejdNg dOdPdQ Z#dS )R    )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   sl   t |dkr|dkr| jtjjtdd t|||g|R i |}t|||i |}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&   O/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/apply/test_str.pytest_apply_with_string_funcs   s   r(   argc                 C   s&   |  |}t| | }||ksJ d S N)r   r   )Zdatetime_seriesr)   r$   r%   r&   r&   r'   test_with_string_args.   s   
r+   op)r
   medianr   varc                 C   sl   t ddgddgd}t||| }| dv rd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   r8   )absceilcoscumsumexplogsqrtZsquare	transformc                 C   st   d| j d< d }|dv rt}tj|dd t| ||}tt|| }W d    n1 s-w   Y  t|| d S )Ng      )r   r   )r>   r?   F)Zcheck_stacklevel)ZilocRuntimeWarningr   Zassert_produces_warningr   r5   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   r   r   allT)anyFr
   )prodr   r   r.   r-   r/   r0   )
)r	      )r   r0   )r   r   rE   rG   T)r
   r/   )rH   rI   )r   r   )r.   r   )r-   r/   za b c))r	   abc)r   c)r   r2   rE   rJ   c                 C   s:   |  |}t|rtj||ddsJ d S ||ksJ d S )NT)Z	equal_nan)r   r   r5   iscloseZseriesr   r%   r$   r&   r&   r'   test_agg_cython_table_seriesY   s   
1rO   Zcumprodr<   rI   )r2   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, expectedr	   float64rF   rG   rH   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   s0   |dv r	| d}| j||d}t|| d S )N)r6   r   rS   rT   )Zastyper   r   rB   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 |dkrdgng }t|jd }|	|j
|g|R  }|j
|dg|R  }t|| d S )Nngroupngroup not valid for NDFramer   fillna        r   )r   r   r   r   r   
ValueErrorr5   onesshapegroupbyr@   r   r   )r    Zstring_seriesr,   r"   r^   r%   r$   r&   r&   r'   $test_transform_groupby_kernel_series   s   ra   c           
      C   s4  |dkr| j tjjtdd |dkrdgng }|dv r&t|jd }nt|jd }|j	||d	j
|g|R  }|j
||g|R  }t|| d
|jvsSJ |d  |d
< t|jjdkseJ |dv rrt|jd }nt|jd }|j	||d	j
|g|R  }|j
||g|R  }	t|	| d S )NrY   rZ   r   r[   r\   )r   r4   r   r   rT   EA)r   r   r   r   r   r]   r5   r^   r_   r`   r@   r   rB   r6   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)r9   shiftZ
pct_changer<   Zrankc                 C   s8   t dddgi}|| }t| |}t|| d S )Nrc   r/   )r   r@   operatormethodcallerr   rB   )rf   rV   r$   r%   r&   r&   r'   test_transform_method_name#  s   
rk   )$	itertoolsr   ri   numpyr5   r   Zpandas.core.dtypes.commonr   Zpandasr   r   Zpandas._testingZ_testingr   Zpandas.tests.apply.commonr   r   r   Zparametrizeparamr(   r+   r8   rD   Zget_cython_table_paramsrS   nansplitrO   rR   boolrW   rX   ra   re   rk   r&   r&   r&   r'   <module>   s   




-


#


