
    A>i;                     j    S SK rS SKrS SKJr  S SKJs  Jr  S SK	J
r
JrJrJr  S SKJr   " S S5      rg)    N)using_string_dtype)	DataFrameNaTSeries
date_rangec                      \ rS rSrS rS rS rS r\R                  R                  \" 5       SS9S 5       rS	 rS
 rS rS rS rS rS r\R                  R)                  S\R*                  " SSSS9\R*                  " SSSS9\R*                  " SSSS9/5      S 5       rS r\R                  R)                  SS\R*                  " S\R2                  " S5      S 9/5      S! 5       rS" rS# rS$ rS% rS& rS' r \R                  R)                  SS(S)/5      S* 5       r!\R                  R)                  S+SS/5      \R                  R)                  S,/ S-Q5      S. 5       5       r"S/ r#S0 r$\R                  R)                  S1S2S3\R*                  " S4\R2                  " S55      S 9\R*                  " S6\R2                  " S55      S 9/5      S7 5       r%\R                  R)                  S1/ S8Q5      S9 5       r&S:r'g;)<TestDataFrameInterpolate   c                    [        [        S5      [        S5      [        S5      /5      nUR                  R                  S:X  d   eUR                  5       n[        US   US   S-  US   /5      n[        R                  " X#5        UR                  5       nUR                  5       nUR                  5       n[        R                  " X#5        g )Nz1+1jnanz2+2jcr         ?   )
r   complexfloatdtypekindinterpolatetmassert_series_equalto_frameassert_frame_equal)selfserresexpecteddfs        j/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_interpolate.pytest_interpolate_complex1TestDataFrameInterpolate.test_interpolate_complex   s    gfouU|WV_EFyy~~$$$oo3q63q6C<Q89
s-\\^nn$$&
c,    c                    [        [        SSS95      nUR                  5       n[        US'   U" U5      R	                  5       nU" U5      n[
        R                  " XE5        UR                  R                  S5      nU" U5      R	                  5       nU" UR                  R                  S5      5      n[
        R                  " Xx5        X3S   -
  n	U" U	5      R	                  5       n
U" X"S   -
  5      n[
        R                  " X5        g )Nz
2012-01-01   )periodsr   z
US/Pacificr   )	r   r   copyr   r   r   assert_equaldttz_localize)r   frame_or_seriesorigr   r   r   ser_tzres_tzexpected_tzser_tdres_tdexpected_tds               r   $test_interpolate_datetimelike_values=TestDataFrameInterpolate.test_interpolate_datetimelike_values    s    jq9:iikAc"..0"4(
& ##L1 (446%dgg&9&9,&GH
, 1v (446%d!Wn5
,r!   c                 8   U" S[         R                  S/5      nUR                  nUR                  SS9nXSL d   eU" / SQ5      n[        R
                  " X65        [         R                  " XCR                  5      (       d   eUR                  5       S   S:X  d   eg )N   r   Tinplace)r4   r   r   r   )npr   valuesr   r   r&   shares_memorysqueeze)r   r)   requestobjr*   resultr   s          r   test_interpolate_inplace1TestDataFrameInterpolate.test_interpolate_inplace6   s    q"&&!n-zz.}}";/
& jj1111||~a C'''r!   c                    [        SS[        R                  S/SSS[        R                  // SQ[        S5      S.5      nU(       a  SOS	nS
U S3n[        R
                  " [        US9   UR                  5         S S S 5        US   R                  nUS   R                  n[        R
                  " [        US9   UR                  SS9  S S S 5        [        R                  " US   R                  U5      (       d   e[        R                  " US   R                  U5      (       d   eg ! , (       d  f       N= f! , (       d  f       Nv= f)Nr4   r      	   r4   r      r#   abcdABCDstrobjectz[Cc]annot interpolate with z dtypematchrI   rJ   Tr5   )r   r7   r   listpytestraises	TypeErrorr   _valuesr8   r   r9   )r   using_infer_stringr   r   msgcvaluesdvaluess          r   test_interp_basic*TestDataFrameInterpolate.test_interp_basicD   s   BFFA&Arvv&!&\	
 ,+E7&9]]9C0NN 1 S'//S'..]]9C0NN4N( 1 3999939999 10
 10s   *D):D:)
D7:
Ez#interpolate doesn't work for string)reasonc                    [        SS[        R                  S/SSS[        R                  // SQ[        S5      S.5      nSnU(       dB  [        R
                  " [        US	9   UR                  S
5      R                  5         S S S 5        g UR                  S
5      R                  5       nUR                  S
5      nSUR                  S'   SUR                  S'   [        R                  " XE5        g ! , (       d  f       g = f)Nr4   r   rA   rB   rC   rE   rF   .DataFrame cannot interpolate with object dtyperM   rI   gh˹WU@rD   rG   )r#   rH   )r   r7   r   rO   rP   rQ   rR   	set_indexr   locr   r   )r   rT   r   rU   r=   r   s         r   &test_interp_basic_with_non_range_index?TestDataFrameInterpolate.test_interp_basic_with_non_range_index[   s     BFFA&Arvv&!&\	
 ?!y4S!--/ 54 \\#&224F||C(H#*HLL #$HLL !!&3 54s   " C00
C>c                 t    [        5       nUR                  5       nX!Ld   eUn[        R                  " X#5        g )N)r   r   r   r   r   r   r=   r   s       r   test_interp_empty*TestDataFrameInterpolate.test_interp_emptys   s4    [!
f/r!   c                     [        SS[        R                  S/SSS[        R                  // SQS.5      nSn[        R                  " [
        US9   UR                  S	S
9  S S S 5        g ! , (       d  f       g = f)Nr4   r   rA   rB   rC   rG   rH   rI   z,Can not interpolate with method=not_a_methodrM   not_a_methodmethodr   r7   r   rP   rQ   
ValueErrorr   r   r   rU   s      r   test_interp_bad_method/TestDataFrameInterpolate.test_interp_bad_method{   sc    BFFA&Arvv&!
 =]]:S1NN.N1 211s   A**
A8c                     [        SS[        R                  S/SSS[        R                  // SQ[        S5      S	.5      nUS
   R	                  5       n[        / SQS
S9n[        R                  " X#5        g )N      ?       @      @r4   rA   rB   rC   rE   rF   rG   rq   rr         @rs   )name)r   r7   r   rO   r   r   r   r   rc   s       r   test_interp_combo*TestDataFrameInterpolate.test_interp_combo   sj    3,Arvv&!&\	
 C$$&.S9
v0r!   c                    [        SS[        R                  S/[        R                  SSS/S.5      nUR                  S5      nSn[        R
                  " [        US9   UR                  S	S
9  S S S 5        g ! , (       d  f       g = f)Nr4   r   rA   rD   rG   rH   rG   zkInterpolation with NaNs in the index has not been implemented. Try filling those NaNs before interpolating.rM   r8   ri   )r   r7   r   r^   rP   rQ   NotImplementedErrorr   rm   s      r   test_interp_nan_idx,TestDataFrameInterpolate.test_interp_nan_idx   sn    aBFFA.bffaA5FGH\\#; 	 ]].c:NN(N+ ;::s   A88
Bc           	         [         R                  " S5        [        SS[        R                  SS[        R                  S// SQS.5      nUR                  S	5      nUR                  5       nUR                  S
SS9nSUR                  S'   SUR                  S'   [        R                  " X25        UR                  SS9nSUR                  S'   SUR                  S'   [        R                  " X25        UR                  SS9nSUR                  S'   SUR                  S'   [        R                  " X2SS9  UR                  SS9nSUR                  S'   SUR                  S'   [        R                  " X25        UR                  SS9nSUR                  S'   SUR                  S'   [        R                  " X25        UR                  SS9nSUR                  S'   SUR                  S'   [        R                  " X2SS9  g )Nscipyr4   r   rA   r#      r4   r   rD   r#            rG   rI   rI   
polynomialrj   ordergUUU@r]   gu:@)r   rG   cubicri   gv:@gb+hZ@nearestF)check_dtype	quadraticg^r@g!g@slineargX ;@zerorr   )rP   importorskipr   r7   r   r^   r%   r   r_   r   r   r   r   r   r=   s       r   test_interp_various,TestDataFrameInterpolate.test_interp_various   s   G$aArvvq18OP
 \\#779|1=)V *W
f/w/)V *W
f/y1 V !W
fEB{3)V *W
f/y1)V *W
f/v."V !W
fEBr!   c           	      <   [         R                  " S5        [        SS[        R                  SS[        R                  S// SQS.5      nUR                  S	S
9nUR                  5       nSUR                  S'   SUR                  S'   [        R                  " X#5        UR                  SS
9nUR                  5       nUS   US'   [        R                  " X$5        UR                  SS
9nSUR                  S'   SUR                  S'   [        R                  " X#5        g )Nr   r4   r   rA   r#   r   r   r   barycentricri   rD   )r   rG      )r#   rG   kroghrG   pchip      @)
rP   r   r   r7   r   r   r%   r_   r   r   )r   r   r=   r   	expectedks        r   test_interp_alt_scipy.TestDataFrameInterpolate.test_interp_alt_scipy   s    G$aArvvq18OP
 }5779 V V
f/w/GGI	!#	#
f0w/ V"V
f/r!   c           	      ~   [        SS[        R                  S/SSS[        R                  /[        R                  SSS/S[        R                  SS// SQS	.5      nUR                  SS
9nUR	                  5       nSUR
                  S'   SUR
                  S'   SUR
                  S'   US   R                  [        R                  5      US'   [        R                  " X#5        UR                  SSS9n[        R                  " X#5        UR                  SS
9nUR                  5       n[        R                  " X#5        g )Nr4   r   rA   rD   r#   r   r   r4   r   rD   rA   )r   r4   r   rD   rA   axis)rD   r4   )r   r   )r4   rD   r8   r   rj   r   )
r   r7   r   r   r%   r_   astypefloat64r   r   rc   s       r   test_interp_rowwise,TestDataFrameInterpolate.test_interp_rowwise   s   q"&&!$q!RVV$FFAq!$rvvq!$
 Q'779TTTqk((4
f/Qx8
f/Q'>>#
f/r!   zaxis_name, axis_numberrowsr   rows_0)idindexindex_0columnsr4   	columns_1c                     S[         R                  S/S[         R                  S// SQS.n[        U[         R                  S9nUR	                  USS	9nUR	                  USS	9n[
        R                  " XV5        g )
Nr   r   r4   r   )r   r#   r   )r   r4   r   r   linearr   )r7   r   r   r   r   r   r   )r   	axis_nameaxis_numberdatar   r=   r   s          r   test_interp_axis_names/TestDataFrameInterpolate.test_interp_axis_names   sf     rvvq>q"&&!nCt2::.Yx@>>{8>D
f/r!   c                     [        SSS[        R                  SS[        R                  [        R                  S/	/ SQS.5      nUR                  SS	9  g )
Nr         ?rq   rA   r   @   )	r4   r   rD   rA   rD   r   r4   r   )r   r4   r   )r   r7   r   r   )r   r   s     r   test_rowwise_alt)TestDataFrameInterpolate.test_rowwise_alt  sF    sCArvvrvvrB/
 	Ar!   check_scipyFTr   )marksc                    [        [        R                  [        R                  SSS/[        R                  SS[        R                  S/S.5      nUR                  5       nUR	                  5       nSUR
                  S	'   [        R                  " X45        U(       a'  UR                  S
SS9n[        R                  " X45        g g )Nr   g      ?r   g      rz   g      )rD   rH   r   r4   r   )r   r7   r   r   r%   r_   r   r   )r   r   r   r=   r   s        r   test_interp_leading_nans1TestDataFrameInterpolate.test_interp_leading_nans  s     662663a0D"&&RT7UV
 !779$V
f/^^<q^AF!!&3 r!   c           	      \   [        SS[        R                  S// SQ[        R                  SSS/[        R                  [        R                  SS// SQS	.5      nS
n[        R                  " [
        US9   UR                  S5      R                  US9  S S S 5        g ! , (       d  f       g = f)Nr4   r   rA   )abr   dr#   r   rB   r   )rG   rH   rI   rJ   Er\   rM   rL   r   )r   r7   r   rP   rQ   rR   r   r   )r   r   r   rU   s       r   test_interp_raise_on_only_mixed8TestDataFrameInterpolate.test_interp_raise_on_only_mixed   s    BFFA&)ffaA&ffbffa+!
 ?]]9C0IIh+++6 100s   5B
B+c                     [        / SQ/ SQS.SS9nSn[        R                  " [        US9   UR	                  5         S S S 5        g ! , (       d  f       g = f)N)r4   r   rD   )rA   r#   r   rz   rL   r   r\   rM   )r   rP   rQ   rR   r   rm   s      r   %test_interp_raise_on_all_object_dtype>TestDataFrameInterpolate.test_interp_raise_on_all_object_dtype.  s<    YY7xH>]]9C0NN 100s   A
Ac                    [        SSS[        R                  S/05      nUR                  5       nUR                  5       R	                  5       n[
        R                  " 5          US   R	                  SS9nS S S 5        [
        R                  " WUS   5        [
        R                  " X5        g ! , (       d  f       N?= f)Nr   rq   rr   rs   Tr5   )	r   r7   r   r%   r   r   raises_chained_assignment_errorr   r   )r   r   df_origr   r=   s        r   test_interp_inplace,TestDataFrameInterpolate.test_interp_inplace5  s    c3456'')779((*//1W(((6F 2
vx}5
b* 21s   #B//
B=c                     [        / SQ[        R                  SSS// SQS.5      nUR                  SSS	S
9nUR                  SSSS
9nX1L d   e[        R
                  " X25        g )Nrt   rr   ru   rs   )rD   r   r   r   )r   r   r   r   r4   F)rj   r   r6   T)r   r7   r   r   r   r   r   s       r   test_interp_inplace_row0TestDataFrameInterpolate.test_interp_inplace_row?  se    &bffc3-D<X
 >>5>IxaF||
f/r!   c           
         [        SS[        R                  S// SQSS[        R                  S// SQS	.5      n[        [        R                  " / SQS
S9[        R                  " / SQSS9[        R                  " / SQS
S9[        R                  " / SQS
S9S	.5      nUR	                  5       n[
        R                  " X25        USS/   R	                  5       n[
        R                  " X1SS/   5        g )Nr4   r   rA   r   rq   rr   rs   rt   rF   r   r   int64)rq   rr   rD   rs   rH   rJ   )r   r7   r   arrayr   r   r   r   s       r   test_interp_ignore_all_good4TestDataFrameInterpolate.test_interp_ignore_all_goodI  s    BFFA&!3,)	
 XXl)<XXl':XX0	BXX2)D	
 !
f/ S#J++-
f#sn5r!   c                 2   Sn[        SUS9n[        R                  R                  S5      R                  X45      n[        R                  X3S:  '   [        X"US9nUR                  SSS	9nUR                  SSS
S9nXdL d   e[        R                  " Xe5        g )Nr#   z
2014-01-01)startr$   r   r   )r   r   r   r   timer   T)r   rj   r6   )	r   r7   randomdefault_rngr   r   r   r   r   )r   r$   idxr   r   r   r=   s          r   test_interp_time_inplace_axis6TestDataFrameInterpolate.test_interp_time_inplace_axisb  s    |W=yy$$Q'../AB66CZSD9>>q>8QvtD||
f/r!   )r   r   )r   r4   c                 T   [         R                  " SSS5      n[         R                  " U5      n[        [         R                  " US5      [         R
                  " S5      US9R                  US-  S9nUR                  S	US
9nUR                  S	US
9n[        R                  " Xg5        g )Nr   d   rD   )
   r4   r   )r   r   r   gGz?)r   r   rj   r   )
r7   linspacesinr   tilearangereindexr   r   r   )r   r   r   xyr   r=   r   s           r   test_interp_string_axis0TestDataFrameInterpolate.test_interp_string_axiso  s     KK3"FF1IG$BIIbM1

'!e)'
$ 	 xi@>>>D
f/r!   
multiblockrj   )ffillbfillpadc           
         [        SSSS[        R                  S/SSS[        R                  SS/SSS	[        R                  [        R                  S
/S.5      nU(       a  [        R                  US'   SUS'   SU 3n[        R                  " [
        US9   UR                  X1S9  S S S 5        g ! , (       d  f       g = f)Nrq   rr   ru   rs   g      @r   g       @g      $@g      "@g      >@rg   rJ   r   z Can not interpolate with method=rM   r   rk   )r   r   r   rj   r   rU   s         r   test_interp_fillna_methods3TestDataFrameInterpolate.test_interp_fillna_methods{  s     3S"&&#63RVVS$73RVVRVVT:
 ffBsGBsG09]]:S1NN&N4 211s   B00
B>c                     [        5       nUR                  5       nUR                  SS9nX1L d   e[        R                  " X25        g )NTr5   r   r%   r   r   r   r   s       r   test_interpolate_empty_df2TestDataFrameInterpolate.test_interpolate_empty_df  s<    [779-||
f/r!   c                     [        S/ SQ0US9nUR                  5       nUR                  SS9n[        S/ SQ0SS9n[        R                  " XE5        [        R                  " X#5        g )Nr   r4   NNNrD   r   r   limitr4   r   rr   NrD   Float64r   )r   any_int_ea_dtyper   r*   r=   r   s         r   test_interpolate_ea,TestDataFrameInterpolate.test_interpolate_ea  s^    56>NOwwya(c#9:)L
f/
b'r!   r   r   Float32zfloat32[pyarrow]pyarrowfloat64[pyarrow]c                     [        S/ SQ0US9nUR                  5       nUR                  SS9n[        S/ SQ0US9n[        R                  " XE5        [        R                  " X#5        g )Nr   r   r   r   r   r   r   )r   r   r   r*   r=   r   s         r   test_interpolate_ea_float2TestDataFrameInterpolate.test_interpolate_ea_float  s_     56eDwwya(c#9:%H
f/
b'r!   )r   uint64int32int16int8uint32uint16uint8c                     [         R                  " S5        [        S/ SQ0US-   S9nUR                  SS9n[        S/ SQ0S	S9n[        R
                  " X45        g )
Nr  r   r   z	[pyarrow]r   r   r   r   r  )rP   r   r   r   r   r   )r   r   r   r=   r   s        r   test_interpolate_arrow/TestDataFrameInterpolate.test_interpolate_arrow  sZ     	I&56ek>QRa(c#9:BTU
f/r!    N)(__name__
__module____qualname____firstlineno__r   r1   r>   rX   rP   markxfailr   r`   rd   rn   rw   r|   r   r   r   parametrizeparamr   r   td
skip_if_nor   r   r   r   r   r   r   r   r   r   r   r  r  __static_attributes__r  r!   r   r	   r	      s/   --,(:. [[%J  44*0
21,%CN0,02 [[ LLx0LL!	2LLA+6	
00 [[v||Dg8NOP447+0620 [[5n7UV	0 W	0 [[\D%=9[[X'@A5 B :5"0( [[LL+2==3KLLL+2==3KL		
(( [[R0	0r!   r	   )numpyr7   rP   pandas._configr   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr   r   r   r   pandas._testing_testingr   r	   r  r!   r   <module>r%     s/      - ) )  j0 j0r!   