a
    Pf;                  	   @   s  d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ ejdg ddd Zejdd	d
gdd Zejdd	d
gejddejdge
dee
dggdd Zejddejdge
dee
dggdd Zejddejdge
dee
dggdd Zejdd	d
gejdddgdd Zdd Zdd  Z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/d0 Z#d1d2 Z$d3d4 Z%d5d6 Z&d7d8 Z'd9d: Z(d;d< Z)ejdg d=d>d? Z*dS )@    N)	NA
ArrowDtype	DataFrameIntervalNaTSeries	Timestampinterval_rangeoption_context)	get_arraymethod)padZnearestlinearc                 C   s   t dddgi}| }d }|dkr(t}d}tj||d |j|d}W d    n1 s\0    Y  | rtt|dt|dsJ ntt|dt|drJ d|j	d	< | rtt|dt|drJ t
|| d S )
Na      r   3DataFrame.interpolate with method=pad is deprecatedmatchr   d   r   r   )r   copyFutureWarningtmassert_produces_warninginterpolatenpshares_memoryr   ilocassert_frame_equal)using_copy_on_writer   dfdf_origwarnmsgresult r'   b/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/copy_view/test_interp_fillna.pytest_interpolate_no_op   s    *
r)   funcffillbfillc                 C   s   t dddgi}| }t|| }| rFtt|dt|dsbJ ntt|dt|drbJ d|jd< | rtt|dt|drJ t|| d S )Nr   r   r   r   r   )	r   r   getattrr   r   r   r   r   r    )r!   r*   r"   r#   r&   r'   r'   r(   test_interp_fill_functions+   s    
r.   valsr   r   z
2019-12-31z
2020-12-31c                 C   sL   t d|i}t|| }tt|dt|dr4J | rH|jdsHJ d S )Nr   r   )r   r-   r   r   r   _mgr_has_no_reference)r!   r/   r*   r"   r&   r'   r'   r(   test_interpolate_triggers_copy?   s
    r2   c                 C   sR   t d|i}t|d}|jddd t|t|ds:J | rN|jdsNJ d S )Nr   r   Tr   inplacer   )r   r   r   r   r   r0   r1   )r!   r/   r"   arrr'   r'   r(   -test_interpolate_inplace_no_reference_no_copyM   s    
r6   c                 C   s   t ddtjdgi}| }t|d}|d d  }t| |jddd W d    n1 s`0    Y  | rt|t|drJ t	|| |j
dsJ |j
dsJ nt|t|dsJ d S )Nr   r   r   r   Tr3   r   )r   r   nanr   r   r   assert_cow_warningr   r   r    r0   r1   )r!   r/   warn_copy_on_writer"   r#   r5   viewr'   r'   r(   "test_interpolate_inplace_with_refs[   s    
,r;   dtypefloat64ZFloat64c                 C   s   t ddtjdgi|d}| }t|d}|d d  }t|oD|dk  t||dd W d    n1 sn0    Y  | rt|t|drJ t	|| |j
dsJ |j
dsJ nt|t|d|dku sJ d S )	Nr   r   r   r<   r=   Tr4   r   )r   r   r7   r   r   r   r8   r-   r   r    r0   r1   )r!   r*   r9   r<   r"   r#   r5   r:   r'   r'   r(   "test_interp_fill_functions_inplaceq   s    
.r@   c                 C   s   t dtjdgdd}| }d}tjt|d |jdd}W d    n1 sR0    Y  | r~tt	|dt	|dsJ ntt	|dt	|drJ t
d	|jd
< | rtt	|dt	|drJ t|| d S )Nr   cr   r   bz'DataFrame.interpolate with object dtyper   r   r   z
2021-12-31r   )r   r   r7   r   r   r   r   r   r   r   r   r   r    )r!   r"   r#   r%   r&   r'   r'   r(   $test_interpolate_cleaned_fill_method   s    *rD   c                 C   s   t g ddd}t|d}d}tjt|d |jddd	 W d    n1 sR0    Y  | r|jd
spJ t	|t|dsJ d S )N)r   rC   rA   r   rB   r   r   r   r   Tr3   r   )
r   r   r   r   r   r   r0   r1   r   r   r!   r"   arr_ar%   r'   r'   r(   %test_interpolate_object_convert_no_op   s    
,rG   c                 C   s   t tddgtddd}t|d}d}tjt|d |jdd	d
 W d    n1 sZ0    Y  | r|j	dsxJ t
|t|drJ d S )Nr   r   r>   rB   r   r   r   r   Tr3   r   )r   r   objectr   r   r   r   r   r0   r1   r   r   rE   r'   r'   r(   &test_interpolate_object_convert_copies   s    
,rI   c                 C   s   t dtjdgdd}t|d}d}tjt|d  |jddd	d
 W d    n1 sX0    Y  | rv|j	dsvJ t
|t|dsJ d S Nr   g      @rB   r   r   r   r   TZinfer)r   r4   downcastr   )r   r   r7   r   r   r   r   r   r0   r1   r   rE   r'   r'   r(   test_interpolate_downcast   s    
.rL   c                 C   s   t dtjdgdd}| }t|d}|d d  }d}tjt|d  |jddd	d
 W d    n1 sl0    Y  | r|j	
dsJ t|t|drJ t|| nt|| d S rJ   )r   r   r7   r   r   r   r   r   r   r0   r1   r   r    )r!   r"   r#   rF   r:   r%   r'   r'   r(   1test_interpolate_downcast_reference_triggers_copy   s    
.rM   c                 C   s~   t dtjgdd}| }|d}| rHtt|dt|dsdJ ntt|dt|drdJ d|jd< t	|| d S )N      ?r   rB         @rC   r   r   r   
r   r   r7   r   fillnar   r   r   r   r    r!   r"   r#   df2r'   r'   r(   test_fillna   s    

rU   c                 C   s   t dtjgdd}| }|ddi}| rhtt|dt|dsJJ tt|dt|drJ ntt|dt|drJ d|jd< t	|| d S )	NrN   r   rB   r         Y@rC   r   rP   rQ   rS   r'   r'   r(   test_fillna_dict   s    
rW   rK   Fc                 C   s   t dtjgdd}t|d}t|d}d}tjt|d  |jdd	|d
 W d    n1 s`0    Y  tt|d|sJ tt|d|sJ | r|j	
dsJ |j	
dsJ d S )NrN   r   rB   r   rC   z.The 'downcast' keyword in fillna is deprecatedr   rO   T)r4   rK   r   )r   r   r7   r   r   r   r   rR   r   r0   r1   )r!   rK   r"   rF   arr_br%   r'   r'   r(   test_fillna_inplace   s    

.rY   c                 C   s   t dtjgdd}| }t|d}t|d}|d d  }t| |jddd W d    n1 sj0    Y  | rtt|d|rJ tt|d|sJ |j	
d	sJ |j	
d	sJ t|| n,tt|d|sJ tt|d|sJ t ddgdd}t|| d S )
NrN   r   rB   r   rC   rO   Tr?   r   )r   r   r7   r   r   r   r8   rR   r   r0   r1   r    )r!   r9   r"   r#   rF   rX   r:   expectedr'   r'   r(   test_fillna_inplace_reference  s"    

,r[   c                 C   s   t tdddddd}tj|jd< | }|d d  }t|& |jt	dddd	d
 W d    n1 sl0    Y  | rt
t|djjt|djjrJ t|| n$t
t|djjt|djjsJ d S )Nr      )startendr   zinterval[float64, right])namer<   r   )leftrightT)valuer4   )r   r	   r   r7   r   r   r   r8   rR   r   r   r   r`   valuesassert_series_equal)r!   r9   serser_origr:   r'   r'   r(   &test_fillna_interval_inplace_reference  s     4rg   c                 C   sr   t dtjdg}| }|i }| r@tt|t|sXJ ntt|t|rXJ d|jd< t	|| d S )Nr   r   rV   r   )
r   r   r7   r   rR   r   r   r   r   rd   )r!   re   rf   r&   r'   r'   r(   test_fillna_series_empty_arg/  s    

rh   c                 C   sR   t dtjdg}t|}|ji dd tt||s:J | rN|jdsNJ d S )Nr   r   Tr?   r   )r   r   r7   r   rR   r   r0   r1   )r!   re   r5   r'   r'   r(   $test_fillna_series_empty_arg_inplace=  s    ri   c                 C   s0  t dtdgdd|d}| }|d}tt|dt|drFJ | rxtt|dt|dsfJ |jdrJ nLt	|j
jd trtt|dt|dsJ ntt|dt|drJ t|| d|jd	< | r tt|dt|drJ |jdsJ |jds J t|| d S )
Nr      rB   r>   r   r   rC   r   rP   )r   r   r   rR   r   r   r   r0   r1   
isinstanceZdtypesr   r   r   r    )r!   any_numeric_ea_and_arrow_dtyper"   r#   rT   r'   r'   r(   !test_fillna_ea_noop_shares_memoryG  s"    

rm   c                 C   sh  t dtdgdd|d}| }|d d  }t| |jddd W d    n1 sZ0    Y  t|d jtsx| rt	
t|dt|drJ nt	
t|dt|dsJ t	
t|d	t|d	sJ | r|jdrJ |jdrJ t|od
|v d|jd< W d    n1 s(0    Y  t|d jtsJ| rXt|| nt|| d S )Nr   rj   rB   r>   r   Tr?   r   rC   ZpyarrowrP   )r   r   r   r   r8   rR   rk   r<   r   r   r   r   r0   r1   r   r    )r!   r9   rl   r"   r#   r:   r'   r'   r(   )test_fillna_inplace_ea_noop_shares_memoryc  s&    ,*rn   c              	   C   s  t dtjdgdd}| }| rt " |d jddd W d    n1 sR0    Y  t|| t $ |dg jddd W d    n1 s0    Y  t|| ntd N t	dd $ |dg jddd W d    n1 s0    Y  W d    n1 s0    Y  td T t	dd ( ||j
d	k jddd W d    n1 sd0    Y  W d    n1 s0    Y  tjtd
d" |d jddd W d    n1 s0    Y  d S )Nr   r   rB   r   r   Tr?   mode.chained_assignmentr\   inplace methodr   )r   r   r7   r   r   raises_chained_assignment_errorrR   r    r   r
   r   r   )r!   r"   r#   r'   r'   r(   test_fillna_chained_assignment  s"    
0
2RXrr   )r   r+   r,   c              	   C   s  t dtjdgdd}| }| rt $ t|d |dd W d    n1 sT0    Y  t|| t & t|dg |dd W d    n1 s0    Y  t|| n$tjt	dd$ t|d |dd W d    n1 s0    Y  td R t
d	d & t|dg |dd W d    n1 s>0    Y  W d    n1 s^0    Y  td X t
d	d , t||d dk |dd W d    n1 s0    Y  W d    n1 s0    Y  d S )
Nr   r   rB   r   Tr?   rp   r   ro   )r   r   r7   r   r   rq   r-   r    r   r   r
   )r!   r*   r"   r#   r'   r'   r(   #test_interpolate_chained_assignment  s"    
2
42Vrs   )+numpyr   ZpytestZpandasr   r   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr   Zpandas.tests.copy_view.utilr   markZparametrizer)   r.   r7   r2   r6   r;   r@   rD   rG   rI   rL   rM   rU   rW   rY   r[   rg   rh   ri   rm   rn   rr   rs   r'   r'   r'   r(   <module>   sT   ,






