U
    NZfl(                  	   @   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
 d dlmZ d dlmZ ejddddg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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,d- Z d.d/ Z!d0d1 Z"d2d3 Z#d4d5 Z$d6d7 Z%dS )8    N)NA	DataFrameIntervalNaTSeries	Timestampinterval_range)	get_arraymethodpadZnearestlinearc                 C   s   t dddgi}| }|j|d}| rFtt|dt|dsbtntt|dt|drbtd|jd< | rtt|dt|drtt	|| d S )Na      r
   d   r   r   )
r   copyinterpolatenpshares_memoryr	   AssertionErroriloctmassert_frame_equal)using_copy_on_writer
   dfdf_origresult r   M/tmp/pip-unpacked-wheel-nbcvw55c/pandas/tests/copy_view/test_interp_fillna.pytest_interpolate_no_op   s    
r!   funcZffillZbfillc                 C   s   t dddgi}| }t|| }| rFtt|dt|dsbtntt|dt|drbtd|jd< | rtt|dt|drtt	|| d S )Nr   r   r   r   r   )
r   r   getattrr   r   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r4t| rH|jdsHtd S )Nr   r   )r   r#   r   r   r	   r   _mgr_has_no_reference)r   r%   r"   r   r   r   r   r    test_interpolate_triggers_copy8   s
    r(   c                 C   sR   t d|i}t|d}|jddd t|t|ds:t| rN|jdsNtd S )Nr   r   Tr
   inplacer   )r   r	   r   r   r   r   r&   r'   )r   r%   r   arrr   r   r    -test_interpolate_inplace_no_reference_no_copyF   s    
r,   c                 C   s   t ddtjdgi}| }t|d}|d d  }|jddd | rt|t|drZtt	|| |j
dsvt|j
dstnt|t|dstd S )Nr   r   r   r   Tr)   r   )r   r   nanr   r	   r   r   r   r   r   r&   r'   )r   r%   r   r   r+   viewr   r   r    "test_interpolate_inplace_with_refsT   s    
r/   c                 C   s   t dtjdgdd}| }|jdd}| rLtt|dt|dshtntt|dt|drhttd|j	d< | rtt|dt|drtt
|| d S )	Nr   cr   r   bZasfreqr   z
2021-12-31r   )r   r   r-   r   r   r   r	   r   r   r   r   r   )r   r   r   r   r   r   r    $test_interpolate_cleaned_fill_methodi   s    r3   c                 C   sZ   t dddgdd}t|d}|jddd | rV|jd	s@tt|t|dsVtd S )
Nr   r2   r0   r   r1   r   Tr)   r   )r   r	   r   r&   r'   r   r   r   r   r   arr_ar   r   r    %test_interpolate_object_convert_no_op|   s    
r6   c                 C   s`   t tddgtddd}t|d}|jddd | r\|jd	sFtt	|t|dr\td S )
Nr   r   Zdtyper1   r   r   Tr)   r   )
r   r   objectr	   r   r&   r'   r   r   r   r4   r   r   r    &test_interpolate_object_convert_copies   s    
r9   c                 C   s^   t dtjdgdd}t|d}|jdddd | rD|jd	sDtt|t|dsZtd S 
Nr   g      @r1   r   r   TZinfer)r
   r*   downcastr   )	r   r   r-   r	   r   r&   r'   r   r   r4   r   r   r    test_interpolate_downcast   s    
r<   c                 C   s   t dtjdgdd}| }t|d}|d d  }|jdddd | r||jd	sXtt	|t|drntt
|| nt
|| d S r:   )r   r   r-   r   r	   r   r&   r'   r   r   r   r   )r   r   r   r5   r.   r   r   r    1test_interpolate_downcast_reference_triggers_copy   s    
r=   c                 C   s~   t dtjgdd}| }|d}| rHtt|dt|dsdtntt|dt|drdtd|jd< t	
|| d S )N      ?r   r1         @r2   r   r   r   r   r   r-   r   fillnar   r	   r   r   r   r   r   r   r   df2r   r   r    test_fillna   s    

rE   c                 C   s   t dtjgdd}| }|ddi}| rhtt|dt|dsJttt|dt|drtntt|dt|drtd|jd< t	
|| d S )	Nr>   r   r1   r         Y@r2   r   r@   rA   rC   r   r   r    test_fillna_dict   s    
rG   r;   Fc                 C   s   t dtjgdd}t|d}t|d}|jdd|d tt|d|sNttt|d|sdt| r|jd	sxt|jdstd S )
Nr>   r   r1   r   r2   r?   T)r*   r;   r   )	r   r   r-   r	   rB   r   r   r&   r'   )r   r;   r   r5   arr_br   r   r    test_fillna_inplace   s    

rI   c                 C   s   t dtjgdd}| }t|d}t|d}|d d  }|jddd | rtt|d|rdttt|d|szt|j	d	st|j	d	stt
|| n,tt|d|sttt|d|stt ddgdd}t
|| d S )
Nr>   r   r1   r   r2   r?   Tr*   r   )r   r   r-   r   r	   rB   r   r   r&   r'   r   r   )r   r   r   r5   rH   r.   expectedr   r   r    test_fillna_inplace_reference   s     

rL   c                 C   s   t tddddd}tj|jd< | }|d d  }|jtddddd	 | rtt	|dj
jt	|dj
jrrtt|| n$tt	|dj
jt	|dj
jstd S )
Nr      )startendr   )namer   )leftrightT)valuer*   )r   r   r   r-   r   r   rB   r   r   r	   rQ   valuesr   r   assert_series_equal)r   serser_origr.   r   r   r    &test_fillna_interval_inplace_reference   s      rX   c                 C   sr   t dtjdg}| }|i }| r@tt|t|sXtntt|t|rXtd|jd< t	
|| d S )Nr   r   rF   r   )r   r   r-   r   rB   r   r	   r   r   r   rU   )r   rV   rW   r   r   r   r    test_fillna_series_empty_arg   s    

rY   c                 C   sR   t dtjdg}t|}|ji dd tt||s:t| rN|jdsNtd S )Nr   r   TrJ   r   )	r   r   r-   r	   rB   r   r   r&   r'   )r   rV   r+   r   r   r    $test_fillna_series_empty_arg_inplace  s    rZ   c                 C   s   t dtdgdd|d}| }|d}tt|dt|drFt| rxtt|dt|dsft|j	drtntt|dt|drtt
|| d|jd< | rtt|dt|drt|j	dst|j	dstt
|| d S )	Nr      r1   r7   r   r   r2   r@   )r   r   r   rB   r   r   r	   r   r&   r'   r   r   r   )r   any_numeric_ea_and_arrow_dtyper   r   rD   r   r   r    !test_fillna_ea_noop_shares_memory  s    

r]   c                 C   s   t dtdgdd|d}| }|d d  }|jddd tt|dt|drVt| rtt|d	t|d	svt|j	drt|j	drtntt|d	t|d	rtd|j
d
< t|| d S )Nr   r[   r1   r7   r   TrJ   r   r2   r@   )r   r   r   rB   r   r   r	   r   r&   r'   r   r   r   )r   r\   r   r   r.   r   r   r    )test_fillna_inplace_ea_noop_shares_memory.  s    
r^   )&Znumpyr   ZpytestZpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.copy_view.utilr	   markZparametrizer!   r$   r-   r(   r,   r/   r3   r6   r9   r<   r=   rE   rG   rI   rL   rX   rY   rZ   r]   r^   r   r   r   r    <module>   sN   $	

 
 
 




