
    (ph<                         S SK r S SKrS SKrS SKJr  S SKJr  S SKrS SK	J
r
Jr  S SKJr  S SKJs  Jr  S SKJs  Jr  S SKrS SKr\R0                  S:  rS r " S S	5      r " S
 S5      r " S S5      rg)    N)suppress_warnings)raises)xp_assert_closeassert_almost_equal)check_free_memoryl        c                     [         R                  R                  [         R                  R                  [         R                  R	                  [
        5      5      SU 5      $ )Ndata)ospathjoinabspathdirname__file__)basenames    X/var/www/html/venv/lib/python3.13/site-packages/scipy/interpolate/tests/test_interpnd.py	data_filer      s8    77<<(AB* *    c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS r\R                  R                   \R                  R"                  \R                  R%                  \SS9S 5       5       5       rSrg)TestLinearNDInterpolation   c                     [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9n[
        R                  " X5      " U5      n[        X#5        g )Nr   r   )      r   )r         ?)r   r   )      ?333333?dtyper   nparrayfloat64arangeshapeinterpndLinearNDInterpolatorr   selfxyyis       r   test_smoketest(TestLinearNDInterpolation.test_smoketest   sS    HHN::'IIaggaj

3**103A"r   c                 <   [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9n[
        R                  " US S 2S4   US S 2S4   4U5      " US S 2S4   US S 2S4   5      n[        X#5        g )Nr   r   r      r    r(   s       r   test_smoketest_alternate2TestLinearNDInterpolation.test_smoketest_alternate#   s|    HHN::'IIaggaj

3**AacFAacF+;Q?!A#!A#OA"r   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " X5      " U5      n[        X#5        g Nr   r   r                 @r    r(   s       r   test_complex_smoketest0TestLinearNDInterpolation.test_complex_smoketest,   s`    HHN::'IIaggaj

31H**103A"r   c                 ^   [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " U5      n[        R                  " X25      nU" U5      n[        X%5        UR                  UL d   eg r4   )r!   r"   r#   r$   r%   qhullDelaunayr&   r'   r   tri)r)   r*   r+   r;   interpolatorr,   s         r   test_tri_input(TestLinearNDInterpolation.test_tri_input6   s    HHN::'IIaggaj

31HnnQ44S<!_A"3&&&r   c                 F  ^ [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9mU4S jn[         R                  " [         R                  " SSS5      S S 2S 4   [         R                  " SSS5      S S S 24   5      u  p4UR                  5       nUR                  5       n[         R                  " X4/5      R                  R                  5       n[        R                  " UT5      " U5      n[        Xb" X45      5        g )N)r   r   r0   r0   r0   r0   r   r   g      ?g       @g      g      @c                    > X-   S:*  nU) nX   nX   nX   nX   nSU -  nT	S   SU-
  U-
  -  T	S   U-  -   T	S   U-  -   X'   T	S   Xg-   S-
  -  T	S   SU-
  -  -   T	S   SU-
  -  -   X'   U$ )Nr0   r          )
r*   r+   t1t2x1y1x2y2zvaluess
            r   ip1TestLinearNDInterpolation.test_square.<locals>.ipQ   s    %1*BBBBBB!AAYB,ay|$ay|$AE AY!,ay!b&)*ay!b&)*AE Hr   r   r0      r!   r"   r#   broadcast_arrayslinspaceravelTcopyr&   r'   r   )r)   pointsrP   xxyyxizirO   s          @r   test_square%TestLinearNDInterpolation.test_squareC   s     6bjjI+2::>	* $$R[[Ar%:1T6%B%'[[Ar%:46%BDXXZXXZXXrh!!&&(**66:2>B2
+r   c                     [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9n[
        R                  " XSS9" U5      n[        X#5        g )Nr   )rb   )rb      )rc   rc   )g      @rE   r   r   Trescaler    r(   s       r   test_smoketest_rescale0TestLinearNDInterpolation.test_smoketest_rescalep   sU    HHB::'IIaggaj

3**1>qAA"r   c                 `   [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[         R                  " [         R                  " SSS5      S S 2S 4   [         R                  " SSS5      S S S 24   5      u  p4UR                  5       nUR                  5       n[         R                  " X4/5      R                  R                  5       n[        R                  " X5      " U5      n[        R                  " XSS	9" U5      n[        Xg5        g )
N)r   )r   d   )
   ri   )rj   r   r   rC   r   rj   rR   ri   Trd   rS   )r)   rY   rO   rZ   r[   r\   r]   zi_rescaleds           r   test_square_rescale-TestLinearNDInterpolation.test_square_rescaley   s     <BJJO+2::>$$R[[B%;AdF%C%'[[C%<T!V%DFXXZXXZXXrh!!&&(**6:2>33F " 	B,r   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " U5      n[        R                  " UR                  U5      " U5      n[        R                  " UR                  USS9" U5      n[        XE5        g Nra   r   r   r5   Trd   )r!   r"   r#   r$   r%   r9   r:   r&   r'   rY   r   r)   r*   r+   r;   r,   
yi_rescales         r   test_tripoints_input_rescale6TestLinearNDInterpolation.test_tripoints_input_rescale   s    HH?::'IIaggaj

31HnnQ**3::q9!<223::q!
B+r   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " U5      nSn[        R                  " [        US9   [        R                  " X2SS9" U5        S S S 5        g ! , (       d  f       g = f	Nra   r   r   r5   zORescaling is not supported when passing a Delaunay triangulation as ``points``.)matchTrd   )r!   r"   r#   r$   r%   r9   r:   pytestr   
ValueErrorr&   r'   r)   r*   r+   r;   rv   s        r   test_tri_input_rescale0TestLinearNDInterpolation.test_tri_input_rescale   s    HH?::'IIaggaj

31HnnQ9]]:U3))#$?B 433   B44
Cc                    [         R                  R                  S5        [         R                  R                  SS5      n[         R                  R                  S5      S[         R                  R                  S5      -  -   n[        R
                  " X5      n[        R                  " [        R                  " U5      5      n[        U" SS5      U" SS5      5        g N     rF   y              ?r   )
r!   randomseedrandr&   r'   pickleloadsdumpsr   )r)   r*   r+   rP   ip2s        r   test_pickle%TestLinearNDInterpolation.test_pickle   s    
		tIINN2q!IINN2BIINN2$6!66**10ll6<<+,BsCL#c3-8r   zit fails on 32-bit)reasonc           	         [        S5        [        R                  " SSS5      n[        R                  " SSS5      n[        R                  " X5      u  p4S n[        R                  " UR                  5       UR                  5       45      R                  nX4-  R                  5       n[        R                  " Xg5      n[        R                  " UU[        SS5      [        SS5      4S9n	[        R                  " UU[        SS5      [        SS5      4S9n
[        R                  " UU[        SS5      [        SS5      4S9n[        R                  " UU[        SS5      [        SS5      4S9nU	R                  5         U
R                  5         UR                  5         UR                  5         U	R                  5         U
R                  5         UR                  5         UR                  5         g )Ni'  r   ih  rj   c                 D    [         R                  X4   u  p4U " X445      nU$ N)r!   mgrid)r<   
slice_rows
slice_colsgrid_xgrid_yress         r   	do_interp;TestLinearNDInterpolation.test_threading.<locals>.do_interp   s'    XXj&<=NF/0CJr   i4  )targetargs)r   r!   r$   meshgridvstackrV   rW   r&   r'   	threadingThreadslicestartr   )r)   r_ticks	phi_ticksr_gridphi_gridr   rY   rO   r<   worker_thread_1worker_thread_2worker_thread_3worker_thread_4s                r   test_threading(TestLinearNDInterpolation.test_threading   s    	% ))AtR(IIar*	;;w:	
 FLLNHNN,<=>@@#**,44VD#**aa?A $**dD 15D>BD $**adD0ABD $**dD 15t3DEG 	r   rG   N)__name__
__module____qualname____firstlineno__r-   r1   r6   r=   r^   rf   rl   rr   rz   r   rw   markslowthread_unsafeskipif	_IS_32BITr   __static_attributes__rG   r   r   r   r      s    ###'+,Z#-$,C	9 [[[[[[	*>?' @  'r   r   c                        \ rS rSrS rS rSrg)TestEstimateGradients2DGlobal   c           	         [         R                  " / SQ[        S9n[        R                  " U5      nS S4S S4S S4S	 S
4/n[        U5       Hw  u  nu  pVU" US S 2S4   US S 2S4   5      n[        R                  " X'SS9nUR                  S:X  d   e[        U[         R                  " U5      S S S 24   SU-  -   SSSU-  S9  My     g )N)r   )r   rF   rB   )r0   rF   r   g      ?g333333?g?r   c                     SU -  S-   $ Nr   r0   rG   r*   r+   s     r   <lambda>>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>   s    !A#'r   r   c                     SU -   $ Nr   rG   r   s     r   r   r      s    !a%r   rB   c                     SU-   $ NrG   r   s     r   r   r      s    "q&r   r@   c                     SSU -  -   SU-  -   $ NrE   L,@rG   r   s     r   r   r      s    !ac'E!G+r   )rE   r   r   r0   ư>)tol)   rF   gh㈵>zitem %d)rtolatolerr_msg)
r!   r"   floatr9   r:   	enumerater&   estimate_gradients_2d_globalr%   r   )	r)   r*   r;   funcsjfuncgradrN   dzs	            r   r-   ,TestEstimateGradients2DGlobal.test_smoketest   s    HH @GLNnnQ
 "6*( &)+Z8	
  )/OA|QqsVQqsV$A66s4HB88v%%%BtAv 62 =!%D)a-I  0r   c                 x   [         R                  " [        S5      5      n[         R                  R	                  UR
                  S   5      n[        R                  " U5      n[        5        nUR                  [        R                  S5        [        R                  " X2SS9  S S S 5        g ! , (       d  f       g = f)Nzestimate_gradients_hang.npyr   z$Gradient estimation did not converger0   )maxiter)r!   loadr   r   r   r%   r9   r:   r   filterr&   GradientEstimationWarningr   )r)   rY   rO   r;   sups        r   test_regression_23592TestEstimateGradients2DGlobal.test_regression_2359   s}     #@ABQ0nnV$  CJJx99=?11#qI !  s   ,6B++
B9rG   N)r   r   r   r   r-   r   r   rG   r   r   r   r      s    I,Jr   r   c                       \ rS rSr  SS jrS rS rS rS rS r	\
R                  R                  S	5      S
 5       rS rS rS rSrg)TestCloughTocher2DInterpolatori  Nc           	         [         R                  R                  S5      nUc  [         R                  " / SQ[        S9nU(       d,  [
        R                  " X!" US S 2S4   US S 2S4   5      SUS9nO<[
        R                  " US S 2S4   US S 2S4   4U" US S 2S4   US S 2S4   5      SUS9nUR                  SS	5      n	U(       d	  U" U	5      n
OU" U	S S 2S4   U	S S 2S4   5      n
U" U	S S 2S4   U	S S 2S4   5      n [        X40 UD6  g ! [         a/    [        S
[        X-
  5      5        [        SUR                  5        e f = f)Nr   )r   r@   rB   rA   r   r   )r   g?r   r   r0   r   )r   re   2   rF   z_check_accuracy: abs(a-b):zip.grad:)r!   r   RandomStater"   r   r&   CloughTocher2DInterpolatorr   r   AssertionErrorprintabsr   )r)   r   r*   r   	alternatere   kwrngrP   pabs               r   _check_accuracy.TestCloughTocher2DInterpolator._check_accuracy  sJ   ii##D)9 &  %&A
 44QQqsVQqsV8L9=wPB 44a!fa!f5E59!AaC&!AaC&5I9=wPB HHRO1A1QqS61QqS6"A1Q31Q3 	A'B' 	.AE
;*bgg&	s   >D 9Ec                     S S S S /n[        U5       Ha  u  p#U R                  USSSSU-  S9  U R                  USSSS	S
U-  S9  U R                  USSSSU-  S	S9  U R                  USSSS	S	SU-  S9  Mc     g )Nc                     SU -  S-   $ r   rG   r   s     r   r   FTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>(  s    1qr   c                     SU -   $ r   rG   r   s     r   r   r   )  s    Qr   c                     SU-   $ r   rG   r   s     r   r   r   *  s    ar   c                     SSU -  -   SU-  -   $ r   rG   r   s     r   r   r   +  s    QqS57*r   gvIh%<=gHz>Function %dr   r   r   r   TzFunction (alternate) %d)r   r   r   r   r   zFunction (rescaled) %dr   r   r   r   re   z!Function (alternate, rescaled) %d)r   r   r   r   re   r   r   r   r)   r   r   r   s       r   test_linear_smoketest4TestCloughTocher2DInterpolator.test_linear_smoketest%  s     !*	
 !'GA  5t$)6): ! <  5t$+/)BQ)F ! H   5t$)AA)Et ! U  5t$+/)Lq)P ! R (r   c           
          S S S S /n[        U5       H2  u  p#U R                  USSSSU-  S	9  U R                  USSSSU-  S
S9  M4     g )Nc                     U S-  $ NrF   rG   r   s     r   r   ITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>>      Ar   c                     US-  $ r   rG   r   s     r   r   r   ?  r   r   c                     U S-  US-  -
  $ r   rG   r   s     r   r   r   @      A1r   c                 
    X-  $ r   rG   r   s     r   r   r   A      r   &.>g)\(?r   r   r   Tr   r   r   s       r   test_quadratic_smoketest7TestCloughTocher2DInterpolator.test_quadratic_smoketest;  ss     $	
 !'GA  4d)6): ! <  4d)6):D ! J (r   c                 8   [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " U5      n[        R                  " X25      " U5      n[        X$5        g r4   )
r!   r"   r#   r$   r%   r9   r:   r&   r   r   )r)   r*   r+   r;   r,   s        r   r=   -TestCloughTocher2DInterpolator.test_tri_inputJ  sn    HHN::'IIaggaj

31HnnQ008;A"r   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " U5      nSn[        R                  " [        US9   [        R                  " X2SS9" U5        S S S 5        g ! , (       d  f       g = fru   )r!   r"   r#   r$   r%   r9   r:   rw   r   rx   r&   r   ry   s        r   rz   5TestCloughTocher2DInterpolator.test_tri_input_rescaleU  s    HH?::'IIaggaj

31HnnQ9]]:U3//EaH 433r|   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSU-  -
  n[
        R                  " U5      n[        R                  " UR                  U5      " U5      n[        R                  " UR                  USS9" U5      n[        XE5        g ro   )r!   r"   r#   r$   r%   r9   r:   r&   r   rY   r   rp   s         r   rr   ;TestCloughTocher2DInterpolator.test_tripoints_input_rescaleb  s    HH?::'IIaggaj

31HnnQ00Q?B88QPTUVWX
B+r   rc   c                 X   S S S S S /n[         R                  R                  S5      n[         R                  [         R                  " / SQ[
        S9UR                  S	S
5      4   n[        U5       H2  u  pEU R                  XSSSSSU-  S9  U R                  XSSSSSU-  SS9  M4     g )Nc                     U S-  $ r   rG   r   s     r   r   ;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>r  r   r   c                     US-  $ r   rG   r   s     r   r   r  s  r   r   c                     U S-  US-  -
  $ r   rG   r   s     r   r   r  t  r  r   c                 
    X-  $ r   rG   r   s     r   r   r  u  r  r   c                     [         R                  " S[         R                  -  U -  5      [         R                  " S[         R                  -  U-  5      -  $ r   )r!   cospisinr   s     r   r   r  v  s3    "%%	*266!BEE'!)+<<r   i  )r   r@   rB   rA   r   i  rF   r  g{Gzt?g{Gz?r   )r*   r   r   r   r   T)r*   r   r   r   r   re   )	r!   r   r   r_r"   r   r   r   r   )r)   r   r   gridr   r   s         r   
test_dense)TestCloughTocher2DInterpolator.test_densen  s     $<
 ii##D)uuRXX:%HXXeQ'( ) !'GA  4d)6): ! <  4d)6):D ! J (r   c                     [         R                  R                  SS5      n[         R                  R                  S5      n[        [        [
        R                  X5        g )Nr   rE   )r!   r   randnassert_raisesrx   r&   r   )r)   r*   r+   s      r   test_wrong_ndim.TestCloughTocher2DInterpolator.test_wrong_ndim  s:    IIOOB"IIOOBj("E"EqLr   c                 f   [         R                  R                  S5      nUR                  SS5      nUR                  S5      SUR                  S5      -  -   n[        R
                  " X#5      n[        R                  " [        R                  " U5      5      n[        U" SS5      U" SS5      5        g r~   )
r!   r   r   r   r&   r   r   r   r   r   )r)   r   r*   r+   rP   r   s         r   r   *TestCloughTocher2DInterpolator.test_pickle  s    ii##D)HHROHHRL2chhrl?*006ll6<<+,BsCL#c3-8r   c                 L   [         R                  " SSS[         R                  " S5      S-  4/5      n[         R                  " / SQ5      n[        R                  " X5      nSUR
                  S'   S	n[         R                  " S[         R                  " U5      -  S[         R                  " U5      -  /5      n[         R                  " S[         R                  " [         R                  S-  U-
  5      -  S[         R                  " [         R                  S-  U-
  5      -  /5      nU" U5      nU" U5      n[        Xx5        [         R                  R                  S
5      n	U	R                  SS5      n
U	R                  S5      nU
R                  UR                  5      R                  US S S 24   -   nU
R                  U5      U-   nU
R                  U5      U-   n[        R                  " X5      nSUR
                  S'   U" U5      nU" U5      n[        X5        [        X5        g )Nr   rB   r   rE   rF   )r0   r   r   r   .r   r0   )r!   r"   sqrtr&   r   r   r  r  r  r   r   r   r  dotrW   )r)   rY   rO   rP   alphap1p2v1v2r   Ar   w1w2s                 r   test_boundary_tri_symmetry9TestCloughTocher2DInterpolator.test_boundary_tri_symmetry  s   
 66CA+>?@)$00@  XXsRVVE]*C"&&-,?@AXXsRVVBEE!GeO44cBFF2557U?<S6STUVV ii##A&IIaOIIaLvxx""QtAvY.UU2Y]UU2Y]00@VVr   rG   )Nr   FF)r   r   r   r   r   r   r  r=   rz   rr   rw   r   	fail_slowr  r  r   r-  r   rG   r   r   r   r     s_    @E %BR,J	#I
, [[1J J(M
	9% r   r   )r
   sysnumpyr!   numpy.testingr   rw   r   r  scipy._lib._array_apir   r   scipy._lib._testutilsr   scipy.interpolate._interpndinterpolate	_interpndr&   scipy.spatial._qhullspatial_qhullr9   r   r   maxsizer   r   r   r   r   rG   r   r   <module>r<     sh    	 
  + *  F 3 . . $ $  [[5 	*
A AH"J "JJv  v r   