
    d9                     f    d dl Zd dlZd dlmc mZ d dlmZm	Z	m
Z
mZ d dlmZ  G d d          ZdS )    N)	DataFrameNaTSeries
date_rangec            
       p   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej        d	             Zej        d
             Zd Zej                            d ej        ddd           ej        ddd           ej        ddd          g          d             Zd Zej                            dd ej        dej                  g          d             Zd Zd Zd Zd  Zd! Zd" Zej                            dd#d$g          d%             Zej                            d&g d'          d(             Zd)S )*TestDataFrameInterpolatec                 x   t          t          dd                    }|                                }t          |d<    ||                                          } ||          }t          j        ||           |j                            d          } ||                                          } ||j                            d                    }t          j        ||           ||d         z
  }	 ||	                                          }
 |||d         z
            }t          j        |
|           d S )Nz
2012-01-01   )periods   z
US/Pacificr   )	r   r   copyr   interpolatetmassert_equaldttz_localize)selfframe_or_seriesorigserresexpectedser_tzres_tzexpected_tzser_tdres_tdexpected_tds               g/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/methods/test_interpolate.py$test_interpolate_datetimelike_valuesz=TestDataFrameInterpolate.test_interpolate_datetimelike_values   s*   jq999::iikkAoc""..00"?4((
X&&& ##L11 ((4466%odg&9&9,&G&GHH
,,, s1v ((4466%odT!Wn55
,,,,,    c                    |rC|t           u r:t          j                            d          }|j                            |            |dt          j        dg          }|j        }|	                    d            |g d          }t          j        ||           t          j        ||j                  sJ |                                d         dk    sJ d S )	Nz'.values-based in-place check is invalid)reason   r   Tinplace)r$         ?r   r'   )r   pytestmarkxfailnode
add_markernpnanvaluesr   r   r   shares_memorysqueeze)r   r   using_array_managerrequestr)   objr   r   s           r   test_interpolate_inplacez1TestDataFrameInterpolate.test_interpolate_inplace&   s     	*?i#?#?;$$,U$VVDL##D)))oq"&!n--z%%%"?;;;//
X&&& cj11111||~~a C''''''r!   c                 T   t          ddt          j        dgdddt          j        gg dt          d          d          }t          g dg d	g dt          d          d          }|                                }t          j        ||           |d
         j        }|d         j        }|rEt          j	        ||d
         j                  sJ t          j	        ||d         j                  sJ nDt          j	        ||d
         j                  rJ t          j	        ||d         j                  rJ |                    d          }|J t          j        ||           t          j	        |d
         j        |          sJ t          j	        |d         j        |          sJ d S )Nr$   r      	   r$   r      r
   abcdABCD      ?       @      @      @)rB   rE         "@rF   r?   r@   Tr%   )
r   r-   r.   listr   r   assert_frame_equal_valuesr/   r0   )r   using_copy_on_writedfr   resultcvaluesdvaluesr   s           r   test_interp_basicz*TestDataFrameInterpolate.test_interp_basic7   s   BFA&Arv&!\\&\\	 
 
 ))))))!\\&\\	 
 
 !!
fh/// S'/S'. 	F#GVC[-@AAAAA#GVC[-@AAAAAA'1DEEEEE'1DEEEEEnnTn**{{{
b(+++ 39999939999999r!   c                 N   t          ddt          j        dgdddt          j        gg dt          d          d          }|                    d                                          }|                    d          }d	|j        d
<   d|j        d<   t          j        ||           d S )Nr$   r   r7   r8   r9   r;   r<   r?   r:   r:   r=   )r
   r>   )	r   r-   r.   rG   	set_indexr   locr   rH   r   rK   rL   r   s       r   &test_interp_basic_with_non_range_indexz?TestDataFrameInterpolate.test_interp_basic_with_non_range_index]   s    BFA&Arv&!\\&\\	 
 
 c""..00<<$$ V V
fh/////r!   c                     t                      }|                                }||usJ |}t          j        ||           d S )N)r   r   r   rH   rT   s       r   test_interp_emptyz*TestDataFrameInterpolate.test_interp_emptym   sI    [[!!R
fh/////r!   c                    t          ddt          j        dgdddt          j        gg dt          d          d          }d}t	          j        t          |	          5  |                    d
           d d d            d S # 1 swxY w Y   d S )Nr$   r   r7   r8   r9   r;   r<   a  method must be one of \['linear', 'time', 'index', 'values', 'nearest', 'zero', 'slinear', 'quadratic', 'cubic', 'barycentric', 'krogh', 'spline', 'polynomial', 'from_derivatives', 'piecewise_polynomial', 'pchip', 'akima', 'cubicspline'\]. Got 'not_a_method' instead.matchnot_a_methodmethod)r   r-   r.   rG   r(   raises
ValueErrorr   r   rK   msgs      r   test_interp_bad_methodz/TestDataFrameInterpolate.test_interp_bad_methodu   s    BFA&Arv&!\\&\\	 
 
< 	 ]:S111 	2 	2NN.N111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   BBBc                    t          ddt          j        dgdddt          j        gg dt          d          d	          }|d
                                         }t          g dd
          }t          j        ||           |d
                             d          }t          g dd
          }t          j        ||           d S )NrB   rC   rE   r$   r7   r8   r9   r;   r<   r=   rA   )nameinferdowncastr$   r   r:   r7   )r   r-   r.   rG   r   r   r   assert_series_equalrT   s       r   test_interp_comboz*TestDataFrameInterpolate.test_interp_combo   s    3,Arv&!\\&\\	 
 
 C$$&&...S999
vx000C$$g$66,,,S111
vx00000r!   c                 $   t          ddt          j        dgt          j        dddgd          }|                    d          }d}t	          j        t          |          5  |                    d	
           d d d            d S # 1 swxY w Y   d S )Nr$   r   r7   r:   r=   r>   r=   zkInterpolation with NaNs in the index has not been implemented. Try filling those NaNs before interpolating.rY   r/   r\   )r   r-   r.   rR   r(   r^   NotImplementedErrorr   r`   s      r   test_interp_nan_idxz,TestDataFrameInterpolate.test_interp_nan_idx   s    aBFA.bfaA5FGGHH\\#; 	 ].c::: 	, 	,NN(N+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   !BB	B	c           	         t          ddt          j        ddt          j        dgg dd          }|                    d          }|                                }|                    d	d
          }d|j        d<   d|j        d<   t          j        ||           |                    d          }d|j        d<   d|j        d<   t          j        ||           |                    d          }d|j        d<   d|j        d<   t          j        ||d           |                    d          }d|j        d<   d|j        d<   t          j        ||           |                    d          }d|j        d<   d|j        d<   t          j        ||           |                    d          }d|j        d<   d|j        d<   t          j        ||d           d S )Nr$   r   r7   r
      r$   r   r:   r
            r=   r?   r?   
polynomialr]   ordergUUU@rQ   gu:@)rs   r=   cubicr\   gv:@gb+hZ@nearestF)check_dtype	quadraticg^r@g!g@slineargX ;@zerorC   )	r   r-   r.   rR   r   r   rS   r   rH   r   rK   r   rL   s       r   test_interp_variousz,TestDataFrameInterpolate.test_interp_various   s   aArvq18O8O8OPP
 
 \\#7799|1==)V *W
fh///w//)V *W
fh///y11 V !W
fhEBBBB{33)V *W
fh///y11)V *W
fh///v.."V !W
fhEBBBBBBr!   c           	         t          ddt          j        ddt          j        dgg dd          }|                    d	          }|                                }d
|j        d<   d|j        d<   t          j        ||           |                    dd          }t          j        ||                    t          j	                             |                    d	          }|                                }|d         |d<   t          j        ||           |                    d	          }d
|j        d<   d|j        d<   t          j        ||           d S )Nr$   r   r7   r
   rp   rq   ru   barycentricr\   r:   )r   r=      )r
   r=   re   )r]   rg   kroghr=   pchip      @)
r   r-   r.   r   r   rS   r   rH   astypeint64)r   rK   rL   r   	expectedks        r   test_interp_alt_scipyz.TestDataFrameInterpolate.test_interp_alt_scipy   s=   aArvq18O8O8OPP
 
 }557799 V V
fh///}wGG
fhoobh&?&?@@@w//GGII	!#	#
fi000w// V"V
fh/////r!   c           	         t          ddt          j        dgdddt          j        gt          j        dddgdt          j        ddgg dd	          }|                    d
          }|                                }d|j        d<   d|j        d<   d|j        d<   |d                             t          j                  |d<   t          j	        ||           |                    dd          }t          j	        ||           |                    d
          }|                                }t          j	        ||           d S )Nr$   r   r7   r:   r
   r   rp   rh   )r   r$   r   r:   r7   axis)r:   r$   )r   r   )r$   r:   r/   r   r]   r   )
r   r-   r.   r   r   rS   r   float64r   rH   rT   s       r   test_interp_rowwisez,TestDataFrameInterpolate.test_interp_rowwise   s3   q"&!$q!RV$FAq!$rvq!$<< 
 
 Q''7799TTTqk((44
fh///Qx88
fh///Q''>>##
fh/////r!   zaxis_name, axis_numberrowsr   rows_0)idindexindex_0columnsr$   	columns_1c                    dt           j        dgdt           j        dgg dd}t          |t           j                  }|                    |d	          }|                    |d	          }t          j        ||           d S )
Nr   r   r$   rp   )r   r
   rr   )r   r$   r   dtypelinearr   )r-   r.   r   r   r   r   rH   )r   	axis_nameaxis_numberdatarK   rL   r   s          r   test_interp_axis_namesz/TestDataFrameInterpolate.test_interp_axis_names   s~     rvq>q"&!nCCt2:...Yx@@>>{8>DD
fh/////r!   c                     t          dddt          j        ddt          j        t          j        dg	g dd          }|                    d	           d S )
Nr         ?rB   r7   rr   @   )	r$   r   r:   r7   r:   r   r$   r   )r   r$   r   )r   r-   r.   r   )r   rK   s     r   test_rowwise_altz)TestDataFrameInterpolate.test_rowwise_alt  s\    sCArvrvrB/// 
 
 	Ar!   check_scipyFT)marksc                 |   t          t          j        t          j        dddgt          j        ddt          j        dgd          }|                                }|                                }d|j        d	<   t          j        ||           |r.|                    d
d          }t          j        ||           d S d S )Nr   g      ?r   g      rl   g      )r:   r>   rv   r$   rw   )r   r-   r.   r   r   rS   r   rH   )r   r   rK   rL   r   s        r   test_interp_leading_nansz1TestDataFrameInterpolate.test_interp_leading_nans  s     6263a0D"&RT7UVV
 
 !!7799$V
fh/// 	4^^<q^AAF!&(33333	4 	4r!   c           	      ^   t          ddt          j        dgg dt          j        dddgt          j        t          j        ddgg dd	          }d
}t          j        t
          |          5  |                    d                              |           d d d            d S # 1 swxY w Y   d S )Nr$   r   r7   )abcdr
   rp   r8   rh   )r=   r>   r?   r@   EvCannot interpolate with all object-dtype columns in the DataFrame. Try setting at least one column to a numeric dtype.rY   objectr   )r   r-   r.   r(   r^   	TypeErrorr   r   )r   r   rK   ra   s       r   test_interp_raise_on_only_mixedz8TestDataFrameInterpolate.test_interp_raise_on_only_mixed(  s    BFA&)))faA&fbfa+!\\ 
 
) 	
 ]9C000 	7 	7IIh+++666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   +*B""B&)B&c                     t          g dg ddd          }d}t          j        t          |          5  |                                 d d d            d S # 1 swxY w Y   d S )N)r$   r   r:   )r7   r
   r   rl   r   r   r   rY   )r   r(   r^   r   r   r`   s      r   %test_interp_raise_on_all_object_dtypez>TestDataFrameInterpolate.test_interp_raise_on_all_object_dtype:  s    YYYYYY77xHHH) 	
 ]9C000 	 	NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 @   t          dddt          j        dgi          }t          dg di          }|                                }|                                }|d                             d          }|J |rt          j        ||           nt          j        ||           |                                }|d                             dd	          }|J |rt          j        ||           d S t          j        ||                    d
                     d S )Nr   rB   rC   rE   rA   Tr%   re   )r&   rg   r   )r   r-   r.   r   r   r   rH   r   )r   rJ   rK   r   expected_cowrL   return_values          r   test_interp_inplacez,TestDataFrameInterpolate.test_interp_inplaceE  s%   c34566c#7#7#7899wwyyc{..t.<<### 	4!&,7777!&(333c{..tg.NN### 	D!&,77777!&(//'*B*BCCCCCr!   c                     t          g dt          j        dddgg dd          }|                    ddd	
          }|                    ddd
          }|J t	          j        ||           d S )NrA   rC   rD   rE   )r:   r   r   r   )r   r   r   r   r$   F)r]   r   r&   T)r   r-   r.   r   r   rH   )r   rL   r   r   s       r   test_interp_inplace_rowz0TestDataFrameInterpolate.test_interp_inplace_rowY  s    &&&bfc3-D<<<XX
 
 %%XAu%MM))4)PP###
fh/////r!   c           	         t          ddt          j        dgg dddt          j        dgg dd	          }t          t          j        g dd
          t          j        g dd          t          j        g dd
          t          j        g dd
          d	          }|                    d           }t          j        ||           |ddg                             d           }t          j        ||ddg                    d S )Nr$   r   r7   rh   rB   rC   rE   rA   r<   r   r   r   )rB   rC   r:   rE   rf   r>   r@   )r   r-   r.   arrayr   r   rH   r   s       r   test_interp_ignore_all_goodz4TestDataFrameInterpolate.test_interp_ignore_all_goodc  s)   BFA&!\\3,)))	 
 
 Xlll)<<<Xlll':::X000	BBBX222)DDD	 
 
 ..
fh/// S#J++T+::
fb#sn55555r!   c                 F   d}t          d|          }t          j                            ||          }t          j        ||dk     <   t          |||          }|                    dd          }|                    ddd	
          }|J t          j        ||           d S )Nr
   z
2014-01-01)startr   r   )r   r   r   r   timer   T)r   r]   r&   )	r   r-   randomrandr.   r   r   r   rH   )r   r   idxr   r   rL   r   s          r   test_interp_time_inplace_axisz6TestDataFrameInterpolate.test_interp_time_inplace_axis}  s    |W===y~~gw//6TCZ3$???%%1V%<<++64+PP###
fh/////r!   )r   r   )r   r$   c                 |   t          j        ddd          }t          j        |          }t          t          j        |d          t          j        d          |                              |dz            }|                    d	|
          }|                    d	|
          }t          j	        ||           d S )Nr   d   i  )
   r$   r   )r   r   r   gGz?)r   r   r]   r   )
r-   linspacesinr   tilearangereindexr   r   rH   )r   r   r   xyrK   rL   r   s           r   test_interp_string_axisz0TestDataFrameInterpolate.test_interp_string_axis  s     K3%%F1IIG$$BIbMM1
 
 

'!e)'
$
$ 	 xi@@>>>DD
fh/////r!   r]   )ffillbfillpadc           
      Z   |r|dv rt          j        |           t          ddddt          j        dgdddt          j        dd	gddd
t          j        t          j        dgd          }|                    ||          }|                    ||          }t          j        ||           d S )N)r$   r   rB   rC   rD   rE   g      @r   g       @g      $@rF   g      >@)r=   r>   r?   r   r   )	td&mark_array_manager_not_yet_implementedr   r-   r.   fillnar   r   rH   )r   r3   r   r]   r2   rK   r   rL   s           r   test_interp_fillna_methodsz3TestDataFrameInterpolate.test_interp_fillna_methods  s      	?4>#9#95g>>>3S"&#63RVS$73RVRVT: 
 
 99$v966vD99
fh/////r!   N)__name__
__module____qualname__r    r5   rO   rU   rW   rb   rj   rn   r   skip_if_no_scipyr   r   r   r(   r)   parametrizeparamr   r   r   r   r   r   r   r   r   r   r    r!   r   r   r      s}       - - -,( ( ("$: $: $:L0 0 0 0 0 02 2 2&1 1 1$, , , $C $C $CL 0 0 000 0 02 [ FLx000FL!	222FLA+666	
 0 0 0   [|v|D8KLLLM 4 4 47 7 7$	 	 	D D D(0 0 06 6 640 0 0 [5n7UVV	0 	0 WV	0 [X'@'@'@AA0 0 BA0 0 0r!   r   )numpyr-   r(   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r   pandas._testing_testingr   r   r   r!   r   <module>r      s         ) ) ) ) ) ) ) ) )                 W0 W0 W0 W0 W0 W0 W0 W0 W0 W0r!   