+
    nDj'                       ^ 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	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      t0 ! R R4      t1 ! R R4      t2RR lt3 ! R R4      t4R# )    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	NdBSpline)_regrid_ndbspline_call_like_bivariatec                     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   &       _/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/interpolate/tests/test_fitpack2.pyconvert_to_ndbspliner2      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 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#         r;   r;   r;   r#         ?r:   r   r   r$   r'   absget_residualselfxyr)   s   &   r1   test_linear_constant)TestUnivariateSpline.test_linear_constant#   sl    qQ'!#--/Aq6:!#.."2QF;3##%&...!#k"2I>r3   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#   r7   )r8   srH   V瞯<atolNr9   r<   )r   r   r&   r   tr$   r0   r'   )rC   rH   rD   rE   r)   spls   &&    r1   test_linear_constant_periodic2TestUnivariateSpline.test_linear_constant_periodic,   s_    qQ'!!s1vw?aS]]_5As~~/e<r3   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#   r7   nuNr9   r   r:      )r>   r:         @)r   r   )rC   rD   rE   r)   args   &    r1   test_preserve_shape(TestUnivariateSpline.test_preserve_shape6   s    qq)SzU3s8_,,,SzU3sq>2222SzU3s8_,,,SzU3sq>2222r3   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#   r7   rL   Nr9   rW   r=   )r   r#   r:   r?   rB   s   &   r1   test_linear_1d#TestUnivariateSpline.test_linear_1dA   sk    qQ'!#--/1Q%8!#.."2Aa593##%&...!#i.9r3   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^Mt o R tRtV tR# )9TestUnivariateSpline.test_subclassing.<locals>.ZeroSplinec                &    ^ \        V4      ,          # r   )r   )rC   rD   s   &&r1   __call__BTestUnivariateSpline.test_subclassing.<locals>.ZeroSpline.__call__N   s    qz!r3    N)__name__
__module____qualname____firstlineno__re   __static_attributes____classdictcell____classdict__s   @r1   
ZeroSplinerb   M   s     " "r3   rp   r7   r>   rY           Nr#   r:   r;   rX      )r;   r:   r;   r:   r;   )r   r   )rC   rp   sps   &  r1   test_subclassing%TestUnivariateSpline.test_subclassingJ   s5    	") 	" [A6C:R1r3   c                f    . ROp. ROp\        W^R7      p\        V! . 4      \        . 4      4       R# )r#   r7   Nr#   r;   rs      	   r   rX   rz         )r   r   r   rC   rD   rE   rQ   s   &   r1   test_empty_input%TestUnivariateSpline.test_empty_inputT   s*    qq)Br+r3   c                r    . ROp. ROp\        W^R7      p\        VP                  4       ^ ,          R4       R# )r#   r7   g7ã?Nrx   r{   )r   r   rootsr~   s   &   r1   
test_rootsTestUnivariateSpline.test_roots[   s-    qq)CIIKN,=>r3   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     rK   N)npr
   r   cosr   r&   r   r~   s   &   r1   test_roots_length&TestUnivariateSpline.test_roots_lengtha   sN    KK2:t,FF1Iqq)399;2%%%r3   c                j    . ROp. ROp\        W^R7      p\        VP                  R4      . RO4       R# )r#   r7         @Nrx   r{   )g;@gpZ<o?gOmǿg      ?)r   r   derivativesr~   s   &   r1   test_derivatives%TestUnivariateSpline.test_derivativesg   s/    qq)COOC0F	Hr3   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   rL   rM   )rK   r8   N)g     F@g     C@g      6@      @)r   aranger   r   r   r   r   )rC   rD   rE   tckdersrQ   s   &     r1   test_derivatives_2'TestUnivariateSpline.test_derivatives_2n   sx    IIaLqD2ad7NQQa~ # #		$
 qqA.*"	$r3   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)rD   rE   wrK   gMb@?rM   )      g<&g_g@7ѿg46	<ƿgBϠrq   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   )rC   rD   rE   r   rQ   desireds   &     r1   test_resize_regression+TestUnivariateSpline.test_resize_regression~   sD     15HI12G$Gr3   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# )rs   dtyperq         @)rD   rE   )extgؗҜ<rM   gؗҬ<r;   rX   N)rD   rE   r   NrO   )r   extrapolate)r#   zeros)r:   raise)r;   const)rO   unknown)r   r   floatr
   copy
logical_orr   r   r   assert_raises
ValueErrordictr$   r   )
rC   rD   rE   xpxp_zerosxp_clipclsrQ   r   rP   s
   &         r1   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-/ #r3   c           	         \         P                  ! ^d4      R,          p\         P                  ! ^d4      R,          p\         P                  ! ^ ^c^
4      pRp\        \        \
        WVVR7       R# )d   r   bboxN)rO   e   )r   r   r
   r   r   r   )rC   xsysknotsr   s   &    r1   test_lsq_fpchec$TestUnivariateSpline.test_lsq_fpchec   sQ    YYs^b YYs^b Ar2&j"5ru	!r3   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)rC   rD   rE   rQ   spl2s   &    r1   "test_derivative_and_antiderivative7TestUnivariateSpline.test_derivative_and_antiderivative   s    KK1b!1$FF1Iqq)!!!$//2C$s),!!!$S	DI-S#.	0r3   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   r8   rL   rM   Nr#   r:   rX      g      !@)r   皙??rY   rs   )rO   r   g      rz   g      #@
   )r   r   r   r   
zeros_like)rC   x_valuesy_valuesfrD   s   &    r1   test_derivative_extrapolation2TestUnivariateSpline.test_derivative_extrapolation   sA     %*XWB%q)2==+;%Hr3   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# )rq   r   )rK   r   rL   N)r#   r#   )r#   rs   )r:   rs   r   r   )r   )r   rO   )r   r
   ranger   r@   r   )rC   rD   r   r   abs   &     r1   test_integral_out_of_bounds0TestUnivariateSpline.test_integral_out_of_bounds   s\     KKB"8C 4A61::a+,u4446 r3   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   rD   rE   r   )rD   rE   rP   r   )rD   rE   r   r   rD   rE   rP   r   r   NrO   )r   r   r   	ones_liker   r$   naninfr   r   r   r   r   )rC   rD   rE   r   rQ   rP   y_endzs   &       r1   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 +r3   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   )rD   rE   r   rK   r   r   )rD   rE   rK   r   r   N)r   r   r   r   r   r$   r   r   r   r   r   rC   xxyyrD   rE   r   rQ   rP   s   &       r1   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	5r3   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   &       r1   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=	?r3   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,)r7   k should be 1 <= k <= 5r   s should be s >= 0.0r   r   r   r   rY   r   r   r   rY   gffffff@r   r   r   r   r   rO   )r   r   r   strvaluerC   infor   r   w_valuesr   s   &     r1   (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	  r7   r
  r   r  r  r  rO   )r   r   r   r  r  r  s   &     r1   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	  r7   r
  r   r  r  )r   r   r   r   )r   rO   )r   r$   r   r   r   r  r  )	rC   r   r   rQ   t_valuesr  r  messager   s	   &        r1   ,test_invalid_input_for_lsq_univariate_splineATestUnivariateSpline.test_invalid_input_for_lsq_univariate_splineU  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#   )rD   rE   r   r   Nr   r  )r   r   r   r   r   r  r   )r   r   r   tolistr   )rC   r   r   r  r   spl1r   s   &      r1   test_array_like_input*TestUnivariateSpline.test_array_like_inputw  s    88-.88568856xxs$((%)+  (//"3x7H"*//"3$++-I 	2323	5r3   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   rq   g%@g      &@g      %@gffffff%@g333333%@g      '@g%@g$@z2does not satisfy the condition abs\(fp-s\)/s < tolr  r7   N)r   pytestwarnsUserWarningr   )rC   rD   rE   msgs   &   r1   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 # Nrg   )_interprD   s   &&&r1   	worker_fn8TestUnivariateSpline.test_concurrency.<locals>.worker_fn  s	    1Ir3   N)r   r   r   r   r   )rC   r   r   rD   rQ   r3  s   &     r1   test_concurrency%TestUnivariateSpline.test_concurrency  sY     YYs%(UIIc't!rD9	 	 IA6r3   c                    \         P                  ! . RO4      p\         P                  ! . RO4      pVP                  R^4      pVP                  R^4      p\        W4      p\        W44      p\         P                  ! . RO4      p\         P                  P                  V! V4      V! V4      4       VP                  ^R4      pVP                  ^R4      p	\        W4      p
\         P                  P                  V! V4      V
! V4      4       \         P                  ! . RO. R	O.4      p\         P                  ! . R
O. RO.4      p\        P                  ! \        RR7      ;_uu_ 4        \        W4       RRR4       R#   + '       g   i     R# ; i)z=Test that 2D arrays are flattened correctly in Fortran order.zx\[0\]<x\[1\]<r  N)rq   r   r         @r         @)rq   r   r         "@      0@      9@rO   )r   r>   rY   r   )r   r   r8  )r   r9  r   )r   r   r:  )r;  r<  g      B@)	r   r   r(   r   testingassert_allcloser(  r)  r*  )rC   x_1dy_1dx_coly_colspl_1dspl_coltest_pointsx_rowy_rowspl_rowx_2dy_2ds   &            r1   test_curfit_2d_array_handling2TestUnivariateSpline.test_curfit_2d_array_handling  s-    xx01xx23 R#R#-d9.u<hh34


""6+#68LM Q#Q#.u<


""6+#68LM xx$& 'xx') * \\+-ABB(4 CBBBs   &E<<F	rg   )#rh   ri   rj   rk   rF   r(  markparametrizerR   r[   r^   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r$  r,  r5  rK  rl   rm   rn   s   @r1   r5   r5   "   s     ? [[Yz(:;= <=	3:2,?&H$ H '/R!0I5C45*?$98<0 <D5(&7)5 )5r3   r5   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-   Nr8  	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   asarray	rC   rD   rE   r   rK   r*   r+   rr)   s	   &        r1   rF   +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   rR  r  rS  Nr#   NNrT  rU  	r   ry   r   r;   rX   ry   r#   r;   rX   rO   )r   r   r   )r   皙?gffffff?)r(  r)  r*  r   r$   zipr   )rC   rD   rE   r   rK   r*   r+   r)   xaxbyaybrP   r   ypzps   &               r1   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   rR  r  rS  N      ?r\  )	r#   r#   r#   r:   r:   r:   r   r   r   rU  r]  NNNNNrk  rO   r\  r\  )r   r(  r)  r*  r   r&   r$   r	   sumr   r   rW  r   )rC   rD   rE   r   rK   r*   r+   rY  r)   tztrpzs   &          r1   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   rR  r  rS  NFgridrT  rU  rV  r   rd   )r(  r)  r*  r   r&   r   r   r   rX  s	   &        r1   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,)rS  ;The length of x, y and z should be at least (kx+1) * (ky+1)rq   epseps should be between (0, 1)r   r  r   r  )r   r   r   r
   r   r  r  )rC   rK   r*   r+   r  rD   rE   r   r   r   exc_infos   &          r1   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   rx  rR  r  )r   r   r   N)r   rx  r   rx  )
r   r   r
   r(  r)  r*  r   r"  r   r&   )rC   rK   r*   r+   rD   rE   r   r   r   rY  r#  r   s   &           r1   r$  ,TestLSQBivariateSpline.test_array_like_inputG  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.
r8  r   g     X@rR  r  NFrt  )r   r   Nr  )r   mgridravelr   r
   r(  r)  r*  r   r&   r   )rC   rD   rE   r   r*   r+   rY  r)   s   &       r1   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:	rg   N)rh   ri   rj   rk   rF   rf  rq  r   r  r$  r  rl   rm   rn   s   @r1   rP  rP    s0     7<0.&A)EV(6 6r3   rP  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	# )
TestSmoothBivariateSplineil  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#   rS  rL   r>   NrT  rU  rV  )r#   r#   r;   r;   )r;   r;   r;   r;   r=   )r   r$   r   r'   r@   rA   rC   rD   rE   r   r)   rP   s   &     r1   rF   .TestSmoothBivariateSpline.test_linear_constantm  s    #AQ!4A%a6 ! 	"#.."2LA3##%&...!#kAs8"<1v1vPQSTv>VWr3   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#   rS  rL   r>   NrT  rU  )	r   r   r   r:   r:   r:   rX   rX   rX   )r   r#   r;   r;   )r   r   rX   rX   r=   )	r   r$   r   r   rW  r   r'   r@   rA   r  s   &     r1   r^   (TestSmoothBivariateSpline.test_linear_1dy  s    #AQ!4AArzz.9: !!#.."2LA3##%&...!#i3"81Q%1qe9LMr3   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-   rK   Nri  r\  )decimal)	r#   r#   r#   r:   r:   r:   rX   rX   rX   rU  r]  )r#   r:   rX   r9   rj  rl  rO   rm  r   )r   warningscatch_warningsfilterwarningsr*  r   r	   rn  r   r   rW  r   )
rC   rD   rE   r   r)   r*   r+   ro  rp  lut2s
   &         r1   rq  'TestSmoothBivariateSpline.test_integral  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# )r:   Nr   rO   )r   r
   r   r   r   r   )
rC   rD   rE   r   xiyir   res1interp_res2s
   &         r1   test_rerun_lwrk2_too_small4TestSmoothBivariateSpline.test_rerun_lwrk2_too_small  s     KKAr"KKAr"E[[Q$[[Q$qQrs#'a0rD'r3   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   rx  ry  Nr{  r  r|  r}  r   r~  rS  r  r   r  rq   r  r  r   r  )r   r   r   r
   r   r  r  )rC   r  rD   rE   r   r   r   r  s   &       r1   r  ,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   NrT  rU  rV  )	r#   r#   r#   r#   r#   r#   r#   r#   r#   )r   r8  r   r8  )r   r   r   r"  r   )rC   rD   rE   r   r   r   r#  r   s   &       r1   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#7r3   rg   N)rh   ri   rj   rk   rF   r^   rq  r  r  r$  rl   rm   rn   s   @r1   r  r  l  s,     
X	N.>(*EX8 8r3   r  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   NNrs   N)r  r  )r
   r   r   r   r   r   r  Tlut_lsqdatanew_lonsnew_lats)rC   nthetanphithetaphir  knotstknotspknotdatalatslonsr  s   &           r1   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}r3   c                    \        V P                  P                  4       4      R 8  g   Q h\        V P                  V P                  V P
                  4      V P                  4       R# )rL   N)r@   r  rA   r   r  r  r  rC   s   &r1   rF   1TestLSQSphereBivariateSpline.test_linear_constant   sF    4<<,,./%777!$,,t}}dmm"L"&))	-r3   c                    \        V P                  . . 4      \        P                  ! R4      4       \        V P                  . . RR7      \        P                  ! R4      4       R# r   Frt  Nr   rd   )r   r  r   r   r  s   &r1   r   -TestLSQSphereBivariateSpline.test_empty_input  s@    !$,,r2"6H!$,,r2E,"BBHHTNSr3   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   ry  Ntheta should be between [0, pi]皙?phi should be between [0, 2pi]rq   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   r   r   )r
   r   r   r   r   r   r   r   r  r  r  r  r   r   r   )rC   r  r  r  r  r  r  r  r  invalid_thetainvalid_latsr  invalid_phir  invalid_lonsinvalid_knotstinvalid_knotsp	invalid_ws   &                 r1   r  /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   r  r   r  r"  r   )rC   r  r  r  r  r  r  r  r  r  r   r#  r   s   &            r1   r$  2TestLSQSphereBivariateSpline.test_array_like_input]  so   2
+Q
1C-C!#%&sdQh'SD1H-=)=!"$&'e)
U[[^SYYq\23sS##A&' (

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

(;(;(=(,

(;(;(=(,(=(=(?(.(.188:	G
 	"$sC.$sC.Ar3   )r  r  r  r  Nrh   ri   rj   rk   r  rF   r   r  r$  rl   rm   rn   s   @r1   r  r    s)     6$-
TREhB Br3   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestSmoothSphereBivariateSplineiv  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# )ri  r         ?r>       _Br   NrV  )r   r   r   r)   )rC   r  r  rY  s   &   r1   r  ,TestSmoothSphereBivariateSpline.setup_methodw  s    s2vs2vs2vr"ubeRUCF2vs2v' (R"Wb#(BGRr27B2X  -..u1Er3   c                    \        V P                  P                  4       4      R 8  g   Q h\        V P                  . RO^R.4      ^^.^^.^^..4       R# )rL   r>   Nr=   )r@   r)   rA   r   r  s   &r1   rF   4TestSmoothSphereBivariateSpline.test_linear_constant  sQ    488((*+e333!$((;3x"@$%q6Aq6Aq6":	<r3   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   &r1   r   0TestSmoothSphereBivariateSpline.test_empty_input  s@    !$((2r"2BHHUOD!$((2r(">Or3   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)ri  r   r  r>   r  r   Nr  r  r  r   g @r   rK   r}  s should be positiver  r  rV  r  r   r  )r   r   r   r   r   r  r  )rC   r  r  rY  r  r  r  r  s   &       r1   r  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# )
ri  r   r  r>   r   r  r  NrV  )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r"  r   )rC   r  r  rY  r   r#  r   s   &      r1   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.Ar3   )r)   Nr  rn   s   @r1   r  r  v  s)     F<
P0EdB Br3   r  c            	       \  a  ] tR tRt o ]P
                  P                  R^^.4      R 4       t]P
                  P                  R^^.4      R 4       t]P
                  P                  R^^.4      R 4       t	]P
                  P                  R. RO4      ]P
                  P                  R^^.4      R 4       4       t
]P
                  P                  R^^.4      R 4       tR	 tR
 tR tR tR t]P
                  P                  R^^.4      R 4       t]P
                  P                  R^^.4      R 4       tR t]P
                  P                  R^^.4      R 4       tR tR tR t]P
                  P1                  4       ]P
                  P                  RR R!.4      ]P
                  P                  R. R"O4      ]P
                  P                  R]]3]]334      R 4       4       4       4       t]P
                  P;                  4       ]P
                  P=                  ]P@                  R#8*  RR7      ]P
                  P                  R^^.4      ]P
                  P                  R]]3]]334      R 4       4       4       4       t!]P
                  P                  R]]3]]334      R 4       t"Rt#V t$R# )$TestRectBivariateSplinei  r8   c                0   \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        W#WAVR7      p\        V! W#4      V4       \        W#WAVR7      p\	        \        WbV4      VP                  \        P                  4      4       R# )r#   rS  Nrr   r#   r:   r#   r:   r#   r#   r:   r;   r:   r#   r#   r:   r:   r:   r#   )	r   r   r   r   r   r    astyper   float64)rC   r8   rD   rE   r   r)   
lut_customs   &&     r1   test_defaults%TestRectBivariateSpline.test_defaults  s    /"/"?""""	$ % "!A6!#a)Q/Q1q1
*:!<ahhrzz>R	Tr3   c                   \         P                  ! ^ ^^4      p\         P                  ! ^ ^^4      p\         P                  ! VR,          4      \         P                  ! VR,          4      ,          p\         P                  ! ^ ^^24      p\         P                  ! ^ ^^24      p\	        W#WAVR7      pV! WV4      p\        W#WAVR7      p	\        WV4      p
\        W^ RR7       R# )r   NrS  rtolrN   rj  rl  Tqs*>)r   r
   sinr   r   r   r    r   )rC   r8   rD   rE   r   r  r  refref_valscustomcustom_valss   &&         r1    test_interpolated_offgrid_points8TestRectBivariateSpline.test_interpolated_offgrid_points  s     KK1a KK1a FF1W:'
!33[[Ar"[[Ar"!!A6r;q1-4VD\	3r3   c                   \         P                  ! ^V^,           4      p\         P                  ! ^V^,           4      pVR,          VR,          ,           pVRR VR,          ,           ^,          pVRR VR,          ,           ^,          p\        W#WAVR7      p\        W#WAVR7      pV! WV4      p	\	        WV4      p
\        W^ RR7       R# )	r#   Nr\  rS  r  rj  rl  rO   r  )r   r   r   r   r    r   )rC   r8   rD   rE   r   r  r  r  r  r  r  s   &&         r1   test_midpoints&TestRectBivariateSpline.test_midpoints  s     IIaQIIaQgJ7#fqun!fqun!!!A6q1-r;4VD\	3r3   s_valc           	     $   \         P                  ! ^ ^^4      p\         P                  ! ^ ^^4      p\         P                  ! W4RR7      w  rVWV,           pVRR VR,          ,           ^,          pVRR VR,          ,           ^,          p	\         P                  ! ^ ^^24      p
\         P                  ! ^ ^^24      pRW43RW3RW3.p\        W4WqW"R7      p\	        W4WqW"R7      pV F,  w  pppV! VV4      p\        VVV4      p\        VVR	R	R
7       K.  	  R# )r   ijindexingNr\  zoriginal grid	midpointsz
dense grid)rK   r,   r-   {Gz?r  rO   )r   r
   r   r   r   r    r   )rC   r   r8   rD   rE   XYr   x_midy_midxi_denseyi_dense
query_setsr  r  r1  r  r  r  r  s   &&&                 r1   test_custom_matches_reference5TestRectBivariateSpline.test_custom_matches_reference  s    KK1b!KK1b!{{1$/E3B!B%1$3B!B%1$;;q!R(;;q!R( a#%'8.

 "!q?qa6#IAr22r{H8RHKK!%D2	 $r3   c                   \        . RO4      p\        . RO4      p\        . RO. RO. RO. R	O. RO.4      p\        W#WAVR7      p\        W#WAVR7      p. R
Op. ROpVP                  Wx4      p	\        \	        Wx4       U
Uu. uF  w  rV! W4      R,          NK  	  upp
4      p\        W4       \        WgVRR7      p\        \	        Wx4       U
Uu. uF  w  r\        WjV4      R,          NK  	  upp
4      p\        W^ RR7       R# u upp
i u upp
i )r#   rS  Frt  r  Nrr   r  r  r  )r#   ffffff@g333333@r   ffffff
@333333?r;   )r#   r  r  r   r9  r   r;   r   r  )r   r   r   evr_  r   r    r   )rC   r8   rD   rE   r   r)   r  r  r  zir   rd  zi2	zi_custom
zi2_customs   &&             r1   test_evaluate%TestRectBivariateSpline.test_evaluate   s    ++;{;{;OP!!a2Q1q1
,,VVB^CK@K&"S[%%K@AB$2:2ER	*-b+7*5 ;:2NtTT*57 8
	\	3 A
7s   =D
D
c           
     t   \        . 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\        WV4      p\        V! W^R7      V4       \        V! W^R7      V4       \        V! W^^R7      V4       \	        \        WV^R7      V^ RR7       \	        \        WV^R7      V^ RR7       \	        \        WV^^R7      V^ RR7       R# )r#   r   dxdyr  r  r  Nrr   r  r  r  r   r   ir   r   r   r      r   r   r   r   rX   r   r   r   r   ir   r   rX   rO   r   r#   r   r>   r   g      r   r:   ri  r         пr   (   ir      iig     @0@r   g     @0   r   rs   r   r      g     +r   g     +@ir  )r   r   r   r   r   r    	rC   rD   rE   r   r  r  dxdyr)   r  s	   &        r1   test_derivatives_grid-TestRectBivariateSpline.test_derivatives_grid5  s3   ++;{;{;OPM,{+' ((*+M-0@m- .'(?1-A BBDE "!a(Q^
!#aQ-3!#aQ-3!#aQ!"4T:*:a@	' 	*:a@	' 	*:a1Ed	'r3   c                $   \        . 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       \        WV4      p\	        \        WV^RR7      V^ RR7       \	        \        WV^RR7      V^ RR7       \	        \        WV^^RR7      V^ RR7       R# )r#         8@F)r  ru  )r  ru  r  r  ru  r  Nrr   r  r  r  r   r   gUUUUUU?r   r   rX   rO   r   r*  r'     A   r   7       r  )r   r   r   r   r   r    r4  s	   &        r1   r   (TestRectBivariateSpline.test_derivativesP  s    ++;{;{;OP>"#$%&s*!!a(!#aQE":2>!#aQE":2>!#aQ!"?EQ^
*:QEJAL	
 	*:QEJAL	
 	*:Q!Oal	
r3   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   )rC   rD   rE   r  r  s   &&&  r1   make_pair_grid&TestRectBivariateSpline.make_pair_gridj  s/    & xxA:Ab"bA:;;:s   2
c                r   \        . 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  	  \        WV4      p\        \        VP	                  ^^ .4      W4      V^ RR7       \        \        VP	                  ^ ^.4      W4      V^ RR7       \        \        VP	                  ^^.4      W4      V^ RR7       R# )r#   r   r  Nrr   r  r  r  r!  r"  r$  r%  r&  r(  r)  r+  r.  r0  r2  r  )r   r   r2   partial_derivativer   rD  r(   r   r   r   r   r    )rC   rD   rE   r   r  r  r5  r)   lut_ndbsplineordersexpectedactual_rect
actual_ndbr  s   &             r1   #test_partial_derivative_method_grid;TestRectBivariateSpline.test_partial_derivative_method_grid  s   /"/"?""""	$ %
 %$#%#	% & )+	+
 %%()%	' (
 +1'1'	) * -/	/
 "!*,S1#$a&"A|q!fd^ LF00&9!?K&11&9##A)ghnn%  &k<%j; !M Q1%
*:+@+@!Q+H!OAL	
 	*:+@+@!Q+H!OAL	
 	*:+@+@!Q+H!Oal	
r3   c           	        \        . 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\        WV4      pV P	                  W4      p\
        P                  ! \        V4      4      p	W\        V4      ,          V	,           ,          p
VP                  4        F~  w  rVw  rVP                  W4      ! WRR7      p\        W4       VP                  W.4      ! V
4      p\        VV4       \        VP                  W.4      WRR7      p\        VV^ RR7       K  	  R# )r#   r9  Frt  r  Nrr   r  r  r  )r#   r   r;  )r   r#   r<  r   r=  r  )r   r   r2   r   rD  r   r   r&   itemsrG  r   r   r    r   )rC   rD   rE   r   rJ  r)   rH  r  pointsdiag_idxdiag_pointsrI  expected_valsr  r  
actual_rbsrL  	actual_rps   &                 r1   test_partial_derivative_method6TestRectBivariateSpline.test_partial_derivative_method  sN   /"/"?""""	$ % E,-E./E./#5
 "!*,S1Q1%
$$Q* 99SV$A.9:%-^^%5!FFB//75IJ%j@ '112(;KHJ%j-@ 7z7L7LbX7V5"II}!"7 &6r3   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                  V^,           ^4       RRR4       VP                  V^,           ^.4      P                  R8H  P                  4       '       g   Q h\        W#WAVR7      p\        \        4      ;_uu_ 4        VP                  V^,           ^4       RRR4       \        W#WAVR7      pVP                  V^,           ^.4      P                  R8H  P                  4       '       g   Q hR#   + '       g   i     L; i  + '       g   i     Lp; i)r   r   Nrq   rS  )r   r#   r:   r;   rX   )r   r   r   r   sizer   r2   r   r   rG  r   r0   allr   )rC   r8   rD   rE   r   r)   rH  r  s   &&      r1   'test_partial_derivative_order_too_large?TestRectBivariateSpline.test_partial_derivative_order_too_large  s&   //FFH!&&!&&!"!!*,S1:&&""1q5!, ' ((!a%466#=BBDDDD!!A6:&&""1q5!, ' Q1q1
%%q1uaj133s:??AAAA '& '&s   3E&7E9&E6	9F		c           	         \        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        W#WAVR7      p\        V! W#4      V! VR	,          VR
,          RR7      4       R# )r#   rS  NFrt  rr   r  r  r  rj  rl  )r   r   r   )rC   r8   rD   rE   r   r)   s   &&    r1   test_broadcast&TestRectBivariateSpline.test_broadcast  sX    ++;{;{;OP!!a2A	3qy!F)%#HIr3   c           	     
   \        . R
O4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        XP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        XP
                  4      9   g   Q h\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        VP
                  4      9   g   Q h\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO.4      p\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        VP
                  4      9   g   Q h\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      p\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        WV4       RRR4       R\	        VP
                  4      9   g   Q h\        . RO4      p\        . RO4      p\        . RO. RO. RO. RO. RO.4      pRp\        \        4      ;_uu_ 4       p\        WW6R7       RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        WW6R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L; i  + '       g   i     ELL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELK; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELw; i  + '       g   i     ELA; i  + '       g   i     E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   r~  r   r  )r   r:   r;   rX   rs   rr   r  r  r  )r:   r:   r;   rX   rs   )r#   r:   r#   r:   )r#   r:   r;   r:   )r#   r:   r:   r:   r  r   )r   r   r   r   r  r  r   )rC   rD   rE   r   r  info_customr   s   &      r1   r  *TestRectBivariateSpline.test_invalid_input  s   /"/"?O_#_6 7 :&&$a( '.#djj/AAA:&&+A! '.#k6G6G2HHHH/"/"?O_#_6 7:&&$a( '.#djj/AAA:&&+A! '.#k6G6G2HHHH/"/"?O_#% &:&&$a( 'Hdjj/" 	" " :&&+A! 'Hk''() 	) ) /"/"<| ,0 1 :&&$a( 'Hdjj/" 	" " :&&+A! 'Hk''() 	) ) /"/"?O_#_6 7 :&&$a3 '*c$**o===:&&+A!' '*c+2C2C.DDDD:&&$a40 '%TZZ888:&&+A!t$ '%[->->)????K '&& '&& '&& '&& '&&
 '&& '&&
 '&& '&& '&& '&& '&&s   Q,R RR(R<SS$S8T$T -T47U,Q=	 R	R%	(R9	<S	S!	$S5	8T		T	 T1	4U	U	c           	        \        . 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#WEWR7      p\        W#WEWR7      p\        VP                  4       VP                  4       VP                  4       VP                  4       WR7      p\        VP                  4       VP                  4       VP                  4       VP                  4       WR7      p	\	        V! RR4      V! RR4      4       \        V! RR4      \        VRR4      ^ R
R7       \        V! RR4      \        V	RR4      ^ R
R7       \        \        VRR4      \        V	RR4      ^ R
R7       R# )r#   )r   r,   r-   r   r  Nrr   r  r  r  )r#   rs   r#   rs   r  )r   r   r   r"  r   r   r    )
rC   r8   rD   rE   r   r   r#  spl1_customr   spl2_customs
   &&        r1   r$  -TestRectBivariateSpline.test_array_like_input@  s3   /"/"?O_"O5 6\""1!BaAQ="188:qxxz188:(,!Cahhj!((*ahhj(,!C!$sC.$sC.AS#6{CM\	3 	S#6{CM\	3 	6{CM6{CM\	3r3   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?Nrb  rc  )r   randomuniformr   r   r   r   r   r   r   r  r  )rC   NSampThetaPhiDataInterpolatorNLonNLatGridPosLatsGridPosLonsnonGridPosLatsr  nonGridPosLonss   &            r1   test_not_increasing_input1TestRectBivariateSpline.test_not_increasing_inputY  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   rm  default_rngr   integersr  r  )rC   r.   r/   rngrD   rE   r   s   &&&    r1   _sample_large_2d_data-TestRectBivariateSpline._sample_large_2d_datav  s\    ii##A&IIbMIIbMLLC"*QXXbjj)))r3   c                    V ! W4      # r0  rg   )rQ   rD   rE   s   &&&r1   _RectBivariateSplineEval0TestRectBivariateSpline._RectBivariateSplineEval  s    1yr3   r   s_tolsspl_apisc                    Vw  rEVw  rgpV P                  WE4      w  rpVw  rV! WWR 7      pV! WV
4      p\        P                  ! V4      P                  4       '       d   Q h\	        WWxR7       R# )r   rN   r  Nr  r   isnananyr   )rC   r   r  r  r.   r/   rK   rN   r  rD   rE   r   spl_constructspl_evalrQ   z_spls   &&&&            r1   test_spline_large_2d,TestRectBivariateSpline.test_spline_large_2d  so    & ,,R4a"*A!)#88E?&&(()(t7r3   z2Segfaults on 32-bit system due to large input data)reasonc           
         R RrC^RRrvpV P                  W44      w  rp
Vw  rV! WW^WR7      pV! WV	4      p\        P                  ! V4      P                  4       '       d   Q h\	        WWgR7       R# )r   i  r  -q=)rK   maxitr,   r-   r  Nr  )rC   r8   r  r.   r/   rK   rN   r  rD   rE   r   r  r  rQ   r  s   &&&            r1   test_spline_large_2d_maxit2TestRectBivariateSpline.test_spline_large_2d_maxit  sx    " tB4,,R4a"*A!"$2#88E?&&(()(t7r3   c           	        ^@^@r2^^rTRp\         P                  P                  ^ 4      p\         P                  ! RRV\        R7      p\         P                  ! RRV\        R7      p	\         P
                  ! WRR7      w  r\         P                  ! V
4      \         P                  ! V4      ,          R\         P                  ! ^V
,          R,           4      ,          \         P                  ! R	V,          R,
          4      ,          ,           R
VP                  W#3R7      ,          ,           P                  \        4      pVw  rV! WWWVR7      pV! WV	4      p\         P                  ! V4      P                  4       '       d   Q h\        VVRRR7       R# )zE
Test regrid with synthetic smooth data (mixed frequencies + noise).
r   rq   r   r   r  r  r   r   r>   g?)rZ  r  r   r  N)r   rm  r}  r
   r   r   r  r   normalr  r  r  r   )rC   r  r.   r/   r,   r-   rK   r  rD   rE   r  r  r   r  r  rQ   r  s   &&               r1   test_spline_synthetic_data2TestRectBivariateSpline.test_spline_synthetic_data  s-    RBABii##A&KKS"E2KKS"E2 {{1$/FF1Iq	!BFF1q53;''"&&q3*??@SZZbXZ../ &-	 	
 #+A!r7#88E?&&((((qs5r3   rg   N)r   r   rx  g      Y@)^  iR  )i     ))r   r  gHz>)r#   gy&1|?-C6?)r;   r  r  l        )%rh   ri   rj   rk   r(  rM  rN  r  r  r  r  r  r6  r   rD  rM  rW  r\  r_  r  r$  rz  r  r  slowr   r   r    r  xslowskipifsysmaxsizer  r  rl   rm   rn   s   @r1   r  r    s     [[S1a&)T *T  [[S1a&)3 *3$ [[S1a&)3 *3$ [[W&=>[[S1a&)2 * ?26 [[S1a&)3 *3('6
4<*.
`&7P [[S1a&)B *B$ [[S1a&)J *JL@\ [[S1a&)3 *30F:* [[[[Wz;&?@[[X (9 : [[Z+>+C+E+2+I+K*L M8	M: A 8* [[[[u, 6O P[[S1a&)[[Z+>+C+E+2+I+K*L M8	M *P 8* [[Z+>+C+E+2+I+K*L M6	M6r3   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#   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   rC   rE   rD   r   r)   s   &    r1   r  +TestRectSphereBivariateSpline.test_defaults  se    T1R49a(T2d7A&???"??"$ % (A.!#a(1-r3   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 )r  Nr  r  r  )r   r#   r  g@r8  gQ@g      @)r>   r^  r  g?gjt?r   r  r   )r
   r   r   r   r  r_  r   )rC   rE   rD   r   r)   r  r  r  r   rd  r  s   &          r1   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@rq        u@r  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        TrO   Kr   dot
atleast_2dr
   r  r@   r   r   r   r   r  r  rC   r  r  r  r  s   &    r1   r  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# )r  r  )dthetar  r  r  )dphir  )r  r  ư>r  r  r  rl  Fr  ru  rt  r  ru  r  r  ru  Nr  r  r  )r
   r   r   r   r   _numdiff_2dr   rG  r  s   &    r1   r6  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r3   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# )r  r  Fr  c                    < S! WR R7      # Frt  rg   rD   rE   r)   s   &&r1   <lambda>@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>O      AU0Cr3   r  r  r  r  c                    < S! WR R7      # r  rg   r  s   &&r1   r  r  R  r  r3   r  r  c                    < S! WR R7      # r  rg   r  s   &&r1   r  r  U  r  r3   r  r  rl  Nr  r  r  )r
   r   r   r   r   r   r  r  s   &   @r1   r   .TestRectSphereBivariateSpline.test_derivativesA  s   T1R49a(T2d7A&???"??"$ % (A.T1R49a(T2d7A&1.44???A7#$CQaP!	. 	Aqu5#$CQaP!	. 	A?#$C$%Q1$@!	.r3   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)r  r  r  rq   r  r  Nr  r  r  r  r   r  r  r  r  rO   r  r  s   &    r1   test_invalid_input_22TestRectSphereBivariateSpline.test_invalid_input_2Y  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 '&& '&& '&& '&& '&r  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   )rC   rE   rD   r   r#  r   s   &     r1   r$  3TestRectSphereBivariateSpline.test_array_like_input{  s    T1r6D=!,T29a((*?((*?((	* + )q1(QXXZL!$q*d1j9r3   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   )rC   r  r  meshr  lat_rlon_rinterpolator	query_lat	query_londata_interpanss   &           r1   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!+3r3   c           	     .   \         P                  ! ^^
4      \         P                  ,          ^
,          p\         P                  ! ^^
4      \         P                  ,          ^
,          p\         P                  ! R4      pR F  p\	        WV^ VR7       K  	  R# )r#   )rK   pole_continuityN)rz   rz   ))TT)TF)FF)r   r   r   r   r   )rC   uvrY  ps   &    r1   test_pole_continuity_gh_14591;TestRectSphereBivariateSpline.test_pole_continuity_gh_14591  sf     IIaruu$r)IIaruu$r)HHV>A%aAAF ?r3   rg   N)rh   ri   rj   rk   r  r  r  r6  r   r  r$  r  r  rl   rm   rn   s   @r1   r  r    s=     .% =D KD.0 =D:4G Gr3   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   )funcrD   rE   r  r  r  s   &&&&&&r1   r  r    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4r3   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^^R7      V n        \%        WEV^^R7      V n        \        \(        P*                  ! \	        ^4      \	        ^4      4      4      V n        R	#   + '       g   i     L; iu upi )r   rR  r  r   g     3@r>   g     4@r  r  Nr   rS  )r   concatenatelistr_  r   r
   r(  r)  r*  r   r  r   
lut_smoothr   rZ  rollr   lut_rectr   lut_rect_custom	itertoolsproductrI  )rC   rD   rE   r   r   r   izzs   &       r1   r  (Test_DerivedBivariateSpline.setup_method  s\   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:+BB1C&rraA>9,,U1XuQx@A QP :s    ,GG1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   Frt  r:  N)rI  r  rG  rC   nuxnuylut_derr   r   s   &     r1   test_creation_from_LSQ2Test_DerivedBivariateSpline.test_creation_from_LSQ  sS    HCll55c?GSu-AS##EBA6M6	 $r3   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      @Frt  r:  N)rI  r  rG  r  s   &     r1   test_creation_from_Smooth5Test_DerivedBivariateSpline.test_creation_from_Smooth  sS    HCoo88BGSu-ASSuEA6M6	 $r3   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	  V P                    FU  w  rV P                  P	                  W.4      p\        VR R4      p\        V P                  R RWR7      p\        WE^ R	R7       KW  	  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	WE8X  g   Q h\        W4       K  	  R# )r   r>   Frt  r:  r   r  rU   Nr  )r   r>   )	rI  r  rG  r  r   r    r   r2   r   )
rC   r  r  r  r   r   lut_ndsplinelut_der_ndbsplinea_ndbsplineb_ndbsplines
   &         r1   test_creation_from_Rect3Test_DerivedBivariateSpline.test_creation_from_Rect  sI   HCmm66s@GSu-Ac33UCA6M6	 $ HC**55sjAG.wSAA.$$c33@AAq|< $ HCmm66s@G/>L , 7 7
 CSu-A+ZL9Kc33UCA&
|
CK6M69 $r3   c                F   V P                   P                  ^^4      p\        \        4      ;_uu_ 4        VP                   RRR4       V P
                  P                  ^^.4      p\        \        4      ;_uu_ 4        VP                   RRR4       \        V P                   4      pVP                  ^^.R7      p\        \        4      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     L; i  + '       g   i     Lz; i  + '       g   i     R# ; i)r#   NrU   )r  rG  r   AttributeErrorfpr  r   r2   )rC   derrH  s   &  r1   test_invalid_attribute_fp5Test_DerivedBivariateSpline.test_invalid_attribute_fp  s    mm..q!4>**FF + ""--q!f5>**FF + -T]];&&1a&&1>**FF +* +* +*
 +**s#   C)=C<D)C9	<D	D 	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  rG  r   r  rA   )rC   r  s   & r1   #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  rI  N)rh   ri   rj   rk   __doc__r  r  r	  r  r  r  rl   rm   rn   s   @r1   r  r    s.     B":2 r3   r  )r   r   g:0yE>)5r  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   scipy.interpolate._regridr   r    r2   r5   rP  r  r  r  r  r  r  r  rg   r3   r1   <module>r#     s     
    *  C B B K K# # # : 4(,n5 n5bV6 V6r~8 ~8BFB FBRRB RBjX6 X6v~G ~GB5M Mr3   