o
    i'                     @   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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d0d1gg d2eed3 g d4d5d6 Zejd$eeeejd%d7eg e
g ejd%fd8eg e
g ejd%fgeeejdd0d1gd7eejdd0d9gfd8eejdd1d9gfgeed3 d8eg d: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dAee!d%fd+ed?d%fdBe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d0ggd>edCd1gfd'edCd0gfd(edCdgfd@eddgfdAeddgfd+eddDgfdBedCd0gfd-eejdEgfd.eejdFgfd/eddDgfg
dGdH Z"ejd=eee	 d7e	 fd8e	 fgee	ejdgdd0ggd7e	ejdgdd0ggfd8e	ejdgdd1ggfgdIdJ Z#ejdedKdL Z$ejdedMdN Z%ejdOg dPdQdR Z&dS )S    )chainN)	is_number)	DataFrameIndexSeries)"maybe_normalize_deprecated_kernels)frame_transform_kernelsseries_transform_kernelsfunc)summeanminmaxstdz	args,kwdsno_args_or_kwds)id   axis_from_argsaxisaxis_from_kwdsnumeric_onlyToptional_kwds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raisesreason)
lennode
add_markerpytestmarkxfail	TypeErrorgetattrtmassert_series_equal)requestfloat_framer
   argskwdsr   resultexpected r/   V/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/apply/test_str.pytest_apply_with_string_funcs   s   r1   argc                 C   s&   |  |}t| | }||ksJ d S N)r   r&   )datetime_seriesr2   r-   r.   r/   r/   r0   test_with_string_args0   s   
r5   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   r8   ddofr   r   )index)r   r&   r   npcolumnsr'   r(   )r6   r   r*   r-   kwargsr.   r/   r/   r0   test_apply_np_reducer7   s   rC   )absceilcoscumsumexplogsqrt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   )rI   rJ   F)check_stacklevel)ilocRuntimeWarningr'   assert_produces_warningr&   r@   assert_frame_equal)r*   r6   r   warnr-   r.   r/   r/   r0   test_apply_np_transformerE   s   
	rS   zseries, func, expected)dtype)r   r   r   r   allT)anyFr   )prodr   r   r8   r7   r9   r:   )
)r      )r   r:   )r   r   rU   rW   T)r   r9   )rX   rY   )r   r   )r8   r   )r7   r9   za b c))r   abc)r   c)r   r<   rU   rZ   c                 C   s:   |  |}t|rtj||ddsJ d S ||ksJ d S )NT)	equal_nan)r   r   r@   iscloseseriesr
   r.   r-   r/   r/   r0   test_agg_cython_table_series[   s   
1ra   cumprodrG   rY   )r<   abr[   c                 C   s   |  |}t|| d S r3   r   r'   r(   r_   r/   r/   r0   &test_agg_cython_table_transform_series   s   
re   zdf, func, expectedr   float64rV   rW   rX   g      ?g      ?g۞?g      ?c                 C   s   | j ||d}t|| d S )Nr   rd   dfr
   r.   r   r-   r/   r/   r0   test_agg_cython_table_frame   s   'rj   c                 C   s8   |dks|dkr| d}| j||d}t|| d S )NrA   r   rf   rg   )astyper   r'   rQ   rh   r/   r/   r0   %test_agg_cython_table_transform_frame   s   
rl   c                 C   s   |dkr| j tjjtdd t|}|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$   
ValueErrorr   r@   onesshapegroupbyrL   r'   r(   )r)   string_seriesr6   r+   rr   r.   r-   r/   r/   r0   $test_transform_groupby_kernel_series   s   rv   c           
      C   sL  t |}|dkr| jtjjtdd |dkrdgng }|dks%|dkr.t|j	d }nt|j	d }|j
||d	j|g|R  }|j||g|R  }t|| d
|jvs[J |d  |d
< t|jjdksmJ |dksu|dkr~t|j	d }nt|j	d }|j
||d	j|g|R  }|j||g|R  }	t|	| d S )Nrm   rn   r   ro   rp   r   r?   r   rg   EA)r   r    r!   r"   r#   r$   rq   r@   rr   rs   rt   rL   r'   rQ   rA   copyr   _mgrarrays)
r)   r   r*   r6   r+   rr   r.   r-   	expected2result2r/   r/   r0   #test_transform_groupby_kernel_frame  s*   r~   method)rD   shift
pct_changerG   rankc                 C   s8   t dddgi}|| }t| |}t|| d S )Nrx   r9   )r   rL   operatormethodcallerr'   rQ   )r   ri   r-   r.   r/   r/   r0   test_transform_method_name*  s   
r   )'	itertoolsr   r   numpyr@   r"   pandas.core.dtypes.commonr   pandasr   r   r   pandas._testing_testingr'   pandas.core.groupby.baser   pandas.tests.apply.commonr   r	   r#   parametrizeparamr1   r5   rC   rS   get_cython_table_paramsrf   nansplitra   re   boolrj   rl   rv   r~   r   r/   r/   r/   r0   <module>   s   




-


#


"