+
    /i                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
HtHt ^ RIHtHtHtHtHtHtHt ^ RIHtHtHtHt ^ RIHtHtHtHtHtHtH t H!t!H"t" ^ RI#H$t$ ^ RI%H&t&H't' R	 t( ! R
 R4      t) ! R R4      t* ! R R4      t+ ! R R4      t, ! R R4      t- ! R R4      t. ! R R4      t/RR lt0 ! R R4      t1R# )    N)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_splrep	NdBSplinec                     V P                  4       w  rV P                  w  r4\        V4      \        V4      reV P                  4       P	                  WS,
          ^,
          Wd,
          ^,
          34      p\        W3WsV34      #    )	get_knotsdegreeslen
get_coeffsreshaper   )luttxtykxkynxnycs   &       c/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/interpolate/tests/test_fitpack2.pyconvert_to_ndbspliner0      sd    ]]_FB[[FBWc"g  "'A+rw{!;<AbXqr(++    c                      a  ] tR t^ t o R t]P                  P                  RRR.4      R 4       tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRt V t!R# )TestUnivariateSplinec                   . ROp. ROp\        W^R7      p\        VP                  4       ^^.4       \        VP                  4       ^^.4       \	        VP                  4       4      R8  g   Q h\        V! . RO4      . RO4       R# )r!   kg|=Nr!         r9   r9   r9   r!         ?r8   r   r   r"   r%   absget_residualselfxyr'   s   &   r/   test_linear_constant)TestUnivariateSpline.test_linear_constant!   sl    qQ'!#--/Aq6:!#.."2QF;3##%&...!#k"2I>r1   bc_typeNperiodicc                    . ROp. ROp\        W#^R7      p\        W#^\        V4      VR7      p\        VP                  ^R VP                  4       RR7       \        VP                  VP                  4       RR7       R# )	r!   r5   )r6   srF   V瞯<atolNr7   r:   )r   r   r$   r   tr"   r.   r%   )rA   rF   rB   rC   r'   spls   &&    r/   test_linear_constant_periodic2TestUnivariateSpline.test_linear_constant_periodic*   s_    qQ'!!s1vw?aS]]_5As~~/e<r1   c                L   . ROp. ROp\        W^R7      p^p\        V4      \        V! V4      4      8X  g   Q h\        V4      \        V! V^R7      4      8X  g   Q h. ROp\        V4      \        V! V4      4      8X  g   Q h\        V4      \        V! V^R7      4      8X  g   Q hR# )r!   r5   nuNr7   r   r8      )r<   r8         @)r   r   )rA   rB   rC   r'   args   &    r/   test_preserve_shape(TestUnivariateSpline.test_preserve_shape4   s    qq)SzU3s8_,,,SzU3sq>2222SzU3s8_,,,SzU3sq>2222r1   c                   . ROp. ROp\        W^R7      p\        VP                  4       ^^.4       \        VP                  4       ^ ^.4       \	        VP                  4       4      R8  g   Q h\        V! . RO4      . RO4       R# )r!   r5   rJ   Nr7   rU   r;   )r   r!   r8   r=   r@   s   &   r/   test_linear_1d#TestUnivariateSpline.test_linear_1d?   sk    qQ'!#--/1Q%8!#.."2Aa593##%&...!#i.9r1   c                n     ! R  R\         4      pV! . RO. RO^R7      p\        V! RR.4      RR.4       R# )	c                   &   a  ] tR t^Kt o R tRtV tR# )9TestUnivariateSpline.test_subclassing.<locals>.ZeroSplinec                &    ^ \        V4      ,          # r   )r   )rA   rB   s   &&r/   __call__BTestUnivariateSpline.test_subclassing.<locals>.ZeroSpline.__call__L   s    qz!r1    N)__name__
__module____qualname____firstlineno__rc   __static_attributes____classdictcell____classdict__s   @r/   
ZeroSpliner`   K   s     " "r1   rn   r5   r<   rW           Nr!   r8   r9   rV      )r9   r8   r9   r8   r9   )r   r   )rA   rn   sps   &  r/   test_subclassing%TestUnivariateSpline.test_subclassingH   s5    	") 	" [A6C:R1r1   c                f    . ROp. ROp\        W^R7      p\        V! . 4      \        . 4      4       R# )r!   r5   Nr!   r9   rq      	   r   rV   rx         )r   r   r   rA   rB   rC   rO   s   &   r/   test_empty_input%TestUnivariateSpline.test_empty_inputR   s*    qq)Br+r1   c                r    . ROp. ROp\        W^R7      p\        VP                  4       ^ ,          R4       R# )r!   r5   g7ã?Nrv   ry   )r   r   rootsr|   s   &   r/   
test_rootsTestUnivariateSpline.test_rootsY   s-    qq)CIIKN,=>r1   c                    \         P                  ! ^ ^2\         P                  ,          R4      p\         P                  ! V4      p\	        W^ R7      p\        VP                  4       4      ^28X  g   Q hR# )r     rI   N)npr
   r   cosr   r$   r   r|   s   &   r/   test_roots_length&TestUnivariateSpline.test_roots_length_   sN    KK2:t,FF1Iqq)399;2%%%r1   c                j    . ROp. ROp\        W^R7      p\        VP                  R4      . RO4       R# )r!   r5         @Nrv   ry   )g;@gpZ<o?gOmǿg      ?)r   r   derivativesr|   s   &   r/   test_derivatives%TestUnivariateSpline.test_derivativese   s/    qq)COOC0F	Hr1   c                   \         P                  ! ^4      pV^,          RV^,          ,          ,           p\        W^ R7      p\        ^V4      p\	        V. RORR7       \        W^ ^R7      p\	        VP                  ^4      VRR7       R# )          @r   rJ   rK   )rI   r6   N)g     F@g     C@g      6@      @)r   aranger   r   r   r   r   )rA   rB   rC   tckdersrO   s   &     r/   test_derivatives_2'TestUnivariateSpline.test_derivatives_2l   sx    IIaLqD2ad7NQQa~ # #		$
 qqA.*"	$r1   c                    . ROp. ROp. ROp\        WVRR7      p\        . RO4      p\        V! . R	O4      VRR7       R# )
zRegression test for #1375.N)rB   rC   wrI   gMb@?rK   )      g<&g_g@7ѿg46	<ƿgBϠro   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   )gJdv?gc?g=?gt?皙?      ??gGz?)r   r   r   )rA   rB   rC   r   rO   desireds   &     r/   test_resize_regression+TestUnivariateSpline.test_resize_regression|   sD     15HI12G$Gr1   c                :   \         P                  ! ^\        R7      pV^,          p\        R^^d4      pVP	                  4       p^ V\         P
                  ! VR8  VR8  4      &   VP	                  4       pV^ ,          WUV^ ,          8  &   VR,          WUVR,          8  &   \        \        3 EF	  pV! WR7      pR FB  p\        V! W8R7      V^,          RR7       \        V! WVR7      ! V4      V^,          RR7       KD  	  R FB  p\        V! W8R7      V^,          RR7       \        V! WVR7      ! V4      V^,          RR7       KD  	  R F  p\        \        Ws3/ \        VR7      B  K   	  R FB  p\        V! W8R7      V^,          RR7       \        V! WVR7      ! V4      V^,          RR7       KD  	  EK  	  XP                  4       R	,          p	\        WV	4      p\        V! V^ R7      V^,          RR7       \        V! V^R7      V^,          RR7       \        \        Ws3/ \        ^R7      B  \        V! V^R7      V^,          RR7       R FI  p\        W4      p\        \        Ws3/ \        VR7      B  \        \        \        3/ \        WVR
7      B  KK  	  R# )rq   dtypero         @)rB   rC   )extgؗҜ<rK   gؗҬ<r9   rV   N)rB   rC   r   NrM   )r   extrapolate)r!   zeros)r8   raise)r9   const)rM   unknown)r   r   floatr
   copy
logical_orr   r   r   assert_raises
ValueErrordictr"   r   )
rA   rB   rC   xpxp_zerosxp_clipclsrO   r   rN   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 MMOC !!*BAAE:BA!%@j#9Ta[9BA
? #C"1(C*c?#?*&6 /Q-/ #r1   c           	         \         P                  ! ^d4      R,          p\         P                  ! ^d4      R,          p\         P                  ! ^ ^c^
4      pRp\        \        \
        WVVR7       R# )d   r   bboxN)rM   e   )r   r   r
   r   r   r   )rA   xsysknotsr   s   &    r/   test_lsq_fpchec$TestUnivariateSpline.test_lsq_fpchec   sQ    YYs^b YYs^b Ar2&j"5ru	!r1   c                z   \         P                  ! ^ ^^F4      ^,          p\         P                  ! V4      p\        W^ R7      pVP	                  ^4      P                  ^4      p\        V! R4      V! R4      4       VP	                  ^4      p\        V! R4      V! R4      ,
          VP                  RR4      4       R# )r   r   333333?g333333?皙?N)r   r
   r   r   antiderivative
derivativer   integral)rA   rB   rC   rO   spl2s   &    r/   "test_derivative_and_antiderivative7TestUnivariateSpline.test_derivative_and_antiderivative   s    KK1b!1$FF1Iqq)!!!$//2C$s),!!!$S	DI-S#.	0r1   c                    . ROp. ROp\        WR^R7      p. ROp\        VP                  4       ! V4      \        P                  ! V4      RR7       R# )	r!   r   )r   r6   rJ   rK   Nr!   r8   rV      g      !@)r   皙??rW   rq   )rM   r   g      rx   g      #@
   )r   r   r   r   
zeros_like)rA   x_valuesy_valuesfrB   s   &    r/   test_derivative_extrapolation2TestUnivariateSpline.test_derivative_extrapolation   sA     %*XWB%q)2==+;%Hr1   c                    \         P                  ! R R^4      p\        ^4       F=  p\        W^ VR7      pR F&  w  rE\	        VP                  WE4      4      R8  d   K&  Q h	  K?  	  R# )ro   r   )rI   r   rJ   N)r!   r!   )r!   rq   )r8   rq   r   r   )r   )r   rM   )r   r
   ranger   r>   r   )rA   rB   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 r1   c                   \         P                  ! ^
\        R7      pV^,          p\         P                  ! V4      p\	        WRR7      pVP                  4       R,          pVR
,          p\         P                  \         P                  \         P                  ) 3 F  pWrR
&   \        \        \        3/ \        WRR7      B  \        \        \        3/ \        WRR7      B  \        \        \        3/ \        WVRR7      B  WbR
&   WsR
&   \        \        \        3/ \        WVRR7      B  \        \        \        3/ \        WVRR7      B  \        \        \        3/ \        WWSRR7      B  K  	  R	# )r   r   Tcheck_finiter   rB   rC   r   )rB   rC   rN   r   )rB   rC   r   r   rB   rC   rN   r   r   NrM   )r   r   r   	ones_liker   r"   naninfr   r   r   r   r   )rA   rB   rC   r   rO   rN   y_endzs   &       r/   test_nanTestUnivariateSpline.test_nan   s3   IIb&qDLLOq$7MMOC "&&"&&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 +r1   c                   \         P                  ! ^
\        R7      pV^,          p\         P                  ! ^
\        R7      pV^ ,          V^&   V^,          p\         P                  ! V4      p\	        WRR7      pVP                  4       R,          p\	        W4V^RR7       \        W4WuRR7       \        \        \        3/ \        W4^ RR7      B  \        \        \        3/ \        W4RR7      B  R	# )
r   r   Tr   r   )rB   rC   r   rI   r   r   )rB   rC   rI   r   r   N)r   r   r   r   r   r"   r   r   r   r   r   rA   xxyyrB   rC   r   rO   rN   s   &       r/   test_strictly_increasing_x/TestUnivariateSpline.test_strictly_increasing_x   s    
 YYr'UIIb&t!qDLLOrD9MMOC 1Q!$?aTBj"2 	:148	:j"> 	5d3	5r1   c                   \         P                  ! ^
\        R7      pV^,          p\         P                  ! ^
\        R7      pV^ ,          R,
          V^&   V^,          p\         P                  ! V4      p\	        WRR7      pVP                  4       R,          p\        \        \        3/ \        W4RR7      B  \        \        \        3/ \        W4RR7      B  \        \        \        3/ \        W4WuRR7      B  R# )	r   r   r   Tr   r   r   r   N)r   r   r   r   r   r"   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MMOC j"2 	5d3	5j"> 	5d3	5j"5 	?1=	?r1   c                   \        \        4      ;_uu_ 4       p. ROp. ROp\        W#4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p. ROp. ROp. ROp\        W#VR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       pRp\        XXVR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        XX^R7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        XXRR	7       RRR4       R
\        VP                  4      9   g   Q hR#   + '       g   i     ELd; i  + '       g   i     EL#; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L|; i)r!   N!x and y should have a same lengthr   %x, y, and w should have a same lengthr   bbox shape should be (2,)r5   k should be 1 <= k <= 5r   s should be s >= 0.0r   r   r   r   rW   r   r   r   rW   gffffff@r   r   r   r   r   rM   )r   r   r   strvaluerA   infor   r   w_valuesr   s   &     r/   (test_invalid_input_for_univariate_spline=TestUnivariateSpline.test_invalid_input_for_univariate_spline  sW   :&&$(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;   F'F<F/GGF	F,	/F?	G	G%	c                   \        \        4      ;_uu_ 4       p. R	Op. R
Op\        W#4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p. R	Op. ROp. ROp\        W#VR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       pRp\        XXVR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        XX^R7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lh; i)r!   Nr  r  r  r   r  r5   r  r   r
  r  r  rM   )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='E<E$E7=E	E!	$E4	7F	c           	        . ROp. ROp\        WRR7      pVP                  4       R,          p\        \        4      ;_uu_ 4       p. ROp. ROp\	        WV4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p. ROp. ROp. ROp\	        WWFR7       RRR4       R\        VP                  4      9   g   Q hRp\        \        VR	7      ;_uu_ 4       pRp\	        WWHR
7       RRR4       \        \        4      ;_uu_ 4       pRp\	        WWHR
7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        WV^R7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     ELL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L|; i)r!   Tr   r   Nr  r  r  z;Interior knots t must satisfy Schoenberg-Whitney conditionsmatchr   r  r5   r  r   r  r
  )r   r   r   r   )r   rM   )r   r"   r   r   r   r  r  )	rA   r   r   rO   t_valuesr  r  messager   s	   &        r/   ,test_invalid_input_for_lsq_univariate_splineATestUnivariateSpline.test_invalid_input_for_lsq_univariate_splineS  ss   $,xE==?3':&&$(H+HH= ' 3c$**oEEE:&&$(H0H+HHI	 '
 7#djj/IIIO:W55DHH 6 :&&$DHH ' +c$**o===:&&$HB '(C

O;;;3 '&& '&& 65 '&
 '&s<   FF0-GG'G*F-	0G	G	G'	*G:	c                   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! R^d.4      p\        WVVR7      p\        VP                  4       VP                  4       VP                  4       VP                  4       R7      p\	        V! . RO4      V! . RO4      4       R# )r!   )rB   rC   r   r   Nr   r  )r   r   r   r   r   r  r   )r   r   r   tolistr   )rA   r   r   r  r   spl1r   s   &      r/   test_array_like_input*TestUnivariateSpline.test_array_like_inputu  s    88-.88568856xxs$((%)+  (//"3x7H"*//"3$++-I 	2323	5r1   c                t   \        ^m4      p. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR	NRNRNRNRNRNRNRNRNRNRNRNRNRNR	NRNRNRNRNRNpR
p\        P                  ! \        VR7      ;_uu_ 4        \	        W^R7       RRR4       R#   + '       g   i     R# ; i)m   ro   g%@g      &@g      %@gffffff%@g333333%@g      '@g%@g$@z2does not satisfy the condition abs\(fp-s\)/s < tolr  r5   N)r   pytestwarnsUserWarningr   )rA   rB   rC   msgs   &   r/   test_fpknot_oob_crash*TestUnivariateSpline.test_fpknot_oob_crash  sG   #J;R ; ;R ; ;R ; ;r ;3 ; ;;;;;!;#%;');+-;/1;;;;;";$&;(*;,.;04; ; ; ; ;  "; $&; (*; ,0; 24; 	; 	; 	; 	; !	; #%	; ')	; +-	; /1	;
 ;
 ;
 ;
  ;
 "$;
 &(;
 *,;
 .2;
 46; ; ; ; ;  "; $(; *,; .0; 26; ; ; ; ;  "; $&; (,; .0; 24; ; ; ;  ; "$; &(; *.; 02; 46; ; ; ; ;  $; &(; *,; .0; 26; ; ; ; ;  "; $(; *,; .0; 24; ; ; ; ;  $; &(; *,; .0; 26; 8:; D\\+S11QQ' 2111s   D&&D7	c                    \         P                  ! ^d\        R7      pV^,          p\         P                  ! ^d\        R7      pV^ ,          V^&   \        WRR7      pR p\	        ^
WTV4       R# )r   r   Tr   c                     V! V4       R # )Nre   )_interprB   s   &&&r/   	worker_fn8TestUnivariateSpline.test_concurrency.<locals>.worker_fn  s	    1Ir1   N)r   r   r   r   r   )rA   r   r   rB   rO   r0  s   &     r/   test_concurrency%TestUnivariateSpline.test_concurrency  sY     YYs%(UIIc't!rD9	 	 IA6r1   re   )"rf   rg   rh   ri   rD   r&  markparametrizerP   rY   r\   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r*  r2  rj   rk   rl   s   @r/   r3   r3       s     ? [[Yz(:;= <=	3:2,?&H$ H '/R!0I5C45*?$98<0 <D5(&7 7r1   r3   c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestLSQBivariateSplinei  c                ~   . ROp. ROp. R	OpRp^V,           ^V,
          .p^V,           ^V,
          .p\         P                  ! \        RR7      ;_uu_ 4       p\        WW5V^^R7      p\	        V4      ^8X  g   Q h RRR4       \        X! ^^4      \        P                  ! R4      4       R#   + '       g   i     L9; i)
r!   r   
The coefficients of the spliner  r*   r+   N      @	r!   r!   r!   r8   r8   r8   r9   r9   r9   	r!   r8   r9   r!   r8   r9   r!   r8   r9   	r9   r9   r9   r9   r9   r9   r9   r9   r9   )r&  r'  r(  r   r$   r   r   asarray	rA   rB   rC   r   rI   r(   r)   rr'   s	   &        r/   rD   +TestLSQBivariateSpline.test_linear_constant  s    c!A#Yc!A#Y\\+-OPPTU$QbA;Cq6Q;; Q 	C1Irzz"~6	 QPs   #B,,B<	c                t   . ROp. ROp. R	OpRp^V,           ^V,
          .p^V,           ^V,
          .p\         P                  ! \        RR7      ;_uu_ 4        \        WW5V^^R7      pRRR4       XP	                  4       w  rV\        VRR
 VR,          4       EF  w  r\        VRR
 VR,          4       F  w  rR F  pR F  pV^V,
          ,          W,          ,           pV
^V,
          ,          W,          ,           pV! W4      5^V,
          ,          ^V,
          ,          V! W4      V,          ^V,
          ,          ,           V! W4      ^V,
          ,          V,          ,           V! W4      V,          V,          ,           p\        V! W4      V4       K  	  K  	  K  	  EK
  	  R#   + '       g   i     ELG; i)r!   r   r9  r  r:  Nr!   NNr<  r=  	r   rw   r   r9   rV   rw   r!   r9   rV   rM   )r   r   r   )r   皙?gffffff?)r&  r'  r(  r   r"   zipr   )rA   rB   rC   r   rI   r(   r)   r'   xaxbyaybrN   r   ypzps   &               r/   test_bilinearity'TestLSQBivariateSpline.test_bilinearity  sh   c!A#Yc!A#Y\\+-OPP$QbA;C Q "Sb'2b6*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; - ) / + QPPs   F&&F7	c                D   . ROp. R	Op\        . R
O4      pRp^V,           ^V,
          .p^V,           ^V,
          .p\        P                  ! \        RR7      ;_uu_ 4       p\	        WW5V^^R7      p\        V4      ^8X  g   Q h RRR4       XP                  4       w  rVV! WV4      p	R\        V4      R,          \        V4      R,          ,          V	RR1RR13,          V	RRR13,          ,           V	RR1R3,          ,           V	R,          ,           ,          P                  4       ,          p
\        \        P                  ! VP                  V^ ,          VR,          V^ ,          VR,          4      4      \        P                  ! V
4      4       R#   + '       g   i     EL; i)r!   r   r9  r  r:  N      ?rD  )	r!   r!   r!   r8   r8   r8   r   r   r   r=  rE  NNNNNrS  rM   rD  rD  )r   r&  r'  r(  r   r$   r"   r	   sumr   r   r?  r   )rA   rB   rC   r   rI   r(   r)   rA  r'   tztrpzs   &          r/   test_integral$TestLSQBivariateSpline.test_integral  sO   %&c!A#Yc!A#Y\\+-OPPTU$Q1"qACq6Q;; Q [DHV$T"Xf%55#2#crc'{2b"f:-b"Rj8EBDEHSUK 	BJJs||BqE2b62a5"R&'QRJJt,	. QPPs    #FF	c                   . ROp. R	Op. R
OpRp^V,           ^V,
          .p^V,           ^V,
          .p\         P                  ! \        RR7      ;_uu_ 4       p\        WW5V^^R7      p\	        V4      ^8X  g   Q h RRR4       \        X! . . 4      \        P                  ! R4      4       \        V! . . RR7      \        P                  ! R4      4       R#   + '       g   i     Lb; i)r!   r   r9  r  r:  NFgridr<  r=  r>  r   rb   )r&  r'  r(  r   r$   r   r   r   r@  s	   &        r/   r}   'TestLSQBivariateSpline.test_empty_input  s    c!A#Yc!A#Y\\+-OPPTU$Q1"qACq6Q;; Q 	BRXXe_5B/$@ QPs   #CC%	c                   R p^V,           ^V,
          .p^V,           ^V,
          .p\        \        4      ;_uu_ 4       p\        P                  ! RR4      p\        P                  ! RR4      p\        P                  ! RR^
R7      p\	        WVWrV4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        P                  ! RR4      p\        P                  ! RR4      p\        P                  ! RR4      p\        P                  ! RR^R7      p\	        WVWrW8R7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        P                  ! RR4      p\	        XXXW#VR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       pRp	\	        XXXW#V	R	7       RRR4       R
\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        XXXW#^
^
R7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p
\	        XXXW#RR7       RRR4       R\        X
P                  4      9   g   Q h\        \        4      ;_uu_ 4       p
\	        XXXW#RR7       RRR4       R\        V
P                  4      9   g   Q hR#   + '       g   i     ELm; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELP; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i)r   r         $@numN%x, y, and z should have a same lengthr  (x, y, z, and w should have a same lengthw should be positiver   bbox shape should be (4,)r:  ;The length of x, y and z should be at least (kx+1) * (ky+1)ro   epseps should be between (0, 1)r   r  r   r  )r   r   r   r
   r   r  r  )rA   rI   r(   r)   r  rB   rC   r   r   r   exc_infos   &          r/   test_invalid_input)TestLSQBivariateSpline.test_invalid_input  s   !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K7A-L6(LL3'M4M M.7L	L	L0	3M	M	M+	.M>	c                P   R p\         P                  ! ^V,           ^V,
          .4      p\         P                  ! ^V,           ^V,
          .4      p\         P                  ! RR4      p\         P                  ! RR4      p\         P                  ! RR4      p\         P                  ! RR4      p\         P                  ! . RO4      p\        P                  ! \
        RR7      ;_uu_ 4       p	\        WEWbW7VR7      p
\        VP                  4       VP                  4       VP                  4       VP                  4       VP                  4       VP                  4       VR7      p\        V
! RR4      V! RR4      4       \        V	4      ^8X  g   Q h RRR4       R#   + '       g   i     R# ; i)	r   r   r`  r9  r  )r   r   r   N)r   r`  r   r`  )
r   r   r
   r&  r'  r(  r   r   r   r$   )rA   rI   r(   r)   rB   rC   r   r   r   rA  r!  r   s   &           r/   r"  ,TestLSQBivariateSpline.test_array_like_input  s%   XXq1ua!en%XXq1ua!en%KKT"KKT"KKT"KKT"xx./\\+-OPPTU%aA2FD%ahhj!((*ahhj&(iik299;!((*+/1D DcNDcN;q6Q;; QPPPs   'B"FF%	c           	        \         P                  R	,          w  rVP                  4       pVP                  4       pR\         P                  ! V4      ,          p\         P                  ! RR^4      p\         P                  ! RR^!4      p\
        P                  ! \        RR7      ;_uu_ 4       p\        WW4V4      p\        V4      ^8X  g   Q h RRR4       \        X! WRR7      V4       R#   + '       g   i     L&; i)
z[Test for the case when the input knot-location arrays in x and y are
of different lengths.
r;  r   g     X@r9  r  NFr\  )r   r   Nrr  )r   mgridravelr   r
   r&  r'  r(  r   r$   r   )rA   rB   rC   r   r(   r)   rA  r'   s   &       r/   test_unequal_length_of_knots3TestLSQBivariateSpline.test_unequal_length_of_knots.  s     xx%GGIGGI",,q/![[dB'[[dB'\\+-OPPTU$Qb1Cq6Q;; Q 	C5115	 QPs   + C**C:	re   N)rf   rg   rh   ri   rD   rN  rY  r}   rm  r"  ru  rj   rk   rl   s   @r/   r7  r7    s0     7<0.&A)EV(6 6r1   r7  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestSmoothBivariateSplinei?  c                >   . ROp. ROp. ROp\        WV^^R7      pVP                  4        F  p\        V. RO4       K  	  \        VP                  4       . R	O4       \	        VP                  4       4      R8  g   Q h\        V! . R
O^R.4      ^^.^^.^^..4       R# )r!   r:  rJ   r<   Nr<  r=  r>  )r!   r!   r9   r9   )r9   r9   r9   r9   r;   )r   r"   r   r%   r>   r?   rA   rB   rC   r   r'   rN   s   &     r/   rD   .TestSmoothBivariateSpline.test_linear_constant@  s    #AQ!4A%a6 ! 	"#.."2LA3##%&...!#kAs8"<1v1vPQSTv>VWr1   c                f   . ROp. ROp. ROp\        WV^^R7      pVP                  4        F%  p\        V\        P                  ! . RO4      4       K'  	  \        VP                  4       . R	O4       \        VP                  4       4      R8  g   Q h\        V! . R
O^R.4      ^ ^ .^^.^^..4       R# )r!   r:  rJ   r<   Nr<  r=  )	r   r   r   r8   r8   r8   rV   rV   rV   )r   r!   r9   r9   )r   r   rV   rV   r;   )	r   r"   r   r   r?  r   r%   r>   r?   rz  s   &     r/   r\   (TestSmoothBivariateSpline.test_linear_1dL  s    #AQ!4AArzz.9: !!#.."2LA3##%&...!#i3"81Q%1qe9LMr1   c                   . ROp. R	Op\        . R
O4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        WV^^^ R7      pRRR4       . ROp. ROpX! WV4      pR\        V4      R,          \        V4      R,          ,          VRR1RR13,          VRRR13,          ,           VRR1R3,          ,           VR,          ,           ,          P                  4       ,          p\        \        P                  ! VP                  V^ ,          VR,          V^ ,          VR,          4      4      \        P                  ! V4      4       \        WV^^^ R7      p	\        \        P                  ! V	P                  V^ ,          VR,          V^ ,          VR,          4      4      \        P                  ! V4      ^ R7       V! VRR VRR 4      pR\        VRR 4      R,          \        VRR 4      R,          ,          VRR1RR13,          VRRR13,          ,           VRR1R3,          ,           VR,          ,           ,          P                  4       ,          p\        \        P                  ! VP                  V^ ,          VR,          V^ ,          VR,          4      4      \        P                  ! V4      4       R#   + '       g   i     ELx; i)r!   ignorez
The required storage space)r*   r+   rI   NrQ  rD  )decimal)	r!   r!   r!   r8   r8   r8   rV   rV   rV   r=  rE  )r!   r8   rV   r7   rR  rT  rM   rU  r   )r   warningscatch_warningsfilterwarningsr(  r   r	   rV  r   r   r?  r   )
rA   rB   rC   r   r'   r(   r)   rW  rX  lut2s
   &         r/   rY  'TestSmoothBivariateSpline.test_integralW  sJ   %&$$&&##8+G'aA!qAC	 ' [DHV$T"Xf%55#2#crc'{2b"f:-b"Rj8EBDEHSUKBJJs||BqE2b62a5"R&'QRJJt,	. %Q1qA>BJJt}}RUBrFBqE2b6'RSJJt,$%	' CR"Sb'"DCRM&)$r#2w-*??#2#crc'{2b"f:-b"Rj8EBDEHSUKBJJs||BqE2b62a5"R&'QRJJt,	./ '&&s   -KK 	c                D   \         P                  ! R^^P4      p\         P                  ! R^^P4      pW,           p\         P                  ! R^^d4      p\         P                  ! R^^d4      p\        WV4      p\        WEV4      p\	        WV4      pV! WE4      p	\        Wy4       R# )r8   Nr   rM   )r   r
   r   r   r   r   )
rA   rB   rC   r   xiyir   res1interp_res2s
   &         r/   test_rerun_lwrk2_too_small4TestSmoothBivariateSpline.test_rerun_lwrk2_too_smallv  s     KKAr"KKAr"E[[Q$[[Q$qQrs#'a0rD'r1   c           
     f   \        \        4      ;_uu_ 4       p\        P                  ! R R4      p\        P                  ! R R4      p\        P                  ! R R^
R7      p\	        W#V4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        P                  ! R R4      p\        P                  ! R R4      p\        P                  ! R R4      p\        P                  ! R R^R7      p\	        W#WER7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        P                  ! RR4      p\	        XXXVR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       pRp\	        XXXVR7       RRR4       R	\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        XXX^
^
R
7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        XXXRR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        XXXRR7       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        XXXR R7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL`; i  + '       g   i     EL); i  + '       g   i     L; i  + '       g   i     L; i)r   r`  ra  Nrc  r  rd  re  r   rf  r:  rg  r   r	  ro   rh  rj  r   rk  )r   r   r   r
   r   r  r  )rA   r  rB   rC   r   r   r   rl  s   &       r/   rm  ,TestSmoothBivariateSpline.test_invalid_input  s   :&&$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L'A,L)'L=0M=M%	M9NN L&	)L:	=M	M"	%M6	9N
	N	 N0	c           
        \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . R	O4      p\         P                  ! . R
O4      p\        WW4V^^R7      p\        VP                  4       VP                  4       VP                  4       VP                  4       VP                  4       ^^R7      p\	        V! RR4      V! RR4      4       R# )r!   )r   r   r*   r+   )r   r   r*   r+   r   r   Nr<  r=  r>  )	r!   r!   r!   r!   r!   r!   r!   r!   r!   )r   r;  r   r;  )r   r   r   r   r   )rA   rB   rC   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#7r1   re   N)rf   rg   rh   ri   rD   r\   rY  r  rm  r"  rj   rk   rl   s   @r/   rx  rx  ?  s,     
X	N.>(*EX8 8r1   rx  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestLSQSphereBivariateSplinei  c                l   ^F^Zr!\        RV^,
          ,          ^RV^,
          ,          ,
          V4      \        ,          p\        RV^,
          ,          ^RV^,
          ,          ,
          V4      R,          \        ,          p\        VP                  ^ ,          VP                  ^ ,          34      pVR,          pVR,          pVR,          p\	        W44      w  r\        V	P                  4       V
P                  4       VP                  P                  4       Wg4      pWn        Wn	        WvuV n
        V n        R# )F   r   r   NNrq   N)r  r  )r
   r   r   r   r   r   rt  Tlut_lsqdatanew_lonsnew_lats)rA   nthetanphithetaphir  knotstknotspknotdatalatslonsr  s   &           r/   setup_method)TestLSQSphereBivariateSpline.setup_method  s    2fqj)1sFQJ/?+?H2MsD1H~q3q>'94@2EJU[[^SYYq\23sS>e)
*4::<+/66<<>6K	'-$t}r1   c                    \        V P                  P                  4       4      R 8  g   Q h\        V P                  V P                  V P
                  4      V P                  4       R# )rJ   N)r>   r  r?   r   r  r  r  rA   s   &r/   rD   1TestLSQSphereBivariateSpline.test_linear_constant  sF    4<<,,./%777!$,,t}}dmm"L"&))	-r1   c                    \        V P                  . . 4      \        P                  ! R4      4       \        V P                  . . RR7      \        P                  ! R4      4       R# r   Fr\  Nr   rb   )r   r  r   r   r  s   &r/   r}   -TestLSQSphereBivariateSpline.test_empty_input  s@    !$,,r2"6H!$,,r2E,"BBHHTNSr1   c                   ^F^Zr!\        RV^,
          ,          ^RV^,
          ,          ,
          V4      \        ,          p\        RV^,
          ,          ^RV^,
          ,          ,
          V4      R,          \        ,          p\        VP                  ^ ,          VP                  ^ ,          34      pVR,          pVR,          p\	        \
        4      ;_uu_ 4       p\        RRVR7      \        ,          p	\        W4      w  r\        V
P                  4       VP                  4       VP                  P                  4       Wg4       RRR4       R\        XP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        RR	VR7      \        ,          p	\        W4      w  r\        V
P                  4       VP                  4       VP                  P                  4       Wg4       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        RRVR7      R,          \        ,          p\        W<4      w  r\        VP                  4       VP                  4       VP                  P                  4       Wg4       RRR4       R
\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        RR	VR7      R,          \        ,          p\        W<4      w  r\        VP                  4       VP                  4       VP                  P                  4       Wg4       RRR4       R
\        VP                  4      9   g   Q h\        W44      w  r\	        \
        4      ;_uu_ 4       p\        P                  ! V4      pRV^ &   \        VP                  4       VP                  4       VP                  P                  4       W4       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        P                  ! V4      p\        V^ &   \        VP                  4       VP                  4       VP                  P                  4       W4       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        P                  ! V4      pRV^ &   \        VP                  4       VP                  4       VP                  P                  4       VV4       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        P                  ! V4      p^\        ,          V^ &   \        VP                  4       VP                  4       VP                  P                  4       VV4       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        . RO4      p\        VP                  4       VP                  4       VP                  P                  4       WgVR7       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        VP                  4       VP                  4       VP                  P                  4       WgRR7       RRR4       R\        VP                  4      9   g   Q h\	        \
        4      ;_uu_ 4       p\        VP                  4       VP                  4       VP                  P                  4       WgRR7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     EL8; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELz; i  + '       g   i     EL; i  + '       g   i     EL_; i  + '       g   i     EL; i  + '       g   i     ELH; i  + '       g   i     EL; i  + '       g   i     ELc; i  + '       g   i     L; i)r  r   r   r  r   r   ra  Ntheta should be between [0, pi]皙?phi should be between [0, 2pi]ro   ztt should be between (0, pi)ztp should be between (0, 2pi)r  re  rh  rj  皙	r   r   r<   r   r   r<   r   r   r   )r
   r   r   r   r   r   r   r   rt  r  r  r  r   r   r   )rA   r  r  r  r  r  r  r  rl  invalid_thetainvalid_latsr  invalid_phir  invalid_lonsinvalid_knotstinvalid_knotsp	invalid_ws   &                 r/   rm  /TestLSQSphereBivariateSpline.test_invalid_input  s   2
+Q
1C-C!#%&sdQh'SD1H-=)=tDrIBNU[[^SYYq\23sS:&&($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)]1=A)^!A0^A0^-A_A"_:A_)A*_=9A`A`%A`91^	^	^*	-^>	_	_&	)_:	=`	`"	%`6	9a		c           	        ^F^Zr!\        RV^,
          ,          ^RV^,
          ,          ,
          V4      \        ,          p\        RV^,
          ,          ^RV^,
          ,          ,
          V4      R,          \        ,          p\        W44      w  rV\        VP                  ^ ,          VP                  ^ ,          34      pVR,          pVR,          p	\        VP                  4       P                  ^ ,          4      p
\        VP                  4       VP                  4       VP                  P                  4       WV
R7      p\        VP                  4       P                  4       VP                  4       P                  4       VP                  P                  4       P                  4       VP                  4       V	P                  4       V
P                  4       R7      p\        V! RR4      V! RR4      4       R# )r  r   r   r  r  r   N)
r
   r   r   r   r   rt  r   r  r   r   )rA   r  r  r  r  r  r  r  r  r  r   r!  r   s   &            r/   r"  2TestLSQSphereBivariateSpline.test_array_like_input0  so   2
+Q
1C-C!#%&sdQh'SD1H-=)=!"$&'e)
U[[^SYYq\23sS##A&' (

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

(;(;(=(,

(;(;(=(,(=(=(?(.(.188:	G
 	"$sC.$sC.Ar1   )r  r  r  r  Nrf   rg   rh   ri   r  rD   r}   rm  r"  rj   rk   rl   s   @r/   r  r    s)     6$-
TREhB Br1   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestSmoothSphereBivariateSplineiI  c                   \        R \        ,          R \        ,          R \        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          .	4      p\        R\        ,          \        R\        ,          R\        ,          \        R\        ,          R\        ,          \        R\        ,          .	4      p\        . RO4      p\        WVRR7      V n        R# )rQ  r         ?r<       _Br   Nr>  )r   r   r   r'   )rA   r  r  rA  s   &   r/   r  ,TestSmoothSphereBivariateSpline.setup_methodJ  s    s2vs2vs2vr"ubeRUCF2vs2v' (R"Wb#(BGRr27B2X  -..u1Er1   c                    \        V P                  P                  4       4      R 8  g   Q h\        V P                  . RO^R.4      ^^.^^.^^..4       R# )rJ   r<   Nr;   )r>   r'   r?   r   r  s   &r/   rD   4TestSmoothSphereBivariateSpline.test_linear_constantR  sQ    488((*+e333!$((;3x"@$%q6Aq6Aq6":	<r1   c                    \        V P                  . . 4      \        P                  ! R4      4       \        V P                  . . RR7      \        P                  ! R4      4       R# r  )r   r'   r   r   r  s   &r/   r}   0TestSmoothSphereBivariateSpline.test_empty_inputW  s@    !$((2r"2BHHUOD!$((2r(">Or1   c                ,   \        R \        ,          R \        ,          R \        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          .	4      p\        R\        ,          \        R\        ,          R\        ,          \        R\        ,          R\        ,          \        R\        ,          .	4      p\        . RO4      p\        \        4      ;_uu_ 4       p\        R\        ,          R \        ,          R \        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          .	4      p\	        WRVRR7       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        R \        ,          R \        ,          R \        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          .	4      p\	        WRVRR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        R\        ,          \        R\        ,          R\        ,          \        R\        ,          R\        ,          \        R\        ,          .	4      p\	        WVRR7       RRR4       R	\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        R
\        ,          \        R\        ,          R\        ,          \        R\        ,          R\        ,          \        R\        ,          .	4      p\	        WVRR7       RRR4       R	\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        . RO4      p\	        WW7RR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        WVRR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        WVRR7       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\	        WVR
R7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     EL}; i  + '       g   i     EL; i  + '       g   i     EL8; i  + '       g   i     EL; i  + '       g   i     EL]; i  + '       g   i     EL'; i  + '       g   i     L; i  + '       g   i     L; i)rQ  r   r  r<   r  r   Nr  r  r  r   g @r   rI   re  s should be positiverh  rj  r>  r  r   r  )r   r   r   r   r   r  r  )rA   r  r  rA  rl  r  r  r  s   &       r/   rm  2TestSmoothSphereBivariateSpline.test_invalid_input[  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   >BS8?BT A1T ,A1T4U/U9U0V8T		T	 T1	4U	U	U-	0V 	V	c                $   \         P                  ! R \        ,          R \        ,          R \        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          .	4      p\         P                  ! R\        ,          \        R\        ,          R\        ,          \        R\        ,          R\        ,          \        R\        ,          .	4      p\         P                  ! . RO4      p\         P                  ! . R	O4      p\        WW4RR7      p\        VP	                  4       VP	                  4       VP	                  4       VP	                  4       RR7      p\        V! RR4      V! RR4      4       R# )
rQ  r   r  r<   r   r  r  Nr>  )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )rA   r  r  rA  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.Ar1   )r'   Nr  rl   s   @r/   r  r  I  s)     F<
P0EdB Br1   r  c                     a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR t]P$                  P'                  4       ]P$                  P)                  RRR.4      ]P$                  P)                  R. RO4      R 4       4       4       t]P$                  P'                  4       ]P$                  P-                  ]P0                  R8*  RR7      R 4       4       tRtV tR# )TestRectBivariateSplinei  c                    \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        WV4      p\        V! W4      V4       R# )r!   Nrp   r!   r8   r!   r8   r!   r!   r8   r9   r8   r!   r!   r8   r8   r8   r!   r   r   r   rA   rB   rC   r   r'   s   &    r/   test_defaults%TestRectBivariateSpline.test_defaults  sE    ++;{;{;OP!!a(!#a(1-r1   c           
     D   \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        WV4      p. ROp. ROpVP                  WV4      p\        \        WV4       UU	u. uF  w  rV! W4      R,          NK  	  up	p4      p
\	        Wz4       R# u up	pi )	r!   Nrp   r  r  r  )r!   ffffff@g333333@r   ffffff
@333333?r9   )r!   r  r  r   g      @r   r9   r   )r   r   evrG  r   )rA   rB   rC   r   r'   r  r  zir   rL  zi2s   &          r/   test_evaluate%TestRectBivariateSpline.test_evaluate  s    ++;{;{;OP!!a(,,VVB^CK@K&"S[%%K@AB$ As   -B
c           	        \        . RO4      p\        . RO4      p\        . RO. RO. RO. R	O. RO.4      p\        . R
O. RO. RO. RO. RO.4      R,          p\        . RO. RO. RO. RO. RO.4      p\        . RO. RO. RO. RO. RO.4      R,          p\        WV4      p\        V! W^R7      V4       \        V! W^R7      V4       \        V! W^^R7      V4       R# )r!   r   dxdy)r  r  Nrp   r  r  r  r   r   ir   r   r   r      r   r   r   r   rV   r   r   r   r   ir   r   rV   rM   r   r!   r   r<   r   g      r   r8   rQ  r         пr   (   ir      iig     @0@r   g     @0   r   rq   r   r      g     +r   g     +@ir  rA   rB   rC   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:r1   c           
     b   \        . RO4      p\        . RO4      p\        . RO. RO. R	O. R
O. RO.4      p\        . RO4      p\        . RO4      p\        . RO4      R,          p\        WV4      p\        V! W^RR7      V4       \        V! W^RR7      V4       \        V! W^^RR7      V4       R# )r!         8@F)r  r]  )r  r]  r  r  r]  Nrp   r  r  r  r   r   gUUUUUU?r   r   rV   rM   r   r  r     A   r   7       r  r  s   &       r/   r   (TestRectBivariateSpline.test_derivatives  s    ++;{;{;OP>"#$%&s*!!a(!#aQE":2>!#aQE":2>!#aQ!"?Er1   c           	     p    \         P                  ! V UUu. uF  q2 F  qCV.NK  	  K  	  upp4      # u uppi )a;  
Create an array of (xi, yi) pairs for all xi in x and yi in y,
and reshape it to the desired shape.

Parameters
----------
x : array_like
    1D array of x-values.
y : array_like
    1D array of y-values.
dest_shape : tuple
    Desired output shape.

Returns
-------
np.ndarray
    Reshaped array of (x, y) pairs.
)r   r   )rA   rB   rC   r  r  s   &&&  r/   make_pair_grid&TestRectBivariateSpline.make_pair_grid  s/    & xxA:Ab"bA:;;:s   2
c                ^   \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        . RO. RO. R	O. R
O. R	O.4      R,          p\        . RO. RO. RO. RO. RO.4      p\        . RO. RO. RO. RO. RO.4      R,          p\        WV4      p\        V4      p^^ .V3^ ^.V3^^.V33 Fp  w  rVP                  ! V	!  ! W4      pVP	                  V	4      ! V P                  W4      4      P                  V
P                  4      p\        W4       \        W4       Kr  	  R# )r!   r   Nrp   r  r  r  r  r  r  r  r  r  r  r  r  r  r  )	r   r   r0   partial_derivativer   r	  r&   r   r   )rA   rB   rC   r   r  r  r  r'   lut_ndbsplineordersexpectedactual_rect
actual_ndbs   &            r/   #test_partial_derivative_method_grid;TestRectBivariateSpline.test_partial_derivative_method_grid  sG   /"/"?""""	$ %
 %$#%#	% & )+	+
 %%()%	' (
 +1'1'	) * -/	/
 "!*,S1#$a&"A|q!fd^ LF00&9!?K&11&9##A)ghnn%  &k<%j; !Mr1   c           	     b   \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      pR	\        . R
O4      R\        . RO4      R\        . RO4      R,          /p\        WV4      p\        V4      pV P                  W4      p\        P
                  ! \        V4      4      pWx\        V4      ,          V,           ,          p	VP                  4        FP  w  rV
w  rVP                  W4      ! WRR7      p\        W4       VP                  W.4      ! V	4      p\        W4       KR  	  R# )r!   r  Fr\  Nrp   r  r  r  )r!   r   r   )r   r!   r  r   r  )r   r   r0   r	  r   r   r$   itemsr  r   r   )rA   rB   rC   r   r  r'   r  pointsdiag_idxdiag_pointsr  expected_valsr  r  
actual_rbsr  s   &               r/   test_partial_derivative_method6TestRectBivariateSpline.test_partial_derivative_method  s   /"/"?""""	$ % E,-E./E./#5
 "!*,S1$$Q* 99SV$A.9:%-^^%5!FFB//75IJ%j@ '112(;KHJ%j@ &6r1   c                   \        . RO\        R7      pVP                  4       p\        VP                  VP                  34      p\        WV4      p\        V4      p\        \        4      ;_uu_ 4        VP                  ^^4       RRR4       VP                  ^^.4      P                  R8H  P                  4       '       g   Q hR#   + '       g   i     LH; i)r   r   Nro   )r   r!   r8   r9   rV   )r   r   r   r   sizer   r0   r   r   r  r   r.   all)rA   rB   rC   r   r'   r  s   &     r/   'test_partial_derivative_order_too_large?TestRectBivariateSpline.test_partial_derivative_order_too_large&  s    //FFH!&&!&&!"!!*,S1:&&""1a( ' ((!Q022c9>>@@@@ '&s   3CC	c           	         \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        WV4      p\        V! W4      V! VR,          VR	,          RR7      4       R# )
r!   NFr\  rp   r  r  r  rR  rT  )r   r   r   r  s   &    r/   test_broadcast&TestRectBivariateSpline.test_broadcast1  sV    ++;{;{;OP!!a(A	3qy!F)%#HIr1   c           
     `   \        \        4      ;_uu_ 4       p\        . R
O4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        W#V4       RRR4       R\	        XP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        W#V4       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO.4      p\        W#V4       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        W#V4       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      pRp\        W#WER7       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        XXXRR7       RRR4       R	\	        VP
                  4      9   g   Q hR#   + '       g   i     ELj; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL5; i  + '       g   i     L; i  + '       g   i     L; i)r   Nx must be strictly increasingy must be strictly increasingz7x dimension of z must have same number of elements as xz7y dimension of z must have same number of elements as yr   rf  r   r	  )r   r8   r9   rV   rq   rp   r  r  r  )r8   r8   r9   rV   rq   )r!   r8   r!   r8   )r!   r8   r9   r8   )r!   r8   r8   r8   rk  r   )r   r   r   r   r  r  )rA   r  rB   rC   r   r   s   &     r/   rm  *TestRectBivariateSpline.test_invalid_input8  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J:AK>K"	AK6AL
L:K	K	"K3	6L	
L	L-	c                d   \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        . RO4      p\        WW4R7      p\        VP                  4       VP                  4       VP                  4       VP                  4       R7      p\        V! RR4      V! RR4      4       R# )	r!   r   r   Nrp   r  r  r  )r!   rq   r!   rq   )r   r   r   r   )rA   rB   rC   r   r   r!  r   s   &      r/   r"  -TestRectBivariateSpline.test_array_like_inputi  s    /"/"?O_"O5 6\""16"188:qxxz188:(,7!$sC.$sC.Ar1   c                   ^p\         P                  P                  ^ \         P                  V4      p\         P                  P                  ^ ^\         P                  ,          V4      p\         P                  ! V4      p\        W#VRR7      p^p^p\         P                  ! V4      V,          \         P                  ,          p\         P                  ! V4      V,          ^,          \         P                  ,          p	V! W4       VP                  4       p
RV
^&   \        \        4      ;_uu_ 4       pV! W4       RRR4       R\        XP                  4      9   g   Q hV	P                  4       pRV^&   \        \        4      ;_uu_ 4       pV! W4       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     L; i  + '       g   i     LA; i)   r   r   MbP?Nr&  r'  )r   randomuniformr   r   r   r   r   r   r   r  r  )rA   NSampThetaPhiDataInterpolatorNLonNLatGridPosLatsGridPosLonsnonGridPosLatsrl  nonGridPosLonss   &            r/   test_not_increasing_input1TestRectBivariateSpline.test_not_increasing_inputu  sQ   		!!!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   /	F7	G
7G	
G	c                   \         P                  P                  ^4      p\         P                  ! V4      p\         P                  ! V4      pVP	                  ^ ^dW34      pWEVP                  \         P                  4      3# r    )r   r.  default_rngr   integersastypefloat64)rA   r,   r-   rngrB   rC   r   s   &&&    r/   _sample_large_2d_data-TestRectBivariateSpline._sample_large_2d_data  s\    ii##A&IIbMIIbMLLC"*QXXbjj)))r1   r   s_tolsc                    Vw  r4Vw  rVpV P                  W44      w  rp
\        WWR 7      pV! W4      p\        P                  ! V4      P	                  4       '       d   Q h\        WWgR7       R# )r   rL   rtolNrC  r   r   isnananyr   )rA   r   rE  r,   r-   rI   rL   rH  rB   rC   r   rO   z_spls   &&&          r/   test_spline_large_2d,TestRectBivariateSpline.test_spline_large_2d  sd     ,,R4a!!/A	88E?&&(()(t7r1   z2Segfaults on 32-bit system due to large input data)reasonc                    R Rr!^RRrTpV P                  W4      w  rgp\        WgW^R7      p	V	! Wg4      p
\        P                  ! V
4      P	                  4       '       d   Q h\        WWER7       R# )r   i  {Gz?-q=)rI   maxitrG  NrI  )rA   r,   r-   rI   rL   rH  rB   rC   r   rO   rL  s   &          r/   test_spline_large_2d_maxit2TestRectBivariateSpline.test_spline_large_2d_maxit  sh    
 tB4,,R4a!!b9A	88E?&&(()(t7r1   re   N)^  iR  )i     ))r   rR  gHz>)r!   gy&1|?-C6?)r9   rQ  rX  l        )rf   rg   rh   ri   r  r  r  r   r	  r  r  r   r#  rm  r"  r;  rC  r&  r4  slowr5  rM  skipifsysmaxsizerT  rj   rk   rl   s   @r/   r  r    s     .%;
F<* <DAB	AJ/9b
BF:* [[[[Wz;&?@[[X (9 :	8: A 
	8 [[[[u, 6O P	8P 	8r1   r  c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )TestRectSphereBivariateSplinei  c           
         \        R ^\        ,          R ,
          ^4      p\        R \        R ,
          ^4      p\        . RO. RO. RO. RO. RO. RO. RO.4      p\        W!V4      p\	        V! W!4      V4       R# {Gz?Nr!   r8   r!   r8   r!   r8   r!   r!   r8   r9   r8   r!   r8   r!   r!   r8   r8   r8   r!   r8   r!   )r
   r   r   r   r   rA   rC   rB   r   r'   s   &    r/   r  +TestRectSphereBivariateSpline.test_defaults  se    T1R49a(T2d7A&???"??"$ % (A.!#a(1-r1   c           
        \        R ^\        ,          R ,
          ^4      p\        R \        R ,
          ^4      p\        . RO. RO. RO. RO. RO. RO. RO.4      p\        W!V4      p. ROp. ROpVP	                  We4      p\        \        We4       UU	u. uF  w  rV! W4      R,          NK  	  up	p4      p
\        Wz4       R# u up	pi )ra  Nrb  rc  rd  )r   r!   r  g@r;  gQ@g      @)r<   rF  r  g?gjt?r   rX  r   )r
   r   r   r   r  rG  r   )rA   rC   rB   r   r'   r  r  r  r   rL  r  s   &          r/   r  +TestRectSphereBivariateSpline.test_evaluate  s    T1R49a(T2d7A&???"??"$ % (A.16VVB^CK@K&"S[%%K@AB$ As   B?
c                   \         P                  ! \         P                  ! R \         P                  ! RR^4      ,
          4      P                  \         P                  ! R\         P
                  ! \         P                  ! RR^	4      4      ,
          4      4      P                  p\        \        4      ;_uu_ 4       p\         P                  ! R^^	4      \         P                  ,          R,          p\         P                  ! ^ R^4      \         P                  ,          R,          p\        W4V4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! ^ R^4      \         P                  ,          R,          p\        W4V4       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! R^
^4      \         P                  ,          R,          p\        W4V4       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! RR	^4      \         P                  ,          R,          p\        W4V4       RRR4       R
\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! ^
R^4      \         P                  ,          R,          p\        W4VRR7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     EL; i  + '       g   i     ELU; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L~; i)     V@      T@     f@ro        u@rV  Nu should be between (0, pi) v[0] should be between [-pi, pi)h  "v[-1] should be v[0] + 2pi or lessr   r        TrM   Kr   dot
atleast_2dr
   r  r>   r   r   r   r   r  r  rA   r  rl  r  r  s   &    r/   rm  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   9A5P)A5P*A5P>	A5Q9A7Q&P'	*P;	>Q	Q#	&Q6	c                    \        R ^\        ,          R ,
          ^4      p\        R \        R ,
          ^4      p\        . RO. RO. RO. RO. RO. RO. RO.4      p\        W!V4      p\        R^\        ,          R,
          ^4      p\        R\        R,
          ^4      p\	        V! W!^R7      \        WBV^R7      RRR7       \	        V! W!^R7      \        WBV^R7      RRR7       \	        V! W!^^R7      \        WBV^^R	R
7      RRR7       \        V! W!^R7      VP                  ^^ 4      ! W!4      4       \        V! W!^R7      VP                  ^ ^4      ! W!4      4       \        V! W!^^R7      VP                  ^^4      ! W!4      4       \        V! W!^RR7      VP                  ^^ 4      ! W!RR7      4       \        V! W!^RR7      VP                  ^ ^4      ! W!RR7      4       \        V! W!^^RR7      VP                  ^^4      ! W!RR7      4       R# )ra  rQ  )dthetar  rX  rH  rL   )dphir  )r|  r~  ư>r  r  ri  r-  Fr|  r]  r\  r~  r]  r|  r~  r]  Nrb  rc  rd  )r
   r   r   r   r   _numdiff_2dr   r  re  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r1   c                ~  a \        R ^\        ,          R ,
          ^4      p\        R \        R ,
          ^4      p\        . RO. RO. RO. RO. RO. RO. RO.4      p\        W!V4      o\        R^\        ,          R,
          ^4      p\        R\        R,
          ^4      pS! W!^RR7      P                  VP                  8X  g   Q h\        S! W!^RR7      \        V3R lW!^R7      RRR7       \        S! W!^RR7      \        V3R	 lW!^R
7      RRR7       \        S! W!^^RR7      \        V3R lW!^^RR7      RRR7       R# )ra  rQ  Fr  c                    < S! WR R7      # Fr\  re   rB   rC   r'   s   &&r/   <lambda>@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>"      AU0Cr1   r  rX  r}  r  c                    < S! WR R7      # r  re   r  s   &&r/   r  r  %  r  r1   r  r  c                    < S! WR R7      # r  re   r  s   &&r/   r  r  (  r  r1   r  r  r-  Nrb  rc  rd  )r
   r   r   r   r   r   r  re  s   &   @r/   r   .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$@!	.r1   c                   \         P                  ! \         P                  ! R \         P                  ! RR^4      ,
          4      P                  \         P                  ! R\         P
                  ! \         P                  ! RR^	4      4      ,
          4      4      P                  p\        \        4      ;_uu_ 4       p\         P                  ! ^ ^^	4      \         P                  ,          R,          p\         P                  ! ^ R^4      \         P                  ,          R,          p\        W4V4       RRR4       R\        XP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! ^ R^4      \         P                  ,          R,          p\        W4V4       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! R^
^4      \         P                  ,          R,          p\        W4V4       RRR4       R\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! RR	^4      \         P                  ,          R,          p\        W4V4       RRR4       R
\        VP                  4      9   g   Q h\        \        4      ;_uu_ 4       p\         P                  ! ^
^^	4      \         P                  ,          R,          p\         P                  ! ^
R^4      \         P                  ,          R,          p\        W4VRR7       RRR4       R\        VP                  4      9   g   Q hR#   + '       g   i     EL; i  + '       g   i     ELU; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L~; i)rj  rk  rl  ro   rm  rV  Nrn  ro  rp  rq  r   r  rr  rs  rt  rM   ru  rx  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 '&& '&& '&& '&& '&rz  c           
     j   \        R ^\        ,          R ,
          ^4      p\        R \        R ,
          ^4      p\        . RO. RO. RO. RO. RO. RO. RO.4      p\        W!V4      p\        VP	                  4       VP	                  4       VP	                  4       4      p\        V! W!4      V! W!4      4       R# r`  )r
   r   r   r   r   r   )rA   rC   rB   r   r!  r   s   &     r/   r"  3TestRectSphereBivariateSpline.test_array_like_inputN  s    T1r6D=!,T29a((*?((*?((	* + )q1(QXXZL!$q*d1j9r1   c                >   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! W4      pV^ ,          V^,          ,           p\         P                  ! V4      p\         P                  ! V4      p\	        WVV4      p\         P                  ! \         P                  ! ^#R.4      4      p\         P                  ! \         P                  ! RR.4      4      p	V! W4      p
\         P                  ! RR.R	R
..4      p\        W4       R# )r  g     B@N)r     #   r  -   )iir  ir  g     `Sg     Fg=Eg     HgDioEG)r   r   r   radiansr   r   )rA   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!+3r1   c           	     .   \         P                  ! ^^
4      \         P                  ,          ^
,          p\         P                  ! ^^
4      \         P                  ,          ^
,          p\         P                  ! R4      pR F  p\	        WV^ VR7       K  	  R# )r!   )rI   pole_continuityN)rx   rx   ))TT)TF)FF)r   r   r   r   r   )rA   uvrA  ps   &    r/   test_pole_continuity_gh_14591;TestRectSphereBivariateSpline.test_pole_continuity_gh_14591k  sf     IIaruu$r)IIaruu$r)HHV>A%aAAF ?r1   re   N)rf   rg   rh   ri   r  r  rm  r  r   r  r"  r  r  rj   rk   rl   s   @r/   r^  r^    s=     .% =D KD.0 =D:4G Gr1   r^  c                 L   V^ 8X  d   V^ 8X  d	   V ! W4      # V^8X  d9   V^ 8X  d2   V ! W,           V4      V ! W,
          V4      ,
          ^V,          ,          # V^ 8X  d9   V^8X  d2   V ! WV,           4      V ! WV,
          4      ,
          ^V,          ,          # V^8X  d   V^8X  dy   V ! W,           W%,           4      V ! W,
          W%,           4      ,
          V ! W,           W%,
          4      ,
          V ! W,
          W%,
          4      ,           ^V,          ^,          ,          # \        R4      h)r   zinvalid derivative order)r   )funcrB   rC   r  r  ri  s   &&&&&&r/   r  r  z  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4r1   c                   H   a  ] tR tRt o RtR tR tR tR tR t	R t
R	tV tR
# )Test_DerivedBivariateSplinei  z_Test the creation, usage, and attribute access of the (private)
_DerivedBivariateSpline class.
c                   \         P                  ! \        \        \	        ^
4      \	        ^
4      4      4      4      p\         P                  ! \        \        \	        ^
4      \	        ^^4      4      4      4      p\         P                  ! \         P
                  ! ^^^
4      \         P
                  ! ^^^
4      34      p\        P                  ! \        RR7      ;_uu_ 4        \        WV\        RR^4      \        RR^4      RR7      V n
        R	R	R	4       \        WV4      V n        \        ^ ^^4      pVR
,           p\        \	        VP                  4       Uu. uF  p\         P                  ! W64      NK  	  up4      p\!        WEV4      V n        \        \$        P&                  ! \	        ^4      \	        ^4      4      4      V n        R	#   + '       g   i     L; iu upi )r   r9  r  r   g     3@r<   g     4@ra  rh  Nr   )r   concatenatelistrG  r   r
   r&  r'  r(  r   r  r   
lut_smoothr   r  rollr   lut_rect	itertoolsproductr  )rA   rB   rC   r   r   r   izzs   &       r/   r  (Test_DerivedBivariateSpline.setup_method  sE   NN4E"IuRy 9:;NN4E"IuQ| <=>NNBKK1b12;;q!R3HIJ\\+-OPP-aA.6sD!.D.6sD!.D268DL Q
 0a8aB#X5=9=aBGGAM=9:+BB79,,U1XuQx@A QP :s    ,GGG	c           	         V P                    FH  w  rV P                  P                  W4      pV! R R RR7      pV P                  R R WRR7      pWE8X  d   KH  Q h	  R# )r   Fr\  r  N)r  r  r  rA   nuxnuylut_derr   r   s   &     r/   test_creation_from_LSQ2Test_DerivedBivariateSpline.test_creation_from_LSQ  sS    HCll55c?GSu-AS##EBA6M6	 $r1   c           	         V P                    FH  w  rV P                  P                  W4      pV! R R RR7      pV P                  R R WRR7      pWE8X  d   KH  Q h	  R# )g      @Fr\  r  N)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	 $r1   c           	     D   V P                    F  w  rV P                  P                  W4      p\        V P                  4      pVP	                  W34      pV! R RRR7      pV! R.4      pV P                  R RWRR7      pV! R.W3R7      p	Wh8X  g   Q h\        Wy4       K  	  R# )r   r<   Fr\  r  rS   N)r   r<   )r  r  r  r0   r   r   )
rA   r  r  r  lut_ndsplinelut_der_ndbspliner   a_ndbspliner   b_ndbsplines
   &         r/   test_creation_from_Rect3Test_DerivedBivariateSpline.test_creation_from_Rect  s    HCmm66s@G/>L , 7 7
 CSu-A+ZL9Kc33UCA&
|
CK6M69 $r1   c                   V P                   P                  ^^4      p\        V P                   4      pVP                  R4      p\	        \
        4      ;_uu_ 4        VP                   RRR4       \	        \
        4      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     L>; i  + '       g   i     R# ; i)r!   Nr   )r  r  r0   r   r   AttributeErrorfp)rA   derr  der_ndbsplines   &   r/   test_invalid_attribute_fp5Test_DerivedBivariateSpline.test_invalid_attribute_fp  s|    mm..q!4+DMM:$//7>**FF +>** +* +****s   BB0B-	0C	c                    V P                   P                  ^^4      p\        \        4      ;_uu_ 4        VP	                  4        RRR4       R#   + '       g   i     R# ; i)r!   N)r  r  r   r  r?   )rA   r  s   & r/   #test_invalid_attribute_get_residual?Test_DerivedBivariateSpline.test_invalid_attribute_get_residual  s>    oo00A6>** +***s   AA 	)r  r  r  r  N)rf   rg   rh   ri   __doc__r  r  r  r  r  r  rj   rk   rl   s   @r/   r  r    s.     B 
: r1   r  )r   r   g:0yE>)2r  r[  r  numpyr   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   r0   r3   r7  rx  r  r  r  r^  r  r  re   r1   r/   <module>r     s     
    *  C B B K K# # # : 4,C7 C7LV6 V6r~8 ~8BFB FBRRB RBjX8 X8v~G ~GB5: :r1   