o
    h#+                     @   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,kwdsno_args_or_kwds)id   axis_from_argsaxisaxis_from_kwdsnumeric_onlyToptional_kwdsargs_and_kwdshowaggapplyc                 C   sj   t |dkr|dkr| 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applymarkerpytestmarkxfail	TypeErrorgetattrtmassert_series_equal)requestfloat_framer   argskwdsr   resultexpected r,   o/var/www/html/construction_image-detection-poc/venv/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#   )datetime_seriesr/   r*   r+   r,   r,   r-   test_with_string_args.   s   
r1   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   r4   ddofr   r   )index)r   r#   r   npcolumnsr$   r%   )r2   r   r'   r*   kwargsr+   r,   r,   r-   test_apply_np_reducer5   s   r?   )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   )rE   rF   F)check_stacklevel)ilocRuntimeWarningr$   assert_produces_warningr#   r<   assert_frame_equal)r'   r2   r   warnr*   r+   r,   r,   r-   test_apply_np_transformerC   s   
	rO   zseries, func, expected)dtype)r	   r   r   r   allT)anyFr
   )prodr   r   r4   r3   r5   r6   )
)r	      )r   r6   )r   r   rQ   rS   T)r
   r5   )rT   rU   )r   r   )r4   r   )r3   r5   za b c))r	   abc)r   c)r   r8   rQ   rV   c                 C   sz   t |trd nt}tj|dd | |}W d    n1 s w   Y  t|r5tj||dds3J d S ||ks;J d S )Nis currently using Series.*matchT)	equal_nan)	
isinstancestrFutureWarningr$   rL   r   r   r<   iscloseseriesr   r+   rN   r*   r,   r,   r-   test_agg_cython_table_seriesY   s   1rc   cumprodrC   rU   )r8   abrW   c                 C   sZ   t |trd nt}tj|dd | |}W d    n1 s w   Y  t|| d S )NrY   rZ   r]   r^   r_   r$   rL   r   r%   ra   r,   r,   r-   &test_agg_cython_table_transform_series   s
   rg   zdf, func, expectedr	   float64rR   rS   rT   g      ?g      ?g۞?g      ?c                 C   s^   t |trd nt}tj|dd | j||d}W d    n1 s"w   Y  t|| d S )Nis currently using DataFrame.*rZ   r   rf   dfr   r+   r   rN   r*   r,   r,   r-   test_agg_cython_table_frame   s
   'rm   c                 C   sp   |dv r	| d}t|trd nt}tj|dd | j||d}W d    n1 s+w   Y  t|| d S )N)r=   r   rh   ri   rZ   rj   )astyper]   r^   r_   r$   rL   r   rM   rk   r,   r,   r-   %test_agg_cython_table_transform_frame   s   
ro   c           	      C   s   |dkr|  tjjtdd |dkrdgng }t|jd }|dkr&tnd }d}t	j
||d ||j|g|R  }W d    n1 sHw   Y  |j|dg|R  }t	|| d S )	Nngroupngroup not valid for NDFramer   fillna        r   z"SeriesGroupBy.fillna is deprecatedrZ   )r   r   r    r!   
ValueErrorr<   onesshaper_   r$   rL   groupbyrH   r%   )	r&   string_seriesr2   r(   ru   rN   msgr+   r*   r,   r,   r-   $test_transform_groupby_kernel_series   s   rz   c                 C   s"  |dkr|  tjjtdd |dkrdgng }|dv r't|jd }d}n
t|jd	 }d
}tj	t
|d |j||d}W d    n1 sJw   Y  |dkrUt
nd }d}	tj	||	d |j|g|R  }
W d    n1 stw   Y  |j||g|R  }t||
 d|jvsJ |d  |d< t|jjd	ksJ |dv rt|jd }nt|jd	 }tj	t
|d |j||d}W d    n1 sw   Y  |dkrt
nd }d}	tj	||	d |j|g|R  }W d    n1 sw   Y  |j||g|R  }t|| d S )Nrp   rq   r   rr   rs   )r   r;   r   z5The 'axis' keyword in DataFrame.groupby is deprecatedr   z+DataFrame.groupby with axis=1 is deprecatedrZ   rj   z%DataFrameGroupBy.fillna is deprecatedEA)r   r   r    r!   rt   r<   ru   rv   r$   rL   r_   rw   rH   rM   r=   copyr   _mgrarrays)r&   r   r'   r2   r(   ru   ry   gbrN   op_msgr+   r*   gb2	expected2result2r,   r,   r-   #test_transform_groupby_kernel_frame  sH   r   method)r@   shift
pct_changerC   rankc                 C   s8   t dddgi}|| }t| |}t|| d S )Nr|   r5   )r   rH   operatormethodcallerr$   rM   )r   rl   r*   r+   r,   r,   r-   test_transform_method_name@  s   
r   )$	itertoolsr   r   numpyr<   r   pandas.core.dtypes.commonr   pandasr   r   pandas._testing_testingr$   pandas.tests.apply.commonr   r   r    parametrizeparamr.   r1   r?   rO   get_cython_table_paramsrh   nansplitrc   rg   boolrm   ro   rz   r   r   r,   r,   r,   r-   <module>   s   




-



#


.