o
    ŀg;                  	   @   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)pad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.w   Y  | rDtt|dt|dsCJ ntt|dt|drRJ d|j	d	< | rgtt|dt|drgJ 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(   ]/var/www/html/myenv/lib/python3.10/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|| }| r#tt|dt|ds"J ntt|dt|dr1J d|jd< | rFtt|dt|drFJ 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   sP   t d|i}t|| }tt|dt|drJ | r$|jds&J d S d S )Nr   r   )r   r.   r   r   r   _mgr_has_no_reference)r"   r0   r+   r#   r'   r(   r(   r)   test_interpolate_triggers_copy?   s   r3   c                 C   sV   t d|i}t|d}|jddd t|t|dsJ | r'|jds)J d S d S )Nr   r   Tr   inplacer   )r   r   r   r   r   r1   r2   )r"   r0   r#   arrr(   r(   r)   -test_interpolate_inplace_no_reference_no_copyM   s   
r7   c                 C   s   t ddtjdgi}| }t|d}|d d  }t| |jddd W d    n1 s0w   Y  | rZt|t|drBJ t	|| |j
dsPJ |j
dsXJ d S t|t|dseJ d S )Nr   r   r   r   Tr4   r   )r   r   nanr   r   r   assert_cow_warningr   r   r!   r1   r2   )r"   r0   warn_copy_on_writer#   r$   r6   viewr(   r(   r)   "test_interpolate_inplace_with_refs[   s   
r<   dtypefloat64Float64c                 C   s   t ddtjdgi|d}| }t|d}|d d  }t|o"|dk t||dd W d    n1 s7w   Y  | rat|t|drIJ t	|| |j
dsWJ |j
ds_J d S t|t|d|dku spJ d S )	Nr   r   r   r=   r>   Tr5   r   )r   r   r8   r   r   r   r9   r.   r   r!   r1   r2   )r"   r+   r:   r=   r#   r$   r6   r;   r(   r(   r)   "test_interp_fill_functions_inplaceq   s   
"rB   c                 C   s   t dtjdgdd}| }d}tjt|d |jdd}W d    n1 s)w   Y  | r?tt	|dt	|ds>J ntt	|dt	|drMJ t
d	|jd
< | rdtt	|dt	|drdJ t|| d S )Nr   cr   r   bz'DataFrame.interpolate with object dtyper   r   r   z
2021-12-31r   )r   r   r8   r   r   r   r   r   r   r   r   r    r!   )r"   r#   r$   r&   r'   r(   r(   r)   $test_interpolate_cleaned_fill_method   s   rF   c                 C   s   t g ddd}t|d}d}tjt|d |jddd	 W d    n1 s)w   Y  | rC|jd
s8J t	|t|dsEJ d S d S )N)r   rE   rC   r   rD   r   r   r   r   Tr4   r   )
r   r   r   r   r   r   r1   r2   r   r   r"   r#   arr_ar&   r(   r(   r)   %test_interpolate_object_convert_no_op   s   
rI   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 s-w   Y  | rG|j	ds<J t
|t|drIJ d S d S )Nr   r   r@   rD   r   r   r   r   Tr4   r   )r   r   objectr   r   r   r   r   r1   r2   r   r   rG   r(   r(   r)   &test_interpolate_object_convert_copies   s   
rK   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 s,w   Y  | r;|j	ds;J t
|t|dsFJ d S Nr   g      @rD   r   r   r   r   Tinfer)r   r5   downcastr   )r   r   r8   r   r   r   r   r   r1   r2   r   rG   r(   r(   r)   test_interpolate_downcast   s   
rO   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 s6w   Y  | rX|j	
dsEJ t|t|drPJ t|| d S t|| d S rL   )r   r   r8   r   r   r   r   r   r   r1   r2   r   r!   )r"   r#   r$   rH   r;   r&   r(   r(   r)   1test_interpolate_downcast_reference_triggers_copy   s   
rP   c                 C   s~   t dtjgdd}| }|d}| r$tt|dt|ds#J ntt|dt|dr2J d|jd< t	|| d S )N      ?r   rD         @rE   r   r   r   
r   r   r8   r   fillnar   r   r    r   r!   r"   r#   r$   df2r(   r(   r)   test_fillna   s   

rX   c                 C   s   t dtjgdd}| }|ddi}| r4tt|dt|ds%J tt|dt|dr3J ntt|dt|drBJ d|jd< t	|| d S )	NrQ   r   rD   r         Y@rE   r   rS   rT   rV   r(   r(   r)   test_fillna_dict   s   
rZ   rN   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 s0w   Y  tt|d|s@J tt|d|sKJ | r]|j	
dsUJ |j	
ds_J d S d S )NrQ   r   rD   r   rE   z.The 'downcast' keyword in fillna is deprecatedr   rR   T)r5   rN   r   )r   r   r8   r   r   r   r   rU   r   r1   r2   )r"   rN   r#   rH   arr_br&   r(   r(   r)   test_fillna_inplace   s   

r\   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 s5w   Y  | ritt|d|rGJ tt|d|sRJ |j	
d	sZJ |j	
d	sbJ t|| ntt|d|stJ tt|d|sJ t ddgdd}t|| d S )
NrQ   r   rD   r   rE   rR   TrA   r   )r   r   r8   r   r   r   r9   rU   r   r1   r2   r!   )r"   r:   r#   r$   rH   r[   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 s6w   Y  | rWt
t|djjt|djjrOJ t|| d S t
t|djjt|djjsiJ d S )Nr      )startendr   zinterval[float64, right])namer=   r   )leftrightT)valuer5   )r   r	   r   r8   r    r   r   r9   rU   r   r   r   rc   valuesassert_series_equal)r"   r:   serser_origr;   r(   r(   r)   &test_fillna_interval_inplace_reference  s"   rj   c                 C   sr   t dtjdg}| }|i }| r tt|t|sJ ntt|t|r,J d|jd< t	|| d S )Nr   r   rY   r   )
r   r   r8   r   rU   r   r   r    r   rg   )r"   rh   ri   r'   r(   r(   r)   test_fillna_series_empty_arg/  s   

rk   c                 C   sV   t dtjdg}t|}|ji dd tt||sJ | r'|jds)J d S d S )Nr   r   TrA   r   )r   r   r8   r   rU   r   r1   r2   )r"   rh   r6   r(   r(   r)   $test_fillna_series_empty_arg_inplace=  s   rl   c                 C   s*  t dtdgdd|d}| }|d}tt|dt|dr#J | r<tt|dt|ds3J |jdr;J n&t	|j
jd trTtt|dt|dsSJ ntt|dt|drbJ t|| d|jd	< | rtt|dt|dr}J |jdsJ |jdsJ t|| d S )
Nr      rD   r@   r   r   rE   r   rS   )r   r   r   rU   r   r   r   r1   r2   
isinstancedtypesr    r   r   r!   )r"   any_numeric_ea_and_arrow_dtyper#   r$   rW   r(   r(   r)   !test_fillna_ea_noop_shares_memoryG  s"   

rq   c                 C   sb  t dtdgdd|d}| }|d d  }t| |jddd W d    n1 s-w   Y  t|d jts<| rKt	
t|dt|drJJ nt	
t|dt|dsYJ t	
t|d	t|d	sgJ | ry|jdrqJ |jdryJ t|od
|v d|jd< W d    n1 sw   Y  t|d jts| rt|| d S t|| d S )Nr   rm   rD   r@   r   TrA   r   rE   pyarrowrS   )r   r   r   r   r9   rU   rn   r=   r   r   r   r   r1   r2   r    r!   )r"   r:   rp   r#   r$   r;   r(   r(   r)   )test_fillna_inplace_ea_noop_shares_memoryc  s*   
rs   c              	   C   s  t dtjdgdd}| }| rZt  |d jddd W d    n1 s)w   Y  t|| t  |dg jddd W d    n1 sMw   Y  t|| d S td ' t	dd  |dg jddd W d    n1 szw   Y  W d    n1 sw   Y  td ) t	dd  ||j
d	k jddd W d    n1 sw   Y  W d    n1 sw   Y  tjtd
d |d jddd W d    d S 1 sw   Y  d S )Nr   r   rD   r   r   TrA   mode.chained_assignmentr_   inplace methodr   )r   r   r8   r   r   raises_chained_assignment_errorrU   r!   r   r
   r   r   )r"   r#   r$   r(   r(   r)   test_fillna_chained_assignment  s4   

"rw   )r   r,   r-   c              	   C   s  t dtjdgdd}| }| r\t  t|d |dd W d    n1 s*w   Y  t|| t  t|dg |dd W d    n1 sOw   Y  t|| d S tjt	dd t|d |dd W d    n1 sxw   Y  td ( t
d	d  t|dg |dd W d    n1 sw   Y  W d    n1 sw   Y  td 4 t
d	d  t||d dk |dd W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )
Nr   r   rD   r   TrA   ru   r   rt   )r   r   r8   r   r   rv   r.   r!   r   r   r
   )r"   r+   r#   r$   r(   r(   r)   #test_interpolate_chained_assignment  s6   

"rx   )+numpyr   pytestpandasr   r   r   r   r   r   r   r	   r
   pandas._testing_testingr   pandas.tests.copy_view.utilr   markparametrizer*   r/   r8   r3   r7   r<   rB   rF   rI   rK   rO   rP   rX   rZ   r\   r^   rj   rk   rl   rq   rs   rw   rx   r(   r(   r(   r)   <module>   sV    ,






