o
    LDi<                  	   @   s
  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
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$d0d1 Z%d2d3 Z&d4d5 Z'd6d7 Z(d8d9 Z)d:d; Z*d<d= Z+ejd	g d>d?d@ Z,dS )A    N)WARNING_CHECK_DISABLED)	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)   u/var/www/www-root/data/www/77.83.87.30/venv/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   
r0   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#   r1   r,   r$   r(   r)   r)   r*   test_interpolate_triggers_copyA   s   r4   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    r2   r3   )r#   r1   r$   arrr)   r)   r*   -test_interpolate_inplace_no_reference_no_copyO   s   
r8   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   Tr5   r   )r   r   nanr   r   r   assert_cow_warningr   r    r"   r2   r3   )r#   r1   warn_copy_on_writer$   r%   r7   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r6   r   )r   r   r9   r   r   r   r:   r/   r    r"   r2   r3   )r#   r,   r;   r>   r$   r%   r7   r<   r)   r)   r*   "test_interp_fill_functions_inplaces   s   
"rC   c                 C   s   t dtjdgdd}|d t|d< | }d}tjt|d |j	dd}W d    n1 s2w   Y  | rHt
t|dt|dsGJ nt
t|dt|drVJ td	|jd
< | rmt
t|dt|drmJ t|| d S )Nr   cr   r   bz'DataFrame.interpolate with object dtyper   r   r   z
2021-12-31r   )r   r   r9   astypeobjectr   r   r   r   r   r    r   r	   r!   r"   )r#   r$   r%   r'   r(   r)   r)   r*   )test_interpolate_cannot_with_object_dtype   s   rI   c                 C   s   t g ddd}|d t|d< t|d}d}tjt|d |jddd	 W d    n1 s2w   Y  | rN|sP|j	d
sCJ t
|t|dsRJ d S d S d S )N)r   rF   rD   r   rE   r   r   r   r   Tr5   r   )r   rG   rH   r   r   r   r   r   r2   r3   r   r    )r#   using_infer_stringr$   arr_ar'   r)   r)   r*   %test_interpolate_object_convert_no_op   s   
rL   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   rA   rE   r   r   r   r   Tr5   r   )r   r   rH   r   r   r   r   r   r2   r3   r   r    r#   r$   rK   r'   r)   r)   r*   &test_interpolate_object_convert_copies   s   
rN   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      @rE   r   r   r   r   Tinfer)r   r6   downcastr   )r   r   r9   r   r   r   r   r   r2   r3   r    rM   r)   r)   r*   test_interpolate_downcast   s   
rR   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 rO   )r   r   r9   r   r   r   r   r   r   r2   r3   r    r"   )r#   r$   r%   rK   r<   r'   r)   r)   r*   1test_interpolate_downcast_reference_triggers_copy   s   
rS   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   rE         @rF   r   r   r   
r   r   r9   r   fillnar    r   r!   r   r"   r#   r$   r%   df2r)   r)   r*   test_fillna   s   

r[   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 )	NrT   r   rE   r         Y@rF   r   rV   rW   rY   r)   r)   r*   test_fillna_dict   s   
r]   rQ   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 )NrT   r   rE   r   rF   z.The 'downcast' keyword in fillna is deprecatedr   rU   T)r6   rQ   r   )r   r   r9   r   r   r   r   rX   r    r2   r3   )r#   rQ   r$   rK   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 )
NrT   r   rE   r   rF   rU   TrB   r   )r   r   r9   r   r   r   r:   rX   r    r2   r3   r"   )r#   r;   r$   r%   rK   r^   r<   expectedr)   r)   r*   test_fillna_inplace_reference  s$   

ra   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)valuer6   )r   r
   r   r9   r!   r   r   r:   rX   r   r    r   rf   valuesassert_series_equal)r#   r;   serser_origr<   r)   r)   r*   &test_fillna_interval_inplace_reference  s"   rm   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   r\   r   )
r   r   r9   r   rX   r    r   r!   r   rj   )r#   rk   rl   r(   r)   r)   r*   test_fillna_series_empty_arg2  s   

rn   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   TrB   r   )r   r   r9   r   rX   r    r2   r3   )r#   rk   r7   r)   r)   r*   $test_fillna_series_empty_arg_inplace@  s   ro   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      rE   rA   r   r   rF   r   rV   )r   r   r   rX   r   r    r   r2   r3   
isinstancedtypesr!   r   r   r"   )r#   any_numeric_ea_and_arrow_dtyper$   r%   rZ   r)   r)   r*   !test_fillna_ea_noop_shares_memoryJ  s"   

rt   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   rp   rE   rA   r   TrB   r   rF   pyarrowrV   )r   r   r   r   r:   rX   rq   r>   r   r   r    r   r2   r3   r!   r"   )r#   r;   rs   r$   r%   r<   r)   r)   r*   )test_fillna_inplace_ea_noop_shares_memoryf  s*   
rv   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stnd d
d |d jddd W d    d S 1 sw   Y  d S )Nr   r   rE   r   r   TrB   mode.chained_assignmentrb   inplace methodr   )r   r   r9   r   r   raises_chained_assignment_errorrX   r"   r   r   r   r   r   )r#   r$   r%   r)   r)   r*   test_fillna_chained_assignment  s:   


"rz   )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	sbt
nd dd t|d |dd W d    n1 s|w   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   rE   r   TrB   rx   r   rw   )r   r   r9   r   r   ry   r/   r"   r   r   r   r   )r#   r,   r$   r%   r)   r)   r*   #test_interpolate_chained_assignment  s<   


"r{   )-numpyr   pytestpandas.compatr   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr   pandas.tests.copy_view.utilr   markparametrizer+   r0   r9   r4   r8   r=   rC   rI   rL   rN   rR   rS   r[   r]   r_   ra   rm   rn   ro   rt   rv   rz   r{   r)   r)   r)   r*   <module>   sX    ,






