
    :iO                         d dl Zd dlZd dlmZ d dlmZ d dlm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y)    N)using_string_dtype)WARNING_CHECK_DISABLED)ChainedAssignmentError)	DataFrameNaTSeries
date_rangec                      e Zd Zd Zd Zd Zd Zej                  j                   e
       d      d        Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zej                  j)                  d ej*                  ddd       ej*                  ddd       ej*                  ddd      g      d        Zd Zej                  j)                  dd ej*                  d ej2                  d             g      d!        Zd" Zd# Zd$ Zd% Zd& Zd' Z ej                  j)                  dd(d)g      d*        Z!ej                  j)                  d+ddg      ej                  j)                  d,g d-      d.               Z"d/ Z#d0 Z$ej                  j)                  d1d2d3 ej*                  d4 ej2                  d5              ej*                  d6 ej2                  d5             g      d7        Z%ej                  j)                  d1g d8      d9        Z&y:);TestDataFrameInterpolatec                    t        t        d      t        d      t        d      g      }|j                  j                  dk(  sJ |j                         }t        |d   |d   dz  |d   g      }t        j                  ||       |j                         }|j                         }|j                         }t        j                  ||       y )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        q/var/www/html/talentspherev1.5.2/venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_interpolate.pytest_interpolate_complexz1TestDataFrameInterpolate.test_interpolate_complex   s    gfouU|WV_EFyy~~$$$oo3q63q6C<Q89
sH-\\^nn$$&
c8,    c                    t        t        dd            }|j                         }t        |d<    ||      j	                         } ||      }t        j                  ||       |j                  j                  d      } ||      j	                         } ||j                  j                  d            }t        j                  ||       ||d   z
  }	 ||	      j	                         }
 |||d   z
        }t        j                  |
|       y )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_valuesz=TestDataFrameInterpolate.test_interpolate_datetimelike_values"   s    jq9:iikAc"..0"4(
X& ##L1 (446%dgg&9&9,&GH
, s1v (446%dT!Wn5
,r!   c                    |r9|t         u r1t        j                  j                  d      }|j	                  |        |dt
        j                  dg      }|j                  }|j                  d        |g d      }t        j                  ||       t        j                  ||j                        sJ |j                         d   dk(  sJ y )	Nz'.values-based in-place check is invalidreason   r   Tinplace)r5   r   r   r   )r   pytestmarkxfailapplymarkernpr   valuesr   r   r&   shares_memorysqueeze)r   r)   using_array_managerrequestr9   objr*   r   s           r   test_interpolate_inplacez1TestDataFrameInterpolate.test_interpolate_inplace8   s    ?i#?;;$$,U$VD%q"&&!n-zz%";/
X& cjj111||~a C'''r!   c                    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      }|rA|rd
nd}d| d}t	        j
                  t        |      5  |j                          d d d        y d}t        j                  t        |      5  |j                         }d d d        t        j                  |       |d   j                  }|d   j                  }	|rJt        j                  ||d   j                        sJ t        j                  |	|d   j                        sLJ t        j                  ||d   j                        rJ t        j                  |	|d   j                        rJ t        j                  t        |      5  |j                  d      }
d d d        
J t        j                  ||       t        j                  |d   j                  |      sJ t        j                  |d   j                  |	      sJ y # 1 sw Y   y xY w# 1 sw Y   {xY w# 1 sw Y   xY w)Nr5   r      	   r5   r      r#   abcdABCD      ?       @      @      @)rP   rS         "@rT   strobjectz[Cc]annot interpolate with z dtypematch'DataFrame.interpolate with object dtyperM   rN   Tr6   )r   r<   r   listr8   raises	TypeErrorr   r   assert_produces_warningFutureWarningr   _valuesr=   r>   )r   using_copy_on_writeusing_infer_stringr   r   r   msgresultcvaluesdvaluesr   s              r   test_interp_basicz*TestDataFrameInterpolate.test_interp_basicI   s   BFFA&Arvv&!&\	
 ))!&\	
 /EXE/wf=Cy4 ! !7''SA 	&^^%F	&
fh/ S'//S'..##GVC[-@-@AAA##GVC[-@-@AAA''1D1DEEE''1D1DEEE''SA 	/....C	/{{
b(+ 399939995!	& 	&	/ 	/s$   H=?I	=I=I	IIz#interpolate doesn't work for stringr3   c                    t        ddt        j                  dgdddt        j                  gg dt        d      d      }d}|st        nd }t        j                  ||	      5  |j                  d
      j                         }d d d        |j                  d
      }d|j                  d<   d|j                  d<   t        j                  |       y # 1 sw Y   OxY w)Nr5   r   rE   rF   rG   rI   rJ   rY   rW   rM   rH   rH   rK   )r#   rL   )r   r<   r   rZ   r^   r   r]   	set_indexr   locr   )r   ra   r   rb   warningrc   r   s          r   &test_interp_basic_with_non_range_indexz?TestDataFrameInterpolate.test_interp_basic_with_non_range_indexy   s     BFFA&Arvv&!&\	
 8'9-t''s; 	5\\#&224F	5<<$ V V
fh/	5 	5s   # CCc                 t    t               }|j                         }||usJ |}t        j                  ||       y )N)r   r   r   r   r   r   rc   r   s       r   test_interp_emptyz*TestDataFrameInterpolate.test_interp_empty   s8    [!R
fh/r!   c                     t        ddt        j                  dgdddt        j                  gg dd      }d}t        j                  t
        |      5  |j                  d	
       d d d        y # 1 sw Y   y xY w)Nr5   r   rE   rF   rG   rK   rL   rM   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.rW   not_a_methodmethod)r   r<   r   r8   r[   
ValueErrorr   r   r   rb   s      r   test_interp_bad_methodz/TestDataFrameInterpolate.test_interp_bad_method   sq    BFFA&Arvv&!
< 	 ]]:S1 	2NN.N1	2 	2 	2s   A//A8c                    t        ddt        j                  dgdddt        j                  gg dt        d      d	      }|d
   j	                         }t        g dd
      }t        j                  ||       d}t        j                  t        |      5  |d
   j	                  d      }d d d        t        g dd
      }t        j                  ||       y # 1 sw Y   /xY w)NrP   rQ   rS   r5   rE   rF   rG   rI   rJ   rK   rO   )name:The 'downcast' keyword in Series.interpolate is deprecatedrW   inferdowncastr5   r   rH   rE   )
r   r<   r   rZ   r   r   r   r   r]   r^   )r   r   rc   r   rb   s        r   test_interp_comboz*TestDataFrameInterpolate.test_interp_combo   s    3,Arvv&!&\	
 C$$&.S9
vx0J''SA 	;W(('(:F	;,S1
vx0	; 	;s   CC"c                 \   t        ddt        j                  dgdddt        j                  gg dt        d      d	      }d
}d}d}t	        j
                  t        |      5  t        j                  t        |      5  |j                  d       d d d        d d d        t	        j
                  t        |      5  t        j                  t        |      5  |d   j                  d       d d d        d d d        y # 1 sw Y   oxY w# 1 sw Y   sxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)NrP   rQ   rS   r5   rE   rF   rG   rI   rJ   z'downcast must be either None or 'infer'=The 'downcast' keyword in DataFrame.interpolate is deprecatedrz   rW   int64r|   rK   )r   r<   r   rZ   r8   r[   ru   r   r]   r^   r   )r   r   rb   msg2msg3s        r    test_inerpolate_invalid_downcastz9TestDataFrameInterpolate.test_inerpolate_invalid_downcast   s   3,Arvv&!&\	
 8NK]]:S1 	1++MF 101	1 ]]:S1 	6++MF 63##W#56	6 	61 1	1 	16 6	6 	6sH   !D
=C>D
;D"D-D">D	D

DD	D""D+c                    t        ddt        j                  dgt        j                  dddgd      }|j                  d      }d}t	        j
                  t        |      5  |j                  d	
       d d d        y # 1 sw Y   y xY w)Nr5   r   rE   rH   rK   rL   rK   zkInterpolation with NaNs in the index has not been implemented. Try filling those NaNs before interpolating.rW   r=   rs   )r   r<   r   ri   r8   r[   NotImplementedErrorr   rv   s      r   test_interp_nan_idxz,TestDataFrameInterpolate.test_interp_nan_idx   sw    aBFFA.bffaA5FGH\\#; 	 ]].c: 	,NN(N+	, 	, 	,s   !A==Bc           	      (   t        j                  d       t        ddt        j                  ddt        j                  dgg dd      }|j                  d	      }|j                         }|j                  d
d      }d|j                  d<   d|j                  d<   t        j                  ||       |j                  d      }d|j                  d<   d|j                  d<   t        j                  ||       |j                  d      }d|j                  d<   d|j                  d<   t        j                  ||d       |j                  d      }d|j                  d<   d|j                  d<   t        j                  ||       |j                  d      }d|j                  d<   d|j                  d<   t        j                  ||       |j                  d      }d|j                  d<   d|j                  d<   t        j                  ||d       y )Nscipyr5   r   rE   r#      r5   r   rH   r#            rK   rM   rM   
polynomialrt   ordergUUU@rh   gu:@)r   rK   cubicrs   gv:@gb+hZ@nearestF)check_dtype	quadraticg^r@g!g@slineargX ;@zerorQ   )r8   importorskipr   r<   r   ri   r%   r   rj   r   r   r   r   r   rc   s       r   test_interp_variousz,TestDataFrameInterpolate.test_interp_various   s   G$aArvvq18OP
 \\#779|1=)V *W
fh/w/)V *W
fh/y1 V !W
fhEB{3)V *W
fh/y1)V *W
fh/v."V !W
fhEBr!   c           	      <   t        j                  d       t        ddt        j                  ddt        j                  dgg dd      }|j                  d	
      }|j                         }d|j                  d<   d|j                  d<   t        j                  ||       d}t        j                  t        |      5  |j                  d	d      }d d d        t        j                  ||j                  t        j                               |j                  d
      }|j                         }|d   |d<   t        j                  ||       |j                  d
      }d|j                  d<   d|j                  d<   t        j                  ||       y # 1 sw Y   xY w)Nr   r5   r   rE   r#   r   r   r   barycentricrs   rH   )r   rK      )r#   rK   r   rW   r{   )rt   r}   kroghrK   pchip      @)r8   r   r   r<   r   r   r%   rj   r   r   r]   r^   astyper   )r   r   rc   r   rb   	expectedks         r   test_interp_alt_scipyz.TestDataFrameInterpolate.test_interp_alt_scipy  sT   G$aArvvq18OP
 }5779 V V
fh/M''SA 	L^^=7^KF	L
fhoobhh&?@w/GGI	!#	#
fi0w/ V"V
fh/	L 	Ls   <FF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	      }|j                  d
      }|j	                         }d|j
                  d<   d|j
                  d<   d|j
                  d<   |d   j                  t        j                        |d<   t        j                  ||       |j                  dd      }t        j                  ||       |j                  d
      }|j                         }t        j                  ||       y )Nr5   r   rE   rH   r#   r   r   r~   )r   r5   r   rH   rE   axis)rH   r5   )r   r   )r5   rH   r=   r   rt   r   )
r   r<   r   r   r%   rj   r   float64r   r   rn   s       r   test_interp_rowwisez,TestDataFrameInterpolate.test_interp_rowwise  s   q"&&!$q!RVV$FFAq!$rvvq!$
 Q'779TTTqk((4
fh/Qx8
fh/Q'>>#
fh/r!   zaxis_name, axis_numberrowsr   rows_0)idindexindex_0columnsr5   	columns_1c                    dt         j                  dgdt         j                  dgg dd}t        |t         j                        }|j	                  |d	      }|j	                  |d	      }t        j                  ||       y )
Nr   r   r5   r   )r   r#   r   )r   r5   r   r   linearr   )r<   r   r   r   r   r   r   )r   	axis_nameaxis_numberdatar   rc   r   s          r   test_interp_axis_namesz/TestDataFrameInterpolate.test_interp_axis_names7  sh     rvvq>q"&&!nCt2::.Yx@>>{8>D
fh/r!   c                     t        dddt        j                  ddt        j                  t        j                  dg	g dd      }|j                  d	       y )
Nr         ?rP   rE   r   @   )	r5   r   rH   rE   rH   r   r5   r   )r   r5   r   )r   r<   r   r   )r   r   s     r   test_rowwise_altz)TestDataFrameInterpolate.test_rowwise_altH  sF    sCArvvrvvrB/
 	Ar!   check_scipyFTr   )marksc                    t        t        j                  t        j                  dddgt        j                  ddt        j                  dgd      }|j                         }|j	                         }d|j
                  d	<   t        j                  ||       |r*|j                  d
d      }t        j                  ||       y y )Nr   g      ?r   g      r   g      )rH   rL   r   r5   r   )r   r<   r   r   r%   rj   r   r   )r   r   r   rc   r   s        r   test_interp_leading_nansz1TestDataFrameInterpolate.test_interp_leading_nansR  s     662663a0D"&&RT7UV
 !779$V
fh/^^<q^AF!!&(3 r!   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  |j                  d      j                  |       d d d        y # 1 sw Y   y xY w)Nr5   r   rE   )abr   dr#   r   rF   r~   )rK   rL   rM   rN   EvCannot interpolate with all object-dtype columns in the DataFrame. Try setting at least one column to a numeric dtype.rW   rV   r   )r   r<   r   r8   r[   r\   r   r   )r   r   r   rb   s       r   test_interp_raise_on_only_mixedz8TestDataFrameInterpolate.test_interp_raise_on_only_mixedb  s    BFFA&)ffaA&ffbffa+!
) 	
 ]]9C0 	7IIh+++6	7 	7 	7s   7"B""B+c                     t        g dg ddd      }d}t        j                  t        |      5  |j	                          d d d        y # 1 sw Y   y xY w)N)r5   r   rH   )rE   r#   r   r   rV   r   r   rW   )r   r8   r[   r\   r   rv   s      r   %test_interp_raise_on_all_object_dtypez>TestDataFrameInterpolate.test_interp_raise_on_all_object_dtypet  sL    YY7xH) 	
 ]]9C0 	NN	 	 	s   AAc                    t        dddt        j                  dgi      }t        dg di      }|j                         }|j                         }|rMt	        j
                         5  |d   j                  d      }d d d        J t	        j                  ||       n[t	        j                  t        st        nd d	      5  |d   j                  d      }d d d        J t	        j                  ||       |j                         }d
}|r[t	        j                  t        t        f|	      5  |d   j                  dd      }d d d        |J t	        j                  ||       y t	        j                  t        |	      5  |d   j                  dd      }d d d        |J t	        j                  ||j                  d             y # 1 sw Y   SxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   YxY w)Nr   rP   rQ   rS   rO   Tr6   zinplace methodrW   rz   r{   )r7   r}   r   )r   r<   r   r%   r   raises_chained_assignment_errorr   r   r]   r   r^   r   r   )r   r`   r   r   expected_cowrc   return_valuerb   s           r   test_interp_inplacez,TestDataFrameInterpolate.test_interp_inplace  s   c3456c#789wwy335 E%c{66t6DE'''!!&,7++%;& E  &c{66t6D	E
  '''!!&(3J++ 67s W  &c{66tg6VW  '''!!&,7++ME W%c{66tg6VW'''!!&(//'*BC7E E
E EW WW Ws0   %GG.G&G2GG#&G/2G;c                     t        g dt        j                  dddgg dd      }|j                  ddd	
      }|j                  ddd
      }|J t	        j
                  ||       y )NrO   rQ   rR   rS   )rH   r   r   r   )r   r   r   r   r5   F)rt   r   r7   T)r   r<   r   r   r   r   )r   rc   r   r   s       r   test_interp_inplace_rowz0TestDataFrameInterpolate.test_interp_inplace_row  so    &bffc3-D<X
 %%XAu%M))4)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
                  t        |      5  |j                  d       }d d d        t	        j                  |       t	        j
                  t        |      5  |ddg   j                  d       }d d d        t	        j                  ||ddg          y # 1 sw Y   vxY w# 1 sw Y   1xY w)Nr5   r   rE   r~   rP   rQ   rS   rO   rJ   r   r   r   )rP   rQ   rH   rS   r   rW   r|   rL   rN   )	r   r<   r   arrayr   r]   r^   r   r   )r   r   r   rb   rc   s        r   test_interp_ignore_all_goodz4TestDataFrameInterpolate.test_interp_ignore_all_good  s)   BFFA&!3,)	
 XXl)<XXl':XX0	BXX2)D	
 N''SA 	3^^T^2F	3
fh/ ''SA 	?c
^///>F	?
fb#sn5	3 	3
	? 	?s   E
E
EEc                 L   d}t        d|      }t        j                  j                  d      j                  ||f      }t        j                  ||dk  <   t        |||      }|j                  dd	      }|j                  ddd
      }|J t        j                  ||       y )Nr#   z
2014-01-01)startr$   r   r   )r   r   r   r   timer   T)r   rt   r7   )	r	   r<   randomdefault_rngr   r   r   r   r   )r   r$   idxr   r   rc   r   s          r   test_interp_time_inplace_axisz6TestDataFrameInterpolate.test_interp_time_inplace_axis  s    |W=yy$$Q'../AB66TCZ3$?%%1V%<++64+P###
fh/r!   )r   r   )r   r5   c                 d   t        j                  ddd      }t        j                  |      }t        t        j                  |d      t        j
                  d      |      j                  |dz        }|j                  d	|
      }|j                  d	|
      }t        j                  ||       y )Nr   d   i  )
   r5   r   )r   r   r   gGz?)r   r   rt   r   )
r<   linspacesinr   tilearangereindexr   r   r   )r   r   r   xyr   rc   r   s           r   test_interp_string_axisz0TestDataFrameInterpolate.test_interp_string_axis  s     KK3%FF1IG$BIIbM1

'!e)'
$ 	 xi@>>>D
fh/r!   
multiblockrt   )ffillbfillpadc           
         |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      }|rt        j                  |d<   d|d<   |dk7  r|nd} t        ||      |      }d| d}	t        j                  t        |	      5  |j                  ||      }
d d d        t        j                  
|       y # 1 sw Y    xY w)N)r5   r   rP   rQ   rR   rS   g      @r   g       @g      $@rT   g      >@rq   rN   r   r   r   r   z"DataFrame.interpolate with method=z is deprecatedrW   r   )td&mark_array_manager_not_yet_implementedr   r<   r   getattrr   r]   r^   r   r   )r   rA   r   r   rt   r@   r   method2r   rb   rc   s              r   test_interp_fillna_methodsz3TestDataFrameInterpolate.test_interp_fillna_methods  s     4>#955g>3S"&&#63RVVS$73RVVRVVT:
 ffBsGBsG"eO&'72w'T226(.I''SA 	>^^6^=F	>
fh/	> 	>s   C??Dc                     t               }|j                         }|j                  d      }|J t        j                  ||       y )NTr6   r   r%   r   r   r   r   s       r   test_interpolate_empty_dfz2TestDataFrameInterpolate.test_interpolate_empty_df  s>    [779-~~
b(+r!   c                     t        dg di|      }|j                         }|j                  d      }t        dg did      }t        j                  ||       t        j                  ||       y )Nr   r5   NNNrH   r   r   limitr5   r   rQ   NrH   Float64r   )r   any_int_ea_dtyper   r*   rc   r   s         r   test_interpolate_eaz,TestDataFrameInterpolate.test_interpolate_ea  sb    56>NOwwya(c#9:)L
fh/
b$'r!   r   r   Float32zfloat32[pyarrow]pyarrowfloat64[pyarrow]c                     t        dg di|      }|j                         }|j                  d      }t        dg di|      }t        j                  ||       t        j                  ||       y )Nr   r   r   r   r   r   r   )r   r   r   r*   rc   r   s         r   test_interpolate_ea_floatz2TestDataFrameInterpolate.test_interpolate_ea_float  sc     56eDwwya(c#9:%H
fh/
b$'r!   )r   uint64int32int16int8uint32uint16uint8c                     t        j                  d       t        dg di|dz         }|j                  d      }t        dg did	      }t	        j
                  ||       y )
Nr  r   r   z	[pyarrow]r   r   r   r   r  )r8   r   r   r   r   r   )r   r   r   rc   r   s        r   test_interpolate_arrowz/TestDataFrameInterpolate.test_interpolate_arrow"  s\     	I&56ek>QRa(c#9:BTU
fh/r!   N)'__name__
__module____qualname__r    r1   rC   rf   r8   r9   r:   r   rl   ro   rw   r   r   r   r   r   r   parametrizeparamr   r   r   
skip_if_nor   r   r   r   r   r   r   r   r   r   r   r  r   r!   r   r   r      sI   --,(".:` [[%J  00&02$1(6*,%CN0602 [[ FLLx0FLL!	2FLLA+6	
00 [[|v||Dg8NOP447$	"DH06:0 [[5n7UV	0 W	0 [[\D%=9[[X'@A0 B :04,( [[FLL+=2==3KLFLL+=2==3KL		
(( [[R0	0r!   r   )numpyr<   r8   pandas._configr   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r	   pandas._testing_testingr   r   r  r!   r   <module>r      s5      - 0 0 ) )  Y0 Y0r!   