Ë
    âQ(h«é  ã                   ó€  — d dl Z d dlmZ d dlZd dlmZ d dlZd dlmZ	 d dl
mZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d d	l%m&Z& d d
l'm(Z(  G d„ d«      Z) G d„ d«      Z* G d„ d«      Z+ G d„ d«      Z, G d„ d«      Z- G d„ d«      Z. G d„ d«      Z/dd„Z0 G d„ d«      Z1y)é    N)ÚLock)Úsuppress_warnings)Úraises)Úxp_assert_equalÚxp_assert_closeÚassert_almost_equalÚassert_array_almost_equal)ÚarrayÚdiffÚlinspaceÚmeshgridÚonesÚpiÚshape)ÚbisplrepÚbisplevÚsplrepÚspalde)	ÚUnivariateSplineÚLSQUnivariateSplineÚInterpolatedUnivariateSplineÚLSQBivariateSplineÚSmoothBivariateSplineÚRectBivariateSplineÚLSQSphereBivariateSplineÚSmoothSphereBivariateSplineÚRectSphereBivariateSpline)Ú_run_concurrent_barrier)Úmake_splrepc                   óÎ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej4                  j6                  d„ «       Zd„ Zy)ÚTestUnivariateSplinec                 óÖ  — g d¢}g d¢}t        ||d¬«      }t        |j                  «       ddg«       t        |j                  «       ddg«       t	        |j                  «       «      dk  sJ ‚t         |g d¢«      g d¢«       t        ||dt        |«      ¬«      }t        |j                  dd	 |j                  «       d
¬«       t        |j                  |j                  «       d
¬«       y )N©é   é   é   )r&   r&   r&   r$   ©Úkr&   g»½×Ùß|Û=©r$   ç      ø?r%   )r(   ÚséÿÿÿÿçVçž¯Ò<©Úatol)r   r	   Ú	get_knotsÚ
get_coeffsÚabsÚget_residualr   Úlenr   ÚtÚc)ÚselfÚxÚyÚlutÚspls        úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_fitpack2.pyÚtest_linear_constantz)TestUnivariateSpline.test_linear_constant   sµ   € ÚˆÚˆÜ˜q  QÔ'ˆÜ! #§-¡-£/°A°q°6Ô:Ü! #§.¡.Ó"2°Q¸°FÔ;Ü�3×#Ñ#Ó%Ó&¨Ò.Ð.Ð.Ü!¡#¢kÓ"2²IÔ>ä˜!˜Q !¤s¨1£vÔ.ˆÜ˜Ÿ™˜a ˜ S§]¡]£_¸5ÕAÜ˜Ÿ™˜sŸ~™~Ó/°eÖ<ó    c                 ó<  — g d¢}g d¢}t        ||d¬«      }d}t        |«      t         ||«      «      k(  sJ ‚t        |«      t         ||d¬«      «      k(  sJ ‚g d¢}t        |«      t         ||«      «      k(  sJ ‚t        |«      t         ||d¬«      «      k(  sJ ‚y )Nr#   ©r   r%   é   r$   r'   r%   )Únu)r*   r%   ç      @)r   r   )r7   r8   r9   r:   Úargs        r<   Útest_preserve_shapez(TestUnivariateSpline.test_preserve_shape&   s’   € ÚˆÚˆÜ˜q ! qÔ)ˆØˆÜ�S‹zœU¡3 s£8›_Ò,Ð,Ð,Ü�S‹zœU¡3 s¨q¤>Ó2Ò2Ð2Ð2ÚˆÜ�S‹zœU¡3 s£8›_Ò,Ð,Ð,Ü�S‹zœU¡3 s¨q¤>Ó2Ò2Ð2Ñ2r>   c                 ó  — g d¢}g d¢}t        ||d¬«      }t        |j                  «       ddg«       t        |j                  «       ddg«       t	        |j                  «       «      dk  sJ ‚t         |g d	¢«      g d
¢«       y )Nr#   r@   r$   r'   r&   r   rA   r-   r)   )r   r$   r%   )r   r	   r0   r1   r2   r3   )r7   r8   r9   r:   s       r<   Útest_linear_1dz#TestUnivariateSpline.test_linear_1d1   sm   € ÚˆÚˆÜ˜q  QÔ'ˆÜ! #§-¡-£/°1°Q°%Ô8Ü! #§.¡.Ó"2°A°a°5Ô9Ü�3×#Ñ#Ó%Ó&¨Ò.Ð.Ð.Ü!¡#¢i£.²Õ9r>   c                 ól   —  G d„ dt         «      } |g d¢g d¢d¬«      }t         |ddg«      d	d	g«       y )
Nc                   ó   — e Zd Zd„ Zy)ú9TestUnivariateSpline.test_subclassing.<locals>.ZeroSplinec                 ó   — dt        |«      z  S )Nr   )r
   )r7   r8   s     r<   Ú__call__zBTestUnivariateSpline.test_subclassing.<locals>.ZeroSpline.__call__>   s   € Øœ˜q›‘zÐ!r>   N)Ú__name__Ú
__module__Ú__qualname__rL   © r>   r<   Ú
ZeroSplinerJ   =   s   „ ó"r>   rQ   ©r$   r%   r&   rA   é   )r&   r%   r&   r%   r&   r%   r'   r*   rC   ç        )r   r   )r7   rQ   Úsps      r<   Útest_subclassingz%TestUnivariateSpline.test_subclassing:   s5   € ô	"Ô)ô 	"ñ š¢[°AÔ6ˆÜ™˜C ˜:›¨¨R¨Õ1r>   c                 óf   — g d¢}g d¢}t        ||d¬«      }t         |g «      t        g «      «       y )N©r$   r&   rS   é   é	   ©r   rA   rZ   é   é   r&   r'   )r   r   r
   ©r7   r8   r9   r;   s       r<   Útest_empty_inputz%TestUnivariateSpline.test_empty_inputD   s,   € âˆÚˆÜ˜q ! qÔ)ˆÜ™˜B›¤ r£Õ+r>   c                 ój   — g d¢}g d¢}t        ||d¬«      }t        |j                  «       d   d«       y )NrX   r[   r&   r'   r   g7Ã£ŽýÍð?)r   r   Úrootsr^   s       r<   Ú
test_rootszTestUnivariateSpline.test_rootsK   s/   € ÚˆÚˆÜ˜q ! qÔ)ˆÜ˜CŸI™I›K¨™NÐ,=Õ>r>   c                 óÖ   — t        j                  ddt         j                  z  d«      }t        j                  |«      }t	        ||d¬«      }t        |j                  «       «      dk(  sJ ‚y )Nr   é2   iè  ©r+   )Únpr   r   Úcosr   r4   ra   r^   s       r<   Útest_roots_lengthz&TestUnivariateSpline.test_roots_lengthQ   sP   € Ü�K‰K˜˜2¤§¡™: tÓ,ˆÜ�F‰F�1‹IˆÜ˜q ! qÔ)ˆÜ�3—9‘9“;Ó 2Ò%Ð%Ñ%r>   c                 ój   — g d¢}g d¢}t        ||d¬«      }t        |j                  d«      g d¢«       y )NrX   r[   r&   r'   ç      @)gÌó;¨@gpZ•é<oû?gOÀ¼¶mÇ¿g      Ô?)r   r   Úderivativesr^   s       r<   Útest_derivativesz%TestUnivariateSpline.test_derivativesW   s1   € ÚˆÚˆÜ˜q ! qÔ)ˆÜ˜CŸO™O¨CÓ0ÚFõ	Hr>   c                 óö   — t        j                  d«      }|dz  d|dz  z  z   }t        ||d¬«      }t        d|«      }t	        |g d¢d¬	«       t        ||dd¬
«      }t	        |j                  d«      |d¬	«       y )Né   r&   ç       @r%   r   re   )g     €F@g     €C@g      6@ç      @r-   r.   )r+   r(   )rf   Úaranger   r   r   r   rk   )r7   r8   r9   ÚtckÚdersr;   s         r<   Útest_derivatives_2z'TestUnivariateSpline.test_derivatives_2^   s|   € Ü�I‰I�a‹LˆØˆq‰D�2�a˜‘d‘7‰Nˆä�Q˜˜QÔˆÜ�a˜‹~ˆÜ˜ò #ð #õ		$ô
 ˜q ! q¨AÔ.ˆÜ˜Ÿ™¨Ó*ØØ"ö	$r>   c                 ó€   — g d¢}g d¢}g d¢}t        |||d¬«      }t        g d¢«      }t         |g d¢«      |d¬	«       y)
zRegression test for #1375.)ç      ð¿gææ<ß&Îä¿g_�µ€Õâ¿g@ø³Ìà7Ñ¿gš46	<Æ¿gŠÅóBÏ ¹¿rT   gŠÅóBÏ ¹?gš46	<Æ?g@ø³Ìà7Ñ?g_�µ€Õâ?gææ<ß&Îä?ç      ð?)rw   ç1\_#ä?ç~aèÇ�â?çwõÆÿ“Ù?ç¶ß5?×?ç0¯m›sÖ?gî­x—‰Ö?r|   r{   rz   ry   rx   rw   )ç   ¢”mBçoÙ!þ‡…@çuª)	•~@ç¡eÝ?Ö­z@ç½Œbùý‚@ç¦Öû�v5|@geS®ð®×s@r‚   r�   r€   r   r~   r}   N)r8   r9   Úwr+   )gJ·dØvÖ?gÔc�Œà?gœž=¸ì?gt²—ï?©çš™™™™™¹?ç      à?çÍÌÌÌÌÌì?g®Gáz®ï?gü©ñÒMb@?r.   )r   r
   r   )r7   r8   r9   rƒ   r;   Údesireds         r<   Útest_resize_regressionz+TestUnivariateSpline.test_resize_regressionn   sF   € òˆòˆòˆô   a¨1°Ô5ˆÜÒHÓIˆÜ™Ò1Ó2°GÀ$ÖGr>   c           
      ó¾  — t        j                  dt        ¬«      }|dz  }t        ddd«      }|j	                  «       }d|t        j
                  |dk  |d	kD  «      <   |j	                  «       }|d   |||d   k  <   |d
   |||d
   kD  <   t        t        fD ]ï  } |||¬«      }dD ];  }t         |||¬«      |dz  d¬«       t          ||||¬«      |«      |dz  d¬«       Œ= dD ];  }t         |||¬«      |dz  d¬«       t          ||||¬«      |«      |dz  d¬«       Œ= dD ]  }t        t        ||fi t        |¬«      ¤Ž Œ  dD ];  }t         |||¬«      |dz  d¬«       t          ||||¬«      |«      |dz  d¬«       Œ= Œñ j                  «       dd }	t        |||	«      }t         ||d¬«      |dz  d¬«       t         ||d¬«      |dz  d¬«       t        t        ||fi t        d¬«      ¤Ž t         ||d¬«      |dz  d¬«       dD ]K  }t        ||«      }t        t        ||fi t        |¬«      ¤Ž t        t        t        fi t        |||¬«      ¤Ž ŒM y )NrS   ©Údtyper&   éøÿÿÿé   éd   r   rT   ç      @r,   )r8   r9   )r   Úextrapolate)Úextg¼‰Ø—²Òœ<r.   )r$   Úzeros)r%   Úraise)r&   Úconstg¼‰Ø—²Ò¬<rA   r$   r%   )r,   Úunknown)r8   r9   r’   )rf   rq   Úfloatr   ÚcopyÚ
logical_orr   r   r   Úassert_raisesÚ
ValueErrorÚdictr0   r   )
r7   r8   r9   ÚxpÚxp_zerosÚxp_clipÚclsr;   r’   r5   s
             r<   Útest_out_of_range_regressionz1TestUnivariateSpline.test_out_of_range_regression~   sx  € ä�I‰I�aœuÔ%ˆØˆq‰Dˆä�b˜"˜cÓ"ˆØ—7‘7“9ˆØ@Aˆ”—‘˜x¨"™}¨h¸©mÓ<Ñ=Ø—'‘'“)ˆØ"# A¡$ˆ�˜!˜A™$‘ÑØ#$ R¡5ˆ�˜!˜B™%‘Ñ ä$Ô&BÐCò 	PˆCÙ˜˜Q”-ˆCØ)ò K�Ü¡ B¨CÔ 0°"°a±%¸eÕDÜÐ 2¡ A q¨cÔ 2°2Ó 6¸¸A¹ÀEÖJðKð $ò Q�Ü¡ B¨CÔ 0°(¸A±+ÀEÕJÜÐ 2¡ A q¨cÔ 2°2Ó 6¸À!¹È%ÖPðQð $ò D�Üœj¨#¨rÑC´T¸c´]ÓCðDà#ò P�Ü¡ B¨CÔ 0°'¸1±*À5ÕIÜÐ 2¡ A q¨cÔ 2°2Ó 6¸À¹
ÈÖOñPð	Pð �M‰M‹O˜A˜aÐ ˆÜ! ! Q¨Ó*ˆÜ™˜B Aœ¨¨A©°EÕ:Ü™˜B Aœ¨°!©¸%Õ@Ü”j # rÑ9¬T°a¬[Ò9Ü™˜B Aœ¨°©
¸Õ?ð #ò 	/ˆCÜ" 1 aÓ(ˆCÜœ* c¨2Ñ?´¸#´Ò?Üœ*Ô&6ñ /Ü˜Q !¨Ô-ó/ñ	/r>   c                 óÈ   — t        j                  d«      dz  }t        j                  d«      dz  }t        j                  ddd«      }d}t        t        t
        ||||¬«       y )Nr�   rw   r   éc   é
   )r,   ée   ©Úbbox)rf   rq   r   rš   r›   r   )r7   ÚxsÚysÚknotsr§   s        r<   Útest_lsq_fpchecz$TestUnivariateSpline.test_lsq_fpchec§   sS   € Ü�Y‰Y�s‹^˜bÑ ˆÜ�Y‰Y�s‹^˜bÑ ˆÜ—‘˜A˜r 2Ó&ˆØˆÜ”jÔ"5°r¸2¸uØö	!r>   c                 óf  — t        j                  ddd«      dz  }t        j                  |«      }t        ||d¬«      }|j	                  d«      j                  d«      }t         |d«       |d«      «       |j	                  d«      }t         |d«       |d	«      z
  |j                  d	d«      «       y )
Nr   r$   éF   r&   re   r%   ç333333Ó?g333333ã?çš™™™™™É?)rf   r   rg   r   ÚantiderivativeÚ
derivativer   Úintegral)r7   r8   r9   r;   Úspl2s        r<   Ú"test_derivative_and_antiderivativez7TestUnivariateSpline.test_derivative_and_antiderivative¯   s–   € ä�K‰K˜˜1˜bÓ! 1Ñ$ˆÜ�F‰F�1‹Iˆä˜q ! qÔ)ˆØ×!Ñ! !Ó$×/Ñ/°Ó2ˆÜ™˜C›¡$ s£)Ô,à×!Ñ! !Ó$ˆÜ™˜S›	¡D¨£IÑ-ØŸ™ S¨#Ó.õ	0r>   c                 ó¤   — g d¢}g d¢}t        ||dd¬«      }g d¢}t         |j                  «       |«      t        j                  |«      d¬«       y )	N©r$   r%   rA   é   g      !@)r†   çš™™™™™é?çÍÌÌÌÌÌô?rC   rS   r•   r&   )r’   r(   )r,   r   g      à¿rZ   g      #@r¤   r-   r.   )r   r   r±   rf   Ú
zeros_like)r7   Úx_valuesÚy_valuesÚfr8   s        r<   Útest_derivative_extrapolationz2TestUnivariateSpline.test_derivative_extrapolation¼   sE   € ò %ˆÚ*ˆÜ˜X x°WÀÔBˆâ%ˆÜ˜˜Ÿ™› qÓ)¬2¯=©=¸Ó+;À%ÖHr>   c                 óÄ   — t        j                  ddd«      }t        d«      D ];  }t        ||d|¬«      }dD ]%  \  }}t	        |j                  ||«      «      dk  rŒ%J ‚ Œ= y )	NrT   rw   rY   rA   r   )r+   r’   ))r$   r$   )r$   rS   )r%   rS   ©r   r   )éþÿÿÿr   )rÁ   r,   r-   )rf   r   Úranger   r2   r²   )r7   r8   r’   r½   ÚaÚbs         r<   Útest_integral_out_of_boundsz0TestUnivariateSpline.test_integral_out_of_boundsÆ   sl   € ô �K‰K˜˜B Ó"ˆÜ˜“8ò 	5ˆCÜ   A¨°Ô4ˆAð6ò 5‘��Aä˜1Ÿ:™: a¨Ó+Ó,¨uÓ4Ð4Ð4ñ5ñ	5r>   c                 óØ  — t        j                  dt        ¬«      }|dz  }t        j                  |«      }t	        ||d¬«      }|j                  «       dd }|d   }t         j                  t         j                  t         j                   fD ]Ü  }||d<   t        t        t        fi t        ||d¬«      ¤Ž t        t        t        fi t        ||d¬«      ¤Ž t        t        t        fi t        |||d¬	«      ¤Ž ||d<   ||d<   t        t        t        fi t        |||d¬
«      ¤Ž t        t        t        fi t        |||d¬
«      ¤Ž t        t        t        fi t        ||||d¬«      ¤Ž ŒÞ y )Nr¤   r‹   r&   T©Úcheck_finiterA   r,   ©r8   r9   rÈ   )r8   r9   r5   rÈ   )r8   r9   rƒ   rÈ   ©r8   r9   r5   rƒ   rÈ   )rf   rq   r—   Ú	ones_liker   r0   ÚnanÚinfrš   r›   rœ   r   r   )r7   r8   r9   rƒ   r;   r5   Úy_endÚzs           r<   Útest_nanzTestUnivariateSpline.test_nanÐ   sR  € ä�I‰I�b¤Ô&ˆØˆq‰DˆÜ�L‰L˜‹Oˆä˜q !°$Ô7ˆØ�M‰M‹O˜A˜aÐ ˆØ�"‘ˆÜ—&‘&œ"Ÿ&™&¤2§6¡6 'Ð*ò 	CˆAØˆAˆb‰EÜœ*Ô&6ñ 9Ü˜Q !°$Ô7ò9äœ*Ô&Bñ 9Ü˜Q !°$Ô7ò9äœ*Ô&9ñ >Ü˜Q ! q°tÔ<ò>àˆAˆb‰EØˆAˆb‰EÜœ*Ô&6ñ >Ü˜Q ! q°tÔ<ò>äœ*Ô&Bñ >Ü˜Q ! q°tÔ<ò>äœ*Ô&9ñ CÜ˜Q ! q¨A¸DÔAóCñ	Cr>   c           
      óÆ  — t        j                  dt        ¬«      }|dz  }t        j                  dt        ¬«      }|d   |d<   |dz  }t        j                  |«      }t	        ||d¬«      }|j                  «       dd }t	        |||dd¬	«       t        ||||d¬
«       t        t        t        fi t        ||dd¬«      ¤Ž t        t        t        fi t        ||d¬«      ¤Ž y )Nr¤   r‹   r&   r   r$   TrÇ   rA   )r8   r9   rƒ   r+   rÈ   rÊ   )r8   r9   r+   rÈ   rÉ   )rf   rq   r—   rË   r   r0   r   rš   r›   rœ   r   ©r7   ÚxxÚyyr8   r9   rƒ   r;   r5   s           r<   Útest_strictly_increasing_xz/TestUnivariateSpline.test_strictly_increasing_xê   sÎ   € ô
 �Y‰Y�r¤Ô'ˆØ�‰UˆÜ�I‰I�b¤Ô&ˆØ�‰tˆˆ!‰Øˆq‰DˆÜ�L‰L˜‹Oˆä˜r 2°DÔ9ˆØ�M‰M‹O˜A˜aÐ ˆÜ˜1  Q¨!¸$Õ?Ü˜a 1¨¨Q¸TÕBÜ”jÔ"2ñ 	:Ü˜˜a 1°4Ô8ò	:ä”jÔ">ñ 	5Ü˜˜a¨dÔ3ó	5r>   c                 óÐ  — t        j                  dt        ¬«      }|dz  }t        j                  dt        ¬«      }|d   dz
  |d<   |dz  }t        j                  |«      }t	        ||d¬«      }|j                  «       dd	 }t        t        t        fi t        ||d¬
«      ¤Ž t        t        t        fi t        ||d¬
«      ¤Ž t        t        t        fi t        ||||d¬«      ¤Ž y )Nr¤   r‹   r&   r   rw   r$   TrÇ   rA   rÉ   rÊ   )rf   rq   r—   rË   r   r0   rš   r›   rœ   r   r   rÒ   s           r<   Útest_increasing_xz&TestUnivariateSpline.test_increasing_xÿ   sÐ   € ä�Y‰Y�r¤Ô'ˆØ�‰UˆÜ�I‰I�b¤Ô&ˆØ�‰t�c‰zˆˆ!‰Øˆq‰DˆÜ�L‰L˜‹Oˆä˜r 2°DÔ9ˆØ�M‰M‹O˜A˜aÐ ˆÜ”jÔ"2ñ 	5Ü˜˜a¨dÔ3ò	5ä”jÔ">ñ 	5Ü˜˜a¨dÔ3ò	5ä”jÔ"5ñ 	?Ü˜˜a 1¨¸Ô=ó	?r>   c                 ó  — t        t        «      5 }g d¢}g d¢}t        ||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }g d¢}g d¢}g d¢}t        |||¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }d}t        |¬	«       d d d «       d
t        |j                  «      v sJ ‚t        t        «      5 }t        d¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �Œ.xY w# 1 sw Y   ŒïxY w# 1 sw Y   ŒºxY w# 1 sw Y   Œ‡xY w# 1 sw Y   ŒTxY w)Nr¶   ©r†   r¸   r¹   rC   ú!x and y should have a same length©r†   r¸   r¹   rC   gffffff@©rv   rw   rw   rw   ©rƒ   ú%x, y, and w should have a same lengthr,   r¦   úbbox shape should be (2,)r·   r'   úk should be 1 <= k <= 5rv   re   ús should be s >= 0.0)rš   r›   r   ÚstrÚvalue©r7   Úinfor»   r¼   Úw_valuesr§   s         r<   Ú(test_invalid_input_for_univariate_splinez=TestUnivariateSpline.test_invalid_input_for_univariate_spline  si  € äœ:Ó&ð 	1¨$Ú(ˆHÚ+ˆHÜ˜X xÔ0÷	1ð 3´c¸$¿*¹*³oÑEÐEÐEäœ:Ó&ð 	=¨$Ú(ˆHÚ0ˆHÚ,ˆHÜ˜X x°8Õ<÷		=ð
 7¼#¸d¿j¹j»/ÑIÐIÐIäœ:Ó&ð 	<¨$ØˆDÜ˜X x°dÕ;÷	<ð +¬c°$·*±*«oÑ=Ð=Ð=äœ:Ó&ð 	6¨$Ü˜X x°1Õ5÷	6à(¬C°·
±
«OÑ;Ð;Ð;äœ:Ó&ð 	9¨$Ü˜X x°4Õ8÷	9à%¬¨T¯Z©Z«Ñ8Ð8Ñ8÷1	1ñ 	1ú÷	=ð 	=ú÷	<ð 	<ú÷
	6ð 	6ú÷	9ð 	9ús;   �EÁEÂ E*Ã!E6Ä FÅEÅE'Å*E3Å6E?ÆFc                 ó„  — t        t        «      5 }g d¢}g d¢}t        ||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }g d¢}g d¢}g d¢}t        |||¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }d}t        |¬	«       d d d «       d
t        |j                  «      v sJ ‚t        t        «      5 }t        d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   ŒîxY w# 1 sw Y   Œ¯xY w# 1 sw Y   ŒzxY w# 1 sw Y   ŒGxY w)Nr¶   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   r,   r¦   rß   r·   r'   rà   )rš   r›   r   râ   rã   rä   s         r<   Ú5test_invalid_input_for_interpolated_univariate_splinezJTestUnivariateSpline.test_invalid_input_for_interpolated_univariate_spline-  s4  € äœ:Ó&ð 	=¨$Ú(ˆHÚ+ˆHÜ(¨°8Ô<÷	=ð 3´c¸$¿*¹*³oÑEÐEÐEäœ:Ó&ð 	I¨$Ú(ˆHÚ0ˆHÚ,ˆHÜ(¨°8¸xÕH÷		Ið
 7¼#¸d¿j¹j»/ÑIÐIÐIäœ:Ó&ð 	H¨$ØˆDÜ(¨°8À$ÕG÷	Hð +¬c°$·*±*«oÑ=Ð=Ð=äœ:Ó&ð 	B¨$Ü(¨°8¸qÕA÷	Bà(¬C°·
±
«OÑ;Ð;Ñ;÷)	=ð 	=ú÷	Ið 	Iú÷	Hð 	Hú÷
	Bð 	Bús/   �DÁDÂ D*Ã!D6ÄDÄD'Ä*D3Ä6D?c                 óR  — g d¢}g d¢}t        ||d¬«      }|j                  «       dd }t        t        «      5 }g d¢}g d¢}t	        |||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }g d¢}g d¢}g d	¢}t	        ||||¬
«       d d d «       dt        |j                  «      v sJ ‚d}t        t        |¬«      5 }d}t	        ||||¬«       d d d «       t        t        «      5 }d}t	        ||||¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        |||d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �ŒxY w# 1 sw Y   ŒßxY w# 1 sw Y   Œ¥xY w# 1 sw Y   ŒˆxY w# 1 sw Y   ŒTxY w)Nr¶   rÛ   TrÇ   r&   rA   rÙ   rÚ   )rw   rw   rw   rw   rÝ   rÞ   z;Interior knots t must satisfy Schoenberg-Whitney conditions)Úmatch)r�   éœÿÿÿr¦   r,   rß   r·   r'   rà   )r   r0   rš   r›   r   râ   rã   )	r7   r»   r¼   r;   Út_valuesrå   ræ   Úmessager§   s	            r<   Ú,test_invalid_input_for_lsq_univariate_splinezATestUnivariateSpline.test_invalid_input_for_lsq_univariate_splineE  s¥  € â$ˆÚ,ˆÜ˜x¨ÀÔEˆØ—=‘=“? 1 QÐ'ˆäœ:Ó&ð 	>¨$Ú(ˆHÚ+ˆHÜ ¨(°HÔ=÷	>ð 3´c¸$¿*¹*³oÑEÐEÐEäœ:Ó&ð 	J¨$Ú(ˆHÚ0ˆHÚ+ˆHÜ ¨(°HÀÕI÷		Jð
 7¼#¸d¿j¹j»/ÑIÐIÐIàOˆÜœ:¨WÔ5ð 	I¸ØˆDÜ ¨(°HÀ4ÕH÷	Iô œ:Ó&ð 	I¨$ØˆDÜ ¨(°HÀ4ÕH÷	Ið +¬c°$·*±*«oÑ=Ð=Ð=äœ:Ó&ð 	C¨$Ü ¨(°HÀÕB÷	Cà(¬C°·
±
«OÑ;Ð;Ñ;÷3	>ñ 	>ú÷	Jð 	Jú÷	Ið 	Iú÷	Ið 	Iú÷
	Cð 	Cús;   ¹E,Á?E9ÃFÃ8FÄ:FÅ,E6Å9FÆFÆFÆF&c                 ó   — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ddg«      }t        ||||¬«      }t        |j                  «       |j                  «       |j                  «       |j                  «       ¬«      }t	         |g d¢«       |g d¢«      «       y )Nr¶   rÛ   )rw   rw   rw   rw   rw   rì   r�   )r8   r9   rƒ   r§   r„   )rf   r
   r   Útolistr   )r7   r»   r¼   ræ   r§   Úspl1r³   s          r<   Útest_array_like_inputz*TestUnivariateSpline.test_array_like_inputg  s    € Ü—8‘8Ò-Ó.ˆÜ—8‘8Ò5Ó6ˆÜ—8‘8Ò5Ó6ˆÜ�x‰x˜˜s˜Ó$ˆä (¨h¸(Ø%)ô+ˆô   (§/¡/Ó"3°x·±Ó7HØ"*§/¡/Ó"3¸$¿+¹+»-ôIˆô 	™Ò2Ó3ÙÒ2Ó3õ	5r>   c                 óÊ   — t        d«      }g d¢}t        «       5 }|j                  t        d«      }t	        ||d¬«       t        |«      dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Ném   )mrT   rT   rT   rT   rT   çÍÌÌÌÌÌ%@rT   ç      &@rT   rT   rT   rö   rT   rT   rT   rT   rT   rT   rö   rT   rT   rT   r÷   rT   rT   rT   rö   rT   rT   rT   ç      %@rT   rT   rT   çffffff%@rT   rT   rT   r÷   rT   rT   rT   rT   rT   rT   rö   rT   rT   rù   rT   rT   rT   ç333333%@rT   rT   rT   rø   rT   rT   rù   rT   rT   rø   rT   rT   g      '@rT   rT   rT   rù   rT   rT   rù   rT   rT   rö   rT   rT   çš™™™™™%@rT   rT   rT   rù   rT   rT   rú   rT   rT   rT   çÍÌÌÌÌÌ$@rT   rT   rú   rT   rT   rø   rT   rT   rT   rù   rT   rT   rT   rü   rT   rT   rT   rû   rT   a#  
The maximal number of iterations maxit \(set to 20 by the program\)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs\(fp-s\)/s < tol.r$   r'   )rÂ   r   ÚrecordÚUserWarningr   r4   )r7   r8   r9   ÚsupÚrs        r<   Útest_fpknot_oob_crashz*TestUnivariateSpline.test_fpknot_oob_crashv  si   € ô �#‹Jˆò;ˆô Ó ð 
	 CØ—
‘
ÜðLóMˆAô ˜Q  QÕ'Ü�q“6˜Q’;Ð‘;÷
	÷ 
	ñ 
	ús   š5AÁA"c                 óÈ   — t        j                  dt        ¬«      }|dz  }t        j                  dt        ¬«      }|d   |d<   t        ||d¬«      }d„ }t	        d	|||«       y )
Nr�   r‹   r&   r   r$   TrÇ   c                 ó   —  ||«       y )NrP   )Ú_Úinterpr8   s      r<   Ú	worker_fnz8TestUnivariateSpline.test_concurrency.<locals>.worker_fn›  s	   € Ù�1�Ir>   r¤   )rf   rq   r—   r   r   )r7   rÓ   rÔ   r8   r;   r  s         r<   Útest_concurrencyz%TestUnivariateSpline.test_concurrency’  s]   € ô �Y‰Y�s¤%Ô(ˆØ�‰UˆÜ�I‰I�c¤Ô'ˆØ�‰tˆˆ!‰Ü˜r 2°DÔ9ˆò	ô 	   I¨s°AÕ6r>   N)rM   rN   rO   r=   rE   rG   rV   r_   rb   rh   rl   rt   r‰   r¡   r«   r´   r¾   rÅ   rÐ   rÕ   r×   rç   ré   rï   ró   ÚpytestÚmarkÚthread_unsafer  r  rP   r>   r<   r!   r!      s™   „ ò=ò	3ò:ò2ò,ò?ò&òHò$ò Hò '/òR!ò0òIò5òCò45ò*?ò$9ò8<ò0 <òD5ð ‡[�[×Ññó ðó67r>   r!   c                   ó0  — e Zd Zej                  j
                  d„ «       Zd„ Zej                  j
                  d„ «       Zej                  j
                  d„ «       Z	d„ Z
ej                  j
                  d„ «       Zej                  j
                  d„ «       Zy)	ÚTestLSQBivariateSplinec           
      óD  — g d¢}g d¢}g d¢}d}d|z   d|z
  g}d|z   d|z
  g}t        «       5 }|j                  t        d«      }t        |||||dd¬«      }	t	        |«      dk(  sJ ‚	 d d d «       t         	d	d	«      t        j                  d
«      «       y # 1 sw Y   Œ0xY w)N©	r$   r$   r$   r%   r%   r%   r&   r&   r&   ©	r$   r%   r&   r$   r%   r&   r$   r%   r&   ©	r&   r&   r&   r&   r&   r&   r&   r&   r&   r…   r$   r&   ú
The coefficients of the spline©ÚkxÚkyr%   ç      @)r   rý   rþ   r   r4   r   rf   Úasarray©
r7   r8   r9   rÏ   r+   ÚtxÚtyrÿ   r   r:   s
             r<   r=   z+TestLSQBivariateSpline.test_linear_constant£  s¦   € âˆÚˆÚˆØˆØ�‰c�!�A‘#ˆYˆØ�‰c�!�A‘#ˆYˆÜÓ ð 	 CØ—
‘
œ;Ð(JÓKˆAÜ$ Q q¨¨2¨b°A¸Ô;ˆCÜ�q“6˜Q’;Ð‘;÷	ô
 	™C  1›I¤r§z¡z°"£~Õ6÷	ð 	ús   ­9BÂBc           
      óv  — g d¢}g d¢}g d¢}d}d|z   d|z
  g}d|z   d|z
  g}t        «       5 }|j                  t        d«       t        |||||dd¬«      }d d d «       j	                  «       \  }}t        |d d	 |dd  «      D ]¨  \  }	}
t        |d d	 |dd  «      D ]Ž  \  }}d
D ]„  }dD ]}  }|	d|z
  z  |
|z  z   }|d|z
  z  ||z  z   } ||	|«      ­d|z
  z  d|z
  z   ||
|«      |z  d|z
  z  z    ||	|«      d|z
  z  |z  z    ||
|«      |z  |z  z   }t         |||«      |«       Œ Œ† Œ� Œª y # 1 sw Y   ŒÚxY w)Nr  r  ©	r   rY   rn   r&   rA   rY   r$   r&   rA   r…   r$   r&   r  r  r,   )r…   r†   r‡   )r®   çš™™™™™Ù?gffffffæ?)r   Úfilterrþ   r   r0   Úzipr   )r7   r8   r9   rÏ   r+   r  r  rÿ   r:   ÚxaÚxbÚyaÚybr5   r�   ÚypÚzps                    r<   Útest_bilinearityz'TestLSQBivariateSpline.test_bilinearity²  sŸ  € ÚˆÚˆÚˆØˆØ�‰c�!�A‘#ˆYˆØ�‰c�!�A‘#ˆYˆÜÓ ð 	< Cà�J‰J”{Ð$FÔGÜ$ Q q¨¨2¨b°A¸Ô;ˆC÷	<ð
 —‘“‰ˆˆBÜ˜"˜S˜b˜' 2 a b 6Ó*ò 
	<‰FˆB�Ü˜b  "˜g r¨!¨" vÓ.ò 	<‘��BØ(ò <�AØ,ò <˜Ø  1¡™X¨¨1©™_˜Ø  1¡™X¨¨1©™_˜Ù # B¨£˜m¨Q¨q©SÑ1°1°Q±3Ñ7Ù # B¨£¨A¡¨q°©sÑ 3ñ4á # B¨£¨Q¨q©SÑ 1°!Ñ 3ñ4ñ !$ B¨£¨A¡¨a¡ñ0˜ô ,©C°°2«J¸Õ;ñ<ñ<ñ	<ñ
	<÷	<ð 	<ús   ­)D/Ä/D8c                 ó®  — g d¢}g d¢}t        g d¢«      }d}d|z   d|z
  g}d|z   d|z
  g}t        «       5 }|j                  t        d«      }t	        |||||dd¬«      }	t        |«      dk(  sJ ‚	 d d d «       	j                  «       \  }} |	||«      }
d	t        |«      d d …d f   t        |«      d d d …f   z  |
d d
…d d
…f   |
dd …d d
…f   z   |
d d
…dd …f   z   |
dd …dd …f   z   z  j                  «       z  }t        t        j                  |	j                  |d   |d
   |d   |d
   «      «      t        j                  |«      «       y # 1 sw Y   ŒÜxY w)N)	r$   r$   r$   r%   r%   r%   rn   rn   rn   r  r  r…   r$   r&   r  r  ç      Ð?r,   r   )r
   r   rý   rþ   r   r4   r0   r   Úsumr   rf   r  r²   )r7   r8   r9   rÏ   r+   r  r  rÿ   r   r:   ÚtzÚtrpzs               r<   Útest_integralz$TestLSQBivariateSpline.test_integralË  sq  € âˆÚˆÜÒ%Ó&ˆàˆØ�‰c�!�A‘#ˆYˆØ�‰c�!�A‘#ˆYˆÜÓ ð 	 CØ—
‘
œ;Ð(JÓKˆAÜ$ Q¨¨1¨b°"¸¸qÔAˆCÜ�q“6˜Q’;Ð‘;÷	ð —‘“‰ˆˆBÙ��R‹[ˆØ”D˜“HšQ˜t˜VÑ$¤T¨"£X¨d²1¨fÑ%5Ñ5Ø˜#˜2˜#˜c˜r˜c˜'‘{ 2 a¡b¨¨"¨ f¡:Ñ-¨b°°"°°Q±R°©jÑ8¸¸A¹B¸q¹r¸E¹ÑBñDßEHÁSÃUñKˆô 	œBŸJ™J s§|¡|°B°q±E¸2¸b¹6À2ÀaÁ5È"ÈRÉ&Ó'QÓRÜŸJ™J tÓ,õ	.÷	ð 	ús   ¶9EÅEc           
      ó”  — g d¢}g d¢}g d¢}d}d|z   d|z
  g}d|z   d|z
  g}t        «       5 }|j                  t        d«      }t        |||||dd¬«      }	t	        |«      dk(  sJ ‚	 d d d «       t         	g g «      t        j                  d	«      «       t         |	g g d
¬«      t        j                  d«      «       y # 1 sw Y   ŒXxY w)Nr  r  r  r…   r$   r&   r  r  rÀ   F©Úgrid©r   )r   rý   rþ   r   r4   r   rf   r“   r  s
             r<   r_   z'TestLSQBivariateSpline.test_empty_inputà  sÃ   € ò  ˆÚˆÚˆØˆØ�‰c�!�A‘#ˆYˆØ�‰c�!�A‘#ˆYˆÜÓ ð 	 CØ—
‘
œ;Ð(JÓKˆAÜ$ Q¨¨1¨b°"¸¸qÔAˆCÜ�q“6˜Q’;Ð‘;÷	ô
 	™˜B ›¤R§X¡X¨e£_Ô5Ü™˜B ¨Ô/´·±¸$³Õ@÷	ð 	ús   ­9B>Â>Cc           
      óæ  — d}d|z   d|z
  g}d|z   d|z
  g}t        t        «      5 }t        j                  dd«      }t        j                  dd«      }t        j                  ddd¬«      }t	        |||||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }t        j                  dd«      }t        j                  dd«      }t        j                  dd«      }t        j                  ddd	¬«      }t	        ||||||¬
«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd«      }t	        |||¬
«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }d}	t	        |||	¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        ||dd¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }
t	        ||d¬«       d d d «       dt        
j                  «      v sJ ‚t        t        «      5 }
t	        ||d¬«       d d d «       dt        |
j                  «      v sJ ‚y # 1 sw Y   �Œ#xY w# 1 sw Y   �Œ”xY w# 1 sw Y   �ŒIxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÛxY w# 1 sw Y   Œ¥xY w# 1 sw Y   ŒoxY w)Nr…   r$   r&   rw   ç      $@r¤   ©Únumú%x, y, and z should have a same lengthé   rÝ   ú(x, y, z, and w should have a same lengthrv   úw should be positive©rì   r�   rì   r¦   úbbox shape should be (4,)r  ú;The length of x, y and z should be at least (kx+1) * (ky+1)rT   ©Úepsúeps should be between (0, 1))rš   r›   rf   r   r   râ   rã   )r7   r+   r  r  rå   r8   r9   rÏ   rƒ   r§   Úexc_infos              r<   Útest_invalid_inputz)TestLSQBivariateSpline.test_invalid_inputñ  s·  € ØˆØ�!‰e�Q˜‘Uˆ^ˆØ�!‰e�Q˜‘Uˆ^ˆäœ:Ó&ð 	0¨$Ü—‘˜C Ó&ˆAÜ—‘˜C Ó&ˆAÜ—‘˜C ¨2Ô.ˆAÜ˜q ! Q¨¨BÔ/÷		0ð
 7¼#¸d¿j¹j»/ÑIÐIÐIäœ:Ó&ð 	5¨$Ü—‘˜C Ó&ˆAÜ—‘˜C Ó&ˆAÜ—‘˜C Ó&ˆAÜ—‘˜C ¨2Ô.ˆAÜ˜q ! Q¨¨B°!Õ4÷	5ð :¼SÀÇÁ»_ÑLÐLÐLäœ:Ó&ð 	5¨$Ü—‘˜D $Ó'ˆAÜ˜q ! Q¨¨B°!Õ4÷	5ð &¬¨T¯Z©Z«Ñ8Ð8Ð8äœ:Ó&ð 	;¨$Ø$ˆDÜ˜q ! Q¨¨B°TÕ:÷	;ð +¬c°$·*±*«oÑ=Ð=Ð=äœ:Ó&ð 	>¨$Ü˜q ! Q¨¨B°2¸"Õ=÷	>àLÜ�4—:‘:‹ñð 	ð ô œ:Ó&ð 	9¨(Ü˜q ! Q¨¨B°CÕ8÷	9à-´°X·^±^Ó1DÑDÐDÐDäœ:Ó&ð 	9¨(Ü˜q ! Q¨¨B°CÕ8÷	9à-´°X·^±^Ó1DÑDÐDÑD÷I	0ñ 	0ú÷	5ñ 	5ú÷	5ñ 	5ú÷
	;ñ 	;ú÷
	>ð 	>ú÷
	9ð 	9ú÷	9ð 	9úsU   ¦AJÂ*A,J(Å(J5ÆKÇ"KÈ%KÉ'K'ÊJ%Ê(J2Ê5J?ËKËKËK$Ë'K0c           
      ó
  — d}t        j                  d|z   d|z
  g«      }t        j                  d|z   d|z
  g«      }t        j                  dd«      }t        j                  dd«      }t        j                  dd«      }t        j                  dd«      }t        j                  g d¢«      }t        «       5 }	|	j	                  t
        d«      }
t        |||||||¬«      }t        |j                  «       |j                  «       |j                  «       |j                  «       |j                  «       |j                  «       |¬«      }t         |d	d	«       |d	d	«      «       t        |
«      d
k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr…   r$   r&   rw   r1  )rw   r1  rw   r1  r  )rƒ   r§   ro   r%   )
rf   r
   r   r   rý   rþ   r   rñ   r   r4   )r7   r+   r  r  r8   r9   rÏ   rƒ   r§   rÿ   r   rò   r³   s                r<   ró   z,TestLSQBivariateSpline.test_array_like_input  s4  € àˆÜ�X‰X�q˜1‘u˜a !™e�nÓ%ˆÜ�X‰X�q˜1‘u˜a !™e�nÓ%ˆÜ�K‰K˜˜TÓ"ˆÜ�K‰K˜˜TÓ"ˆÜ�K‰K˜˜TÓ"ˆÜ�K‰K˜˜TÓ"ˆÜ�x‰xÒ.Ó/ˆäÓ ð 		 CØ—
‘
œ;Ð(JÓKˆAä% a¨¨A¨r°2¸ÀÔFˆDä% a§h¡h£j°!·(±(³*¸a¿h¹h»jØ&(§i¡i£k°2·9±9³;À!Ç(Á(Ã*Ø+/ô1ˆDô ™D  c›N©D°°c«NÔ;Ü�q“6˜Q’;Ð‘;÷		÷ 		ñ 		ús   Â6B9E9Å9Fc                 óÜ  — t         j                  dd…dd…f   \  }}|j                  «       }|j                  «       }dt        j                  |«      z  }t        j                  ddd«      }t        j                  ddd«      }t        «       5 }|j                  t        d«      }t        |||||«      }t        |«      d	k(  sJ ‚	 d
d
d
«       t         ||d¬«      |«       y
# 1 sw Y   ŒxY w)zkTest for the case when the input knot-location arrays in x and y are
        of different lengths.
        r   r�   r  r…   g     €X@é   é!   r  r$   NFr-  )rf   ÚmgridÚravelrË   r   r   rý   rþ   r   r4   r   )	r7   r8   r9   rÏ   r  r  rÿ   r   r:   s	            r<   Útest_unequal_length_of_knotsz3TestLSQBivariateSpline.test_unequal_length_of_knots2  sÓ   € ô
 �x‰x˜˜#˜˜q ˜u˜Ñ%‰ˆˆ1Ø�G‰G‹IˆØ�G‰G‹IˆØ”"—,‘,˜q“/Ñ!ˆÜ�[‰[˜˜d BÓ'ˆÜ�[‰[˜˜d BÓ'ˆÜÓ ð 	 CØ—
‘
œ;Ð(JÓKˆAÜ$ Q q¨¨2¨bÓ1ˆCÜ�q“6˜Q’;Ð‘;÷	ô
 	™C  1¨5Ô1°1Õ5÷	ð 	ús   Â6C"Ã"C+N)rM   rN   rO   r  r	  r
  r=   r%  r+  r_   r?  ró   rF  rP   r>   r<   r  r  ¡  s¤   „ à‡[�[×Ññ7ó ð7ò<ð2 ‡[�[×Ññ.ó ð.ð( ‡[�[×ÑñAó ðAò )EðV ‡[�[×Ññó ðð* ‡[�[×Ññ6ó ñ6r>   r  c                   ób   — e Zd Zd„ Zd„ Zej                  j                  d„ «       Zd„ Z	d„ Z
d„ Zy)ÚTestSmoothBivariateSplinec                 ó6  — g d¢}g d¢}g d¢}t        |||dd¬«      }|j                  «       D ]  }t        |g d¢«       Œ t        |j                  «       g d¢«       t	        |j                  «       «      dk  sJ ‚t         |g d	¢dd
g«      ddgddgddgg«       y )Nr  r  r  r$   r  )r$   r$   r&   r&   )r&   r&   r&   r&   r-   r)   r*   r&   )r   r0   r	   r1   r2   r3   ©r7   r8   r9   rÏ   r:   r5   s         r<   r=   z.TestSmoothBivariateSpline.test_linear_constantF  s›   € ÚˆÚˆÚˆÜ# A a¨¨Q°!Ô4ˆØ—‘“ò 	7ˆAÜ% aªÕ6ð	7ô 	" #§.¡.Ó"2²LÔAÜ�3×#Ñ#Ó%Ó&¨Ò.Ð.Ð.Ü!¡#¢k°A°s°8Ó"<ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÕWr>   c                 ó\  — g d¢}g d¢}g d¢}t        |||dd¬«      }|j                  «       D ]#  }t        |t        j                  g d¢«      «       Œ% t        |j                  «       g d¢«       t        |j                  «       «      dk  sJ ‚t         |g d	¢dd
g«      ddgddgddgg«       y )Nr  r  )	r   r   r   r%   r%   r%   rA   rA   rA   r$   r  )rw   r$   r&   r&   )r   r   rA   rA   r-   r)   r*   r   r%   )	r   r0   r   rf   r  r	   r1   r2   r3   rJ  s         r<   rG   z(TestSmoothBivariateSpline.test_linear_1dR  s    € ÚˆÚˆÚˆÜ# A a¨¨Q°!Ô4ˆØ—‘“ò 	;ˆAÜ˜AœrŸz™zª.Ó9Õ:ð	;ä! #§.¡.Ó"2²LÔAÜ�3×#Ñ#Ó%Ó&¨Ò.Ð.Ð.Ü!¡#¢i°°3°Ó"8¸1¸Q¸%ÀÀ1ÀÀqÈÀeÐ9LÕMr>   c                 ó¦  — g d¢}g d¢}t        g d¢«      }t        «       5 }|j                  t        d«       t	        |||ddd¬«      }d d d «       g d¢}g d	¢} ||«      }d
t        |«      d d …d f   t        |«      d d d …f   z  |d d…d d…f   |dd …d d…f   z   |d d…dd …f   z   |dd …dd …f   z   z  j                  «       z  }	t        t        j                  |j                  |d   |d   |d   |d   «      «      t        j                  |	«      «       t	        |||ddd¬«      }
t        t        j                  |
j                  |d   |d   |d   |d   «      «      t        j                  |	«      d¬«        ||d d |d d «      }d
t        |d d «      d d …d f   t        |d d «      d d d …f   z  |d d…d d…f   |dd …d d…f   z   |d d…dd …f   z   |dd …dd …f   z   z  j                  «       z  }	t        t        j                  |j                  |d   |d   |d   |d   «      «      t        j                  |	«      «       y # 1 sw Y   �Œ xY w)N)	r$   r$   r$   r%   r%   r%   rA   rA   rA   r  r  z
The required storage spacer$   r   )r  r  r+   )r$   r%   rA   r#   r'  r,   r%   )ÚdecimalrÁ   )r
   r   r  rþ   r   r   r(  r   rf   r  r²   )r7   r8   r9   rÏ   rÿ   r:   r  r  r)  r*  Úlut2s              r<   r+  z'TestSmoothBivariateSpline.test_integral]  sq  € âˆÚˆÜÒ%Ó&ˆäÓ ð 	B Cà�J‰J”{Ð$BÔCÜ'¨¨1¨a°A¸!¸qÔAˆC÷	Bò
 ˆÚˆá��R‹[ˆØ”D˜“HšQ˜t˜VÑ$¤T¨"£X¨d²1¨fÑ%5Ñ5Ø˜#˜2˜#˜c˜r˜c˜'‘{ 2 a¡b¨¨"¨ f¡:Ñ-¨b°°"°°Q±R°©jÑ8¸¸A¹B¸q¹r¸E¹ÑBñDßEHÁSÃUñKˆäœBŸJ™J s§|¡|°B°q±E¸2¸b¹6À2ÀaÁ5È"ÈRÉ&Ó'QÓRÜŸJ™J tÓ,ô	.ô % Q¨¨1°°q¸AÔ>ˆÜœBŸJ™J t§}¡}°R¸±U¸B¸r¹FÀBÀqÁEÈ2ÈbÉ6Ó'RÓSÜŸJ™J tÓ,Ø$%õ	'ñ ��C�R�˜"˜S˜b˜'Ó"ˆØ”D˜˜C˜R˜“M¢! D &Ñ)¬$¨r°#°2¨w«-¸ºQ¸Ñ*?Ñ?Ø˜#˜2˜#˜c˜r˜c˜'‘{ 2 a¡b¨¨"¨ f¡:Ñ-¨b°°"°°Q±R°©jÑ8¸¸A¹B¸q¹r¸E¹ÑBñDßEHÁSÃUñKˆäœBŸJ™J s§|¡|°B°q±E¸2¸b¹6À2ÀaÁ5È"ÈRÉ&Ó'QÓRÜŸJ™J tÓ,õ	.÷-	Bñ 	Bús    (IÉIc                 ó>  — t        j                  ddd«      }t        j                  ddd«      }||z   }t        j                  ddd«      }t        j                  ddd«      }t        |||«      }t        |||«      }t	        |||«      } |||«      }	t        ||	«       y )NrÁ   r%   éP   r,   r$   r�   )rf   r   r   r   r   r   )
r7   r8   r9   rÏ   ÚxiÚyirr   Úres1Úinterp_Úres2s
             r<   Útest_rerun_lwrk2_too_smallz4TestSmoothBivariateSpline.test_rerun_lwrk2_too_small|  s”   € ô �K‰K˜˜A˜rÓ"ˆÜ�K‰K˜˜A˜rÓ"ˆØ�‰EˆÜ�[‰[˜˜Q Ó$ˆÜ�[‰[˜˜Q Ó$ˆÜ�q˜!˜QÓˆÜ�r˜2˜sÓ#ˆÜ'¨¨1¨aÓ0ˆÙ�r˜2‹ˆÜ˜D $Õ'r>   c                 ó8  — t        t        «      5 }t        j                  dd«      }t        j                  dd«      }t        j                  ddd¬«      }t	        |||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }t        j                  dd«      }t        j                  dd«      }t        j                  dd«      }t        j                  ddd¬«      }t	        ||||¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  d	d«      }t	        |¬«       d d d «       d
t        |j                  «      v sJ ‚t        t        «      5 }d}t	        |¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        dd¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        d	¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        d¬«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }t	        d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �ŒWxY w# 1 sw Y   �ŒÊxY w# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒLxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒäxY w# 1 sw Y   Œ°xY w# 1 sw Y   Œ|xY w)Nrw   r1  r¤   r2  r4  r5  rÝ   r6  rv   r7  r8  r¦   r9  r  r:  re   rá   rT   r;  r=  )rš   r›   rf   r   r   râ   rã   )r7   rå   r8   r9   rÏ   rƒ   r§   r>  s           r<   r?  z,TestSmoothBivariateSpline.test_invalid_input‹  s·  € äœ:Ó&ð 	+¨$Ü—‘˜C Ó&ˆAÜ—‘˜C Ó&ˆAÜ—‘˜C ¨2Ô.ˆAÜ! ! Q¨Ô*÷		+ð
 7¼#¸d¿j¹j»/ÑIÐIÐIäœ:Ó&ð 	0¨$Ü—‘˜C Ó&ˆAÜ—‘˜C Ó&ˆAÜ—‘˜C Ó&ˆAÜ—‘˜C ¨2Ô.ˆAÜ! ! Q¨¨QÕ/÷	0ð :¼SÀÇÁ»_ÑLÐLÐLäœ:Ó&ð 	0¨$Ü—‘˜D $Ó'ˆAÜ! ! Q¨¨QÕ/÷	0ð &¬¨T¯Z©Z«Ñ8Ð8Ð8äœ:Ó&ð 	6¨$Ø$ˆDÜ! ! Q¨°Õ5÷	6ð +¬c°$·*±*«oÑ=Ð=Ð=äœ:Ó&ð 	9¨$Ü! ! Q¨¨b°RÕ8÷	9àLÜ�4—:‘:‹ñð 	ð ô œ:Ó&ð 	3¨$Ü! ! Q¨¨TÕ2÷	3à%¬¨T¯Z©Z«Ñ8Ð8Ð8äœ:Ó&ð 	4¨(Ü! ! Q¨¨sÕ3÷	4à-´°X·^±^Ó1DÑDÐDÐDäœ:Ó&ð 	4¨(Ü! ! Q¨¨sÕ3÷	4à-´°X·^±^Ó1DÑDÐDÑD÷Q	+ñ 	+ú÷	0ñ 	0ú÷	0ñ 	0ú÷
	6ñ 	6ú÷
	9ñ 	9ú÷
	3ð 	3ú÷	4ð 	4ú÷	4ð 	4úsa   �AJ7ÂA*KÄ,&KÆKÇK+ÈK8ÉLÊLÊ7KËKËKËK(Ë+K5Ë8LÌLÌLc           	      óò  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t        |||||dd¬«      }t        |j                  «       |j                  «       |j                  «       |j                  «       |j                  «       dd¬«      }t	         |d	d
«       |d	d
«      «       y )Nr  r  r  )	r$   r$   r$   r$   r$   r$   r$   r$   r$   )rw   r  rw   r  r$   )rƒ   r§   r  r  )r§   rƒ   r  r  r…   r†   )rf   r
   r   rñ   r   )r7   r8   r9   rÏ   rƒ   r§   rò   r³   s           r<   ró   z/TestSmoothBivariateSpline.test_array_like_input·  s³   € Ü�H‰HÒ0Ó1ˆÜ�H‰HÒ0Ó1ˆÜ�H‰HÒ0Ó1ˆÜ�H‰HÒ0Ó1ˆÜ�x‰xÒ,Ó-ˆä$ Q¨¨1°¸ÀÀqÔIˆä$ Q§X¡X£Z°·±³¸Q¿X¹X»ZØ*.¯+©+«-¸1¿8¹8»:Ø()¨aô1ˆô 	™˜S #›©¨S°#«Õ7r>   N)rM   rN   rO   r=   rG   r  r	  r
  r+  rV  r?  ró   rP   r>   r<   rH  rH  E  s=   „ ò
Xò	Nð ‡[�[×Ññ.ó ð.ò<(ò*EóX8r>   rH  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestLSQSphereBivariateSplinec                 ó  — d\  }}t        d|dz
  z  dd|dz
  z  z
  |«      t        z  }t        d|dz
  z  dd|dz
  z  z
  |«      dz  t        z  }t        |j                  d   |j                  d   f«      }|d d d…   }|d d d…   }|d d d…d d d…f   }t	        ||«      \  }	}
t        |	j                  «       |
j                  «       |j                  j                  «       ||«      }|| _        || _	        ||c| _
        | _        y )N©r­   éZ   r†   r$   ro   r   rS   )r   r   r   r   r   r   rE  ÚTÚlut_lsqÚdataÚnew_lonsÚnew_lats)r7   ÚnthetaÚnphiÚthetaÚphir`  ÚknotstÚknotspÚknotdataÚlatsÚlonsr_  s               r<   Úsetup_methodz)TestLSQSphereBivariateSpline.setup_methodÇ  s
  € à‰ˆ�Ü˜˜f q™jÑ)¨1¨s°F¸Q±JÑ/?Ñ+?ÀÓHÌ2ÑMˆÜ�s˜D 1™H‘~ q¨3°°q±©>Ñ'9¸4Ó@À2ÑEÌÑJˆÜ�U—[‘[ ‘^ S§Y¡Y¨q¡\Ð2Ó3ˆà‘s˜�s‘ˆØ‘S�q�S‘ˆØ™˜!˜™S˜q˜S˜‘>ˆä˜e SÓ)‰
ˆˆdÜ*¨4¯:©:«<¸¿¹»Ø+/¯6©6¯<©<«>¸6À6óKˆàˆŒØˆŒ	Ø'-¨vÐ$ˆŒ�t•}r>   c                 óÈ   — t        | j                  j                  «       «      dk  sJ ‚t        | j                  | j                  | j
                  «      | j                  «       y )Nr-   )r2   r_  r3   r	   rb  ra  r`  ©r7   s    r<   r=   z1TestLSQSphereBivariateSpline.test_linear_constantÙ  sF   € Ü�4—<‘<×,Ñ,Ó.Ó/°%Ò7Ð7Ð7Ü! $§,¡,¨t¯}©}¸d¿m¹mÓ"LØ"&§)¡)õ	-r>   c                 óÄ   — t        | j                  g g «      t        j                  d«      «       t        | j                  g g d¬«      t        j                  d«      «       y ©NrÀ   Fr-  r/  )r	   r_  rf   r“   rn  s    r<   r_   z-TestLSQSphereBivariateSpline.test_empty_inputÞ  s@   € Ü! $§,¡,¨r°2Ó"6¼¿¹À»ÔHÜ! $§,¡,¨r°2¸E ,Ó"BÄBÇHÁHÈTÃNÕSr>   c           	      óx  — d\  }}t        d|dz
  z  dd|dz
  z  z
  |«      t        z  }t        d|dz
  z  dd|dz
  z  z
  |«      dz  t        z  }t        |j                  d   |j                  d   f«      }|d d d…   }|d d d…   }t	        t
        «      5 }t        dd|¬	«      t        z  }	t        |	|«      \  }
}t        |
j                  «       |j                  «       |j                  j                  «       ||«       d d d «       d
t        j                  «      v sJ ‚t	        t
        «      5 }t        dd|¬	«      t        z  }	t        |	|«      \  }
}t        |
j                  «       |j                  «       |j                  j                  «       ||«       d d d «       d
t        |j                  «      v sJ ‚t	        t
        «      5 }t        dd|¬	«      dz  t        z  }t        ||«      \  }}t        |j                  «       |j                  «       |j                  j                  «       ||«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        dd|¬	«      dz  t        z  }t        ||«      \  }}t        |j                  «       |j                  «       |j                  j                  «       ||«       d d d «       dt        |j                  «      v sJ ‚t        ||«      \  }}t	        t
        «      5 }t        j                  |«      }d|d<   t        |j                  «       |j                  «       |j                  j                  «       ||«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        j                  |«      }t        |d<   t        |j                  «       |j                  «       |j                  j                  «       ||«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        j                  |«      }d|d<   t        |j                  «       |j                  «       |j                  j                  «       ||«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        j                  |«      }dt        z  |d<   t        |j                  «       |j                  «       |j                  j                  «       ||«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        g d¢«      }t        |j                  «       |j                  «       |j                  j                  «       |||¬«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        |j                  «       |j                  «       |j                  j                  «       ||d¬«       d d d «       dt        |j                  «      v sJ ‚t	        t
        «      5 }t        |j                  «       |j                  «       |j                  j                  «       ||d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �Œ³xY w# 1 sw Y   �Œ(xY w# 1 sw Y   �ŒšxY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ|xY w# 1 sw Y   �Œ÷xY w# 1 sw Y   �ŒvxY w# 1 sw Y   �ŒîxY w# 1 sw Y   �ŒxxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¥xY w)Nr\  r†   r$   ro   r   rS   çš™™™™™¹¿rw   r2  útheta should be between [0, pi]r…   çš™™™™™ñ?úphi should be between [0, 2pi]rT   ztt should be between (0, pi)ztp should be between (0, 2pi)r%   ©	rv   rw   r*   r†   rw   r*   r†   rw   rw   rÝ   r7  r;  r=  )r   r   r   r   rš   r›   r   r   rE  r^  râ   rã   rf   r˜   r
   )r7   rc  rd  re  rf  r`  rg  rh  r>  Úinvalid_thetaÚinvalid_latsrk  Úinvalid_phirj  Úinvalid_lonsÚinvalid_knotstÚinvalid_knotspÚ	invalid_ws                     r<   r?  z/TestLSQSphereBivariateSpline.test_invalid_inputâ  s#  € Ø‰ˆ�Ü˜ ¨¡
Ñ+¨Q°¸À¹
Ñ1CÑ-CØó!Ü#%ñ&ˆä�s˜d Q™hÑ'¨¨S°D¸1±HÑ-=Ñ)=¸tÓDÀrÑIÌBÑNˆÜ�U—[‘[ ‘^ S§Y¡Y¨q¡\Ð2Ó3ˆà‘s˜�s‘ˆØ‘S�q�S‘ˆäœ:Ó&ð 	E¨(Ü$ T¨3°FÔ;¼bÑ@ˆMÜ!)¨-¸Ó!=ÑˆL˜$Ü$ \×%7Ñ%7Ó%9¸4¿:¹:»<Ø%)§V¡V§\¡\£^°V¸VôE÷	Eð
 1´C¸¿¹Ó4GÑGÐGÐGäœ:Ó&ð 	E¨(Ü$ S¨#°6Ô:¼RÑ?ˆMÜ!)¨-¸Ó!=ÑˆL˜$Ü$ \×%7Ñ%7Ó%9¸4¿:¹:»<Ø%)§V¡V§\¡\£^°V¸VôE÷	Eð
 1´C¸¿¹Ó4GÑGÐGÐGäœ:Ó&ð 	E¨(Ü" 4¨°&Ô9¸CÑ?Ä"ÑDˆKÜ!)¨%°Ó!=ÑˆD�,Ü$ T§Z¡Z£\°<×3EÑ3EÓ3GØ%)§V¡V§\¡\£^°V¸VôE÷	Eð
 0´3°x·~±~Ó3FÑFÐFÐFäœ:Ó&ð 	E¨(Ü" 3¨°Ô8¸3Ñ>ÄÑCˆKÜ!)¨%°Ó!=ÑˆD�,Ü$ T§Z¡Z£\°<×3EÑ3EÓ3GØ%)§V¡V§\¡\£^°V¸VôE÷	Eð
 0´3°x·~±~Ó3FÑFÐFÐFä˜e SÓ)‰
ˆˆdäœ:Ó&ð 	M¨(ÜŸW™W V›_ˆNØ $ˆN˜1ÑÜ$ T§Z¡Z£\°4·:±:³<Ø%)§V¡V§\¡\£^°^ÀVôM÷	Mð
 .´°X·^±^Ó1DÑDÐDÐDäœ:Ó&ð 	M¨(ÜŸW™W V›_ˆNÜ "ˆN˜1ÑÜ$ T§Z¡Z£\°4·:±:³<Ø%)§V¡V§\¡\£^°^ÀVôM÷	Mð
 .´°X·^±^Ó1DÑDÐDÐDäœ:Ó&ð 	M¨(ÜŸW™W V›_ˆNØ $ˆN˜1ÑÜ$ T§Z¡Z£\°4·:±:³<Ø%)§V¡V§\¡\£^°V¸^ôM÷	Mð
 /´#°h·n±nÓ2EÑEÐEÐEäœ:Ó&ð 	M¨(ÜŸW™W V›_ˆNØ !¤B¡ˆN˜1ÑÜ$ T§Z¡Z£\°4·:±:³<Ø%)§V¡V§\¡\£^°V¸^ôM÷	Mð
 /´#°h·n±nÓ2EÑEÐEÐEäœ:Ó&ð 	B¨(ÜÒLÓMˆIÜ$ T§Z¡Z£\°4·:±:³<ÀÇÁÇÁÃØ%+¨V°yõB÷	Bð &¬¨X¯^©^Ó)<Ñ<Ð<Ð<äœ:Ó&ð 	>¨(Ü$ T§Z¡Z£\°4·:±:³<ÀÇÁÇÁÃØ%+¨V¸õ>÷	>ð .´°X·^±^Ó1DÑDÐDÐDäœ:Ó&ð 	>¨(Ü$ T§Z¡Z£\°4·:±:³<ÀÇÁÇÁÃØ%+¨V¸õ>÷	>ð .´°X·^±^Ó1DÑDÐDÑD÷Q	Eñ 	Eú÷	Eñ 	Eú÷	Eñ 	Eú÷	Eñ 	Eú÷	Mñ 	Mú÷	Mñ 	Mú÷	Mñ 	Mú÷	Mñ 	Mú÷	Bñ 	Bú÷	>ñ 	>ú÷
	>ð 	>ús�   ÂA(Z.Ä-A(Z;ÇA+[É A+[Ì
A["ÎA"[/Ð*A[<Ò8A%\	ÕA\×A\#ÙA\0Ú.Z8Ú;[Û[Û[Û"[,Û/[9Û<\Ü	\Ü\ Ü#\-Ü0\9c           	      óh  — d\  }}t        d|dz
  z  dd|dz
  z  z
  |«      t        z  }t        d|dz
  z  dd|dz
  z  z
  |«      dz  t        z  }t        ||«      \  }}t        |j                  d   |j                  d   f«      }|d d d…   }|d d d…   }	t        |j                  «       j                  d   «      }
t        |j                  «       |j                  «       |j                  j                  «       ||	|
¬«      }t        |j                  «       j                  «       |j                  «       j                  «       |j                  j                  «       j                  «       |j                  «       |	j                  «       |
j                  «       ¬«      }t         |dd«       |dd«      «       y )	Nr\  r†   r$   ro   r   rS   rÝ   rw   )
r   r   r   r   r   rE  r   r^  rñ   r	   )r7   rc  rd  re  rf  rj  rk  r`  rg  rh  rƒ   rò   r³   s                r<   ró   z2TestLSQSphereBivariateSpline.test_array_like_input6  s  € Ø‰ˆ�Ü˜ ¨¡
Ñ+¨Q°¸À¹
Ñ1CÑ-CØó!Ü#%ñ&ˆä�s˜d Q™hÑ'¨¨S°D¸1±HÑ-=Ñ)=ØóØ!ñ"Ü$&ñ'ˆä˜e SÓ)‰
ˆˆdÜ�U—[‘[ ‘^ S§Y¡Y¨q¡\Ð2Ó3ˆà‘s˜�s‘ˆØ‘S�q�S‘ˆÜ�—‘“×#Ñ# AÑ&Ó'ˆô (¨¯
©
«°d·j±j³lØ(,¯©¯©«¸ÀÈ!ôMˆô (¨¯
©
«×(;Ñ(;Ó(=Ø(,¯
©
«×(;Ñ(;Ó(=Ø(,¯©¯©«×(=Ñ(=Ó(?Ø(.¯©«Ø(.¯©«¸1¿8¹8»:ô	Gˆô
 	"¡$ s¨C£.±$°s¸C³.ÕAr>   N©rM   rN   rO   rl  r=   r_   r?  ró   rP   r>   r<   rZ  rZ  Æ  s    „ ò6ò$-ò
TòREóhBr>   rZ  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestSmoothSphereBivariateSplinec                 ó€  — t        dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  g	«      }t        dt        z  t        dt        z  dt        z  t        dt        z  dt        z  t        dt        z  g	«      }t        g d¢«      }t        |||d¬«      | _        y )Nr'  r†   ç      è?r*   r  ç    _ Bre   )r
   r   r   r:   )r7   re  rf  r   s       r<   rl  z,TestSmoothSphereBivariateSpline.setup_methodP  sŸ   € Ü�sœ2‘v˜s¤2™v s¬2¡v¨r´"©u°b¼±e¸RÄ¹UÀCÌÁFØœ2‘v˜s¤2™vð'ó (ˆä�Rœ"‘Wœb #¬¡(¨B´©G´R¸¼r¹À2ÌÁ7ÌBØœ2‘Xðó  ˆäÒ-Ó.ˆÜ.¨u°c¸1ÀÔEˆ�r>   c                 ó¦   — t        | j                  j                  «       «      dk  sJ ‚t        | j                  g d¢ddg«      ddgddgddgg«       y )Nr-   r)   r$   r*   r&   )r2   r:   r3   r	   rn  s    r<   r=   z4TestSmoothSphereBivariateSpline.test_linear_constantX  sQ   € Ü�4—8‘8×(Ñ(Ó*Ó+¨eÒ3Ð3Ð3Ü! $§(¡(ª;¸¸3°xÓ"@Ø$% q 6¨A¨q¨6°A°q°6Ð":õ	<r>   c                 óÄ   — t        | j                  g g «      t        j                  d«      «       t        | j                  g g d¬«      t        j                  d«      «       y rp  )r	   r:   rf   r“   rn  s    r<   r_   z0TestSmoothSphereBivariateSpline.test_empty_input]  s@   € Ü! $§(¡(¨2¨rÓ"2´B·H±H¸U³OÔDÜ! $§(¡(¨2¨r¸ (Ó">ÄÇÁÈÃÕOr>   c                 ó²  — t        dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  g	«      }t        dt        z  t        dt        z  dt        z  t        dt        z  dt        z  t        dt        z  g	«      }t        g d¢«      }t        t        «      5 }t        dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  g	«      }t	        |||d¬«       d d d «       d	t        j                  «      v sJ ‚t        t        «      5 }t        dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  d
t        z  g	«      }t	        |||d¬«       d d d «       d	t        |j                  «      v sJ ‚t        t        «      5 }t        dt        z  t        dt        z  dt        z  t        dt        z  dt        z  t        dt        z  g	«      }t	        |||d¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        dt        z  t        dt        z  dt        z  t        dt        z  dt        z  t        dt        z  g	«      }t	        |||d¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        g d¢«      }t	        ||||d¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        |||d¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        |||d¬«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t	        |||d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �ŒÙxY w# 1 sw Y   �ŒSxY w# 1 sw Y   �ŒÖxY w# 1 sw Y   �ŒYxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒäxY w# 1 sw Y   Œ°xY w# 1 sw Y   Œ|xY w)Nr'  r†   rƒ  r*   r  rr  r„  re   rs  rt  ru  rw   gÍÌÌÌÌÌ @rv  ©rƒ   r+   r7  rv   ús should be positiver;  r=  )r
   r   rš   r›   r   râ   rã   )r7   re  rf  r   r>  rw  ry  r}  s           r<   r?  z2TestSmoothSphereBivariateSpline.test_invalid_inputa  sç  € Ü�sœR‘x ¤r¡¨3´©8°R¼"±W¸bÄ2¹gÀrÌBÁwØœR‘x ¤r¡¨3´©8ð5ó 6ˆä�Rœ"‘Wœb #¬¡(¨B´©G´R¸¼r¹À2ÌÁ7ÌBØœ2‘Xðó  ˆäÒ-Ó.ˆäœ:Ó&ð 	G¨(Ü! 4¬"¡9¨c´B©h¸¼b¹À"ÄrÁ'Ø#%¬¡7¨B´©G°S¼2±X¸sÄR¹xØ#&¬¡8ð#-ó .ˆMô (¨°s¸AÀÕF÷		Gð
 1´C¸¿¹Ó4GÑGÐGÐGäœ:Ó&ð 	G¨(Ü! 3¬¡8¨S´2©X°s¼R±xÀÄbÁØ#%¬¡7¨B´©G°S¼2±X¸sÄR¹xØ#&¬¡8ð#-ó .ˆMô (¨°s¸AÀÕF÷		Gð
 1´C¸¿¹Ó4GÑGÐGÐGäœ:Ó&ð 	G¨(Ü ¤r¡¬2¨s´R©x¸¼b¹Ä"ÀcÌBÁhØ!#¤b¡¬"¨c´B©hð!8ó 9ˆKä'¨¨{¸AÀÕF÷	Gð 0´3°x·~±~Ó3FÑFÐFÐFäœ:Ó&ð 	G¨(Ü ¤r¡¬2¨s´R©x¸¼b¹Ä"ÀcÌBÁhØ!#¤b¡¬"¨c´B©hð!8ó 9ˆKä'¨¨{¸AÀÕF÷	Gð 0´3°x·~±~Ó3FÑFÐFÐFäœ:Ó&ð 	L¨(ÜÒLÓMˆIÜ'¨¨s°A¸ÀdÕK÷	Lð &¬¨X¯^©^Ó)<Ñ<Ð<Ð<äœ:Ó&ð 	?¨(Ü'¨¨s°A¸Õ>÷	?à%¬¨X¯^©^Ó)<Ñ<Ð<Ð<äœ:Ó&ð 	A¨(Ü'¨¨s°A¸4Õ@÷	Aà-´°X·^±^Ó1DÑDÐDÐDäœ:Ó&ð 	@¨(Ü'¨¨s°A¸3Õ?÷	@à-´°X·^±^Ó1DÑDÐDÑD÷S	Gñ 	Gú÷	Gñ 	Gú÷	Gñ 	Gú÷	Gñ 	Gú÷	Lñ 	Lú÷
	?ð 	?ú÷	Að 	Aú÷	@ð 	@úsd   Â:A#O4ÅA#PÇ APÉ*APË4P(ÍP5ÎQÏQÏ4O>ÐPÐPÐP%Ð(P2Ð5P>ÑQ
ÑQc                 ó¦  — t        j                  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  dt        z  g	«      }t        j                  dt        z  t        dt        z  dt        z  t        dt        z  dt        z  t        dt        z  g	«      }t        j                  g d¢«      }t        j                  g d¢«      }t        ||||d¬«      }t        |j	                  «       |j	                  «       |j	                  «       |j	                  «       d¬«      }t         |d	d	«       |d	d	«      «       y )
Nr'  r†   rƒ  r*   r  )	rw   rw   rw   rw   rw   rw   rw   rw   rw   r„  rˆ  rw   )rf   r
   r   r   rñ   r	   )r7   re  rf  r   rƒ   rò   r³   s          r<   ró   z5TestSmoothSphereBivariateSpline.test_array_like_input“  s  € Ü—‘˜#¤™( C¬"¡H¨c´B©h¸¼R¹ÀÄbÁØœr™' 3¬¡8¨S´2©X°s¼R±xðAó Bˆä�h‰h˜œR™¤ S¬2¡X¨r´B©w¼¸CÄ"¹HÀbÌ2ÁgÜ˜C¤"™Hð&ó 'ˆä�H‰HÒ0Ó1ˆÜ�H‰HÒBÓCˆô +¨5°#°q¸AÀÔFˆô +¨5¯<©<«>¸3¿:¹:»<Ø+,¯8©8«:¸¿¹»ÀtôMˆä!¡$ s¨C£.±$°s¸C³.ÕAr>   Nr  rP   r>   r<   r�  r�  O  s    „ òFò<ò
Pò0EódBr>   r�  c                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestRectBivariateSplinec                 ó¬   — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }t         |||«      |«       y )NrR   ©r$   r%   r$   r%   r$   ©r$   r%   r&   r%   r$   ©r$   r%   r%   r%   r$   ©r
   r   r	   ©r7   r8   r9   rÏ   r:   s        r<   Útest_defaultsz%TestRectBivariateSpline.test_defaults¥  sI   € Ü’+ÓˆÜ’+ÓˆÜ’;š{ª;²{Â;ÐOÓPˆÜ! ! A aÓ(ˆÜ!¡# a¨£(¨1Õ-r>   c           
      óB  — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }g d¢}g d¢}|j                  ||«      }t        t        ||«      D ��	cg c]  \  }}	 |||	«      d   ‘Œ c}	}«      }
t	        ||
«       y c c}	}w )NrR   rŽ  r�  r�  )r$   çffffff@g333333@r†   çffffff
@ç333333ó?r&   )r$   r–  r—  r�   g      @rw   r&   rÀ   )r
   r   Úevr  r   )r7   r8   r9   rÏ   r:   rQ  rR  Úzir�   r#  Úzi2s              r<   Útest_evaluatez%TestRectBivariateSpline.test_evaluate¬  sŒ   € Ü’+ÓˆÜ’+ÓˆÜ’;š{ª;²{Â;ÐOÓPˆÜ! ! A aÓ(ˆâ,ˆÚ,ˆØ�V‰V�B˜‹^ˆÜ´C¸¸B³K×@©&¨"¨b‘S˜˜R“[ Ó%Ó@ÓAˆä˜B Õ$ùó As   Á0B
c                 ó®  — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        g d¢g d¢g d¢g d¢g d¢g«      d	z  }t        g d
¢g d
¢g d¢g d¢g d
¢g«      }t        g d¢g d¢g d¢g d¢g d¢g«      d	z  }t        |||«      }t         |||d¬«      |«       t         |||d¬«      |«       t         |||dd¬«      |«       y )NrR   rŽ  r�  r�  ©r   r   iìÿÿÿr   r   ©r   r   rŽ   r   r   ©r   r   rA   r   r   ©r   r   iõÿÿÿr   r   rp   ©rA   r,   r   r$   éüÿÿÿ©r   r*   r   g      ø¿r   ©r%   r'  r   ç      Ð¿rÁ   ©é(   içÿÿÿr   é   iØÿÿÿ©iæÿÿÿg     @0@r   g     @0Àé   ©r�   rS   r   éûÿÿÿrn   ©é   g     €+Àr   g     €+@iêÿÿÿr$   ©Údx©Údy)r°  r²  r‘  ©r7   r8   r9   rÏ   r°  r²  Údxdyr:   s           r<   Útest_derivatives_gridz-TestRectBivariateSpline.test_derivatives_grid¹  s×   € Ü’+ÓˆÜ’+ÓˆÜ’;š{ª;²{Â;ÐOÓPˆÜ’M¢,ª{Úš+ð'ó (Ø(*ñ+ˆä’M¢-Ò0@Úšmð-ó .ˆäÒ'Ò(?ÚÒ1²-ðAó BØBDñEˆä! ! A aÓ(ˆÜ!¡# a¨¨Q¤-°Ô3Ü!¡# a¨¨Q¤-°Ô3Ü!¡# a¨¨Q°!Ô"4°TÕ:r>   c           	      ó`  — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        g d¢«      }t        g d¢«      }t        g d¢«      dz  }t        |||«      }t         |||d	d
¬«      |«       t         |||d	d
¬«      |«       t         |||d	d	d
¬«      |«       y )NrR   rŽ  r�  r�  ©r   r   gUUUUUUå?r   r   ©rA   r,   r   r¥  r¢  ©é    éA   r   é7   é    ç      8@r$   F)r°  r.  )r²  r.  ©r°  r²  r.  r‘  r³  s           r<   rl   z(TestRectBivariateSpline.test_derivativesÈ  sŸ   € Ü’+ÓˆÜ’+ÓˆÜ’;š{ª;²{Â;ÐOÓPˆÜ’>Ó"ˆÜÒ#Ó$ˆÜÒ%Ó& sÑ*ˆÜ! ! A aÓ(ˆÜ!¡# a¨¨Q°EÔ":¸2Ô>Ü!¡# a¨¨Q°EÔ":¸2Ô>Ü!¡# a¨¨Q°!¸Ô"?ÀÕEr>   c                 ó   — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        g d¢g d¢g d¢g d¢g d¢g«      d	z  }t        g d
¢g d
¢g d¢g d¢g d
¢g«      }t        g d¢g d¢g d¢g d¢g d¢g«      d	z  }t        |||«      }t         |j                  dd«      ||«      |«       t         |j                  dd«      ||«      |«       t         |j                  dd«      ||«      |«       y )NrR   rŽ  r�  r�  r�  rž  rŸ  r   rp   r¡  r£  r¤  r¦  r©  r«  r­  r$   r   ©r
   r   r	   Úpartial_derivativer³  s           r<   Ú#test_partial_derivative_method_gridz;TestRectBivariateSpline.test_partial_derivative_method_gridÔ  s  € Ü’/Ó"ˆÜ’/Ó"ˆÜ’?Ú"Ú"Ú"Ú"ð	$ó %ˆô
 Ò%Ú$Ú#Ú%Ú#ð	%ó &ð )+ñ	+ˆô
 Ò%Ú%Ú(Ú)Ú%ð	'ó (ˆô
 Ò+Ú1Ú'Ú1Ú'ð	)ó *ð -/ñ	/ˆô
 " ! Q¨Ó*ˆÜ!Ð"> #×"8Ñ"8¸¸AÓ">¸qÀ!Ó"DÀbÔIÜ!Ð"> #×"8Ñ"8¸¸AÓ">¸qÀ!Ó"DÀbÔIÜ!Ð"> #×"8Ñ"8¸¸AÓ">¸qÀ!Ó"DÀdÕKr>   c                 ó¸  — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        g d¢«      }t        g d¢«      }t        g d¢«      dz  }t        |||«      }t         |j                  d	d
«      ||d¬«      |«       t         |j                  d
d	«      ||d¬«      |«       t         |j                  d	d	«      ||d¬«      |«       y )NrR   rŽ  r�  r�  r·  r¸  r¹  r¾  r$   r   Fr-  rÁ  r³  s           r<   Útest_partial_derivative_methodz6TestRectBivariateSpline.test_partial_derivative_methodð  së   € Ü’/Ó"ˆÜ’/Ó"ˆÜ’?Ú"Ú"Ú"Ú"ð	$ó %ˆô
 Ò%Ó&ˆÜÒ'Ó(ˆÜÒ)Ó*¨SÑ0ˆÜ! ! Q¨Ó*ˆÜ!Ð"> #×"8Ñ"8¸¸AÓ">¸qÀ!ØDIô#Kà"$ô	&ô 	"Ð"> #×"8Ñ"8¸¸AÓ">¸qÀ!ØDIô#Kà"$ô	&ô 	"Ð"> #×"8Ñ"8¸¸AÓ">¸qÀ!ØDIô#Kà"&õ	(r>   c                 ó  — t        g d¢t        ¬«      }|j                  «       }t        |j                  |j                  f«      }t        |||«      }t        t        «      5  |j                  dd«       d d d «       y # 1 sw Y   y xY w)N)r   r$   r%   r&   rA   r‹   rA   r$   )	r
   r—   r˜   r   Úsizer   rš   r›   rÂ  r’  s        r<   Ú'test_partial_derivative_order_too_largez?TestRectBivariateSpline.test_partial_derivative_order_too_large  sk   € Ü’/¬Ô/ˆØ�F‰F‹HˆÜ�!—&‘&˜!Ÿ&™&Ð!Ó"ˆÜ! ! Q¨Ó*ˆÜœ:Ó&ñ 	)Ø×"Ñ" 1 aÔ(÷	)÷ 	)ñ 	)ús   Á!A=Á=Bc           
      óÚ   — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }t         |||«       ||d d …d f   |d d d …f   d¬«      «       y )NrR   rŽ  r�  r�  Fr-  )r
   r   r   r’  s        r<   Útest_broadcastz&TestRectBivariateSpline.test_broadcast  sb   € Ü’+ÓˆÜ’+ÓˆÜ’;š{ª;²{Â;ÐOÓPˆÜ! ! A aÓ(ˆÜ™˜A˜q›	¡3 qª¨4¨¡y°!°Dº°F±)À%Ô#HÕIr>   c           	      ó’  — t        t        «      5 }t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        |||«       d d d «       dt	        j
                  «      v sJ ‚t        t        «      5 }t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        |||«       d d d «       dt	        |j
                  «      v sJ ‚t        t        «      5 }t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g«      }t        |||«       d d d «       d	t	        |j
                  «      v sJ ‚t        t        «      5 }t        g d¢«      }t        g d¢«      }t        g d
¢g d
¢g d¢g d¢g d
¢g«      }t        |||«       d d d «       dt	        |j
                  «      v sJ ‚t        t        «      5 }t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }d}t        ||||¬«       d d d «       dt	        |j
                  «      v sJ ‚t        t        «      5 }t        d¬«       d d d «       dt	        |j
                  «      v sJ ‚y # 1 sw Y   �Œ-xY w# 1 sw Y   �ŒÈxY w# 1 sw Y   �ŒfxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ—xY w# 1 sw Y   ŒcxY w)N)r·   r%   r&   rA   rS   rR   rŽ  r�  r�  úx must be strictly increasing)r%   r%   r&   rA   rS   úy must be strictly increasingz7x dimension of z must have same number of elements as x)r$   r%   r$   r%   )r$   r%   r&   r%   )r$   r%   r%   r%   z7y dimension of z must have same number of elements as yr8  r¦   r9  rv   re   rá   )rš   r›   r
   r   râ   rã   )r7   rå   r8   r9   rÏ   r§   s         r<   r?  z*TestRectBivariateSpline.test_invalid_input  s”  € äœ:Ó&ð 	)¨$Ü’oÓ&ˆAÜ’oÓ&ˆAÜ’ªºÚ&ªð9ó :ˆAä  1 aÔ(÷	)ð /´#°d·j±j³/ÑAÐAÐAäœ:Ó&ð 	)¨$Ü’oÓ&ˆAÜ’oÓ&ˆAÜ’ªºÚ&ªð9ó :ˆAä  1 aÔ(÷	)ð /´#°d·j±j³/ÑAÐAÐAäœ:Ó&ð 	)¨$Ü’oÓ&ˆAÜ’oÓ&ˆAÜ’ªºÚ&ð(ó )ˆAä  1 aÔ(÷	)ð IÜ�d—j‘j“/ñ"ð 	"ð "ô œ:Ó&ð 	)¨$Ü’oÓ&ˆAÜ’oÓ&ˆAÜ’|¢\²<Ú#¢\ð3ó 4ˆAä  1 aÔ(÷	)ð IÜ�d—j‘j“/ñ"ð 	"ð "ô œ:Ó&ð 	4¨$Ü’oÓ&ˆAÜ’oÓ&ˆAÜ’ªºÚ&ªð9ó :ˆAà$ˆDÜ  1 a¨dÕ3÷	4ð +¬c°$·*±*«oÑ=Ð=Ð=äœ:Ó&ð 	1¨$Ü  1 a¨4Õ0÷	1à%¬¨T¯Z©Z«Ñ8Ð8Ñ8÷[	)ñ 	)ú÷	)ñ 	)ú÷	)ñ 	)ú÷	)ñ 	)ú÷	4ð 	4ú÷	1ð 	1úsK   �AI=ÂAJ
Ã4?JÅ#AJ$ÇAJ1ÉJ=É=JÊ
JÊJ!Ê$J.Ê1J:Ê=Kc                 óf  — t        g d¢«      }t        g d¢«      }t        g d¢g d¢g d¢g d¢g d¢g«      }t        g d¢«      }t        ||||¬«      }t        |j                  «       |j                  «       |j                  «       |j                  «       ¬«      }t         |dd«       |dd«      «       y )NrR   rŽ  r�  r�  )r$   rS   r$   rS   r¦   rw   )r
   r   rñ   r	   )r7   r8   r9   rÏ   r§   rò   r³   s          r<   ró   z-TestRectBivariateSpline.test_array_like_inputF  s‹   € Ü’/Ó"ˆÜ’/Ó"ˆÜ’?¢O²_Ú"¢Oð5ó 6ˆä’\Ó"ˆä" 1 a¨°Ô6ˆÜ" 1§8¡8£:¨q¯x©x«z¸1¿8¹8»:Ø(,¯©«ô7ˆä!¡$ s¨C£.±$°s¸C³.ÕAr>   c                 óB  — d}t         j                  j                  dt         j                  |«      }t         j                  j                  ddt         j                  z  |«      }t        j                  |«      }t        |||d¬«      }d}d}t        j                  |«      |z  t         j                  z  }t        j                  |«      |z  dz  t         j                  z  }	 |||	«       |j                  «       }
d|
d<   t        t        «      5 } ||
|	«       d d d «       d	t        j                  «      v sJ ‚|	j                  «       }d|d<   t        t        «      5 } |||«       d d d «       d
t        |j                  «      v sJ ‚y # 1 sw Y   ŒrxY w# 1 sw Y   Œ/xY w)Nr5  r   r%   rj   re   r·   r&   çü©ñÒMbP?rÌ  rÍ  )rf   ÚrandomÚuniformr   r   r   rq   r˜   rš   r›   râ   rã   )r7   ÚNSampÚThetaÚPhiÚDataÚInterpolatorÚNLonÚNLatÚGridPosLatsÚGridPosLonsÚnonGridPosLatsr>  ÚnonGridPosLonss                r<   Útest_not_increasing_inputz1TestRectBivariateSpline.test_not_increasing_inputR  sa  € àˆÜ—	‘	×!Ñ! !¤R§U¡U¨EÓ2ˆÜ�i‰i×Ñ  1¤r§u¡u¡9¨eÓ4ˆÜ�w‰w�u‹~ˆä2°5¸#¸tÀsÔKˆàˆØˆÜ—i‘i “o¨Ñ,¬r¯u©uÑ4ˆÜ—i‘i “o¨Ñ,¨qÑ0´2·5±5Ñ8ˆñ 	�[ +Ô.à$×)Ñ)Ó+ˆØ!ˆ�qÑÜœ:Ó&ð 	6¨(Ù˜¨Ô5÷	6à.´#°h·n±nÓ2EÑEÐEÐEà$×)Ñ)Ó+ˆØ!ˆ�qÑÜœ:Ó&ð 	6¨(Ù˜ nÔ5÷	6à.´#°h·n±nÓ2EÑEÐEÑE÷	6ð 	6ú÷	6ð 	6ús   Ä
F	Å
FÆ	FÆFN)rM   rN   rO   r“  r›  rµ  rl   rÃ  rÅ  rÈ  rÊ  r?  ró   rÞ  rP   r>   r<   rŒ  rŒ  ¤  s?   „ ò.ò%ò;ò
FòLò8(ò,)òJò/9òb
BóFr>   rŒ  c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestRectSphereBivariateSplinec           
      óÚ   — t        ddt        z  dz
  d«      }t        dt        dz
  d«      }t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }t	         |||«      |«       y ©Nç{®Gáz„?r%   rY   ©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	   ©r7   r9   r8   rÏ   r:   s        r<   r“  z+TestRectSphereBivariateSpline.test_defaultsq  si   € Ü�T˜1œR™4 ™9 aÓ(ˆÜ�Tœ2˜d™7 AÓ&ˆÜ’?¢?²?Ú"¢?²?Ú"ð$ó %ˆô (¨¨!¨AÓ.ˆÜ!¡# a¨£(¨1Õ-r>   c           
      óp  — t        ddt        z  dz
  d«      }t        dt        dz
  d«      }t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }g d¢}g d¢}|j	                  ||«      }t        t        ||«      D ��	cg c]  \  }}	 |||	«      d	   ‘Œ c}	}«      }
t        ||
«       y c c}	}w )
Nrã  r%   rY   rä  rå  ræ  )r¯   r$   r•  gÍÌÌÌÌÌ@r  gìQ¸…ë@g      @)r*   r  rt  gÍÌÌÌÌÌÜ?gj¼t“Î?rw   ç-Cëâ6?rÀ   )r   r   r
   r   r˜  r  r   )r7   r9   r8   rÏ   r:   rR  rQ  r™  r�   r#  rš  s              r<   r›  z+TestRectSphereBivariateSpline.test_evaluatez  s¬   € Ü�T˜1œR™4 ™9 aÓ(ˆÜ�Tœ2˜d™7 AÓ&ˆÜ’?¢?²?Ú"¢?²?Ú"ð$ó %ˆô (¨¨!¨AÓ.ˆÚ1ˆÚ6ˆØ�V‰V�B˜‹^ˆÜ´C¸¸B³K×@©&¨"¨b‘S˜˜R“[ Ó%Ó@ÓAˆÜ˜B Õ$ùó As   ÂB2
c                 ót  — t        j                  t        j                  dt        j                  ddd«      z
  «      j                  t        j                  dt        j
                  t        j                  ddd«      «      z
  «      «      j                  }t        t        «      5 }t        j                  d	d
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }t        j                  ddd«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||d	¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �ŒvxY w# 1 sw Y   �ŒïxY w# 1 sw Y   �ŒhxY w# 1 sw Y   ŒàxY w# 1 sw Y   ŒVxY w)Nç     €V@ç      TÀç      T@é   ç     €f@rT   ç     àu@rZ   r,   éª   r   é^  úu should be between (0, pi)r¤   éµ   éKÿÿÿú v[0] should be between [-pi, pi)éöÿÿÿéh  ú"v[-1] should be v[0] + 2pi or lessre   r‰  ©rf   ÚdotÚ
atleast_2dr   r^  r2   rš   r›   r   r   râ   rã   ©r7   r`  r>  rj  rk  s        r<   r?  z0TestRectSphereBivariateSpline.test_invalid_input‡  sû  € Ü�v‰v”b—m‘m C¬"¯+©+°d¸CÀÓ*DÑ$DÓE×GÑGÜ—m‘m D¬2¯6©6´"·+±+¸bÀ$ÈÓ2JÓ+KÑ$KÓLóNßNOÉað 	ô œ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜q # rÓ*¬R¯U©UÑ2°TÑ9ˆDÜ% d¨D°$Ô7÷	8ð -´°H·N±NÓ0CÑCÐCÐCäœ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜q # rÓ*¬R¯U©UÑ2°TÑ9ˆDÜ% d¨D°$Ô7÷	8ð -´°H·N±NÓ0CÑCÐCÐCäœ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜t R¨Ó,¬r¯u©uÑ4°tÑ;ˆDÜ% d¨D°$Ô7÷	8ð 2´S¸¿¹Ó5HÑHÐHÐHäœ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜s C¨Ó,¬r¯u©uÑ4°tÑ;ˆDÜ% d¨D°$Ô7÷	8ð 4´s¸8¿>¹>Ó7JÑJÐJÐJäœ:Ó&ð 	>¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜r 3¨Ó+¬b¯e©eÑ3°dÑ:ˆDÜ% d¨D°$¸"Õ=÷	>ð &¬¨X¯^©^Ó)<Ñ<Ð<Ñ<÷9	8ñ 	8ú÷	8ñ 	8ú÷	8ñ 	8ú÷	8ð 	8ú÷	>ð 	>úóA   Â#A$M;Ä7A$NÇA$NÉA$N"Ë3A&N.Í;NÎNÎNÎ"N+Î.N7c                 ó  — t        ddt        z  dz
  d«      }t        dt        dz
  d«      }t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }t        ddt        z  dz
  d«      }t        dt        dz
  d«      }t	         |||d¬	«      t        |||d¬
«      dd¬«       t	         |||d¬«      t        |||d¬«      dd¬«       t	         |||dd¬«      t        |||ddd¬«      dd¬«       t         |||d¬	«       |j                  dd«      ||«      «       t         |||d¬«       |j                  dd«      ||«      «       t         |||dd¬«       |j                  dd«      ||«      «       t         |||dd¬«       |j                  dd«      ||d¬«      «       t         |||dd¬«       |j                  dd«      ||d¬«      «       t         |||ddd¬«       |j                  dd«      ||d¬«      «       y )Nrã  r%   rY   rä  rå  ræ  ç{®Gáz”?r$   )Údthetar¯  ré  ©Úrtolr/   )Údphir±  )r  r  ç�íµ ÷Æ°>©r°  r²  r<  rÐ  r   F©r  r.  r-  ©r  r.  ©r  r  r.  )r   r   r
   r   r   Ú_numdiff_2dr   rÂ  rç  s        r<   rµ  z3TestRectSphereBivariateSpline.test_derivatives_grid©  s  € Ü�T˜1œR™4 ™9 aÓ(ˆÜ�Tœ2˜d™7 AÓ&ˆÜ’?¢?²?Ú"¢?²?Ú"ð$ó %ˆô (¨¨!¨AÓ.ˆä�T˜1œR™4 ™9 aÓ(ˆÜ�Tœ2˜d™7 AÓ&ˆä™˜A˜q¨Ô+¬[¸¸aÀÀqÔ-IØ!¨õ	.ä™˜A˜q qÔ)¬;°s¸A¸qÀQÔ+GØ!¨õ	.ä™˜A˜q¨°Ô3Ü# C¨¨A°!¸¸tÔDØ!¨õ	.ô 	™˜A˜q¨Ô+Ø7˜3×1Ñ1°!°QÓ7¸¸1Ó=ô	?ä™˜A˜q qÔ)Ø7˜3×1Ñ1°!°QÓ7¸¸1Ó=ô	?ä™˜A˜q¨°Ô3Ø7˜3×1Ñ1°!°QÓ7¸¸1Ó=ô	?ô 	™˜A˜q¨°Ô7Ø7˜3×1Ñ1°!°QÓ7¸¸1À5ÔIô	Kä™˜A˜q q¨uÔ5Ø7˜3×1Ñ1°!°QÓ7¸¸1À5ÔIô	Kä™˜A˜q¨°¸Ô?Ø7˜3×1Ñ1°!°QÓ7¸¸1À5ÔIõ	Kr>   c                 óR  ‡— t        ddt        z  dz
  d«      }t        dt        dz
  d«      }t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      Št        ddt        z  dz
  d«      }t        dt        dz
  d«      } ‰||dd	¬
«      j                  |j                  k(  sJ ‚t         ‰||dd	¬
«      t        ˆfd„||d¬«      dd¬«       t         ‰||dd	¬«      t        ˆfd„||d¬«      dd¬«       t         ‰||ddd	¬«      t        ˆfd„||ddd¬«      dd¬«       y )Nrã  r%   rY   rä  rå  ræ  r   r$   Fr  c                 ó   •—  ‰| |d¬«      S ©NFr-  rP   ©r8   r9   r:   s     €r<   ú<lambda>z@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>Ù  ó   ø€ ±°A°a¸UÔ0C€ r>   r¯  ré  r  r  c                 ó   •—  ‰| |d¬«      S r  rP   r  s     €r<   r  z@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>Ü  r  r>   r±  r	  c                 ó   •—  ‰| |d¬«      S r  rP   r  s     €r<   r  z@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>ß  r  r>   r  r  rÐ  )r   r   r
   r   r   r   r
  rç  s       @r<   rl   z.TestRectSphereBivariateSpline.test_derivativesË  s.  ø€ Ü�T˜1œR™4 ™9 aÓ(ˆÜ�Tœ2˜d™7 AÓ&ˆÜ’?¢?²?Ú"¢?²?Ú"ð$ó %ˆô (¨¨!¨AÓ.ˆä�T˜1œR™4 ™9 aÓ(ˆÜ�Tœ2˜d™7 AÓ&ˆá�1�a ¨Ô.×4Ñ4¸¿¹Ò?Ð?Ð?Ü™˜A˜q¨°Ô7Ü#Ó$CÀQÈÈaÔPØ!¨õ	.ô 	™˜A˜q q¨uÔ5Ü#Ó$CÀQÈÈaÔPØ!¨õ	.ô 	™˜A˜q¨°¸Ô?Ü#Ó$CØ$% q¨Q°1¸$ô@à!¨ö	.r>   c                 ót  — t        j                  t        j                  dt        j                  ddd«      z
  «      j                  t        j                  dt        j
                  t        j                  ddd«      «      z
  «      «      j                  }t        t        «      5 }t        j                  d	d
d«      t         j                  z  dz  }t        j                  d	dd«      t         j                  z  dz  }t        |||«       d d d «       dt        j                  «      v sJ ‚t        t        «      5 }t        j                  ddd«      t         j                  z  dz  }t        j                  d	dd«      t         j                  z  dz  }t        |||«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||«       d d d «       dt        |j                  «      v sJ ‚t        t        «      5 }t        j                  dd
d«      t         j                  z  dz  }t        j                  ddd«      t         j                  z  dz  }t        |||d¬«       d d d «       dt        |j                  «      v sJ ‚y # 1 sw Y   �ŒvxY w# 1 sw Y   �ŒïxY w# 1 sw Y   �ŒhxY w# 1 sw Y   ŒàxY w# 1 sw Y   ŒVxY w)Nrë  rì  rí  rî  rï  rT   rð  rZ   r   rñ  rò  ró  r¤   é´   rõ  rö  r÷  rø  rù  r,   re   r‰  rú  rý  s        r<   Útest_invalid_input_2z2TestRectSphereBivariateSpline.test_invalid_input_2ã  sû  € Ü�v‰v”b—m‘m C¬"¯+©+°d¸CÀÓ*DÑ$DÓE×GÑGÜ—m‘m D¬2¯6©6´"·+±+¸bÀ$ÈÓ2JÓ+KÑ$KÓLóNßNOÉað 	ô œ:Ó&ð 	8¨(Ü—;‘;˜q # qÓ)¬B¯E©EÑ1°DÑ8ˆDÜ—;‘;˜q # rÓ*¬R¯U©UÑ2°TÑ9ˆDÜ% d¨D°$Ô7÷	8ð -´°H·N±NÓ0CÑCÐCÐCäœ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜q # rÓ*¬R¯U©UÑ2°TÑ9ˆDÜ% d¨D°$Ô7÷	8ð -´°H·N±NÓ0CÑCÐCÐCäœ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜t R¨Ó,¬r¯u©uÑ4°tÑ;ˆDÜ% d¨D°$Ô7÷	8ð 2´S¸¿¹Ó5HÑHÐHÐHäœ:Ó&ð 	8¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜s C¨Ó,¬r¯u©uÑ4°tÑ;ˆDÜ% d¨D°$Ô7÷	8ð 4´s¸8¿>¹>Ó7JÑJÐJÐJäœ:Ó&ð 	>¨(Ü—;‘;˜r 3¨Ó*¬R¯U©UÑ2°TÑ9ˆDÜ—;‘;˜r 3¨Ó+¬b¯e©eÑ3°dÑ:ˆDÜ% d¨D°$¸"Õ=÷	>ð &¬¨X¯^©^Ó)<Ñ<Ð<Ñ<÷9	8ñ 	8ú÷	8ñ 	8ú÷	8ñ 	8ú÷	8ð 	8ú÷	>ð 	>úrþ  c           
      óV  — t        ddt        z  dz
  d«      }t        dt        dz
  d«      }t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        |||«      }t        |j	                  «       |j	                  «       |j	                  «       «      }t         |||«       |||«      «       y râ  )r   r   r
   r   rñ   r	   )r7   r9   r8   rÏ   rò   r³   s         r<   ró   z3TestRectSphereBivariateSpline.test_array_like_input  s”   € Ü�T˜1œr™6 D™=¨!Ó,ˆÜ�Tœ2 ™9 aÓ(ˆÜÒ(Ò*?Ú(Ú(Ò*?Ú(Ú(ð	*ó +ˆô )¨¨A¨qÓ1ˆä(¨¯©«°Q·X±X³ZÀÇÁÃÓLˆÜ!¡$ q¨!£*©d°1°a«jÕ9r>   c                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ||«      }|d   |d   z   }t        j                  |«      }t        j                  |«      }t	        |||«      }t        j                  t        j                  ddg«      «      }t        j                  t        j                  ddg«      «      }	 |||	«      }
t        j                  d	d
gddgg«      }t        |
|«       y )N)r¨  é   é#   r§  é-   )i¦ÿÿÿi«ÿÿÿé°ÿÿÿiµÿÿÿr­   r   r$   r  g     ÀB@r  g     `SÀg     €FÀgÐñÑâŒ=EÀg     ˆHÀgDioð…EGÀ)rf   r
   r   Úradiansr   r	   )r7   rj  rk  Úmeshr`  Úlat_rÚlon_rÚinterpolatorÚ	query_latÚ	query_lonÚdata_interpÚanss               r<   Útest_negative_evaluationz6TestRectSphereBivariateSpline.test_negative_evaluation  sÚ   € Ü�x‰xÒ,Ó-ˆÜ�x‰xÒ0Ó1ˆÜ�{‰{˜4 Ó&ˆØ�A‰w˜˜a™Ñ ˆÜ—
‘
˜4Ó ˆÜ—
‘
˜4Ó ˆÜ0°¸¸tÓDˆÜ—J‘JœrŸx™x¨¨T¨
Ó3Ó4ˆ	Ü—J‘JœrŸx™x¨¨e¨Ó5Ó6ˆ	Ù" 9¨iÓ8ˆÜ�h‰h˜ 
Ð+Ø! 9Ð-ð/ó 0ˆä! +¨sÕ3r>   c                 ó  — t        j                  dd«      t         j                  z  dz  }t        j                  dd«      t         j                  z  dz  }t        j                  d«      }dD ]  }t	        |||d|¬«       Œ y )Nr$   r¤   )rZ   rZ   ))TT)TF)FFr   )r+   Úpole_continuity)rf   rq   r   r“   r   )r7   ÚuÚvr   Úps        r<   Útest_pole_continuity_gh_14591z;TestRectSphereBivariateSpline.test_pole_continuity_gh_14591"  so   € ô �I‰I�a˜ÓœrŸu™uÑ$ rÑ)ˆÜ�I‰I�a˜ÓœrŸu™uÑ$ rÑ)ˆÜ�H‰H�VÓˆØ>ò 	GˆAÜ% a¨¨A°ÀAÖFñ	Gr>   N)rM   rN   rO   r“  r›  r?  rµ  rl   r  ró   r%  r+  rP   r>   r<   rà  rà  p  s4   „ ò.ò%ò =òD KòD.ò0 =òD:ò4óGr>   rà  c                 ó†  — |dk(  r|dk(  r	 | ||«      S |dk(  r$|dk(  r | ||z   |«       | ||z
  |«      z
  d|z  z  S |dk(  r$|dk(  r | |||z   «       | |||z
  «      z
  d|z  z  S |dk(  rM|dk(  rH | ||z   ||z   «       | ||z
  ||z   «      z
   | ||z   ||z
  «      z
   | ||z
  ||z
  «      z   d|z  dz  z  S t        d«      ‚)Nr   r$   r%   zinvalid derivative order)r›   )Úfuncr8   r9   r°  r²  r<  s         r<   r
  r
  1  s  € Ø	ˆQ‚w�2˜’7Ù�A�q‹zÐØ	ˆqŠ�R˜1’WÙ�Q˜‘W˜aÓ ¡4¨¨C©°Ó#3Ñ3¸¸#¹Ñ>Ð>Ø	ˆqŠ�R˜1’WÙ�Q˜˜C™Ó ¡4¨¨1¨s©7Ó#3Ñ3¸¸#¹Ñ>Ð>Ø	ˆqŠ�R˜1’WÙ�Q˜‘W˜a #™gÓ&©¨a°#©g°q¸3±wÓ)?Ñ?Ù�q˜3‘w  C¡Ó(ñ)Ù+/°°C±¸¸S¹Ó+AñBØFGÈÁeÈaÁZñPð 	Pô Ð3Ó4Ð4r>   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTest_DerivedBivariateSplinezgTest the creation, usage, and attribute access of the (private)
    _DerivedBivariateSpline class.
    c                 ó”  — t        j                  t        t        t	        d«      t	        d«      «      «      «      }t        j                  t        t        t	        d«      t	        dd«      «      «      «      }t        j                  t        j
                  ddd«      t        j
                  ddd«      f«      }t        «       5 }|j                  t        d«       t        |||t        ddd«      t        d	d
d«      d¬«      | _
        d d d «       t        |||«      | _        t        ddd«      }|dz   }t        t	        |j                  «      D �cg c]  }t        j                  ||«      ‘Œ c}«      }t!        |||«      | _        t        t%        j&                  t	        d«      t	        d«      «      «      | _        y # 1 sw Y   Œ¶xY wc c}w )Nr¤   r$   é   r&   r  r†   g     €3@rA   r*   g     €4@rã  r;  r   r5  rw   )rf   ÚconcatenateÚlistr  rÂ   r   r   rý   rþ   r   r_  r   Ú
lut_smoothr
   rÇ  Úrollr   Úlut_rectÚ	itertoolsÚproductÚorders)	r7   r8   r9   rÏ   rÿ   rÓ   rÔ   ÚiÚzzs	            r<   rl  z(Test_DerivedBivariateSpline.setup_methodC  sS  € Ü�N‰Nœ4¤¤E¨"£I¬u°R«yÓ 9Ó:Ó;ˆÜ�N‰Nœ4¤¤E¨"£I¬u°Q¸«|Ó <Ó=Ó>ˆÜ�N‰NœBŸK™K¨¨1¨bÓ1´2·;±;¸qÀ!ÀRÓ3HÐIÓJˆÜÓ ð 	8 CØ�J‰J”{Ð$FÔGÜ-¨a°°AÜ.6°s¸DÀ!Ó.DÜ.6°s¸DÀ!Ó.DØ26ô8ˆDŒL÷	8ô 0°°1°aÓ8ˆŒÜ�a˜˜BÓˆØ�#‰XˆÜ¬5°·±«=Ö9 a”B—G‘G˜A˜q•MÒ9Ó:ˆÜ+¨B°°BÓ7ˆŒÜœ9×,Ñ,¬U°1«X´u¸Q³xÓ@ÓAˆ�÷	8ð 	8üò :s   ÃAF9ÅGÆ9Gc                 ó´   — | j                   D ]I  \  }}| j                  j                  ||«      } |ddd¬«      }| j                  dd||d¬«      }||k(  rŒIJ ‚ y )Nrj   Fr-  r¿  )r9  r_  rÂ  ©r7   ÚnuxÚnuyÚlut_derrÃ   rÄ   s         r<   Útest_creation_from_LSQz2Test_DerivedBivariateSpline.test_creation_from_LSQT  s`   € ØŸ™ò 	‰HˆC�Ø—l‘l×5Ñ5°c¸3Ó?ˆGÙ˜˜S uÔ-ˆAØ—‘˜S #¨#°#¸E�ÓBˆAØ˜“6ˆM�6ñ		r>   c                 ó´   — | j                   D ]I  \  }}| j                  j                  ||«      } |ddd¬«      }| j                  dd||d¬«      }||k(  rŒIJ ‚ y )Ng      @Fr-  r¿  )r9  r4  rÂ  r=  s         r<   Útest_creation_from_Smoothz5Test_DerivedBivariateSpline.test_creation_from_Smooth[  s`   € ØŸ™ò 	‰HˆC�Ø—o‘o×8Ñ8¸¸cÓBˆGÙ˜˜S uÔ-ˆAØ—‘  S¨S°S¸u�ÓEˆAØ˜“6ˆM�6ñ		r>   c                 ó´   — | j                   D ]I  \  }}| j                  j                  ||«      } |ddd¬«      }| j                  dd||d¬«      }||k(  rŒIJ ‚ y )Nr†   r*   Fr-  r¿  )r9  r6  rÂ  r=  s         r<   Útest_creation_from_Rectz3Test_DerivedBivariateSpline.test_creation_from_Rectb  s`   € ØŸ™ò 	‰HˆC�Ø—m‘m×6Ñ6°s¸CÓ@ˆGÙ˜˜S uÔ-ˆAØ—‘˜c 3¨3°3¸U�ÓCˆAØ˜“6ˆM�6ñ		r>   c                 óœ   — | j                   j                  dd«      }t        t        «      5  |j                   d d d «       y # 1 sw Y   y xY w©Nr$   )r6  rÂ  rš   ÚAttributeErrorÚfp©r7   Úders     r<   Útest_invalid_attribute_fpz5Test_DerivedBivariateSpline.test_invalid_attribute_fpi  s<   € Ø�m‰m×.Ñ.¨q°!Ó4ˆÜœ>Ó*ñ 	Ø�FŠF÷	÷ 	ñ 	ús   ¬AÁAc                 ó¤   — | j                   j                  dd«      }t        t        «      5  |j	                  «        d d d «       y # 1 sw Y   y xY wrG  )r4  rÂ  rš   rH  r3   rJ  s     r<   Ú#test_invalid_attribute_get_residualz?Test_DerivedBivariateSpline.test_invalid_attribute_get_residualn  sA   € Ø�o‰o×0Ñ0°°AÓ6ˆÜœ>Ó*ñ 	Ø×ÑÔ÷	÷ 	ñ 	ús   ¬AÁAN)
rM   rN   rO   Ú__doc__rl  rA  rC  rE  rL  rN  rP   r>   r<   r/  r/  ?  s&   „ ñòBò"òòòó
r>   r/  )r   r   g:Œ0âŽyE>)2r7  Ú	threadingr   Únumpyrf   Únumpy.testingr   r  r   rš   Úscipy._lib._array_apir   r   r   r	   r
   r   r   r   r   r   r   Úscipy.interpolate._fitpack_pyr   r   r   r   Úscipy.interpolate._fitpack2r   r   r   r   r   r   r   r   r   Úscipy._lib._testutilsr   Úscipy.interpolater   r!   r  rH  rZ  r�  rŒ  rà  r
  r/  rP   r>   r<   ú<module>rX     s¼   ðã Ý Û Ý +Û Ý *÷ó ÷ C× BÑ Bß KÓ K÷#÷ #õ #õ :å )÷F7ñ F7÷Ra6ñ a6÷H~8ñ ~8÷BFBñ FB÷RRBñ RB÷jIFñ IF÷X~Gñ ~GóB5÷2ò 2r>   