
    (ph                        S SK r S SKJr  S SKrS SKJr  S SKrS SKJr	  S SK
JrJrJrJr  S SKJrJrJrJrJrJrJr  S SKJrJrJrJr  S SKJrJrJrJrJ r J!r!J"r"J#r#J$r$  S S	K%J&r&  S S
K'J(r(   " S S5      r) " S S5      r* " S S5      r+ " S S5      r, " S S5      r- " S S5      r. " S S5      r/SS jr0 " S S5      r1g)    N)Lock)suppress_warnings)raises)xp_assert_equalxp_assert_closeassert_almost_equalassert_array_almost_equal)arraydifflinspacemeshgridonespishape)bisplrepbisplevsplrepspalde)	UnivariateSplineLSQUnivariateSplineInterpolatedUnivariateSplineLSQBivariateSplineSmoothBivariateSplineRectBivariateSplineLSQSphereBivariateSplineSmoothSphereBivariateSplineRectSphereBivariateSpline)_run_concurrent_barrier)make_splrepc                       \ 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S rS rS rS rS rS rS rS rS rS rS rS r\R6                  R8                  S 5       rS rSrg)TestUnivariateSpline   c                    / SQn/ SQn[        XSS9n[        UR                  5       SS/5        [        UR                  5       SS/5        [	        UR                  5       5      S:  d   e[        U" / SQ5      / SQ5        [        XS[        U5      S9n[        UR                  SS	 UR                  5       S
S9  [        UR                  UR                  5       S
S9  g )N         )r'   r'   r'   r%   kr'   g|=r%         ?r&   )r)   sV瞯<atol)r   r	   	get_knots
get_coeffsabsget_residualr   lenr   tc)selfxylutspls        X/var/www/html/venv/lib/python3.13/site-packages/scipy/interpolate/tests/test_fitpack2.pytest_linear_constant)TestUnivariateSpline.test_linear_constant   s    qQ'!#--/Aq6:!#.."2QF;3##%&...!#k"2I>!!s1v.aS]]_5As~~/e<    c                 0   / SQn/ SQn[        XSS9nSn[        U5      [        U" U5      5      :X  d   e[        U5      [        U" USS95      :X  d   e/ SQn[        U5      [        U" U5      5      :X  d   e[        U5      [        U" USS95      :X  d   eg )Nr$   r   r&      r%   r(   r&   )nu)r+   r&         @)r   r   )r8   r9   r:   r;   args        r=   test_preserve_shape(TestUnivariateSpline.test_preserve_shape&   s    qq)SzU3s8_,,,SzU3sq>2222SzU3s8_,,,SzU3sq>2222r@   c                    / SQn/ SQn[        XSS9n[        UR                  5       SS/5        [        UR                  5       SS/5        [	        UR                  5       5      S:  d   e[        U" / S	Q5      / S
Q5        g )Nr$   rB   r%   r(   r'   r   rC   r.   r*   )r   r%   r&   )r   r	   r1   r2   r3   r4   )r8   r9   r:   r;   s       r=   test_linear_1d#TestUnivariateSpline.test_linear_1d1   sk    qQ'!#--/1Q%8!#.."2Aa593##%&...!#i.9r@   c                 f     " S S[         5      nU" / SQ/ SQSS9n[        U" SS/5      S	S	/5        g )
Nc                       \ rS rSrS rSrg)9TestUnivariateSpline.test_subclassing.<locals>.ZeroSpline=   c                     S[        U5      -  $ )Nr   )r
   )r8   r9   s     r=   __call__BTestUnivariateSpline.test_subclassing.<locals>.ZeroSpline.__call__>   s    qz!r@    N)__name__
__module____qualname____firstlineno__rQ   __static_attributes__rS   r@   r=   
ZeroSplinerN   =   s    "r@   rY   r%   r&   r'   rC      )r'   r&   r'   r&   r'   r&   r(   r+   rE           )r   r   )r8   rY   sps      r=   test_subclassing%TestUnivariateSpline.test_subclassing:   s5    	") 	" [A6C:R1r@   c                 ^    / SQn/ SQn[        XSS9n[        U" / 5      [        / 5      5        g )Nr%   r'   r[      	   r   rC   rc         r'   r(   )r   r   r
   r8   r9   r:   r<   s       r=   test_empty_input%TestUnivariateSpline.test_empty_inputD   s*    qq)Br+r@   c                 b    / SQn/ SQn[        XSS9n[        UR                  5       S   S5        g )Nra   rd   r'   r(   r   g7ã?)r   r   rootsrg   s       r=   
test_rootsTestUnivariateSpline.test_rootsK   s-    qq)CIIKN,=>r@   c                     [         R                  " SS[         R                  -  S5      n[         R                  " U5      n[	        XSS9n[        UR                  5       5      S:X  d   eg )Nr   2   i  r,   )npr   r   cosr   r5   rk   rg   s       r=   test_roots_length&TestUnivariateSpline.test_roots_lengthQ   sN    KK2:t,FF1Iqq)399;2%%%r@   c                 b    / SQn/ SQn[        XSS9n[        UR                  S5      / SQ5        g )Nra   rd   r'   r(         @)g;@gpZ<o?gOmǿg      ?)r   r   derivativesrg   s       r=   test_derivatives%TestUnivariateSpline.test_derivativesW   s/    qq)COOC0F	Hr@   c                     [         R                  " S5      nUS-  SUS-  -  -   n[        XSS9n[        SU5      n[	        U/ SQSS	9  [        XSSS
9n[	        UR                  S5      USS	9  g )N   r'          @r&   r   rp   )g     F@g     C@g      6@      @r.   r/   )r,   r)   )rq   aranger   r   r   r   rw   )r8   r9   r:   tckdersr<   s         r=   test_derivatives_2'TestUnivariateSpline.test_derivatives_2^   sx    IIaLqD2ad7NQQa~ # #		$
 qqA.*"	$r@   c                 r    / SQn/ SQn/ SQn[        XUSS9n[        / SQ5      n[        U" / SQ5      USS	9  g)
zRegression test for #1375.)      g<&g_g@7ѿg46	<ƿgBϠr\   gBϠ?g46	<?g@7?g_?g<&?      ?)r   1\_#?~a?w?5??0ms?gx?r   r   r   r   r   r   )   mBo!@u)	~@e?֭z@b@v5|@geSs@r   r   r   r   r   r   N)r9   r:   wr,   )gJdv?gc?g=?gt?皙?      ??gGz?gMb@?r/   )r   r
   r   )r8   r9   r:   r   r<   desireds         r=   test_resize_regression+TestUnivariateSpline.test_resize_regressionn   sD     15HI12G$Gr@   c                 ,   [         R                  " S[        S9nUS-  n[        SSS5      nUR	                  5       nSU[         R
                  " US:  US	:  5      '   UR	                  5       nUS   XUUS   :  '   US
   XUUS
   :  '   [        [        4 H  nU" XS9nS H.  n[        U" X8S9US-  SS9  [        U" XUS9" U5      US-  SS9  M0     S H.  n[        U" X8S9US-  SS9  [        U" XUS9" U5      US-  SS9  M0     S H  n[        [        Xs40 [        US9D6  M     S H.  n[        U" X8S9US-  SS9  [        U" XUS9" U5      US-  SS9  M0     M     WR                  5       SS n	[        XU	5      n[        U" USS9US-  SS9  [        U" USS9US-  SS9  [        [        Xs40 [        SS9D6  [        U" USS9US-  SS9  S HC  n[        X5      n[        [        Xs40 [        US9D6  [        [        [        40 [        XUS9D6  ME     g )Nr[   dtyper'      d   r   r\         @r-   )r9   r:   )r   extrapolate)extgؗҜ<r/   )r%   zeros)r&   raise)r'   constgؗҬ<rC   r%   r&   )r-   unknown)r9   r:   r   )rq   r~   floatr   copy
logical_orr   r   r   assert_raises
ValueErrordictr1   r   )
r8   r9   r:   xpxp_zerosxp_clipclsr<   r   r6   s
             r=   test_out_of_range_regression1TestUnivariateSpline.test_out_of_range_regression~   s*   IIau%qDb"c"779@Ax"}hm<='')"#A$!A$#$R5!B% $&BCC-C)B 0"a%eDAc 22 6AEJ * $B 0(A+EJAc 22 6!%P $ $j#CTc]C $#B 0'1*5IAc 22 6
O $ D MMOAa !!*BAAE:BA!%@j#9Ta[9BA
? #C"1(C*c?#?*&6 /Q-/ #r@   c           	          [         R                  " S5      S-  n[         R                  " S5      S-  n[         R                  " SSS5      nSn[        [        [
        XUUS9  g )Nr   r   r   c   
   )r-   e   bbox)rq   r~   r   r   r   r   )r8   xsysknotsr   s        r=   test_lsq_fpchec$TestUnivariateSpline.test_lsq_fpchec   sQ    YYs^b YYs^b Ar2&j"5ru	!r@   c                 b   [         R                  " SSS5      S-  n[         R                  " U5      n[        XSS9nUR	                  S5      R                  S5      n[        U" S5      U" S5      5        UR	                  S5      n[        U" S5      U" S	5      -
  UR                  S	S5      5        g )
Nr   r%   F   r'   rp   r&   333333?g333333?皙?)rq   r   rr   r   antiderivative
derivativer   integral)r8   r9   r:   r<   spl2s        r=   "test_derivative_and_antiderivative7TestUnivariateSpline.test_derivative_and_antiderivative   s    KK1b!1$FF1Iqq)!!!$//2C$s),!!!$S	DI-S#.	0r@   c                     / SQn/ SQn[        XSSS9n/ SQn[        UR                  5       " U5      [        R                  " U5      SS9  g )	Nr%   r&   rC      g      !@)r   皙??rE   r[   r   r'   )r   r)   )r-   r   g      rc   g      #@r   r.   r/   )r   r   r   rq   
zeros_like)r8   x_valuesy_valuesfr9   s        r=   test_derivative_extrapolation2TestUnivariateSpline.test_derivative_extrapolation   sA     %*XWB%q)2==+;%Hr@   c                     [         R                  " SSS5      n[        S5       H9  n[        XSUS9nS H%  u  pE[	        UR                  XE5      5      S:  a  M%   e   M;     g )	Nr\   r   rb   rC   r   )r,   r   ))r%   r%   )r%   r[   )r&   r[   r   r   )r   )r   r-   r.   )rq   r   ranger   r3   r   )r8   r9   r   r   abs         r=   test_integral_out_of_bounds0TestUnivariateSpline.test_integral_out_of_bounds   s\     KKB"8C 4A61::a+,u4446 r@   c                    [         R                  " S[        S9nUS-  n[         R                  " U5      n[	        XSS9nUR                  5       SS nUS   n[         R                  [         R                  [         R                  * 4 H  nXrS'   [        [        [        40 [        XSS9D6  [        [        [        40 [        XSS9D6  [        [        [        40 [        XUSS	9D6  XbS'   XsS'   [        [        [        40 [        XUSS
9D6  [        [        [        40 [        XUSS
9D6  [        [        [        40 [        XXSSS9D6  M     g )Nr   r   r'   Tcheck_finiterC   r-   r9   r:   r   )r9   r:   r6   r   )r9   r:   r   r   r9   r:   r6   r   r   )rq   r~   r   	ones_liker   r1   naninfr   r   r   r   r   )r8   r9   r:   r   r<   r6   y_endzs           r=   test_nanTestUnivariateSpline.test_nan   s5   IIb&qDLLOq$7MMOAa "&&"&&266'*AbE*&6 9Q$79*&B 9Q$79*&9 >Qqt<>bEbE*&6 >Qqt<>*&B >Qqt<>*&9 CQqDAC +r@   c                    [         R                  " S[        S9nUS-  n[         R                  " S[        S9nUS   US'   US-  n[         R                  " U5      n[	        XSS9nUR                  5       SS n[	        X4USSS	9  [        X4XuSS
9  [        [        [        40 [        X4SSS9D6  [        [        [        40 [        X4SS9D6  g )Nr   r   r'   r   r%   Tr   rC   )r9   r:   r   r,   r   r   )r9   r:   r,   r   r   )rq   r~   r   r   r   r1   r   r   r   r   r   r8   xxyyr9   r:   r   r<   r6   s           r=   test_strictly_increasing_x/TestUnivariateSpline.test_strictly_increasing_x   s    
 YYr'UIIb&t!qDLLOrD9MMOAa 1Q!$?aTBj"2 	:148	:j"> 	5d3	5r@   c                    [         R                  " S[        S9nUS-  n[         R                  " S[        S9nUS   S-
  US'   US-  n[         R                  " U5      n[	        XSS9nUR                  5       SS	 n[        [        [        40 [        X4SS
9D6  [        [        [        40 [        X4SS
9D6  [        [        [        40 [        X4XuSS9D6  g )Nr   r   r'   r   r   r%   Tr   rC   r   r   )rq   r~   r   r   r   r1   r   r   r   r   r   r   s           r=   test_increasing_x&TestUnivariateSpline.test_increasing_x   s    YYr'UIIb&tcz!qDLLOrD9MMOAa j"2 	5d3	5j"> 	5d3	5j"5 	?1=	?r@   c                 F   [        [        5       n/ SQn/ SQn[        X#5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n/ SQn/ SQn/ SQn[        X#US9  S S S 5        S[        UR                  5      ;   d   e[        [        5       nSn[        WWUS	9  S S S 5        S
[        UR                  5      ;   d   e[        [        5       n[        WWSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[        WWSS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GN0= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f)Nr   r   r   r   rE   !x and y should have a same lengthr   r   r   rE   gffffff@r   r   r   r   r   %x, y, and w should have a same lengthr-   r   bbox shape should be (2,)r   r(   k should be 1 <= k <= 5r   rp   s should be s >= 0.0)r   r   r   strvaluer8   infor   r   w_valuesr   s         r=   (test_invalid_input_for_univariate_spline=TestUnivariateSpline.test_invalid_input_for_univariate_spline  sB   :&$(H+HX0 ' 3c$**oEEE:&$(H0H,HX8<	 '
 7#djj/III:&$DXxd; ' +c$**o===:&$Xx15 '(C

O;;;:&$Xx48 '%TZZ8881 '& '& '&
 '& '&s;   EEE0FF
E
E-0
E>
F
F c                    [        [        5       n/ SQn/ SQn[        X#5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n/ SQn/ SQn/ SQn[        X#US9  S S S 5        S[        UR                  5      ;   d   e[        [        5       nSn[        WWUS	9  S S S 5        S
[        UR                  5      ;   d   e[        [        5       n[        WWSS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N]= f)Nr   r   r   r   r   r   r   r-   r   r   r   r(   r   )r   r   r   r   r   r   s         r=   5test_invalid_input_for_interpolated_univariate_splineJTestUnivariateSpline.test_invalid_input_for_interpolated_univariate_spline-  s   :&$(H+H(< ' 3c$**oEEE:&$(H0H,H(xH	 '
 7#djj/III:&$D(8$G ' +c$**o===:&$(8qA '(C

O;;;) '& '& '&
 '&s/   DD D1E
D 
D.1
D?
Ec                 ^   / SQn/ SQn[        XSS9nUR                  5       SS n[        [        5       n/ SQn/ SQn[	        XU5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n/ SQn/ SQn/ S	Qn[	        XXFS
9  S S S 5        S[        UR                  5      ;   d   eSn[        [        US9 nSn[	        XXHS9  S S S 5        [        [        5       nSn[	        XXHS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        XUSS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f)Nr   r   Tr   r'   rC   r   r   )r   r   r   r   r   r   z;Interior knots t must satisfy Schoenberg-Whitney conditions)match)r   r   r-   r   r   r(   r   )r   r1   r   r   r   r   r   )	r8   r   r   r<   t_valuesr   r   messager   s	            r=   ,test_invalid_input_for_lsq_univariate_splineATestUnivariateSpline.test_invalid_input_for_lsq_univariate_splineE  s`   $,xE==?1Q':&$(H+HH= ' 3c$**oEEE:&$(H0H+HHI	 '
 7#djj/IIIO:W5DHH 6 :&$DHH ' +c$**o===:&$HB '(C

O;;;3 '& '& 65 '&
 '&s;   E<E+E<*F)F
E(+
E9<
F

F
F,c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " SS/5      n[        XUUS9n[        UR                  5       UR                  5       UR                  5       UR                  5       S9n[	        U" / SQ5      U" / SQ5      5        g )Nr   r   )r   r   r   r   r   r  r   )r9   r:   r   r   r   )rq   r
   r   tolistr   )r8   r   r   r   r   spl1r   s          r=   test_array_like_input*TestUnivariateSpline.test_array_like_inputg  s    88-.88568856xxs$((%)+  (//"3x7H"*//"3$++-I 	2323	5r@   c                     [        S5      n/ SQn[        5        nUR                  [        S5      n[	        XSS9  [        U5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nm   )mr\   r\   r\   r\   r\   %@r\         &@r\   r\   r\   r  r\   r\   r\   r\   r\   r\   r  r\   r\   r\   r  r\   r\   r\   r  r\   r\   r\         %@r\   r\   r\   ffffff%@r\   r\   r\   r  r\   r\   r\   r\   r\   r\   r  r\   r\   r  r\   r\   r\   333333%@r\   r\   r\   r  r\   r\   r  r\   r\   r  r\   r\   g      '@r\   r\   r\   r  r\   r\   r  r\   r\   r  r\   r\   皙%@r\   r\   r\   r  r\   r\   r  r\   r\   r\   $@r\   r\   r  r\   r\   r  r\   r\   r\   r  r\   r\   r\   r  r\   r\   r\   r  r\   a#  
The maximal number of iterations maxit \(set to 20 by the program\)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs\(fp-s\)/s < tol.r%   r(   )r   r   recordUserWarningr   r5   )r8   r9   r:   suprs        r=   test_fpknot_oob_crash*TestUnivariateSpline.test_fpknot_oob_crashv  s^     #J;  C

LMA QQ'q6Q;; !  s   2A
A$c                     [         R                  " S[        S9nUS-  n[         R                  " S[        S9nUS   US'   [        XSS9nS n[	        S	XTU5        g )
Nr   r   r'   r   r%   Tr   c                     U" U5        g )NrS   )_interpr9   s      r=   	worker_fn8TestUnivariateSpline.test_concurrency.<locals>.worker_fn  s	    1Ir@   r   )rq   r~   r   r   r   )r8   r   r   r9   r<   r"  s         r=   test_concurrency%TestUnivariateSpline.test_concurrency  sY     YYs%(UIIc't!rD9	 	 IA6r@   rS   N) rT   rU   rV   rW   r>   rG   rJ   r^   rh   rl   rs   rx   r   r   r   r   r   r   r   r   r   r   r   r  r  r  pytestmarkthread_unsafer  r$  rX   rS   r@   r=   r!   r!      s    =	3:2,?&H$ H '/R!0I5C45*?$98<0 <D5 [[ 67r@   r!   c                   8   \ rS rSr\R
                  R                  S 5       rS r\R
                  R                  S 5       r	\R
                  R                  S 5       r
S r\R
                  R                  S 5       r\R
                  R                  S 5       rS	rg
)TestLSQBivariateSplinei  c                 H   / SQn/ SQn/ SQnSnSU-   SU-
  /nSU-   SU-
  /n[        5        nUR                  [        S5      n[        XX5USSS9n	[	        U5      S:X  d   e S S S 5        [        W	" S	S	5      [        R                  " S
5      5        g ! , (       d  f       N6= f)N	r%   r%   r%   r&   r&   r&   r'   r'   r'   	r%   r&   r'   r%   r&   r'   r%   r&   r'   	r'   r'   r'   r'   r'   r'   r'   r'   r'   r   r%   r'   
The coefficients of the splinekxkyr&         @)r   r  r  r   r5   r   rq   asarray
r8   r9   r:   r   r,   txtyr  r  r;   s
             r=   r>   +TestLSQBivariateSpline.test_linear_constant  s    c!A#Yc!A#Y C

;(JKA$QbA;Cq6Q;; !
 	C1Irzz"~6 ! s   5B
B!c                 r   / SQn/ SQn/ SQnSnSU-   SU-
  /nSU-   SU-
  /n[        5        nUR                  [        S5        [        XX5USSS9nS S S 5        WR	                  5       u  pV[        US S	 USS  5       H  u  p[        US S	 USS  5       H  u  pS
 H  nS Hw  nU	SU-
  -  X-  -   nUSU-
  -  X-  -   nU" X5      7SU-
  -  SU-
  -  U" X5      U-  SU-
  -  -   U" X5      SU-
  -  U-  -   U" X5      U-  U-  -   n[        U" X5      U5        My     M     M     M     g ! , (       d  f       N= f)Nr,  r-  	r   rb   r{   r'   rC   rb   r%   r'   rC   r   r%   r'   r/  r0  r-   )r   r   r   )r   皙?gffffff?)r   filterr  r   r1   zipr   )r8   r9   r:   r   r,   r6  r7  r  r;   xaxbyaybr6   r   ypzps                    r=   test_bilinearity'TestLSQBivariateSpline.test_bilinearity  sl   c!A#Yc!A#Y CJJ{$FG$QbA;C !
 "Sb'2ab6*FBb"gr!"v.(A,1X_1X_ #BmQqS11Q37 #BAqs 34 #BQqS 1! 34 !$BAa0 ,CJ; - ) / + ! s   $D((
D6c                    / SQn/ SQn[        / SQ5      nSnSU-   SU-
  /nSU-   SU-
  /n[        5        nUR                  [        S5      n[	        XX5USSS9n	[        U5      S:X  d   e S S S 5        W	R                  5       u  pVU	" XV5      n
S	[        U5      S S 2S 4   [        U5      S S S 24   -  U
S S
2S S
24   U
SS 2S S
24   -   U
S S
2SS 24   -   U
SS 2SS 24   -   -  R                  5       -  n[        [        R                  " U	R                  US   US
   US   US
   5      5      [        R                  " U5      5        g ! , (       d  f       N= f)N)	r%   r%   r%   r&   r&   r&   r{   r{   r{   r-  r:  r   r%   r'   r/  r0        ?r-   r   )r
   r   r  r  r   r5   r1   r   sumr   rq   r4  r   )r8   r9   r:   r   r,   r6  r7  r  r  r;   tztrpzs               r=   test_integral$TestLSQBivariateSpline.test_integral  sb   %&c!A#Yc!A#Y C

;(JKA$Q1"qACq6Q;; ! [DHQtV$T"Xd1f%55#2#crc'{2ab"f:-b"QRj8ABqrEBDEHSUK 	BJJs||BqE2b62a5"R&'QRJJt,	. ! s   5E
Ec                    / SQn/ SQn/ SQnSnSU-   SU-
  /nSU-   SU-
  /n[        5        nUR                  [        S5      n[        XX5USSS9n	[	        U5      S:X  d   e S S S 5        [        W	" / / 5      [        R                  " S	5      5        [        U	" / / S
S9[        R                  " S5      5        g ! , (       d  f       N\= f)Nr,  r-  r.  r   r%   r'   r/  r0  r   Fgridr   )r   r  r  r   r5   r   rq   r   r5  s
             r=   rh   'TestLSQBivariateSpline.test_empty_input  s      c!A#Yc!A#Y C

;(JKA$Q1"qACq6Q;; !
 	BRXXe_5B/$@ ! s   5B99
Cc                    SnSU-   SU-
  /nSU-   SU-
  /n[        [        5       n[        R                  " SS5      n[        R                  " SS5      n[        R                  " SSSS9n[	        XVXrU5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n[        R                  " SS5      n[        R                  " SS5      n[        R                  " SS5      n[        R                  " SSS	S9n[	        XVXrX8S
9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[        R                  " SS5      n[	        WWWX#US
9  S S S 5        S[        UR                  5      ;   d   e[        [        5       nSn	[	        WWWX#U	S9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        WWWX#SSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n
[	        WWWX#SS9  S S S 5        S[        W
R                  5      ;   d   e[        [        5       n
[	        WWWX#SS9  S S S 5        S[        U
R                  5      ;   d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNR= f! , (       d  f       GN"= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nr   r%   r'   r         $@r   num%x, y, and z should have a same length   r   (x, y, z, and w should have a same lengthr   w should be positiver  r   r  r   bbox shape should be (4,)r0  ;The length of x, y and z should be at least (kx+1) * (ky+1)r\   epseps should be between (0, 1))r   r   rq   r   r   r   r   )r8   r,   r6  r7  r   r9   r:   r   r   r   exc_infos              r=   test_invalid_input)TestLSQBivariateSpline.test_invalid_input  sr   !eQU^!eQU^:&$C&AC&AC2.AqQB/	 '
 7#djj/III:&$C&AC&AC&AC2.AqQB4 ' :S_LLL:&$D$'Aq!Q!4 ' &TZZ888:&$$Dq!QT: ' +c$**o===:&$q!Q2"= 'L4:: 	  :&(q!QC8 '-X^^1DDDD:&(q!QC8 '-X^^1DDDDI '& '& '&
 '&
 '&
 '& '&sU   AJ*A'J!%J3KKK(K9
J!
J03
K
K
K%(
K69
Lc                    Sn[         R                  " SU-   SU-
  /5      n[         R                  " SU-   SU-
  /5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " / SQ5      n[        5        n	U	R	                  [
        S5      n
[        XEXbX7US9n[        UR                  5       UR                  5       UR                  5       UR                  5       UR                  5       UR                  5       US9n[        U" S	S	5      U" S	S	5      5        [        U
5      S
:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   r%   r'   r   rS  )r   rS  r   rS  r/  )r   r   r|   r&   )
rq   r
   r   r   r  r  r   r  r   r5   )r8   r,   r6  r7  r9   r:   r   r   r   r  r  r  r   s                r=   r  ,TestLSQBivariateSpline.test_array_like_input  s%   XXq1ua!en%XXq1ua!en%KKT"KKT"KKT"KKT"xx./ C

;(JKA%aA2FD%ahhj!((*ahhj&(iik299;!((*+/1D DcNDcN;q6Q;; !  s   =B1E88
Fc                    [         R                  SS2SS24   u  pUR                  5       nUR                  5       nS[         R                  " U5      -  n[         R                  " SSS5      n[         R                  " SSS5      n[        5        nUR                  [        S5      n[        XX4U5      n[        U5      S	:X  d   e S
S
S
5        [        W" XSS9U5        g
! , (       d  f       N = f)z[Test for the case when the input knot-location arrays in x and y are
of different lengths.
r   r   r3  r   g     X@   !   r/  r%   NFrN  )rq   mgridravelr   r   r   r  r  r   r5   r   )	r8   r9   r:   r   r6  r7  r  r  r;   s	            r=   test_unequal_length_of_knots3TestLSQBivariateSpline.test_unequal_length_of_knots2  s    
 xx#qu%GGIGGI",,q/![[dB'[[dB' C

;(JKA$Qb1Cq6Q;; !
 	C5115 ! s   5C
C-rS   N)rT   rU   rV   rW   r&  r'  r(  r>   rD  rK  rh   ra  r  rj  rX   rS   r@   r=   r*  r*    s    [[7 7<2 [[. .( [[A A )EV [[ * [[6 6r@   r*  c                   j    \ rS rSrS rS r\R                  R                  S 5       r	S r
S rS rSrg	)
TestSmoothBivariateSplineiE  c                 4   / SQn/ SQn/ SQn[        XUSSS9nUR                  5        H  n[        U/ SQ5        M     [        UR                  5       / SQ5        [	        UR                  5       5      S:  d   e[        U" / S	QSS
/5      SS/SS/SS//5        g )Nr,  r-  r.  r%   r0  )r%   r%   r'   r'   )r'   r'   r'   r'   r.   r*   r+   r'   )r   r1   r	   r2   r3   r4   r8   r9   r:   r   r;   r6   s         r=   r>   .TestSmoothBivariateSpline.test_linear_constantF  s    #AQ!4A%a6 ! 	"#.."2LA3##%&...!#kAs8"<1v1vPQSTv>VWr@   c                 \   / SQn/ SQn/ SQn[        XUSSS9nUR                  5        H%  n[        U[        R                  " / SQ5      5        M'     [        UR                  5       / SQ5        [        UR                  5       5      S:  d   e[        U" / S	QSS
/5      SS/SS/SS//5        g )Nr,  r-  )	r   r   r   r&   r&   r&   rC   rC   rC   r%   r0  )r   r%   r'   r'   )r   r   rC   rC   r.   r*   r+   r   r&   )	r   r1   r   rq   r4  r	   r2   r3   r4   ro  s         r=   rJ   (TestSmoothBivariateSpline.test_linear_1dR  s    #AQ!4AArzz.9: !!#.."2LA3##%&...!#i3"81Q%1qe9LMr@   c                    / SQn/ SQn[        / SQ5      n[        5        nUR                  [        S5        [	        XUSSSS9nS S S 5        / SQn/ S	QnW" Xg5      nS
[        U5      S S 2S 4   [        U5      S S S 24   -  US S2S S24   USS 2S S24   -   US S2SS 24   -   USS 2SS 24   -   -  R                  5       -  n	[        [        R                  " UR                  US   US   US   US   5      5      [        R                  " U	5      5        [	        XUSSSS9n
[        [        R                  " U
R                  US   US   US   US   5      5      [        R                  " U	5      SS9  U" US S US S 5      nS
[        US S 5      S S 2S 4   [        US S 5      S S S 24   -  US S2S S24   USS 2S S24   -   US S2SS 24   -   USS 2SS 24   -   -  R                  5       -  n	[        [        R                  " UR                  US   US   US   US   5      5      [        R                  " U	5      5        g ! , (       d  f       GN= f)N)	r%   r%   r%   r&   r&   r&   rC   rC   rC   r-  r:  z
The required storage spacer%   r   )r1  r2  r,   )r%   r&   rC   r$   rG  r-   r&   )decimalr   )r
   r   r<  r  r   r   rH  r   rq   r4  r   )r8   r9   r:   r   r  r;   r6  r7  rI  rJ  lut2s              r=   rK  'TestSmoothBivariateSpline.test_integral]  s`   %& CJJ{$BC'aA!qAC !
 [DHQtV$T"Xd1f%55#2#crc'{2ab"f:-b"QRj8ABqrEBDEHSUKBJJs||BqE2b62a5"R&'QRJJt,	. %Q1qA>BJJt}}RUBrFBqE2b6'RSJJt,$%	' CR"Sb'"DCRM!D&)$r#2w-Q*??#2#crc'{2ab"f:-b"QRj8ABqrEBDEHSUKBJJs||BqE2b62a5"R&'QRJJt,	.- ! s   $I  
Ic                 :   [         R                  " SSS5      n[         R                  " SSS5      nX-   n[         R                  " SSS5      n[         R                  " SSS5      n[        XU5      n[        XEU5      n[	        XU5      nU" XE5      n	[        Xy5        g )Nr   r&   P   r-   r%   r   )rq   r   r   r   r   r   )
r8   r9   r:   r   xiyir   res1interp_res2s
             r=   test_rerun_lwrk2_too_small4TestSmoothBivariateSpline.test_rerun_lwrk2_too_small|  s     KKAr"KKAr"E[[Q$[[Q$qQrs#'a0rD'r@   c           	      ~   [        [        5       n[        R                  " SS5      n[        R                  " SS5      n[        R                  " SSSS9n[	        X#U5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n[        R                  " SS5      n[        R                  " SS5      n[        R                  " SS5      n[        R                  " SSSS9n[	        X#XES9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[        R                  " S	S5      n[	        WWWUS9  S S S 5        S
[        UR                  5      ;   d   e[        [        5       nSn[	        WWWUS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        WWWSSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        WWWS	S9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        WWWSS9  S S S 5        S[        WR                  5      ;   d   e[        [        5       n[	        WWWSS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GNW= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN^= f! , (       d  f       GN0= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr   rS  r   rT  rV  rW  r   rX  r   rY  rZ  r   r[  r0  r\  rp   r   r\   r]  r_  )r   r   rq   r   r   r   r   )r8   r   r9   r:   r   r   r   r`  s           r=   ra  ,TestSmoothBivariateSpline.test_invalid_input  sy   :&$C&AC&AC2.A!!*	 '
 7#djj/III:&$C&AC&AC&AC2.A!!/ ' :S_LLL:&$D$'A!!QQ/ ' &TZZ888:&$$D!!Q5 ' +c$**o===:&$!!QbR8 'L4:: 	  :&$!!QT2 '%TZZ888:&(!!Qs3 '-X^^1DDDD:&(!!Qs3 '-X^^1DDDDQ '& '& '&
 '&
 '&
 '& '& '&sa   AJ1A&K+$KK'K9LL L.1
K 
K
K$'
K69
L
L
L+.
L<c           
         [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        XX4USSS9n[        UR                  5       UR                  5       UR                  5       UR                  5       UR                  5       SSS9n[	        U" S	S
5      U" S	S
5      5        g )Nr,  r-  r.  )	r%   r%   r%   r%   r%   r%   r%   r%   r%   )r   r3  r   r3  r%   )r   r   r1  r2  )r   r   r1  r2  r   r   )rq   r
   r   r  r   )r8   r9   r:   r   r   r   r  r   s           r=   r  /TestSmoothBivariateSpline.test_array_like_input  s    HH01HH01HH01HH01xx,-$Q1qI$QXXZQXXZ*.++-188:()a1 	S#S#7r@   rS   N)rT   rU   rV   rW   r>   rJ   r&  r'  r(  rK  r~  ra  r  rX   rS   r@   r=   rm  rm  E  s=    
X	N [[. .<(*EX8r@   rm  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestLSQSphereBivariateSplinei  c                    Su  p[        SUS-
  -  SSUS-
  -  -
  U5      [        -  n[        SUS-
  -  SSUS-
  -  -
  U5      S-  [        -  n[        UR                  S   UR                  S   45      nUS S S2   nUS S S2   nUS S S2S S S24   n[	        X45      u  p[        U	R                  5       U
R                  5       UR                  R                  5       Xg5      nXl        Xl	        XvsU l
        U l        g )Nr   Z   r   r%   r|   r   r[   )r   r   r   r   r   r   ri  Tlut_lsqdatanew_lonsnew_lats)r8   nthetanphithetaphir  knotstknotspknotdatalatslonsr  s               r=   setup_method)TestLSQSphereBivariateSpline.setup_method  s    fqj)1sFQJ/?+?H2MsD1H~q3q>'94@2EJU[[^SYYq\23ssSqS!SqS>e)
*4::<+/66<<>6K	'-$t}r@   c                     [        U R                  R                  5       5      S:  d   e[        U R                  U R                  U R
                  5      U R                  5        g )Nr.   )r3   r  r4   r	   r  r  r  r8   s    r=   r>   1TestLSQSphereBivariateSpline.test_linear_constant  sF    4<<,,./%777!$,,t}}dmm"L"&))	-r@   c                     [        U R                  / / 5      [        R                  " S5      5        [        U R                  / / SS9[        R                  " S5      5        g Nr   FrN  rP  )r	   r  rq   r   r  s    r=   rh   -TestLSQSphereBivariateSpline.test_empty_input  s@    !$,,r2"6H!$,,r2E,"BBHHTNSr@   c           
         Su  p[        SUS-
  -  SSUS-
  -  -
  U5      [        -  n[        SUS-
  -  SSUS-
  -  -
  U5      S-  [        -  n[        UR                  S   UR                  S   45      nUS S S2   nUS S S2   n[	        [
        5       n[        SSUS	9[        -  n	[        X5      u  p[        U
R                  5       UR                  5       UR                  R                  5       Xg5        S S S 5        S
[        WR                  5      ;   d   e[	        [
        5       n[        SSUS	9[        -  n	[        X5      u  p[        U
R                  5       UR                  5       UR                  R                  5       Xg5        S S S 5        S
[        UR                  5      ;   d   e[	        [
        5       n[        SSUS	9S-  [        -  n[        X<5      u  p[        UR                  5       UR                  5       UR                  R                  5       Xg5        S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        SSUS	9S-  [        -  n[        X<5      u  p[        UR                  5       UR                  5       UR                  R                  5       Xg5        S S S 5        S[        UR                  5      ;   d   e[        X45      u  p[	        [
        5       n[        R                  " U5      nSUS'   [        UR                  5       UR                  5       UR                  R                  5       X5        S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        R                  " U5      n[        US'   [        UR                  5       UR                  5       UR                  R                  5       X5        S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        R                  " U5      nSUS'   [        UR                  5       UR                  5       UR                  R                  5       UU5        S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        R                  " U5      nS[        -  US'   [        UR                  5       UR                  5       UR                  R                  5       UU5        S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        / SQ5      n[        UR                  5       UR                  5       UR                  R                  5       XgUS9  S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        UR                  5       UR                  5       UR                  R                  5       XgSS9  S S S 5        S[        UR                  5      ;   d   e[	        [
        5       n[        UR                  5       UR                  5       UR                  R                  5       XgSS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GN= f! , (       d  f       GN.= f! , (       d  f       GN= f! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNA= f! , (       d  f       N= f)Nr  r   r%   r|   r   r[   皙r   rT  theta should be between [0, pi]r   皙?phi should be between [0, 2pi]r\   ztt should be between (0, pi)ztp should be between (0, 2pi)r&   	r   r   r+   r   r   r+   r   r   r   r   rY  r]  r_  )r   r   r   r   r   r   r   r   ri  r  r   r   rq   r   r
   )r8   r  r  r  r  r  r  r  r`  invalid_thetainvalid_latsr  invalid_phir  invalid_lonsinvalid_knotstinvalid_knotsp	invalid_ws                     r=   ra  /TestLSQSphereBivariateSpline.test_invalid_input  s   
+Q
1C-C!#%&sdQh'SD1H-=)=tDrIBNU[[^SYYq\23ssSqS:&($T3F;b@M!)-!=L$\%7%7%94::<%)VV\\^VE '
 1C4GGGG:&($S#6:R?M!)-!=L$\%7%7%94::<%)VV\\^VE '
 1C4GGGG:&("4&9C?"DK!)%!=D$TZZ\<3E3E3G%)VV\\^VE '
 03x~~3FFFF:&("383>CK!)%!=D$TZZ\<3E3E3G%)VV\\^VE '
 03x~~3FFFFe)
:&(WWV_N $N1$TZZ\4::<%)VV\\^^M '
 .X^^1DDDD:&(WWV_N "N1$TZZ\4::<%)VV\\^^M '
 .X^^1DDDD:&(WWV_N $N1$TZZ\4::<%)VV\\^V^M '
 /#hnn2EEEE:&(WWV_N !BN1$TZZ\4::<%)VV\\^V^M '
 /#hnn2EEEE:&(LMI$TZZ\4::<%+yB ' &X^^)<<<<:&($TZZ\4::<%+> ' .X^^1DDDD:&($TZZ\4::<%+> ' .X^^1DDDDQ '& '& '& '& '& '& '& '& '& '&
 '&s   A"Z(A"Z1<A%[A%[7A['A"[9A\,A&\A\/A]9A]
Z.1
[ 
[
[$'
[69
\
\
\,/
\>
]
]!c           	      T   Su  p[        SUS-
  -  SSUS-
  -  -
  U5      [        -  n[        SUS-
  -  SSUS-
  -  -
  U5      S-  [        -  n[        X45      u  pV[        UR                  S   UR                  S   45      nUS S S2   nUS S S2   n	[        UR                  5       R                  S   5      n
[        UR                  5       UR                  5       UR                  R                  5       XU
S9n[        UR                  5       R                  5       UR                  5       R                  5       UR                  R                  5       R                  5       UR                  5       U	R                  5       U
R                  5       S9n[        U" SS5      U" SS5      5        g )	Nr  r   r%   r|   r   r[   r   r   )
r   r   r   r   r   ri  r   r  r  r	   )r8   r  r  r  r  r  r  r  r  r  r   r  r   s                r=   r  2TestLSQSphereBivariateSpline.test_array_like_input6  sw   
+Q
1C-C!#%&sdQh'SD1H-=)=!"$&'e)
U[[^SYYq\23ssSqS##A&' (

djjl(,!M (

(;(;(=(,

(;(;(=(,(=(=(?(.(.188:	G
 	"$sC.$sC.Ar@   )r  r  r  r  N
rT   rU   rV   rW   r  r>   rh   ra  r  rX   rS   r@   r=   r  r    s     6$-
TREhBr@   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestSmoothSphereBivariateSplineiO  c                 x   [        S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  /	5      n[        S[        -  [        S[        -  S[        -  [        S[        -  S[        -  [        S[        -  /	5      n[        / SQ5      n[        XUSS9U l        g )NrG  r         ?r+   r.      _Brp   )r
   r   r   r;   )r8   r  r  r  s       r=   r  ,TestSmoothSphereBivariateSpline.setup_methodP  s    s2vs2vs2vr"ubeRUCF2vs2v' (R"Wb#(BGRr27B2X  -..u1Er@   c                     [        U R                  R                  5       5      S:  d   e[        U R                  / SQSS/5      SS/SS/SS//5        g )Nr.   r*   r%   r+   r'   )r3   r;   r4   r	   r  s    r=   r>   4TestSmoothSphereBivariateSpline.test_linear_constantX  sQ    488((*+e333!$((;3x"@$%q6Aq6Aq6":	<r@   c                     [        U R                  / / 5      [        R                  " S5      5        [        U R                  / / SS9[        R                  " S5      5        g r  )r	   r;   rq   r   r  s    r=   rh   0TestSmoothSphereBivariateSpline.test_empty_input]  s@    !$((2r"2BHHUOD!$((2r(">Or@   c                    [        S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  /	5      n[        S[        -  [        S[        -  S[        -  [        S[        -  S[        -  [        S[        -  /	5      n[        / SQ5      n[        [        5       n[        S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  /	5      n[	        XRUSS9  S S S 5        S	[        WR                  5      ;   d   e[        [        5       n[        S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S
[        -  /	5      n[	        XRUSS9  S S S 5        S	[        UR                  5      ;   d   e[        [        5       n[        S[        -  [        S[        -  S[        -  [        S[        -  S[        -  [        S[        -  /	5      n[	        XUSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[        S[        -  [        S[        -  S[        -  [        S[        -  S[        -  [        S[        -  /	5      n[	        XUSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[        / SQ5      n[	        XX7SS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        XUSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        XUSS9  S S S 5        S[        UR                  5      ;   d   e[        [        5       n[	        XUSS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GN= f! , (       d  f       GNR= f! , (       d  f       GN= f! , (       d  f       GNf= f! , (       d  f       GN-= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)NrG  r   r  r+   r.  r  r  rp   r  r  r  r   g @r  r   r,   rY  r   s should be positiver]  r_  )r
   r   r   r   r   r   r   )r8   r  r  r  r`  r  r  r  s           r=   ra  2TestSmoothSphereBivariateSpline.test_invalid_inputa  s   sRxr38R"Wb2grBwRxr385 6R"Wb#(BGRr27B2X  -.:&(!4"9cBhb"r'#%7BGS2XsRx#&8#- .M (AF	 '
 1C4GGGG:&(!38S2XsRxb#%7BGS2XsRx#&8#- .M (AF	 '
 1C4GGGG:&(r2sRxb"cBh!#b"cBh!8 9K'AF ' 03x~~3FFFF:&(r2sRxb"cBh!#b"cBh!8 9K'AF ' 03x~~3FFFF:&(LMI'AdK ' &X^^)<<<<:&('A> '%X^^)<<<<:&('A4@ '-X^^1DDDD:&('A3? '-X^^1DDDDS '& '& '& '& '&
 '& '& '&sd   :AO#AO5AP$AP,P+7P=5Q3Q #
O25
P
P
P(+
P:=
Q
Q 
Q.c                    [         R                  " S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  S[        -  /	5      n[         R                  " S[        -  [        S[        -  S[        -  [        S[        -  S[        -  [        S[        -  /	5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        XX4SS9n[        UR	                  5       UR	                  5       UR	                  5       UR	                  5       SS9n[        U" S	S	5      U" S	S	5      5        g )
NrG  r   r  r+   r.  )	r   r   r   r   r   r   r   r   r   r  r  r   )rq   r
   r   r   r  r	   )r8   r  r  r  r   r  r   s          r=   r  5TestSmoothSphereBivariateSpline.test_array_like_input  s    #(C"HcBhRbr'38S2XsRxA BhhRS2XrBwC"Hb2gC"H& 'HH01HHBC +5qF +5<<>3::<+,88:tM!$sC.$sC.Ar@   )r;   Nr  rS   r@   r=   r  r  O  s     F<
P0EdBr@   r  c                   V    \ 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S rSrg)TestRectBivariateSplinei  c                     [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        XU5      n[        U" X5      U5        g )NrZ   r%   r&   r%   r&   r%   r%   r&   r'   r&   r%   r%   r&   r&   r&   r%   r
   r   r	   r8   r9   r:   r   r;   s        r=   test_defaults%TestRectBivariateSpline.test_defaults  sE    ++;{;{;OP!!a(!#a(1-r@   c           
      <   [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        XU5      n/ SQn/ SQnUR                  XV5      n[        [        XV5       VV	s/ s H  u  pU" X5      S   PM     sn	n5      n
[	        Xz5        g s  sn	nf )NrZ   r  r  r  )r%   ffffff@g333333@r   ffffff
@333333?r'   )r%   r  r  r   g      @r   r'   r   )r
   r   evr=  r   )r8   r9   r:   r   r;   ry  rz  zir   rB  zi2s              r=   test_evaluate%TestRectBivariateSpline.test_evaluate  s    ++;{;{;OP!!a(,,VVB^CK@K&"S[%K@AB$ As   -B
c           	         [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      S	-  n[        / S
Q/ S
Q/ SQ/ SQ/ S
Q/5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      S	-  n[        XU5      n[        U" XSS9U5        [        U" XSS9U5        [        U" XSSS9U5        g )NrZ   r  r  r  r   r   ir   r   r   r   r   r   r   r   r   rC   r   r   r   r   ir   r   r}   rC   r-   r   r%   r   r+   r   g      r   r&   rG  r         пr   (   ir      iig     @0@r   g     @0   r   r[   r   r{      g     +r   g     +@ir%   dxdy)r  r  r  r8   r9   r:   r   r  r  dxdyr;   s           r=   test_derivatives_grid-TestRectBivariateSpline.test_derivatives_grid  s    ++;{;{;OPM,{+' ((*+M-0@m- .'(?1-A BBDE!!a(!#aQ-3!#aQ-3!#aQ!"4T:r@   c           
      F   [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        / SQ5      n[        / SQ5      n[        / SQ5      S-  n[        XU5      n[        U" XS	S
S9U5        [        U" XS	S
S9U5        [        U" XS	S	S
S9U5        g )NrZ   r  r  r  r   r   gUUUUUU?r   r   rC   r-   r   r  r     A   r   7             8@r%   F)r  rO  )r  rO  r  r  rO  r  r  s           r=   rx   (TestRectBivariateSpline.test_derivatives  s    ++;{;{;OP>"#$%&s*!!a(!#aQE":2>!#aQE":2>!#aQ!"?Er@   c                    [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      S	-  n[        / S
Q/ S
Q/ SQ/ SQ/ S
Q/5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      S	-  n[        XU5      n[        UR                  SS5      " X5      U5        [        UR                  SS5      " X5      U5        [        UR                  SS5      " X5      U5        g )NrZ   r  r  r  r  r  r  r  r}   r  r  r  r  r  r  r  r%   r   r
   r   r	   partial_derivativer  s           r=   #test_partial_derivative_method_grid;TestRectBivariateSpline.test_partial_derivative_method_grid  s	   /"/"?""""	$ %
 %$#%#	% & )+	+
 %%()%	' (
 +1'1'	) * -/	/
 "!*!#"8"8A">q"DbI!#"8"8A">q"DbI!#"8"8A">q"DdKr@   c                    [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        / SQ5      n[        / SQ5      n[        / SQ5      S-  n[        XU5      n[        UR                  S	S
5      " XSS9U5        [        UR                  S
S	5      " XSS9U5        [        UR                  S	S	5      " XSS9U5        g )NrZ   r  r  r  r  r  r  r  r%   r   FrN  r  r  s           r=   test_partial_derivative_method6TestRectBivariateSpline.test_partial_derivative_method  s    /"/"?""""	$ %
 %&'()*S0!!*!#"8"8A">qDI#K"$	& 	"#"8"8A">qDI#K"$	& 	"#"8"8A">qDI#K"&	(r@   c                    [        / SQ[        S9nUR                  5       n[        UR                  UR                  45      n[        XU5      n[        [        5         UR                  SS5        S S S 5        g ! , (       d  f       g = f)N)r   r%   r&   r'   rC   r   rC   r%   )	r
   r   r   r   sizer   r   r   r  r  s        r=   'test_partial_derivative_order_too_large?TestRectBivariateSpline.test_partial_derivative_order_too_large  s`    //FFH!&&!&&!"!!*:&""1a( '&&s   A99
Bc           
          [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        XU5      n[        U" X5      U" US S 2S 4   US S S 24   SS95        g )NrZ   r  r  r  FrN  )r
   r   r   r  s        r=   test_broadcast&TestRectBivariateSpline.test_broadcast  s^    ++;{;{;OP!!a(A	3q4y!DF)%#HIr@   c           	         [        [        5       n[        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X#U5        S S S 5        S[	        WR
                  5      ;   d   e[        [        5       n[        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X#U5        S S S 5        S[	        UR
                  5      ;   d   e[        [        5       n[        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/5      n[        X#U5        S S S 5        S	[	        UR
                  5      ;   d   e[        [        5       n[        / SQ5      n[        / SQ5      n[        / S
Q/ S
Q/ SQ/ SQ/ S
Q/5      n[        X#U5        S S S 5        S[	        UR
                  5      ;   d   e[        [        5       n[        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      nSn[        X#XES9  S S S 5        S[	        UR
                  5      ;   d   e[        [        5       n[        WWWSS9  S S S 5        S[	        UR
                  5      ;   d   eg ! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       GNt= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)N)r   r&   r'   rC   r[   rZ   r  r  r  x must be strictly increasing)r&   r&   r'   rC   r[   y must be strictly increasingz7x dimension of z must have same number of elements as x)r%   r&   r%   r&   )r%   r&   r'   r&   )r%   r&   r&   r&   z7y dimension of z must have same number of elements as yrZ  r   r[  r   rp   r   )r   r   r
   r   r   r   )r8   r   r9   r:   r   r   s         r=   ra  *TestRectBivariateSpline.test_invalid_input  s^   :&$o&Ao&A&9 :Aa( ' /#djj/AAA:&$o&Ao&A&9 :Aa( ' /#djj/AAA:&$o&Ao&A&( )Aa( ' Idjj/" 	" " :&$o&Ao&A|\<#\3 4Aa( ' Idjj/" 	" " :&$o&Ao&A&9 :A$Da3 ' +c$**o===:&$1a40 '%TZZ888[ '& '& '& '& '& '&sK   AI=AJ6>J!&AJ3AKK=
J
J!
J03
K
K
K$c                 V   [        / SQ5      n[        / SQ5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        / SQ5      n[        XX4S9n[        UR                  5       UR                  5       UR                  5       UR                  5       S9n[        U" SS5      U" SS5      5        g )NrZ   r  r  r  )r%   r[   r%   r[   r   r   )r
   r   r  r	   )r8   r9   r:   r   r   r  r   s          r=   r  -TestRectBivariateSpline.test_array_like_inputF  s    /"/"?O_"O5 6\""16"188:qxxz188:(,7!$sC.$sC.Ar@   c                 V   Sn[         R                  R                  S[         R                  U5      n[         R                  R                  SS[         R                  -  U5      n[         R                  " U5      n[        X#USS9nSnSn[         R                  " U5      U-  [         R                  -  n[         R                  " U5      U-  S-  [         R                  -  n	U" X5        UR                  5       n
SU
S'   [        [        5       nU" X5        S S S 5        S	[        WR                  5      ;   d   eU	R                  5       nSUS'   [        [        5       nU" X5        S S S 5        S
[        UR                  5      ;   d   eg ! , (       d  f       Nz= f! , (       d  f       N;= f)NrW  r   r&   rv   rp   r   r'   MbP?r	  r
  )rq   randomuniformr   r   r   r~   r   r   r   r   r   )r8   NSampThetaPhiDataInterpolatorNLonNLatGridPosLatsGridPosLonsnonGridPosLatsr`  nonGridPosLonss                r=   test_not_increasing_input1TestRectBivariateSpline.test_not_increasing_inputR  sK   		!!!RUUE2ii1ruu9e4wwu~25tsKiio,ruu4iio,q02558 	[.$))+!q:&(5 '.#hnn2EEEE$))+!q:&(5 '.#hnn2EEEE '& '&s   	F		F	
F
F(rS   N)rT   rU   rV   rW   r  r  r  rx   r  r  r  r  ra  r  r  rX   rS   r@   r=   r  r    s?    .%;
FL8(,)J/9b
BFr@   r  c                   J    \ 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g)TestRectSphereBivariateSplineip  c           
          [        SS[        -  S-
  S5      n[        S[        S-
  S5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X!U5      n[	        U" X!5      U5        g N{Gz?r&   rb   r%   r&   r%   r&   r%   r&   r%   r%   r&   r'   r&   r%   r&   r%   r%   r&   r&   r&   r%   r&   r%   )r   r   r
   r   r	   r8   r:   r9   r   r;   s        r=   r  +TestRectSphereBivariateSpline.test_defaultsq  se    T1R49a(T2d7A&???"??"$ % (A.!#a(1-r@   c           
      j   [        SS[        -  S-
  S5      n[        S[        S-
  S5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X!U5      n/ SQn/ SQnUR	                  Xe5      n[        [        Xe5       VV	s/ s H  u  pU" X5      S	   PM     sn	n5      n
[        Xz5        g s  sn	nf )
Nr#  r&   rb   r$  r%  r&  )r   r%   r  g@r3  gQ@g      @)r+   r;  r  g?gjt?r   -C6?r   )r   r   r
   r   r  r=  r   )r8   r:   r9   r   r;   rz  ry  r  r   rB  r  s              r=   r  +TestRectSphereBivariateSpline.test_evaluatez  s    T1R49a(T2d7A&???"??"$ % (A.16VVB^CK@K&"S[%K@AB$ As   B/
c                    [         R                  " [         R                  " S[         R                  " SSS5      -
  5      R                  [         R                  " S[         R
                  " [         R                  " SSS5      5      -
  5      5      R                  n[        [        5       n[         R                  " S	S
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n[         R                  " SSS5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        UR                  5      ;   d   e[        [        5       n[         R                  " SS
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        UR                  5      ;   d   e[        [        5       n[         R                  " SS
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        UR                  5      ;   d   e[        [        5       n[         R                  " SS
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4US	S9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN|= f! , (       d  f       N= f! , (       d  f       Nq= f)N     V@      T      T@        f@r\        u@rc   r-      r   ^  u should be between (0, pi)r      K v[0] should be between [-pi, pi)h  "v[-1] should be v[0] + 2pi or lessrp   r  rq   dot
atleast_2dr   r  r3   r   r   r   r   r   r   r8   r  r`  r  r  s        r=   ra  0TestRectSphereBivariateSpline.test_invalid_input  s   vvbmmC"++dC*D$DEGGmmD266"++b$2J+K$KLNNOa 	 :&(;;r3*RUU2T9D;;q#r*RUU2T9D%d$7 ' -HNN0CCCC:&(;;r3*RUU2T9D;;q#r*RUU2T9D%d$7 ' -HNN0CCCC:&(;;r3*RUU2T9D;;tR,ruu4t;D%d$7 ' 2S5HHHH:&(;;r3*RUU2T9D;;sC,ruu4t;D%d$7 ' 4s8>>7JJJJ:&(;;r3*RUU2T9D;;r3+bee3d:D%d$"= ' &X^^)<<<<9 '& '& '& '& '&A   )A%N A%NA%N1.A%OA$O
N
N.1
O 
O
O"c                    [        SS[        -  S-
  S5      n[        S[        S-
  S5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X!U5      n[        SS[        -  S-
  S5      n[        S[        S-
  S5      n[	        U" X!SS	9[        XBUSS
9SSS9  [	        U" X!SS9[        XBUSS9SSS9  [	        U" X!SSS9[        XBUSSSS9SSS9  [        U" X!SS	9UR                  SS5      " X!5      5        [        U" X!SS9UR                  SS5      " X!5      5        [        U" X!SSS9UR                  SS5      " X!5      5        [        U" X!SSS9UR                  SS5      " X!SS95        [        U" X!SSS9UR                  SS5      " X!SS95        [        U" X!SSSS9UR                  SS5      " X!SS95        g )Nr#  r&   rb   r$  r%  r&  {Gz?r%   )dthetar  r*  rtolr0   )dphir  )rD  rG  ư>r  r  r^  r  r   FrD  rO  rN  rG  rO  rD  rG  rO  )r   r   r
   r   r   _numdiff_2dr   r  r'  s        r=   r  3TestRectSphereBivariateSpline.test_derivatives_grid  s   T1R49a(T2d7A&???"??"$ % (A.T1R49a(T2d7A&A+[q-I!	.Aq);sqQ+G!	.A3#CA!tD!	. 	A+11!Q7=	?Aq)11!Q7=	?A311!Q7=	? 	A711!Q75I	KAqu511!Q75I	KA?11!Q75I	Kr@   c                   ^ [        SS[        -  S-
  S5      n[        S[        S-
  S5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X!U5      m[        SS[        -  S-
  S5      n[        S[        S-
  S5      nT" X!SS	S
9R                  UR                  :X  d   e[        T" X!SS	S
9[        U4S jX!SS9SSS9  [        T" X!SS	S9[        U4S jX!SS9SSS9  [        T" X!SSS	S9[        U4S jX!SSSS9SSS9  g )Nr#  r&   rb   r$  r%  r&  rC  r%   FrJ  c                    > T" XSS9$ NFrN  rS   r9   r:   r;   s     r=   <lambda>@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>      AU0Cr@   r  r*  rE  rK  c                    > T" XSS9$ rQ  rS   rR  s     r=   rS  rT    rU  r@   r  rL  c                    > T" XSS9$ rQ  rS   rR  s     r=   rS  rT    rU  r@   rH  rI  r  )r   r   r
   r   r   r   rM  r'  s       @r=   rx   .TestRectSphereBivariateSpline.test_derivatives  s   T1R49a(T2d7A&???"??"$ % (A.T1R49a(T2d7A&1.44???A7#$CQaP!	. 	Aqu5#$CQaP!	. 	A?#$C$%Q1$@!	.r@   c                    [         R                  " [         R                  " S[         R                  " SSS5      -
  5      R                  [         R                  " S[         R
                  " [         R                  " SSS5      5      -
  5      5      R                  n[        [        5       n[         R                  " S	S
S5      [         R                  -  S-  n[         R                  " S	SS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        WR                  5      ;   d   e[        [        5       n[         R                  " SSS5      [         R                  -  S-  n[         R                  " S	SS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        UR                  5      ;   d   e[        [        5       n[         R                  " SS
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        UR                  5      ;   d   e[        [        5       n[         R                  " SS
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4U5        S S S 5        S[        UR                  5      ;   d   e[        [        5       n[         R                  " SS
S5      [         R                  -  S-  n[         R                  " SSS5      [         R                  -  S-  n[        X4USS9  S S S 5        S[        UR                  5      ;   d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN|= f! , (       d  f       N= f! , (       d  f       Nq= f)Nr-  r.  r/  r0  r1  r\   r2  rc   r   r3  r4  r5  r      r7  r8  r9  r:  r;  r-   rp   r  r<  r?  s        r=   test_invalid_input_22TestRectSphereBivariateSpline.test_invalid_input_2  s   vvbmmC"++dC*D$DEGGmmD266"++b$2J+K$KLNNOa 	 :&(;;q#q)BEE1D8D;;q#r*RUU2T9D%d$7 ' -HNN0CCCC:&(;;r3*RUU2T9D;;q#r*RUU2T9D%d$7 ' -HNN0CCCC:&(;;r3*RUU2T9D;;tR,ruu4t;D%d$7 ' 2S5HHHH:&(;;r3*RUU2T9D;;sC,ruu4t;D%d$7 ' 4s8>>7JJJJ:&(;;r3*RUU2T9D;;r3+bee3d:D%d$"= ' &X^^)<<<<9 '& '& '& '& '&rA  c           
      P   [        SS[        -  S-
  S5      n[        S[        S-
  S5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X!U5      n[        UR	                  5       UR	                  5       UR	                  5       5      n[        U" X!5      U" X!5      5        g r"  )r   r   r
   r   r  r	   )r8   r:   r9   r   r  r   s         r=   r  3TestRectSphereBivariateSpline.test_array_like_input  s    T1r6D=!,T29a((*?((*?((	* + )q1(QXXZL!$q*d1j9r@   c                 $   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " X5      nUS   US   -   n[         R                  " U5      n[         R                  " U5      n[	        XVU5      n[         R                  " [         R                  " SS/5      5      n[         R                  " [         R                  " SS/5      5      n	U" X5      n
[         R                  " S	S
/SS//5      n[        X5        g )N)r     #   r  -   )iiir   r   r%   ra  g     B@rc  g     `Sg     Fg=Eg     HgDioEG)rq   r
   r   radiansr   r	   )r8   r  r  meshr  lat_rlon_rinterpolator	query_lat	query_londata_interpanss               r=   test_negative_evaluation6TestRectSphereBivariateSpline.test_negative_evaluation  s    xx,-xx01{{4&Awa 

4 

4 0tDJJrxxT
34	JJrxxe56	"98hh
+!9-/ 0!+3r@   c           	         [         R                  " SS5      [         R                  -  S-  n[         R                  " SS5      [         R                  -  S-  n[         R                  " S5      nS H  n[	        XUSUS9  M     g )Nr%   r   )rc   rc   ))TT)TF)FFr   )r,   pole_continuity)rq   r~   r   r   r   )r8   uvr  ps        r=   test_pole_continuity_gh_14591;TestRectSphereBivariateSpline.test_pole_continuity_gh_14591"  sf     IIaruu$r)IIaruu$r)HHV>A%aAAF ?r@   rS   N)rT   rU   rV   rW   r  r  ra  r  rx   r[  r  rm  rt  rX   rS   r@   r=   r   r   p  s4    .% =D KD.0 =D:4Gr@   r   c                 |   US:X  a  US:X  a  U " X5      $ US:X  a#  US:X  a  U " X-   U5      U " X-
  U5      -
  SU-  -  $ US:X  a#  US:X  a  U " XU-   5      U " XU-
  5      -
  SU-  -  $ US:X  aF  US:X  a@  U " X-   X%-   5      U " X-
  X%-   5      -
  U " X-   X%-
  5      -
  U " X-
  X%-
  5      -   SU-  S-  -  $ [        S5      e)Nr   r%   r&   zinvalid derivative order)r   )funcr9   r:   r  r  r^  s         r=   rM  rM  1  s    	Qw27Az	qR1WQWa 4#33#>>	qR1WQC 4s7#33#>>	qR1WQWag&agqw)??qw()+/+ABFGeaZP 	P 344r@   c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)Test_DerivedBivariateSplinei?  z_Test the creation, usage, and attribute access of the (private)
_DerivedBivariateSpline class.
c                    [         R                  " [        [        [	        S5      [	        S5      5      5      5      n[         R                  " [        [        [	        S5      [	        SS5      5      5      5      n[         R                  " [         R
                  " SSS5      [         R
                  " SSS5      45      n[        5        nUR                  [        S5        [        XU[        SSS5      [        S	S
S5      SS9U l
        S S S 5        [        XU5      U l        [        SSS5      nUS-   n[        [	        UR                  5       Vs/ s H  n[         R                  " X75      PM     sn5      n[!        XVU5      U l        [        [$        R&                  " [	        S5      [	        S5      5      5      U l        g ! , (       d  f       N= fs  snf )Nr   r%      r'   r/  r   g     3@rC   r+   g     4@r#  r]  r   rW  r   )rq   concatenatelistr=  r   r   r   r  r  r   r  r   
lut_smoothr
   r  rollr   lut_rect	itertoolsproductorders)	r8   r9   r:   r   r  r   r   izzs	            r=   r  (Test_DerivedBivariateSpline.setup_methodC  sH   NN4E"IuRy 9:;NN4E"IuQ| <=>NNBKK1b12;;q!R3HIJ CJJ{$FG-aA.6sD!.D.6sD!.D268DL ! 0a8aB#X5=9=aBGGAM=9:+BB79,,U1XuQx@A !  :s   ?F< G<
G
c           	          U R                    HA  u  pU R                  R                  X5      nU" SSSS9nU R                  SSXSS9nXE:X  a  MA   e   g )Nrv   FrN  r  )r  r  r  r8   nuxnuylut_derr   r   s         r=   test_creation_from_LSQ2Test_DerivedBivariateSpline.test_creation_from_LSQT  sS    HCll55c?GSu-AS##EBA6M6	 $r@   c           	          U R                    HA  u  pU R                  R                  X5      nU" SSSS9nU R                  SSXSS9nXE:X  a  MA   e   g )Ng      @FrN  r  )r  r~  r  r  s         r=   test_creation_from_Smooth5Test_DerivedBivariateSpline.test_creation_from_Smooth[  sS    HCoo88BGSu-ASSuEA6M6	 $r@   c           	          U R                    HA  u  pU R                  R                  X5      nU" SSSS9nU R                  SSXSS9nXE:X  a  MA   e   g )Nr   r+   FrN  r  )r  r  r  r  s         r=   test_creation_from_Rect3Test_DerivedBivariateSpline.test_creation_from_Rectb  sS    HCmm66s@GSu-Ac33UCA6M6	 $r@   c                     U R                   R                  SS5      n[        [        5         UR                    S S S 5        g ! , (       d  f       g = fNr%   )r  r  r   AttributeErrorfpr8   ders     r=   test_invalid_attribute_fp5Test_DerivedBivariateSpline.test_invalid_attribute_fpi  s3    mm..q!4>*FF +**s   A
Ac                     U R                   R                  SS5      n[        [        5         UR	                  5         S S S 5        g ! , (       d  f       g = fr  )r~  r  r   r  r4   r  s     r=   #test_invalid_attribute_get_residual?Test_DerivedBivariateSpline.test_invalid_attribute_get_residualn  s8    oo00A6>* +**s   A
A)r  r  r~  r  N)rT   rU   rV   rW   __doc__r  r  r  r  r  r  rX   rS   r@   r=   ry  ry  ?  s&    B"
r@   ry  )r   r   g:0yE>)2r  	threadingr   numpyrq   numpy.testingr   r&  r   r   scipy._lib._array_apir   r   r   r	   r
   r   r   r   r   r   r   scipy.interpolate._fitpack_pyr   r   r   r   scipy.interpolate._fitpack2r   r   r   r   r   r   r   r   r   scipy._lib._testutilsr   scipy.interpolater   r!   r*  rm  r  r  r  r   rM  ry  rS   r@   r=   <module>r     s       +  *  C B B K K# # # : )F7 F7Ra6 a6H~8 ~8BFB FBRRB RBjIF IFX~G ~GB52 2r@   