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
mZmZmZ d dlmZ ejdddgdd	 Zd
d Zdd Zdd Zdd Zejdddgdd Zdd Zdd Zejdg dejdddd iiddd giigd!d" Zejd#dd$d%gid$d%gd d&gd'gd(d) Zd*d+ Zejdd,d-gd.d/ Zejdg dejddd idd gigd0d1 Zd2d3 Z ejd4d5d6dd7d8gffd9gd:d; Z!d<d= Z"d>d? Z#ejd@e$e
d7d8gd8d7ggdAe%ggdBdC Z&ejdDee$edE' d&e%fdFe%fdGe%fdHe%fdIe%fdAe%fgdJdK Z(dLdM Z)dNdO Z*ejddPdQ dRdQ dSdQ gdTdU Z+dVdW Z,ejdXdYd%gdZfej-d d'd[fgd\d] Z.ejdd%d$gd%dYggd^d_ Z/ejdd$d%gdYd%ggd`da Z0ejdbdcdQ dddQ dedQ dfdQ gdgdh Z1dS )i    )chainN)SpecificationError)Categorical	DataFrameSeries
date_rangenotnaresult_typefoo   c                 C   sP   |}d}t jt|d |jdd d| d W d    d S 1 s!w   Y  d S )NzUinvalid value for result_type, must be one of {None, 'reduce', 'broadcast', 'expand'}matchc                 S   s   g dS )Nr          xr   r   W/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/apply/test_invalid_arg.py<lambda>%       z(test_result_type_error.<locals>.<lambda>r   axisr	   pytestraises
ValueErrorapply)r	   int_frame_const_coldfmsgr   r   r   test_result_type_error   s   "r!   c                  C   sj   t g dg dg dgg dd} d}tjt|d | dd	 d
 W d    d S 1 s.w   Y  d S )Nr   )         )      	   )ar(   c)indexz)No axis named 2 for object type DataFramer   c                 S      | S Nr   r   r   r   r   r   ,       z/test_apply_invalid_axis_value.<locals>.<lambda>r   r   r   r   r   r   r   r    r   r   r   test_apply_invalid_axis_value(   s
   ""r0   c                 C   sF   t jtdd | jdd dd W d    d S 1 sw   Y  d S )Nzna_action must be .*Got 'abc'r   c                 S   s   t t| S r,   )lenstrr   r   r   r   r   2       z1test_applymap_invalid_na_action.<locals>.<lambda>abcZ	na_action)r   r   r   Zapplymap)float_framer   r   r   test_applymap_invalid_na_action/   s   "r7   c                  C   sV   t ddgddgd} d}tjt|d |   W d    d S 1 s$w   Y  d S )Nr   r   r   ABzMust provider   )r   r   r   	TypeErroraggr/   r   r   r   test_agg_raises5   s
   
"r=   c                  C   sV   t g d} d}tjt|d | jdd dd W d    d S 1 s$w   Y  d S )Nr   z)na_action must either be 'ignore' or Noner   c                 S   r+   r,   r   r   r   r   r   r   C   r-   z8test_map_with_invalid_na_action_raises.<locals>.<lambda>____r5   r   r   r   r   map)sr    r   r   r   &test_map_with_invalid_na_action_raises>   s
   "rB   input_na_actionr>   Tc                 C   s^   t g d}d|  d}tjt|d |jddi| d W d    d S 1 s(w   Y  d S )Nr   z+na_action must either be 'ignore' or None, z was passedr   r   r   r5   r?   )rC   rA   r    r   r   r   2test_map_arg_is_dict_with_invalid_na_action_raisesF   s
   "rD   c                  C   sp   t tdtddd} t| dtdd}tjttjd |jd	d
 dd W d    d S 1 s1w   Y  d S )NZABBABCDZDCBAT)
categoriesZorderedXXZabcdefg)namer*   r   c                 S   r+   r,   r   r   r   r   r   r   S   r-   z0test_map_categorical_na_action.<locals>.<lambda>ignorer5   )	r   listr   r   r   NotImplementedErrortmEMPTY_STRING_PATTERNr@   valuesrA   r   r   r   test_map_categorical_na_actionO   s
   "rO   c                  C   sh   t ddddd} t| dd}tjttjd |jd	d
 dd W d    d S 1 s-w   Y  d S )Nz
2011-01-01z
2011-01-02H)freqz
Asia/TokyorF   )rG   r   c                 S   r+   r,   r   r   r   r   r   r   Z   r-   z/test_map_datetimetz_na_action.<locals>.<lambda>rH   r5   )	r   Ztz_localizer   r   r   rJ   rK   rL   r@   rM   r   r   r   test_map_datetimetz_na_actionV   s
   "rR   method)r   r<   	transformfuncr9   r:   sumc                 C   sT   | ddgi}d}t jt|d t||| W d    d S 1 s#w   Y  d S )Nr9   r   nested renamer is not supportedr   )r   r   r   getattr)frame_or_seriesrS   rU   objr   r   r   r   test_nested_renamer]   s
   "r[   renamerminmaxmean)r
   barc                 C   sT   t tdddd}d}tjt|d ||  W d    d S 1 s#w   Y  d S )Nr$   Zint64series)ZdtyperG   rW   r   )r   ranger   r   r   r<   )r\   rA   r    r   r   r   test_series_nested_renamerg   s
   "rc   c                  C   sp   t tjddg dtdddd} d}tjt|d | j	d	d
dgi W d    d S 1 s1w   Y  d S )N
   r   )r9   r:   Cz1/1/2000)Zperiods)columnsr*   rW   r   r
   rV   r_   )
r   nprandomrandnr   r   r   r   r9   r<   )Ztsdfr    r   r   r   test_apply_dict_deprr   s   
"rj   r<   rT   c                 C   sf   t tddd}d}tjt|d t|| ddiddid W d    d S 1 s,w   Y  d S )	Nr#   r8   rW   r   r
   r]   r`   r^   )r   rb   r   r   r   rX   )rS   r   r    r   r   r   test_dict_nested_renaming_depr}   s
   "rk   c                 C   sZ   t ddgi}td}tjt|d t|| | W d    d S 1 s&w   Y  d S )Nr9   r   zColumn(s) ['B'] do not existr   )r   reescaper   r   KeyErrorrX   )rS   rU   rZ   r   r   r   r   test_missing_column   s
   
"ro   c                  C   sX   t ddgi} d}tjt|d | tttd W d    d S 1 s%w   Y  d S )Nr(   1z#Column\(s\) \[1, 'b'\] do not existr   )r(   r   b)r   r   r   rn   rT   intr2   r/   r   r   r   'test_transform_mixed_column_name_dtypes   
   "rs   z	how, args)Z
pct_changer   	nsmallestr(   rq   )tailr   c                 C   sf   t ddgddgd}d|  d}tjt|d |j| d|d	 W d    d S 1 s,w   Y  d S )
Nr   r   r   r"   )r(   rq   z
Operation z does not support axis=1r   )r   argsr.   )howrw   r   r    r   r   r   test_apply_str_axis_1_raises   s
   "ry   c                  C   sL   d} t jt| d tdgjddd W d    d S 1 sw   Y  d S )Nz&No axis named 1 for object type Seriesr   r   rV   r   )r   r   r   r   rT   )r    r   r   r   test_transform_axis_1_raises   s   "r{   c               	   C   s   t g dg dg dtjdtjdtjdd} tj| jd< dd }d	d
 }d}tjt|d | j	|dd W d    d S 1 sGw   Y  d S )N)r
   r
   r
   r
   r`   r`   r`   r`   r
   r
   r
   )oner|   r|   twor|   r|   r|   r}   r}   r}   r|   )dullr~   shinyr~   r~   r   r   r~   r   r   r      )r9   r:   re   DEF)r"   re   c                 S   s&   | d  dr| d dkrd| d< | S Nre   Zshinr9   r
   r%   r   )
startswithrowr   r   r   rT      s   z.test_apply_modify_traceback.<locals>.transformc                 S   s2   t | d r| d dr| d dkrd| d< | S r   )r   r   r   r   r   r   
transform2   s   &z/test_apply_modify_traceback.<locals>.transform2z,'float' object has no attribute 'startswith'r   r   rz   )
r   rg   rh   ri   nanlocr   r   AttributeErrorr   )datarT   r   r    r   r   r   test_apply_modify_traceback   s    


/"r   zdf, func, expectedZcumprodc                 C   sF   d}t j||d | j||d W d    d S 1 sw   Y  d S )Nz0can't multiply sequence by non-int of type 'str'r   rz   r   r   r<   )r   rU   expectedr   r    r   r   r   "test_agg_cython_table_raises_frame   s   "r   zseries, func, expectedza b cprodZstdvarZmedianc                 C   sB   d}t j||d | | W d    d S 1 sw   Y  d S )Nz?[Cc]ould not convert|can't multiply sequence by non-int of typer   r   )ra   rU   r   r    r   r   r   #test_agg_cython_table_raises_series   s   "r   c                  C   s^   t dd gi} td}tjt|d | ddd i W d    d S 1 s(w   Y  d S )Nr(   zint() argument must be a stringr   c                 S      t | jd S Nr   rr   Zilocr   r   r   r   r         z'test_agg_none_to_type.<locals>.<lambda>)r   rl   rm   r   r   r;   r<   r/   r   r   r   test_agg_none_to_type  s
   
"r   c                  C   sX   t dd gi} d}tjt|d | ddd i W d    d S 1 s%w   Y  d S )Nr(   zargument must be ar   c                 S   r   r   r   r   r   r   r   r     r   z-test_transform_none_to_type.<locals>.<lambda>)r   r   r   r;   rT   r/   r   r   r   test_transform_none_to_type  rt   r   c                 C   s   t ddgddS )Nr   r   )rg   arrayZreshaper   r   r   r   r   $  s    r   c                 C   s   ddgS Nr   r   r   r   r   r   r   r   %  r   c                 C   s   t ddgS r   )r   r   r   r   r   r   &  r3   c                 C   sL   | }d}t jt|d |j|ddd W d    d S 1 sw   Y  d S )Nz2too many dims to broadcast|cannot broadcast resultr   r   	broadcastr   r   )r   rU   r   r    r   r   r   test_apply_broadcast_error!  s
   	"r   c              	   C   s   d}t jt|d0 tjdd |jddg| d W d    n1 s$w   Y  W d    d S W d    d S 1 s<w   Y  d S )Nz3cannot combine transform and aggregation operationsr   rH   allr^   sqrtrz   r   r   r   rg   Zerrstater<   )r   r6   r    r   r   r   test_transform_and_agg_err_agg2  s   "r   z	func, msgr   z(cannot combine transform and aggregationz2cannot perform both aggregation and transformationc              	   C   sz   t jt|d, tjdd | | W d    n1 sw   Y  W d    d S W d    d S 1 s6w   Y  d S )Nr   rH   r   r   )string_seriesrU   r    r   r   r   !test_transform_and_agg_err_series:  s   "r   c                 C   sF   d}t jt|d |j|| d W d    d S 1 sw   Y  d S )NFunction did not transformr   rz   )r   r   r   rT   )r   r6   rU   r    r   r   r   test_transform_wont_agg_frameK  s   "r   c              	   C   s   d}|d dkr
t nd }d}tjt|d. tj||dd | | W d    n1 s.w   Y  W d    d S W d    d S 1 sFw   Y  d S )Nr   r   r   z!invalid value encountered in sqrtr   F)r   Zcheck_stacklevel)RuntimeWarningr   r   r   rK   Zassert_produces_warningrT   )r   rU   r    warnZwarn_msgr   r   r   test_transform_wont_agg_seriesT  s   "r   
op_wrapperc                 C   r+   r,   r   r   r   r   r   r   b  r-   c                 C   s   | gS r,   r   r   r   r   r   r   b  s    c                 C   s   d| iS Nr9   r   r   r   r   r   r   b  r   c                 C   s
   d| giS r   r   r   r   r   r   r   b  s   
 c                 C   sf   || }t dg di}t||}d}tjt|d || W d    d S 1 s,w   Y  d S )Nr9   r   r   r   )r   rK   get_objr   r   r   rT   )Zall_reductionsrY   r   oprZ   r    r   r   r   test_transform_reducer_raisesa  s   "r   )2	itertoolsr   rl   numpyrg   r   Zpandas.errorsr   Zpandasr   r   r   r   r   Zpandas._testingZ_testingrK   markZparametrizer!   r0   r7   r=   rB   rD   rO   rR   r[   rc   rj   rk   ro   rs   ry   r{   r   Zget_cython_table_paramsr;   r   splitr   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   
	
"

	
A



	





