403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/scipy/interpolate/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/scipy/interpolate/tests/__pycache__/test_fitpack2.cpython-311.pyc
�

d�cm����ddlZddlZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
mZmZmZmZmZmZddlmZmZmZmZddlmZmZmZmZmZmZm Z m!Z!m"Z"Gd�d��Z#Gd	�d
��Z$Gd�d��Z%Gd
�d��Z&Gd�d��Z'Gd�d��Z(Gd�d��Z)dd�Z*Gd�de+��Z,dS)�N)�assert_equal�assert_almost_equal�assert_array_equal�assert_array_almost_equal�assert_allclose�suppress_warnings)�raises)�array�diff�linspace�meshgrid�ones�pi�shape)�bisplrep�bisplev�splrep�spalde)	�UnivariateSpline�LSQUnivariateSpline�InterpolatedUnivariateSpline�LSQBivariateSpline�SmoothBivariateSpline�RectBivariateSpline�LSQSphereBivariateSpline�SmoothSphereBivariateSpline�RectSphereBivariateSplinec��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestUnivariateSplinec�H�gd�}gd�}t||d���}t|���ddg��t|���ddg��t	|���d��t|gd���gd���dS)N����)r$r$r$r"��kr$��r"��?r#�rr�	get_knots�
get_coeffsr�get_residual��self�x�y�luts    �G/usr/lib/python3/dist-packages/scipy/interpolate/tests/test_fitpack2.py�test_linear_constantz)TestUnivariateSpline.test_linear_constant����G�G���G�G���q��Q�'�'�'��!�#�-�-�/�/�1�Q�%�8�8�8�!�#�.�.�"2�"2�A�a�5�9�9�9��C�,�,�.�.�s�3�3�3�!�#�#�i�i�i�.�.����9�9�9�9�9�c	���gd�}gd�}t||d���}d}tt|��t||������tt|��t||d�������gd�}tt|��t||������tt|��t||d�������dS)Nr!�rr#�r"r%r#)�nu)r)r#�@)rrr)r/r0r1r2�args     r3�test_preserve_shapez(TestUnivariateSpline.test_preserve_shapes����I�I���I�I���q�!�q�)�)�)�����U�3�Z�Z��s�s�3�x�x���1�1�1��U�3�Z�Z��s�s�3�1�~�~�~�!6�!6�7�7�7��m�m���U�3�Z�Z��s�s�3�x�x���1�1�1��U�3�Z�Z��s�s�3�1�~�~�~�!6�!6�7�7�7�7�7r6c�H�gd�}gd�}t||d���}t|���ddg��t|���ddg��t	|���d��t|gd	���gd
���dS)Nr!r8r"r%r$rr9r'r()rr"r#r*r.s    r3�test_linear_1dz#TestUnivariateSpline.test_linear_1d&r5r6c��Gd�dt��}|gd�gd�d���}t|ddg��d	d	g��dS)
Nc��eZdZd�ZdS)�9TestUnivariateSpline.test_subclassing.<locals>.ZeroSplinec�&�dt|��zS)Nr)r
)r/r0s  r3�__call__zBTestUnivariateSpline.test_subclassing.<locals>.ZeroSpline.__call__3s����q���z�!r6N)�__name__�
__module__�__qualname__rD�r6r3�
ZeroSplinerB2s#������
"�
"�
"�
"�
"r6rI�r"r#r$r9�)r$r#r$r#r$r#r%r)r;r')rr)r/rI�sps   r3�test_subclassingz%TestUnivariateSpline.test_subclassing/ss��	"�	"�	"�	"�	"�)�	"�	"�	"��Z����[�[�[�A�
6�
6�
6���2�2�s�C�j�>�>�B��8�4�4�4�4�4r6c��gd�}gd�}t||d���}t|g��tg����dS)N�r"r$rK��	�rr9rQ��r$r%)rrr
�r/r0r1�spls    r3�test_empty_inputz%TestUnivariateSpline.test_empty_input9sL���K�K���M�M���q�!�q�)�)�)���3�3�r�7�7�E�"�I�I�.�.�.�.�.r6c��gd�}gd�}t||d���}t|���dd��dS)NrOrRr$r%rg7���?)rr�rootsrUs    r3�
test_rootszTestUnivariateSpline.test_roots@sM���O�O�������q�!�q�)�)�)���C�I�I�K�K��N�,=�>�>�>�>�>r6c��gd�}gd�}t||d���}t|�d��gd���dS)NrOrRr$r%�@)g��;�@gpZ��<o�?gO���mǿg�?)rr�derivativesrUs    r3�test_derivativesz%TestUnivariateSpline.test_derivativesFsb���O�O�������q�!�q�)�)�)���C�O�O�C�0�0�F�F�F�	H�	H�	H�	H�	Hr6c�&�tjd��}|dzd|dzzz}t||d���}td|��}t	|gd�d�	��t||dd�
��}t	|�d��|d�	��dS)N�r$�@r#r��s)g�F@g�C@g6@�@�V瞯�<��atol)rcr&)�np�arangerrrrr])r/r0r1�tck�dersrVs      r3�test_derivatives_2z'TestUnivariateSpline.test_derivatives_2Ms����I�a�L�L��
�q�D�2�a��d�7�N���Q��Q������a��~�~����#�#�#�#�		$�	$�	$�	$�
�q�!�q�A�.�.�.�������*�*��"�	$�	$�	$�	$�	$�	$r6c��gd�}gd�}gd�}t|||d���}tgd���}t|gd���|d�	��dS)
zRegression test for #1375.)
��g��<�&��g_�����g@����7ѿg�46	<ƿg���BϠ��r'g���BϠ�?g�46	<�?g@����7�?g_�����?g��<�&��?��?)
ro�1\_#�?�~a����?�w����?��5?�?�0�m�s�?g��x���?rtrsrrrqrpro)
���mB�o�!���@�u�)	�~@�e�?֭z@���b���@���v5|@geS���s@rzryrxrwrvruN)r0r1�wrc)gJ�d�v�?g�c���?g
��=��?gt���?�皙�����?��?��������?g�G�z��?g����Mb@?rf)rr
r)r/r0r1r{rV�desireds      r3�test_resize_regressionz+TestUnivariateSpline.test_resize_regression]s���
�
�
��
�
�
��
�
�
����a�1��5�5�5���H�H�H�I�I�����1�1�1�2�2�G�$�G�G�G�G�G�Gr6c
���tjdt���}|dz}tddd��}|���}d|tj|dk|d	k��<|���}|d|||dk<|d
|||d
k<ttfD�]$}|||���}dD]L}t|||�
��|dzd���t||||�
��|��|dzd����MdD]L}t|||�
��|dzd���t||||�
��|��|dzd����MdD]$}tt||fit|�
�����%dD]L}t|||�
��|dzd���t||||�
��|��|dzd����M��&|���dd�}	t|||	��}t||d�
��|dzd���t||d�
��|dzd���tt||fitd�
����t||d�
��|dzd���dD]\}t
||��}tt||fit|�
����tttfit|||������]dS)NrK��dtyper$����
�drr'�@���)r0r1)r�extrapolate)�extg��ؗ�Ҝ<rf)r"�zeros)r#�raise)r$�constr9r"r#)r��unknown)r0r1r�)rhri�floatr�copy�
logical_orrrr�
assert_raises�
ValueError�dictr+r)
r/r0r1�xp�xp_zeros�xp_clip�clsrVr��ts
          r3�test_out_of_range_regressionz1TestUnivariateSpline.test_out_of_range_regressionms����I�a�u�%�%�%��
�q�D��
�b�"�c�
"�
"���7�7�9�9��@A����x�"�}�h��m�<�<�=��'�'�)�)��"#�A�$���!�A�$���#$�R�5���!�B�%�� �$�&B�C�	P�	P�C��#��Q�-�-�-�C�)�
K�
K�����B�C� 0� 0� 0�"�a�%�e�D�D�D�D�� 2���A�q�c� 2� 2� 2�2� 6� 6��A��E�J�J�J�J�J�#�
Q�
Q�����B�C� 0� 0� 0�(�A�+�E�J�J�J�J�� 2���A�q�c� 2� 2� 2�2� 6� 6��!��%�P�P�P�P�P�#�
D�
D���j�#�r�C�C�T�c�]�]�]�C�C�C�C�#�
P�
P�����B�C� 0� 0� 0�'�1�*�5�I�I�I�I�� 2���A�q�c� 2� 2� 2�2� 6� 6���
��O�O�O�O�O�
P�

�M�M�O�O�A�a�C� ��!�!�Q��*�*�����B�A�����A��E�:�:�:�:����B�A�����!��%�@�@�@�@��j�#�r�9�9�T�a�[�[�[�9�9�9����B�A������
��?�?�?�?�#�	/�	/�C�"�1�a�(�(�C��*�c�2�?�?��#����?�?�?��*�&6�
/�
/��Q�!��-�-�-�
/�
/�
/�
/�	/�	/r6c���tjd��dz}tjd��dz}tjddd��}d}ttt
||||���dS)Nr�ror�c�
)r��e��bbox)rhrirr�r�r)r/�xs�ys�knotsr�s     r3�test_lsq_fpchecz$TestUnivariateSpline.test_lsq_fpchec�sm��
�Y�s�^�^�b�
 ��
�Y�s�^�^�b�
 ����A�r�2�&�&�����j�"5�r�2�u��	!�	!�	!�	!�	!�	!r6c��tjddd��dz}tj|��}t||d���}|�d���d��}t
|d��|d����|�d��}t
|d��|d	��z
|�d	d����dS)
Nrr"�Fr$rbr#�333333�?g333333�?皙�����?)rhr�cosr�antiderivative�
derivativer�integral)r/r0r1rV�spl2s     r3�"test_derivative_and_antiderivativez7TestUnivariateSpline.test_derivative_and_antiderivative�s����K��1�b�!�!�1�$���F�1�I�I���q�!�q�)�)�)���!�!�!�$�$�/�/��2�2�����C���$�$�s�)�)�,�,�,��!�!�!�$�$�����S�	�	�D�D��I�I�-����S�#�.�.�	0�	0�	0�	0�	0r6c��gd�}gd�}t||dd���}gd�}t|���|��dd�	��dS)
N�r"r#r9�g!@)r~皙�����?��������?r;rKr�r$)r�r&)r�rg�rQg#@r�rrerf)rrr�)r/�x_values�y_values�fr0s     r3�test_derivative_extrapolationz2TestUnivariateSpline.test_derivative_extrapolation�sh��%�$�$��*�*�*���X�x�W��B�B�B��%�%�%���������q�)�)�1�5�9�9�9�9�9�9r6c���tjddd��}td��D]C}t||d|���}dD]+\}}t	|�||��dd�	���,�DdS)
Nr'rorPr9r)rcr�))r"r")r"rK)r#rK�rr)���r)r�r�rerf)rhr�rangerrr�)r/r0r�r��a�bs      r3�test_integral_out_of_boundsz0TestUnivariateSpline.test_integral_out_of_bounds�s���
�K��B��"�"����8�8�	A�	A�C� ��A���4�4�4�A�6�
A�
A���A���
�
�1�a� 0� 0�!�%�@�@�@�@�@�
A�	A�	Ar6c�4�tjdt���}|dz}tj|��}t	||d���}|���dd�}|d}tjtjtjfD�]}||d<tttfit||d�����tttfit||d�����tttfit|||d�	����||d<||d<tttfit|||d�
����tttfit|||d�
����tttfit||||d�������	dS)Nr�r�r$T��check_finiter9r��r0r1r�)r0r1r�r�)r0r1r{r��r0r1r�r{r�)
rhrir��	ones_likerr+�nan�infr�r�r�rr)r/r0r1r{rVr��y_end�zs        r3�test_nanzTestUnivariateSpline.test_nan�s����I�b��&�&�&��
�q�D���L��O�O���q�!�$�7�7�7���M�M�O�O�A�a�C� ���"����&�"�&�2�6�'�*�	C�	C�A��A�b�E��*�&6�
9�
9��Q�!�$�7�7�7�
9�
9�
9��*�&B�
9�
9��Q�!�$�7�7�7�
9�
9�
9��*�&9�
>�
>��Q�!�q�t�<�<�<�
>�
>�
>��A�b�E��A�b�E��*�&6�
>�
>��Q�!�q�t�<�<�<�
>�
>�
>��*�&B�
>�
>��Q�!�q�t�<�<�<�
>�
>�
>��*�&9�
C�
C��Q�!�q�A�D�A�A�A�
C�
C�
C�
C�	C�	Cr6c
��tjdt���}|dz}tjdt���}|d|d<|dz}tj|��}t	||d���}|���dd�}t	|||dd�	��t
||||d�
��tttfit||dd�����tttfit||d�����dS)
Nr�r�r$rr"Tr�r9)r0r1r{rcr�r�)r0r1rcr�r�)rhrir�r�rr+rr�r�r�r�r/�xx�yyr0r1r{rVr�s        r3�test_strictly_increasing_xz/TestUnivariateSpline.test_strictly_increasing_x�s&��
�Y�r��
'�
'�
'��
��U���I�b��&�&�&����t��!��
�q�D���L��O�O���r�2�D�9�9�9���M�M�O�O�A�a�C� ���1��Q�!�$�?�?�?�?��a�1��Q�T�B�B�B�B��j�"2�	:�	:���a�1�4�8�8�8�	:�	:�	:��j�">�	5�	5���a�d�3�3�3�	5�	5�	5�	5�	5r6c��tjdt���}|dz}tjdt���}|ddz
|d<|dz}tj|��}t	||d���}|���dd	�}t
ttfit||d�
����t
ttfit||d�
����t
ttfit||||d�����dS)Nr�r�r$rror"Tr�r9r�r�)rhrir�r�rr+r�r�r�rrr�s        r3�test_increasing_xz&TestUnivariateSpline.test_increasing_x�s+��
�Y�r��
'�
'�
'��
��U���I�b��&�&�&����t�c�z��!��
�q�D���L��O�O���r�2�D�9�9�9���M�M�O�O�A�a�C� ���j�"2�	5�	5���a�d�3�3�3�	5�	5�	5��j�">�	5�	5���a�d�3�3�3�	5�	5�	5��j�"5�	?�	?���a�1���=�=�=�	?�	?�	?�	?�	?r6c��tt��5}gd�}gd�}t||��ddd��n#1swxYwYdt|j��vsJ�tt��5}gd�}gd�}gd�}t|||���ddd��n#1swxYwYdt|j��vsJ�tt��5}d}t|||�	��ddd��n#1swxYwYd
t|j��vsJ�tt��5}t||d���ddd��n#1swxYwYd
t|j��vsJ�tt��5}t||d���ddd��n#1swxYwYdt|j��vsJ�dS)Nr��r~r�r�r;�!x and y should have a same length�r~r�r�r;gffffff@�rnrororo�r{�%x, y, and w should have a same lengthr�r��bbox shape should be (2,)r�r%�k should be 1 <= k <= 5rnrb�s should be s >= 0.0)r�r�r�str�value�r/�infor�r��w_valuesr�s      r3�(test_invalid_input_for_univariate_splinez=TestUnivariateSpline.test_invalid_input_for_univariate_splines��
�:�
&�
&�	1�$�(�(�(�H�+�+�+�H��X�x�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�3�c�$�*�o�o�E�E�E�E�
�:�
&�
&�	=�$�(�(�(�H�0�0�0�H�,�,�,�H��X�x�8�<�<�<�<�		=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�
7�#�d�j�/�/�I�I�I�I�
�:�
&�
&�	<�$��D��X�x�d�;�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�+�c�$�*�o�o�=�=�=�=�
�:�
&�
&�	6�$��X�x�1�5�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�(�C��
�O�O�;�;�;�;�
�:�
&�
&�	9�$��X�x�4�8�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�%��T�Z���8�8�8�8�8�8sU�:�>�>�1B�B �#B �C4�4C8�;C8�+E
�
E�E�F � F$�'F$c���tt��5}gd�}gd�}t||��ddd��n#1swxYwYdt|j��vsJ�tt��5}gd�}gd�}gd�}t|||���ddd��n#1swxYwYdt|j��vsJ�tt��5}d}t|||�	��ddd��n#1swxYwYd
t|j��vsJ�tt��5}t||d���ddd��n#1swxYwYd
t|j��vsJ�dS)Nr�r�r�r�r�r�r�r�r�r�r�r%r�)r�r�rr�r�r�s      r3�5test_invalid_input_for_interpolated_univariate_splinezJTestUnivariateSpline.test_invalid_input_for_interpolated_univariate_splines���
�:�
&�
&�	=�$�(�(�(�H�+�+�+�H�(��8�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�3�c�$�*�o�o�E�E�E�E�
�:�
&�
&�	I�$�(�(�(�H�0�0�0�H�,�,�,�H�(��8�x�H�H�H�H�		I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�
7�#�d�j�/�/�I�I�I�I�
�:�
&�
&�	H�$��D�(��8�$�G�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�+�c�$�*�o�o�=�=�=�=�
�:�
&�
&�	B�$�(��8�q�A�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�(�C��
�O�O�;�;�;�;�;�;sC�:�>�>�1B�B �#B �C4�4C8�;C8�+E
�
E�Ec��gd�}gd�}t||d���}|���dd�}tt��5}gd�}gd�}t	|||��ddd��n#1swxYwYdt|j��vsJ�tt��5}gd�}gd�}gd	�}t	||||�
��ddd��n#1swxYwYdt|j��vsJ�tt��5}d}t	||||�
��ddd��n#1swxYwYdt|j��vsJ�tt��5}d}t	||||�
��ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d���ddd��n#1swxYwYdt|j��vsJ�dS)Nr�r�Tr�r$r9r�r�)rorororor�r�)r����r�z;Interior knots t must satisfy Schoenberg-Whitney conditionsr�r�r�r%r�)rr+r�r�rr�r�)r/r�r�rV�t_valuesr�r�r�s        r3�,test_invalid_input_for_lsq_univariate_splinezATestUnivariateSpline.test_invalid_input_for_lsq_univariate_spline4s���$�$�$��,�,�,���x���E�E�E���=�=�?�?�1�Q�3�'��
�:�
&�
&�	>�$�(�(�(�H�+�+�+�H���(�H�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�3�c�$�*�o�o�E�E�E�E�
�:�
&�
&�	J�$�(�(�(�H�0�0�0�H�+�+�+�H���(�H��I�I�I�I�		J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�
7�#�d�j�/�/�I�I�I�I�
�:�
&�
&�	I�$��D���(�H�4�H�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�M�PS�TX�T^�P_�P_�_�_�_�_�
�:�
&�
&�	I�$��D���(�H�4�H�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�+�c�$�*�o�o�=�=�=�=�
�:�
&�
&�	C�$���(�H��B�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�(�C��
�O�O�;�;�;�;�;�;sZ�A1�1A5�8A5�( C�C�C�D-�-D1�4D1�$F�F
�
F
�=G�G!�$G!c���tjgd���}tjgd���}tjgd���}tjddg��}t||||���}t|���|���|���|������}t	|gd���|gd�����dS)Nr�r�)rororororor�r�)r0r1r{r�r|)rhr
r�tolistr)r/r�r�r�r��spl1r�s       r3�test_array_like_inputz*TestUnivariateSpline.test_array_like_inputVs���8�-�-�-�.�.���8�5�5�5�6�6���8�5�5�5�6�6���x��s��$�$���(�h�(�%)�+�+�+�� �(�/�/�"3�"3�x���7H�7H�"*�/�/�"3�"3�$�+�+�-�-�I�I�I��	���2�2�2�3�3���2�2�2�3�3�	5�	5�	5�	5�	5r6c��td��}gd�}t��5}|�td��}t	||d���tt
|��d��ddd��dS#1swxYwYdS)N�m)mr'r'r'r'r'�������%@r'�&@r'r'r'r�r'r'r'r'r'r'r�r'r'r'r�r'r'r'r�r'r'r'�%@r'r'r'�ffffff%@r'r'r'r�r'r'r'r'r'r'r�r'r'r�r'r'r'�333333%@r'r'r'r�r'r'r�r'r'r�r'r'g'@r'r'r'r�r'r'r�r'r'r�r'r'皙����%@r'r'r'r�r'r'r�r'r'r'�������$@r'r'r�r'r'r�r'r'r'r�r'r'r'r�r'r'r'r�r'a#
The maximal number of iterations maxit \(set to 20 by the program\)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs\(fp-s\)/s < tol.r"r%)r�r�record�UserWarningrr�len)r/r0r1�sup�rs     r3�test_fpknot_oob_crashz*TestUnivariateSpline.test_fpknot_oob_crashes����#�J�J��
;�
;�
;���
 �
 �
	$�C��
�
��L�M�M�A�
�Q��Q�'�'�'�'���Q����#�#�#�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$����
	$�
	$�
	$�
	$�
	$�
	$s�AA:�:A>�A>N)rErFrGr4r=r?rMrWrZr^rlr�r�r�r�r�r�r�r�r�r�r�r�r�r�rHr6r3rrsl������:�:�:�	8�	8�	8�:�:�:�5�5�5�/�/�/�?�?�?�H�H�H�$�$�$� H�H�H� '/�'/�'/�R!�!�!�0�0�0�:�:�:�A�A�A�C�C�C�45�5�5�*?�?�?�$9�9�9�8<�<�<�0 <� <� <�D
5�
5�
5�$�$�$�$�$r6rc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestLSQBivariateSplinec
�f�gd�}gd�}gd�}d}d|zd|z
g}d|zd|z
g}t��5}|�td��}t|||||dd���}	t	t|��d��ddd��n#1swxYwYt
|	d	d	��d
��dS)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#�@)rr�r�rrr�r�
r/r0r1r�rc�tx�tyr�r�r2s
          r3r4z+TestLSQBivariateSpline.test_linear_constant�s������������������c�!�A�#�Y����c�!�A�#�Y��
�
 �
 �	$�C��
�
�;�(J�K�K�A�$�Q�q��2�b�A��;�;�;�C���Q����#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
	�C�C��!�H�H�b�)�)�)�)�)��AB�B�Bc
���gd�}gd�}gd�}d}d|zd|z
g}d|zd|z
g}t��5}|�td��t|||||dd���}ddd��n#1swxYwY|���\}}t|dd	�|dd���D]�\}	}
t|dd	�|dd���D]�\}}d
D]�}
dD]�}|	d|
z
z|
|
zz}|d|z
z||zz}||	|��
d|
z
zd|z
z||
|��|
zd|z
zz||	|��d|
z
z|zz||
|��|
z|zz}t
|||��|����������dS)Nr�r��	rrPr`r$r9rPr"r$r9r}r"r$rrr�)r}r~r)r�皙�����?gffffff�?)r�filterr�rr+�zipr)r/r0r1r�rcrrr�r2�xa�xb�ya�ybr�r��yp�zps                 r3�test_bilinearityz'TestLSQBivariateSpline.test_bilinearity�sD������������������c�!�A�#�Y����c�!�A�#�Y��
�
 �
 �	<�C��J�J�{�$F�G�G�G�$�Q�q��2�b�A��;�;�;�C�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�
�������B��"�S�b�S�'�2�a�b�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�C��2�J�J��;�;�;�;�<�<�	
<�
	<�
	<s�2A/�/A3�6A3c
��gd�}gd�}tgd���}d}d|zd|z
g}d|zd|z
g}t��5}|�td��}t	|||||dd���}	tt
|��d��ddd��n#1swxYwY|	���\}}|	||��}
d	t|��dd�dft|��ddd�fz|
dd
�dd
�f|
dd�dd
�fz|
dd
�dd�fz|
dd�dd�fzz�	��z}t|	�|d|d
|d|d
��|��dS)N)	r"r"r"r#r#r#r`r`r`r�rr}r"r$rr��?r�r)r
rr�r�rrr�r+r�sumrr�)r/r0r1r�rcrrr�r�r2�tz�trpzs            r3�
test_integralz$TestLSQBivariateSpline.test_integral�s������������%�%�%�&�&������c�!�A�#�Y����c�!�A�#�Y��
�
 �
 �	$�C��
�
�;�(J�K�K�A�$�Q��1�b�"��q�A�A�A�C���Q����#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��������B�
�S��R�[�[���D��H�H�Q�Q�Q�t�V�$�T�"�X�X�d�1�1�1�f�%5�5��#�2�#�c�r�c�'�{�2�a�b�b��"��f�:�-�b��"��Q�R�R��j�8��A�B�B�q�r�r�E��B�D�EH�S�U�U�K��	�C�L�L��A���2���1��r�"�v�F�F� �	"�	"�	"�	"�	"s�AB�B� Bc
���gd�}gd�}gd�}d}d|zd|z
g}d|zd|z
g}t��5}|�td��}t|||||dd���}	t	t|��d��ddd��n#1swxYwYt
|	gg��tjd	����t
|	ggd
���tjd����dS)
Nr�r�rr}r"r$rrr�F��grid�r)	rr�r�rrr�rrhr�rs
          r3rWz'TestLSQBivariateSpline.test_empty_input�sA������������������c�!�A�#�Y����c�!�A�#�Y��
�
 �
 �	$�C��
�
�;�(J�K�K�A�$�Q��1�b�"��q�A�A�A�C���Q����#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
	�3�3�r�2�;�;������8�8�8��3�3�r�2�E�2�2�2�B�H�T�N�N�C�C�C�C�Cr	c
�j�d}d|zd|z
g}d|zd|z
g}tt��5}tjdd��}tjdd��}tjddd���}t	|||||��ddd��n#1swxYwYdt|j��vsJ�tt��5}tjdd��}tjdd��}tjdd��}tjddd	���}t	||||||�
��ddd��n#1swxYwYdt|j��vsJ�tt��5}tjdd��}t	||||||�
��ddd��n#1swxYwYd
t|j��vsJ�tt��5}d}	t	||||||	���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||||dd���ddd��n#1swxYwYdt|j��vsJ�tt��5}
t	|||||d���ddd��n#1swxYwYdt|
j��vsJ�tt��5}
t	|||||d���ddd��n#1swxYwYdt|
j��vsJ�dS)Nr}r"r$ro�$@r���num�%x, y, and z should have a same length�r��(x, y, z, and w should have a same lengthrn�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)r'��eps�eps should be between (0, 1))r�r�rhrrr�r�)r/rcrrr�r0r1r�r{r��exc_infos           r3�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�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
7�#�d�j�/�/�I�I�I�I�
�:�
&�
&�	5�$���C��&�&�A���C��&�&�A���C��&�&�A���C��2�.�.�.�A��q�!�Q��B�!�4�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�:�S���_�_�L�L�L�L�
�:�
&�
&�	5�$���D�$�'�'�A��q�!�Q��B�!�4�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�&��T�Z���8�8�8�8�
�:�
&�
&�	;�$�$�D��q�!�Q��B�T�:�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�+�c�$�*�o�o�=�=�=�=�
�:�
&�
&�	>�$��q�!�Q��B�2�"�=�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�L��4�:��������:�
&�
&�	9�(��q�!�Q��B�C�8�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�-��X�^�1D�1D�D�D�D�D�
�:�
&�
&�	9�(��q�!�Q��B�C�8�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�-��X�^�1D�1D�D�D�D�D�D�Ds�AB�B�B�A,D;�;D?�D?�2+F)�)F-�0F-� H�H�H�;I�I"�%I"�J7�7J;�>J;�.L�L�Lc
��d}tjd|zd|z
g��}tjd|zd|z
g��}tjdd��}tjdd��}tjdd��}tjdd��}tjgd���}t��5}	|	�t
d��}
t
|||||||���}t
|���|���|���|���|���|���|���}t|d	d	��|d	d	����tt|
��d
��ddd��dS#1swxYwYdS)Nr}r"r$ror!)ror!ror!r)r{r�rar#)rhr
rrr�r�rr�rrr�)
r/rcrrr0r1r�r{r�r�r�r�r�s
             r3r�z,TestLSQBivariateSpline.test_array_like_input�s�����
�X�q�1�u�a�!�e�n�
%�
%��
�X�q�1�u�a�!�e�n�
%�
%���K��T�"�"���K��T�"�"���K��T�"�"���K��T�"�"���x�.�.�.�/�/��
�
 �
 �		$�C��
�
�;�(J�K�K�A�%�a��A�r�2���F�F�F�D�%�a�h�h�j�j�!�(�(�*�*�a�h�h�j�j�&(�i�i�k�k�2�9�9�;�;�!�(�(�*�*�+/�1�1�1�D�
�D�D��c�N�N�D�D��c�N�N�;�;�;���Q����#�#�#�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$����		$�		$�		$�		$�		$�		$s�3C5F5�5F9�<F9c�,�tjdd�dd�f\}}|���}|���}dtj|��z}tjddd��}tjddd��}t��5}|�td��}t|||||��}tt|��d	��d
d
d
��n#1swxYwYt|||d���|��d
S)
zkTest for the case when the input knot-location arrays in x and y are
        of different lengths.
        rr�rr}g�X@��!rr"NFr)rh�mgrid�ravelr�rrr�r�rrr�r)	r/r0r1r�rrr�r�r2s	         r3�test_unequal_length_of_knotsz3TestLSQBivariateSpline.test_unequal_length_of_knotss8���x��#��q��u��%���1�
�G�G�I�I��
�G�G�I�I���"�,�q�/�/�!��
�[��d�B�
'�
'��
�[��d�B�
'�
'��
�
 �
 �	$�C��
�
�;�(J�K�K�A�$�Q�q��2�b�1�1�C���Q����#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
	�C�C��1�5�1�1�1�1�5�5�5�5�5s�AC-�-C1�4C1N)
rErFrGr4rrrWr/r�r6rHr6r3r�r��s�������*�*�*�<�<�<�2"�"�"�(D�D�D� )E�)E�)E�V$�$�$�*6�6�6�6�6r6r�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestSmoothBivariateSplinec�p�gd�}gd�}gd�}t|||dd���}t|���gd�gd�f��t|���gd���t	|���d��t|gd	�dd
g��ddgddgddgg��dS)Nr�r�rr"r�r"r"r$r$)r$r$r$r$r'r(r)r$�rrr+r,rr-�r/r0r1r�r2s     r3r4z.TestSmoothBivariateSpline.test_linear_constant!����������������#�A�a��Q�!�4�4�4��!�#�-�-�/�/�9�9�9�Y�Y�Y�2G�H�H�H�!�#�.�.�"2�"2�9�9�9�=�=�=��C�,�,�.�.�s�3�3�3�!�#�#�i�i�i��3��"8�"8�1�Q�%��1��q��e�9L�M�M�M�M�Mr6c�p�gd�}gd�}gd�}t|||dd���}t|���gd�gd�f��t|���gd���t	|���d��t|gd	�dd
g��ddgddgddgg��dS)
Nr�r�)	rrrr#r#r#r9r9r9r"rr:)rrr9r9r'r(r)rr#r;r<s     r3r?z(TestSmoothBivariateSpline.test_linear_1d+r=r6c	��gd�}gd�}tgd���}t��5}|�td��t	|||ddd���}ddd��n#1swxYwYgd�}gd	�}|||��}d
t|��dd�dft|��ddd�fz|dd�dd�f|dd�dd�fz|dd�dd�fz|dd�dd�fzz���z}	t|�|d|d|d|d��|	��t	|||ddd���}
t|
�|d|d|d|d��|	d�
��||dd�|dd���}d
t|dd���dd�dft|dd���ddd�fz|dd�dd�f|dd�dd�fz|dd�dd�fz|dd�dd�fzz���z}	t|�|d|d|d|d��|	��dS)N)	r"r"r"r#r#r#r9r9r9r�rz
The required storage spacer"r)rrrc)r"r#r9r!rr�r#)�decimalr�)	r
rr
r�rrrrr�)r/r0r1r�r�r2rrrr�lut2s           r3rz'TestSmoothBivariateSpline.test_integral5s�����������%�%�%�&�&��
�
 �
 �	B�C��J�J�{�$B�C�C�C�'��1�a�A�!�q�A�A�A�C�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�
�W�W��
�W�W��
�S��R�[�[���D��H�H�Q�Q�Q�t�V�$�T�"�X�X�d�1�1�1�f�%5�5��#�2�#�c�r�c�'�{�2�a�b�b��"��f�:�-�b��"��Q�R�R��j�8��A�B�B�q�r�r�E��B�D�EH�S�U�U�K���C�L�L��A���2���1��r�"�v�F�F��M�M�M�$�Q��1��q�A�>�>�>���D�M�M�"�Q�%��B���A���2��G�G��$%�	'�	'�	'�	'��S��C�R�C��"�S�b�S�'�
"�
"���D��C�R�C��M�M�!�!�!�D�&�)�$�r�#�2�#�w�-�-��Q�Q�Q��*?�?��#�2�#�c�r�c�'�{�2�a�b�b��"��f�:�-�b��"��Q�R�R��j�8��A�B�B�q�r�r�E��B�D�EH�S�U�U�K���C�L�L��A���2���1��r�"�v�F�F��M�M�M�M�Ms�1A%�%A)�,A)c�^�tjddd��}tjddd��}||z}tjddd��}tjddd��}t|||��}t|||��}t	|||��}|||��}	t||	��dS)Nr�r#�Pr�r"r�)rhrrrrr)
r/r0r1r��xi�yirj�res1�interp_�res2s
          r3�test_rerun_lwrk2_too_smallz4TestSmoothBivariateSpline.test_rerun_lwrk2_too_smallPs���
�K��A�r�"�"���K��A�r�"�"��
��E��
�[��Q��
$�
$��
�[��Q��
$�
$���q�!�Q�����r�2�s�#�#��'��1�a�0�0���w�r�2�����D�$�'�'�'�'�'r6c���tt��5}tjdd��}tjdd��}tjddd���}t	|||��ddd��n#1swxYwYdt|j��vsJ�tt��5}tjdd��}tjdd��}tjdd��}tjddd���}t	||||���ddd��n#1swxYwYdt|j��vsJ�tt��5}tjd	d��}t	||||���ddd��n#1swxYwYd
t|j��vsJ�tt��5}d}t	||||���ddd��n#1swxYwYd
t|j��vsJ�tt��5}t	|||dd���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d	���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d���ddd��n#1swxYwYdt|j��vsJ�dS)Nror!r�r"r$r%r�r&rnr'r(r�r)rr*rbr�r'r+r-)r�r�rhrrr�r�)r/r�r0r1r�r{r�r.s        r3r/z,TestSmoothBivariateSpline.test_invalid_input_s3��
�:�
&�
&�	+�$���C��&�&�A���C��&�&�A���C��2�.�.�.�A�!�!�Q��*�*�*�		+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
7�#�d�j�/�/�I�I�I�I�
�:�
&�
&�	0�$���C��&�&�A���C��&�&�A���C��&�&�A���C��2�.�.�.�A�!�!�Q��Q�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�:�S���_�_�L�L�L�L�
�:�
&�
&�	0�$���D�$�'�'�A�!�!�Q��Q�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�&��T�Z���8�8�8�8�
�:�
&�
&�	6�$�$�D�!�!�Q���5�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�+�c�$�*�o�o�=�=�=�=�
�:�
&�
&�	9�$�!�!�Q��b�R�8�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�L��4�:��������:�
&�
&�	3�$�!�!�Q��T�2�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�%��T�Z���8�8�8�8�
�:�
&�
&�	4�(�!�!�Q��s�3�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�-��X�^�1D�1D�D�D�D�D�
�:�
&�
&�	4�(�!�!�Q��s�3�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�-��X�^�1D�1D�D�D�D�D�D�Ds��AA4�4A8�;A8�+A*D!�!D%�(D%�)F
�
F�F�G&�&G*�-G*�H>�>I�I�5J�J�J�K,�,K0�3K0�#M�M�
Mc	�6�tjgd���}tjgd���}tjgd���}tjgd���}tjgd���}t|||||dd���}t|���|���|���|���|���dd���}t	|d	d
��|d	d
����dS)Nr�r�r)	r"r"r"r"r"r"r"r"r")rorrorr")r{r�rr)r�r{rrr}r~)rhr
rr�r)r/r0r1r�r{r�r�r�s        r3r�z/TestSmoothBivariateSpline.test_array_like_input�s���H�0�0�0�1�1���H�0�0�0�1�1���H�0�0�0�1�1���H�0�0�0�1�1���x�,�,�,�-�-��$�Q��1����q�I�I�I��$�Q�X�X�Z�Z������Q�X�X�Z�Z�*.�+�+�-�-�1�8�8�:�:�()�a�1�1�1��	���S�#�����S�#���7�7�7�7�7r6N)	rErFrGr4r?rrIr/r�rHr6r3r8r8 s{������N�N�N�N�N�N�N�N�N�6
(�
(�
(�*E�*E�*E�X8�8�8�8�8r6r8c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestLSQSphereBivariateSplinec�L�d\}}td|dz
zdd|dz
zz
|��tz}td|dz
zdd|dz
zz
|��dztz}t|jd|jdf��}|ddd�}|ddd�}|ddd�ddd�f}t	||��\}	}
t|	���|
���|j���||��}||_||_	||c|_
|_dS)N�r��Zr~r"rarrK)rrrrr
rr5�T�lut_lsq�data�new_lons�new_lats)r/�ntheta�nphi�theta�phirS�knotst�knotsp�knotdata�lats�lonsrRs            r3�setup_methodz)TestLSQSphereBivariateSpline.setup_method�s(��������f�q�j�)�1�s�F�Q�J�/?�+?��H�H�2�M���s�D�1�H�~�q�3��q��>�'9�4�@�@�2�E��J���U�[��^�S�Y�q�\�2�3�3���s�s��s����S�S�q�S������!��S�S�q�S��>���e�S�)�)�
��d�*�4�:�:�<�<������+/�6�<�<�>�>�6�6�K�K�������	�'-�v�$��
�t�}�}�}r6c��t|j���d��t|�|j|j��|j��dS)Nr')rrRr-rrUrTrS�r/s r3r4z1TestLSQSphereBivariateSpline.test_linear_constant�sU���D�L�5�5�7�7��=�=�=�!�$�,�,�t�}�d�m�"L�"L�"&�)�	-�	-�	-�	-�	-r6c���t|�gg��tjd����t|�ggd���tjd����dS�Nr�Frr)rrRrhr�ras r3rWz-TestLSQSphereBivariateSpline.test_empty_input�sX��!�$�,�,�r�2�"6�"6������H�H�H�!�$�,�,�r�2�E�,�"B�"B�B�H�T�N�N�S�S�S�S�Sr6c	�f�d\}}td|dz
zdd|dz
zz
|��tz}td|dz
zdd|dz
zz
|��dztz}t|jd|jdf��}|ddd�}|ddd�}t	t
��5}tdd|�	��tz}	t
|	|��\}
}t|
���|���|j	���||��ddd��n#1swxYwYd
t|j��vsJ�t	t
��5}tdd|�	��tz}	t
|	|��\}
}t|
���|���|j	���||��ddd��n#1swxYwYd
t|j��vsJ�t	t
��5}tdd|�	��dztz}t
||��\}
}t|
���|���|j	���||��ddd��n#1swxYwYd
t|j��vsJ�t	t
��5}tdd|�	��dztz}t
||��\}
}t|
���|���|j	���||��ddd��n#1swxYwYd
t|j��vsJ�t
||��\}
}t	t
��5}tj
|��}d|d<t|
���|���|j	���||��ddd��n#1swxYwYdt|j��vsJ�t	t
��5}tj
|��}t|d<t|
���|���|j	���||��ddd��n#1swxYwYdt|j��vsJ�t	t
��5}tj
|��}d|d<t|
���|���|j	���||��ddd��n#1swxYwYdt|j��vsJ�t	t
��5}tj
|��}dtz|d<t|
���|���|j	���||��ddd��n#1swxYwYdt|j��vsJ�t	t
��5}tgd���}t|
���|���|j	���|||���ddd��n#1swxYwYdt|j��vsJ�t	t
��5}t|
���|���|j	���||d���ddd��n#1swxYwYdt|j��vsJ�t	t
��5}t|
���|���|j	���||d���ddd��n#1swxYwYdt|j��vsJ�dS)NrOr~r"rarrK皙������ror"�theta should be between [0, pi]r}皙�����?�phi should be between [0, 2pi]r'ztt should be between (0, pi)ztp should be between (0, 2pi)r#�	rnror)r~ror)r~roror�r'r+r-)rrrrr�r�r
rr5rQr�r�rhr�r
)r/rVrWrXrYrSrZr[r.�
invalid_theta�invalid_latsr^�invalid_phir]�invalid_lons�invalid_knotst�invalid_knotsp�	invalid_ws                  r3r/z/TestLSQSphereBivariateSpline.test_invalid_input�s�
����������
�+�Q����
�1C�-C��!�!�#%�&���s�d�Q�h�'��S�D�1�H�-=�)=�t�D�D�r�I�B�N���U�[��^�S�Y�q�\�2�3�3���s�s��s����S�S�q�S���
�:�
&�
&�	E�(�$�T�3�F�;�;�;�b�@�M�!)�-��!=�!=��L�$�$�\�%7�%7�%9�%9�4�:�:�<�<�%)�V�\�\�^�^�V�V�
E�
E�
E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�
1�C���4G�4G�G�G�G�G�
�:�
&�
&�	E�(�$�S�#�6�:�:�:�R�?�M�!)�-��!=�!=��L�$�$�\�%7�%7�%9�%9�4�:�:�<�<�%)�V�\�\�^�^�V�V�
E�
E�
E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�
1�C���4G�4G�G�G�G�G�
�:�
&�
&�	E�(�"�4��&�9�9�9�C�?�"�D�K�!)�%��!=�!=��D�,�$�T�Z�Z�\�\�<�3E�3E�3G�3G�%)�V�\�\�^�^�V�V�
E�
E�
E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�
0�3�x�~�3F�3F�F�F�F�F�
�:�
&�
&�	E�(�"�3���8�8�8�3�>��C�K�!)�%��!=�!=��D�,�$�T�Z�Z�\�\�<�3E�3E�3G�3G�%)�V�\�\�^�^�V�V�
E�
E�
E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�
0�3�x�~�3F�3F�F�F�F�F��e�S�)�)�
��d�
�:�
&�
&�	M�(��W�V�_�_�N� $�N�1��$�T�Z�Z�\�\�4�:�:�<�<�%)�V�\�\�^�^�^�V�
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�
.��X�^�1D�1D�D�D�D�D�
�:�
&�
&�	M�(��W�V�_�_�N� "�N�1��$�T�Z�Z�\�\�4�:�:�<�<�%)�V�\�\�^�^�^�V�
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�
.��X�^�1D�1D�D�D�D�D�
�:�
&�
&�	M�(��W�V�_�_�N� $�N�1��$�T�Z�Z�\�\�4�:�:�<�<�%)�V�\�\�^�^�V�^�
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�
/�#�h�n�2E�2E�E�E�E�E�
�:�
&�
&�	M�(��W�V�_�_�N� !�B��N�1��$�T�Z�Z�\�\�4�:�:�<�<�%)�V�\�\�^�^�V�^�
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�
/�#�h�n�2E�2E�E�E�E�E�
�:�
&�
&�	B�(��L�L�L�M�M�I�$�T�Z�Z�\�\�4�:�:�<�<�������%+�V�y�
B�
B�
B�
B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�&��X�^�)<�)<�<�<�<�<�
�:�
&�
&�	>�(�$�T�Z�Z�\�\�4�:�:�<�<�������%+�V��
>�
>�
>�
>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�.��X�^�1D�1D�D�D�D�D�
�:�
&�
&�	>�(�$�T�Z�Z�\�\�4�:�:�<�<�������%+�V��
>�
>�
>�
>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�.��X�^�1D�1D�D�D�D�D�D�Ds��*A<D2�2D6�9D6�)A<G1�1G5�8G5�(A?J3�3J7�:J7�*A?M5�5M9�<M9�?A(P3�3P7�:P7�*A-S#�#S'�*S'�A(V�V�V�A0Y�Y�Y�8A"[&�&[*�-[*�A]:�:]>�]>�1A`�`�`c	��d\}}td|dz
zdd|dz
zz
|��tz}td|dz
zdd|dz
zz
|��dztz}t||��\}}t|jd|jdf��}|ddd�}|ddd�}	t|���jd��}
t
|���|���|j���||	|
���}t
|������|������|j������|���|	���|
������}t|dd��|dd����dS)	NrOr~r"rarrKr�ro)
rrr
rrr5rrQr�r)
r/rVrWrXrYr]r^rSrZr[r{r�r�s
             r3r�z2TestLSQSphereBivariateSpline.test_array_like_input
s�����������
�+�Q����
�1C�-C��!�!�#%�&���s�d�Q�h�'��S�D�1�H�-=�)=����!�"�$&�'���e�S�)�)�
��d��U�[��^�S�Y�q�\�2�3�3���s�s��s����S�S�q�S����$�*�*�,�,�$�Q�'�)�)��(��
�
���d�j�j�l�l�(,��������!�M�M�M��(��
�
���(;�(;�(=�(=�(,�
�
���(;�(;�(=�(=�(,������(=�(=�(?�(?�(.�
�
���(.�
�
���1�8�8�:�:�	G�G�G��
	"�$�$�s�C�.�.�$�$�s�C�.�.�A�A�A�A�Ar6N�rErFrGr_r4rWr/r�rHr6r3rMrM�sn������6�6�6�$-�-�-�
T�T�T�RE�RE�RE�hB�B�B�B�Br6rMc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestSmoothSphereBivariateSplinec���tdtzdtzdtzdtzdtzdtzdtzdtzdtzg	��}tdtztdtzdtztdtzdtztdtzg	��}tgd���}t|||d���|_dS)Nrr~��?r)r� _�Brb)r
rrr2)r/rXrYr�s    r3r_z,TestSmoothSphereBivariateSpline.setup_method$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�E�E����r6c��t|j���d��t|�gd�ddg��ddgddgddgg��dS)Nr'r(r"r)r$)rr2r-rras r3r4z4TestSmoothSphereBivariateSpline.test_linear_constant,sj���D�H�1�1�3�3�R�8�8�8�!�$�(�(�;�;�;��3�x�"@�"@�$%�q�6�A�q�6�A�q�6�":�	<�	<�	<�	<�	<r6c���t|�gg��tjd����t|�ggd���tjd����dSrc)rr2rhr�ras r3rWz0TestSmoothSphereBivariateSpline.test_empty_input1sX��!�$�(�(�2�r�"2�"2�B�H�U�O�O�D�D�D�!�$�(�(�2�r��(�">�">������O�O�O�O�Or6c
�
�tdtzdtzdtzdtzdtzdtzdtzdtzdtzg	��}tdtztdtzdtztdtzdtztdtzg	��}tgd���}tt��5}tdtzdtzdtzdtzdtzdtzdtzdtzdtzg	��}t	|||d���ddd��n#1swxYwYd	t|j��vsJ�tt��5}tdtzdtzdtzdtzdtzdtzdtzdtzd
tzg	��}t	|||d���ddd��n#1swxYwYd	t|j��vsJ�tt��5}tdtztdtzdtztdtzdtztdtzg	��}t	|||d���ddd��n#1swxYwYdt|j��vsJ�tt��5}tdtztdtzdtztdtzdtztd
tzg	��}t	|||d���ddd��n#1swxYwYdt|j��vsJ�tt��5}tgd���}t	||||d���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d���ddd��n#1swxYwYdt|j��vsJ�tt��5}t	|||d���ddd��n#1swxYwYdt|j��vsJ�dS)Nrr~rvr)rrerwrbrfrgrhrog������@ri�r{rcr'rn�s should be positiver+r-)r
rr�r�rr�r�)r/rXrYr�r.rjrlrps        r3r/z2TestSmoothSphereBivariateSpline.test_invalid_input5s����s�R�x��r��3��8�R�"�W�b�2�g�r�B�w��R�x��r��3��8�5�6�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�F�F�F�		G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�
1�C���4G�4G�G�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�F�F�F�		G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�
1�C���4G�4G�G�G�G�G�
�:�
&�
&�	G�(���r��2�s�R�x��b��"�c�B�h�!#�b��"�c�B�h�!8�9�9�K�'��{�A��F�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�0�3�x�~�3F�3F�F�F�F�F�
�:�
&�
&�	G�(���r��2�s�R�x��b��"�c�B�h�!#�b��"�c�B�h�!8�9�9�K�'��{�A��F�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�0�3�x�~�3F�3F�F�F�F�F�
�:�
&�
&�	L�(��L�L�L�M�M�I�'��s�A��d�K�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�&��X�^�)<�)<�<�<�<�<�
�:�
&�
&�	?�(�'��s�A��>�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�%��X�^�)<�)<�<�<�<�<�
�:�
&�
&�	A�(�'��s�A�4�@�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�-��X�^�1D�1D�D�D�D�D�
�:�
&�
&�	@�(�'��s�A�3�?�?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�-��X�^�1D�1D�D�D�D�D�D�Ds��A4E�E!�$E!�A4H�H�H�A+K�K�	K�9A+M0�0M4�7M4�'&O�O� O�P0�0P4�7P4�'R�R�R�>S�S"�%S"c��tjdtzdtzdtzdtzdtzdtzdtzdtzdtzg	��}tjdtztdtzdtztdtzdtztdtzg	��}tjgd���}tjgd���}t||||d���}t|���|���|���|���d���}t|d	d	��|d	d	����dS)
Nrr~rvr)r)	rorororororororororwr{ro)rhr
rrr�r)r/rXrYr�r{r�r�s       r3r�z5TestSmoothSphereBivariateSpline.test_array_like_inputgsG����#��(�C�"�H�c�B�h��R���b���r�'�3��8�S�2�X�s�R�x�A�B�B���h��R���S�2�X�r�B�w��C�"�H�b�2�g��C�"�H�&�'�'���H�0�0�0�1�1���H�B�B�B�C�C��+�5�#�q�A��F�F�F��+�5�<�<�>�>�3�:�:�<�<�+,�8�8�:�:������t�M�M�M��!�$�$�s�C�.�.�$�$�s�C�.�.�A�A�A�A�Ar6NrrrHr6r3rtrt#sn������F�F�F�<�<�<�
P�P�P�0E�0E�0E�dB�B�B�B�Br6rtc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestRectBivariateSplinec���tgd���}tgd���}tgd�gd�gd�gd�gd�g��}t|||��}t|||��|��dS)NrJ�r"r#r"r#r"�r"r#r$r#r"�r"r#r#r#r"�r
rrr<s     r3�
test_defaultsz%TestRectBivariateSpline.test_defaultsys����+�+�+�����+�+�+�����;�;�;�{�{�{�;�;�;�{�{�{�;�;�;�O�P�P��!�!�A�a�(�(��!�#�#�a��(�(�1�-�-�-�-�-r6c�X��tgd���}tgd���}tgd�gd�gd�gd�gd�g��}t|||���gd�}gd�}��||��}t�fd�t||��D����}t	||��dS)NrJr�r�r�)r"�ffffff@g333333@r~�ffffff
@�333333�?r$)r"r�r�r�g@ror$c�:��g|]\}}�||��d��S�r�rH��.0r�rr2s   �r3�
<listcomp>z9TestRectBivariateSpline.test_evaluate.<locals>.<listcomp>��,���@�@�@�&�"�b�S�S��R�[�[��%�@�@�@r6)r
r�evrr)	r/r0r1r�rDrE�zi�zi2r2s	        @r3�
test_evaluatez%TestRectBivariateSpline.test_evaluate�s�����+�+�+�����+�+�+�����;�;�;�{�{�{�;�;�;�{�{�{�;�;�;�O�P�P��!�!�A�a�(�(��
,�
,�
,��
,�
,�
,��
�V�V�B��^�^���@�@�@�@�C��B�K�K�@�@�@�A�A���B��$�$�$�$�$r6c��tgd���}tgd���}tgd�gd�gd�gd�gd�g��}tgd�gd�gd�gd�gd�g��d	z}tgd
�gd
�gd�gd�gd
�g��}tgd
�gd�gd�gd�gd�g��d	z}t|||��}t|||d���|��t|||d���|��t|||dd���|��dS)NrJr�r�r��rri��rr�rrr�rr�rrr9rr�rri����rrrd�r9r�rr"����rr)rg��r�r#rr�пr���(i��r�i����i��g@0@rg@0���r�rKr���r`��g�+�rg�+@i��r"��dx��dy)r�r�r��r/r0r1r�r�r��dxdyr2s        r3�test_derivatives_gridz-TestRectBivariateSpline.test_derivatives_grid�s����+�+�+�����+�+�+�����;�;�;�{�{�{�;�;�;�{�{�{�;�;�;�O�P�P��
�M�M�M�,�,�,�{�{�{��M�M�+�+�+�'�(�(�(*�+��
�M�M�M�-�-�-�0@�0@�0@����m�m�m�-�.�.���'�'�'�(?�(?�(?��M�M�1�1�1�-�-�-�A�B�B�BD�E��!�!�A�a�(�(��!�#�#�a��Q�-�-�-��3�3�3�!�#�#�a��Q�-�-�-��3�3�3�!�#�#�a��Q�!�"4�"4�"4�T�:�:�:�:�:r6c	���tgd���}tgd���}tgd�gd�gd�gd�gd�g��}tgd���}tgd���}tgd���dz}t|||��}t|||d	d
���|��t|||d	d
���|��t|||d	d	d
�
��|��dS)NrJr�r�r��rrgUUUUUU�?rr�r9r�rr�r����Ar�7� �8@r"F)r�r)r�r�r�r�rr�r�s        r3r^z(TestRectBivariateSpline.test_derivatives�s���+�+�+�����+�+�+�����;�;�;�{�{�{�;�;�;�{�{�{�;�;�;�O�P�P��
�>�>�>�
"�
"��
�#�#�#�
$�
$���%�%�%�&�&�s�*��!�!�A�a�(�(��!�#�#�a��Q�E�":�":�":�2�>�>�>�!�#�#�a��Q�E�":�":�":�2�>�>�>�!�#�#�a��Q�!��"?�"?�"?��E�E�E�E�Er6c�|�tgd���}tgd���}tgd�gd�gd�gd�gd�g��}tgd�gd�gd�gd�gd�g��d	z}tgd
�gd
�gd�gd�gd
�g��}tgd
�gd�gd�gd�gd�g��d	z}t|||��}t|�dd��||��|��t|�dd��||��|��t|�dd��||��|��dS)NrJr�r�r�r�r�r�r�rdr�r�r�r�r�r�r�r"r�r
rr�partial_derivativer�s        r3�#test_partial_derivative_method_gridz;TestRectBivariateSpline.test_partial_derivative_method_grid�s����/�/�/�"�"���/�/�/�"�"���?�?�?�"�?�?�"�?�?�"�?�?�"�?�?�	$�
%�
%��
�%�%�%�$�$�$�#�O�O�%�%�%�#�O�O�	%�&�&�)+�	+��
�%�%�%�%�%�%�(�(�(�)�)�)�%�%�%�	'�(�(��
�+�+�+�1�1�1�'�'�'�1�1�1�'�'�'�	)�*�*�-/�	/��
"�!�Q��*�*��!�">�#�"8�"8��A�">�">�q�!�"D�"D�b�I�I�I�!�">�#�"8�"8��A�">�">�q�!�"D�"D�b�I�I�I�!�">�#�"8�"8��A�">�">�q�!�"D�"D�d�K�K�K�K�Kr6c�4�tgd���}tgd���}tgd�gd�gd�gd�gd�g��}tgd���}tgd���}tgd���dz}t|||��}t|�d	d
��||d���|��t|�d
d	��||d���|��t|�d	d	��||d���|��dS)
NrJr�r�r�r�r�r�r�r"rFrr�r�s        r3�test_partial_derivative_methodz6TestRectBivariateSpline.test_partial_derivative_method�s����/�/�/�"�"���/�/�/�"�"���?�?�?�"�?�?�"�?�?�"�?�?�"�?�?�	$�
%�
%��
�%�%�%�
&�
&��
�'�'�'�
(�
(���)�)�)�*�*�S�0��!�!�Q��*�*��!�">�#�"8�"8��A�">�">�q�!�DI�#K�#K�#K�"$�	&�	&�	&�	"�">�#�"8�"8��A�">�">�q�!�DI�#K�#K�#K�"$�	&�	&�	&�	"�">�#�"8�"8��A�">�">�q�!�DI�#K�#K�#K�"&�	(�	(�	(�	(�	(r6c�<�tgd�t���}|���}t|j|jf��}t|||��}t
t��5|�dd��ddd��dS#1swxYwYdS)N)rr"r#r$r9r�r9r")	r
r�r�r�sizerr�r�r�r<s     r3�'test_partial_derivative_order_too_largez?TestRectBivariateSpline.test_partial_derivative_order_too_large�s����/�/�/��/�/�/��
�F�F�H�H���!�&�!�&�!�"�"��!�!�Q��*�*��
�:�
&�
&�	)�	)��"�"�1�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�-B�B�Bc
��tgd���}tgd���}tgd�gd�gd�gd�gd�g��}t|||��}t|||��||dd�df|ddd�fd�����dS)NrJr�r�r�Fr)r
rrr<s     r3�test_broadcastz&TestRectBivariateSpline.test_broadcast�s����+�+�+�����+�+�+�����;�;�;�{�{�{�;�;�;�{�{�{�;�;�;�O�P�P��!�!�A�a�(�(�����A�q�	�	�3�3�q����4��y�!�D����F�)�%�#H�#H�#H�I�I�I�I�Ir6c	��tt��5}tgd���}tgd���}tgd�gd�gd�gd�gd�g��}t|||��ddd��n#1swxYwYdt	|j��vsJ�tt��5}tgd���}tgd���}tgd�gd�gd�gd�gd�g��}t|||��ddd��n#1swxYwYdt	|j��vsJ�tt��5}tgd���}tgd���}tgd�gd�gd�gd�g��}t|||��ddd��n#1swxYwYd	t	|j��vsJ�tt��5}tgd���}tgd���}tgd
�gd
�gd�gd�gd
�g��}t|||��ddd��n#1swxYwYd
t	|j��vsJ�tt��5}tgd���}tgd���}tgd�gd�gd�gd�gd�g��}d}t||||���ddd��n#1swxYwYdt	|j��vsJ�tt��5}t|||d���ddd��n#1swxYwYdt	|j��vsJ�dS)N)r�r#r$r9rKrJr�r�r��x must be strictly increasing)r#r#r$r9rK�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 yr(r�r)rnrbr�)r�r�r
rr�r�)r/r�r0r1r�r�s      r3r/z*TestRectBivariateSpline.test_invalid_input�s��
�:�
&�
&�	)�$��o�o�o�&�&�A��o�o�o�&�&�A�����������&������9�:�:�A���1�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�/�#�d�j�/�/�A�A�A�A�
�:�
&�
&�	)�$��o�o�o�&�&�A��o�o�o�&�&�A�����������&������9�:�:�A���1�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�/�#�d�j�/�/�A�A�A�A�
�:�
&�
&�	)�$��o�o�o�&�&�A��o�o�o�&�&�A�����������&���(�)�)�A���1�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�I��d�j�/�/�"�"�"�"��:�
&�
&�	)�$��o�o�o�&�&�A��o�o�o�&�&�A��|�|�|�\�\�\�<�<�<�#�|�|�\�\�\�3�4�4�A���1�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�I��d�j�/�/�"�"�"�"��:�
&�
&�	4�$��o�o�o�&�&�A��o�o�o�&�&�A�����������&������9�:�:�A�$�D���1�a�d�3�3�3�3�
	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�+�c�$�*�o�o�=�=�=�=�
�:�
&�
&�	1�$���1�a�4�0�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�%��T�Z���8�8�8�8�8�8sp�AA3�3A7�:A7�*AD�D�D�?AF�F�!F�AH/�/H3�6H3�&AK�K�K�?L�L#�&L#c���tgd���}tgd���}tgd�gd�gd�gd�gd�g��}tgd���}t||||���}t|���|���|���|������}t|dd��|dd����dS)NrJr�r�r�)r"rKr"rKr�ro)r
rr�r)r/r0r1r�r�r�r�s       r3r�z-TestRectBivariateSpline.test_array_like_inputs����/�/�/�"�"���/�/�/�"�"���?�?�?�O�O�O�_�_�_�"�?�?�O�O�O�5�
6�
6���\�\�\�"�"��"�1�a���6�6�6��"�1�8�8�:�:�q�x�x�z�z�1�8�8�:�:�(,���
�
�7�7�7��!�$�$�s�C�.�.�$�$�s�C�.�.�A�A�A�A�Ar6c�d�d}tj�dtj|��}tj�ddtjz|��}tj|��}t|||d���}d}d}tj|��|ztjz}tj|��|zdztjz}	|||	��|���}
d|
d<tt��5}||
|	��ddd��n#1swxYwYd	t|j��vsJ�|	���}d|d<tt��5}|||��ddd��n#1swxYwYd
t|j��vsJ�dS)Nr%rr#r\rbr�r$���MbP?r�r�)rh�random�uniformrrrrir�r�r�r�r�)
r/�NSamp�Theta�Phi�Data�Interpolator�NLon�NLat�GridPosLats�GridPosLons�nonGridPosLatsr.�nonGridPosLonss
             r3�test_not_increasing_inputz1TestRectBivariateSpline.test_not_increasing_input&s�����	�!�!�!�R�U�E�2�2���i����1�r�u�9�e�4�4���w�u�~�~��2�5�#�t�s�K�K�K�������i��o�o��,�r�u�4���i��o�o��,�q�0�2�5�8��	��[�+�.�.�.�$�)�)�+�+��!��q��
�:�
&�
&�	6�(��L���5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�.�#�h�n�2E�2E�E�E�E�E�$�)�)�+�+��!��q��
�:�
&�
&�	6�(��L��n�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�.�#�h�n�2E�2E�E�E�E�E�E�Es$�
D$�$D(�+D(�4
F
�
F�FN)rErFrGr�r�r�r^r�r�r�r�r/r�r�rHr6r3rrxs�������.�.�.�%�%�%�
;�
;�
;�
F�
F�
F�L�L�L�8(�(�(�,)�)�)�J�J�J�/9�/9�/9�b
B�
B�
B�F�F�F�F�Fr6rc�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestRectSphereBivariateSplinec
��tddtzdz
d��}tdtdz
d��}tgd�gd�gd�gd�gd�gd�gd�g��}t|||��}t	|||��|��dS�N�{�G�z�?r#rP�r"r#r"r#r"r#r"�r"r#r$r#r"r#r"�r"r#r#r#r"r#r")rrr
rr�r/r1r0r�r2s     r3r�z+TestRectSphereBivariateSpline.test_defaultsEs����T�1�R�4��9�a�(�(���T�2�d�7�A�&�&���?�?�?�?�?�?�?�?�?�"�?�?�?�?�?�?�?�?�"�?�?�$�
%�
%��(��!�A�.�.��!�#�#�a��(�(�1�-�-�-�-�-r6c
���tddtzdz
d��}tdtdz
d��}tgd�gd�gd�gd�gd�gd�gd�g��}t|||���gd�}gd�}��||��}t�fd	�t||��D����}t
||��dS)
Nr�r#rPr�r�r�)r�r"r�g������@rg�Q���@g@)r)rrgg�������?gj�t��?ro�-C��6?c�:��g|]\}}�||��d��Sr�rHr�s   �r3r�z?TestRectSphereBivariateSpline.test_evaluate.<locals>.<listcomp>Xr�r6)rrr
rr�rr)	r/r1r0r�rErDr�r�r2s	        @r3r�z+TestRectSphereBivariateSpline.test_evaluateNs�����T�1�R�4��9�a�(�(���T�2�d�7�A�&�&���?�?�?�?�?�?�?�?�?�"�?�?�?�?�?�?�?�?�"�?�?�$�
%�
%��(��!�A�.�.��
1�
1�
1��
6�
6�
6��
�V�V�B��^�^���@�@�@�@�C��B�K�K�@�@�@�A�A���B��$�$�$�$�$r6c
�Z�tjtjdtjddd��z
��jtjdtjtjddd����z
����j}t
t��5}tjd	d
d��tjzdz}tjddd��tjzdz}t|||��ddd��n#1swxYwYd
t|j��vsJ�t
t��5}tjddd��tjzdz}tjddd��tjzdz}t|||��ddd��n#1swxYwYd
t|j��vsJ�t
t��5}tjdd
d��tjzdz}tjddd��tjzdz}t|||��ddd��n#1swxYwYdt|j��vsJ�t
t��5}tjdd
d��tjzdz}tjddd��tjzdz}t|||��ddd��n#1swxYwYdt|j��vsJ�t
t��5}tjdd
d��tjzdz}tjddd��tjzdz}t|||d	���ddd��n#1swxYwYdt|j��vsJ�dS)N��V@�T��T@���f@r'��u@rQr��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 lessrbr|�rh�dot�
atleast_2drrQ�absr�r�rrr�r��r/rSr.r]r^s     r3r/z0TestRectSphereBivariateSpline.test_invalid_input[su���v�b�m�C�"�+�d�C��*D�*D�$D�E�E�G��m�D�2�6�"�+�b�$��2J�2J�+K�+K�$K�L�L�N�N�NO�	
��:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�q�#�r�*�*�R�U�2�T�9�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�-��H�N�0C�0C�C�C�C�C�
�:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�q�#�r�*�*�R�U�2�T�9�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�-��H�N�0C�0C�C�C�C�C�
�:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�t�R��,�,�r�u�4�t�;�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�2�S���5H�5H�H�H�H�H�
�:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�s�C��,�,�r�u�4�t�;�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�4�s�8�>�7J�7J�J�J�J�J�
�:�
&�
&�	>�(��;�r�3��*�*�R�U�2�T�9�D��;�r�3��+�+�b�e�3�d�:�D�%�d�D�$�"�=�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�&��X�^�)<�)<�<�<�<�<�<�<�_�AD�D�	D�9AF#�#F'�*F'�AI�I�I�;AK%�%K)�,K)�A N�N�Nc�8�tddtzdz
d��}tdtdz
d��}tgd�gd�gd�gd�gd�gd�gd�g��}t|||��}tddtzdz
d��}tdtdz
d��}t	|||d�	��t|||d�
��dd���t	|||d�
��t|||d���dd���t	|||dd���t|||ddd���dd���t
|||d�	��|�dd��||����t
|||d�
��|�dd��||����t
|||dd���|�dd��||����t
|||dd���|�dd��||d�����t
|||dd���|�dd��||d�����t
|||ddd���|�dd��||d�����dS)Nr�r#rPr�r�r��{�G�z�?r")�dthetar�r���rtolrg)�dphir�)r�r����ư>�r�r�r,r�rF�r�rr�r�r�r�r�r)rrr
rr�_numdiff_2drr�r�s     r3r�z3TestRectSphereBivariateSpline.test_derivatives_grid}sI���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�-I�-I�!��	.�	.�	.�	.����A�q�q�)�)�)�;�s�A�q�Q�+G�+G�+G�!��	.�	.�	.�	.����A�q���3�3�3�[��a��q�UV�\`�5a�5a�5a�!��	.�	.�	.�	.�	�3�3�q�!�A�.�.�.�7�3�1�1�!�Q�7�7��1�=�=�	?�	?�	?��3�3�q�!�!�,�,�,�7�3�1�1�!�Q�7�7��1�=�=�	?�	?�	?��3�3�q�!�A�A�6�6�6�7�3�1�1�!�Q�7�7��1�=�=�	?�	?�	?�	�3�3�q�!�A�E�:�:�:�7�3�1�1�!�Q�7�7��1�5�I�I�I�	K�	K�	K��3�3�q�!�!�%�8�8�8�7�3�1�1�!�Q�7�7��1�5�I�I�I�	K�	K�	K��3�3�q�!�A�A�E�B�B�B�7�3�1�1�!�Q�7�7��1�5�I�I�I�	K�	K�	K�	K�	Kr6c����tddtzdz
d��}tdtdz
d��}tgd�gd�gd�gd�gd�gd�gd�g��}t|||���tddtzdz
d��}tdtdz
d��}t	�||dd	�
��j|j��t
�||dd	�
��t�fd�||d���d
d
���t
�||dd	���t�fd�||d���d
d
���t
�||ddd	���t�fd�||ddd���dd���dS)Nr�r#rPr�r�r�r�r"Frc� ���||d���S�NFrrH�r0r1r2s  �r3�<lambda>z@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>�������A�a�U�0C�0C�0C�r6r�r�r�rc� ���||d���SrrHrs  �r3r	z@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>�r
r6r�rc� ���||d���SrrHrs  �r3r	z@TestRectSphereBivariateSpline.test_derivatives.<locals>.<lambda>�r
r6r�rr�)rrr
rrrrrr�s    @r3r^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�&�&���S�S��A�a�e�4�4�4�:�A�G�D�D�D����A�q���7�7�7�#�$C�$C�$C�$C�Q��a�P�P�P�!��	.�	.�	.�	.�	���A�q�q�u�5�5�5�#�$C�$C�$C�$C�Q��a�P�P�P�!��	.�	.�	.�	.�	���A�q����?�?�?�#�$C�$C�$C�$C�Q��a�TU�[_�`�`�`�!��	.�	.�	.�	.�	.�	.r6c
�Z�tjtjdtjddd��z
��jtjdtjtjddd����z
����j}t
t��5}tjd	d
d��tjzdz}tjd	dd��tjzdz}t|||��ddd��n#1swxYwYdt|j��vsJ�t
t��5}tjd
dd��tjzdz}tjd	dd��tjzdz}t|||��ddd��n#1swxYwYdt|j��vsJ�t
t��5}tjd
d
d��tjzdz}tjdd
d��tjzdz}t|||��ddd��n#1swxYwYdt|j��vsJ�t
t��5}tjd
d
d��tjzdz}tjddd��tjzdz}t|||��ddd��n#1swxYwYdt|j��vsJ�t
t��5}tjd
d
d��tjzdz}tjd
dd��tjzdz}t|||d���ddd��n#1swxYwYdt|j��vsJ�dS)Nr�r�r�r�r�r'r�rQrr�r�r�r��r�r�r�r�r�r�rbr|r�r�s     r3�test_invalid_input_2z2TestRectSphereBivariateSpline.test_invalid_input_2�su���v�b�m�C�"�+�d�C��*D�*D�$D�E�E�G��m�D�2�6�"�+�b�$��2J�2J�+K�+K�$K�L�L�N�N�NO�	
��:�
&�
&�	8�(��;�q�#�q�)�)�B�E�1�D�8�D��;�q�#�r�*�*�R�U�2�T�9�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�-��H�N�0C�0C�C�C�C�C�
�:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�q�#�r�*�*�R�U�2�T�9�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�-��H�N�0C�0C�C�C�C�C�
�:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�t�R��,�,�r�u�4�t�;�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�2�S���5H�5H�H�H�H�H�
�:�
&�
&�	8�(��;�r�3��*�*�R�U�2�T�9�D��;�s�C��,�,�r�u�4�t�;�D�%�d�D�$�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�4�s�8�>�7J�7J�J�J�J�J�
�:�
&�
&�	>�(��;�r�3��*�*�R�U�2�T�9�D��;�r�3��+�+�b�e�3�d�:�D�%�d�D�$�"�=�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�&��X�^�)<�)<�<�<�<�<�<�<r�c
��tddtzdz
d��}tdtdz
d��}tgd�gd�gd�gd�gd�gd�gd�g��}t|||��}t|���|���|�����}t|||��|||����dSr�)rrr
rr�r)r/r1r0r�r�r�s      r3r�z3TestRectSphereBivariateSpline.test_array_like_input�s����T�1�r�6�D�=�!�,�,���T�2��9�a�(�(���(�(�(�*?�*?�*?�(�(�(�(�(�(�*?�*?�*?�(�(�(�(�(�(�	*�
+�
+��)��A�q�1�1��(������Q�X�X�Z�Z������L�L��!�$�$�q�!�*�*�d�d�1�a�j�j�9�9�9�9�9r6c�(�tjgd���}tjgd���}tj||��}|d|dz}tj|��}tj|��}t	|||��}tjtjddg����}tjtjddg����}	|||	��}
tjd	d
gddgg��}t|
|��dS)
N)r���#r��-)i����i�������i����r�rr"rg�B@rg`S�g�F�g����=E�g�H�gDio�EG�)rhr
r
�radiansrr)r/r]r^�meshrS�lat_r�lon_r�interpolator�	query_lat�	query_lon�data_interp�anss            r3�test_negative_evaluationz6TestRectSphereBivariateSpline.test_negative_evaluation�s���x�,�,�,�-�-���x�0�0�0�1�1���{�4��&�&���A�w��a�� ���
�4� � ���
�4� � ��0���t�D�D���J�r�x��T�
�3�3�4�4�	��J�r�x��e��5�5�6�6�	�"�l�9�i�8�8���h��
�+�!�9�-�/�0�0��!�+�s�3�3�3�3�3r6c���tjdd��tjzdz}tjdd��tjzdz}tjd��}dD]}t	|||d|����dS)Nr"r�)rQrQ))TT)TF)FFr)rc�pole_continuity)rhrirr�r)r/�u�vr��ps     r3�test_pole_continuity_gh_14591z;TestRectSphereBivariateSpline.test_pole_continuity_gh_14591�s���
�I�a����r�u�$�r�)���I�a����r�u�$�r�)���H�V����>�	G�	G�A�%�a��A��A�F�F�F�F�F�	G�	Gr6N)rErFrGr�r�r/r�r^rr�rr%rHr6r3r�r�Ds�������.�.�.�%�%�%� =� =� =�DK�K�K�B.�.�.�. =� =� =�D:�:�:�
4�
4�
4�G�G�G�G�Gr6r��:�0�yE>c���|dkr|dkr|||��S|dkr+|dkr%|||z|��|||z
|��z
d|zzS|dkr+|dkr%||||z��||||z
��z
d|zzS|dkrZ|dkrT|||z||z��|||z
||z��z
|||z||z
��z
|||z
||z
��zd|zdzzStd���)Nrr"r#zinvalid derivative order)r�)�funcr0r1r�r�r,s      r3rrsO��	�Q�w�w�2��7�7��t�A�q�z�z��	�q���R�1�W�W���Q��W�a� � �4�4��C���#3�#3�3��#��>�>�	�q���R�1�W�W���Q��C�� � �4�4��1�s�7�#3�#3�3��#��>�>�	�q���R�1�W�W���Q��W�a�#�g�&�&���a�#�g�q�3�w�)?�)?�?��$�q�3�w��C��(�(�)�+/�4��C���S��+A�+A�B�FG��e�a�Z�P�	P��3�4�4�4r6c�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�Test_DerivedBivariateSplinezgTest the creation, usage, and attribute access of the (private)
    _DerivedBivariateSpline class.
    c���tjttt	d��t	d��������}tjttt	d��t	dd��������}tjtjddd��tjddd��f���t
��5}|�td��t||�tddd��td	d
d��d���|_
ddd��n#1swxYwYt||���|_td
dd��}|dz}t�fd�t	�j��D����}t|||��|_tt#jt	d��t	d������|_dS)Nr�r"�r$rr~g�3@r9r)g�4@r�r+rr%roc�:��g|]}tj�|����SrH)rh�roll)r��ir�s  �r3r�z<Test_DerivedBivariateSpline.setup_method.<locals>.<listcomp>"s#���9�9�9�a�B�G�A�q�M�M�9�9�9r6)rh�concatenate�listrr�rrr�r�rrRr�
lut_smoothr
r�r�lut_rect�	itertools�product�orders)r/r0r1r�r�r��zzr�s       @r3r_z(Test_DerivedBivariateSpline.setup_methods�����N�4��E�"�I�I�u�R�y�y� 9� 9�:�:�;�;���N�4��E�"�I�I�u�Q��|�|� <� <�=�=�>�>���N�B�K��1�b�1�1�2�;�q�!�R�3H�3H�I�J�J��
�
 �
 �	8�C��J�J�{�$F�G�G�G�-�a��A�.6�s�D�!�.D�.D�.6�s�D�!�.D�.D�26�8�8�8�D�L�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�0��1�a�8�8���
�a��B�
�
��
�#�X��
�9�9�9�9�5���=�=�9�9�9�
:�
:��+�B��B�7�7��
��9�,�U�1�X�X�u�Q�x�x�@�@�A�A����s�!AE�E�Ec���|jD]X\}}|j�||��}|ddd���}|�dd||d���}t||���YdS)Nr\Frr�)r6rRr�r�r/�nux�nuy�lut_derr�r�s      r3�test_creation_from_LSQz2Test_DerivedBivariateSpline.test_creation_from_LSQ&s|����	�	�H�C���l�5�5�c�3�?�?�G����S�u�-�-�-�A����S�#�#�#�E��B�B�A���A�����		�	r6c���|jD]X\}}|j�||��}|ddd���}|�dd||d���}t||���YdS)Ng@Frr�)r6r2r�rr9s      r3�test_creation_from_Smoothz5Test_DerivedBivariateSpline.test_creation_from_Smooth-s|����	�	�H�C���o�8�8��c�B�B�G����S�u�-�-�-�A�����S�S�S�u��E�E�A���A�����		�	r6c���|jD]X\}}|j�||��}|ddd���}|�dd||d���}t||���YdS)Nr~r)Frr�)r6r3r�rr9s      r3�test_creation_from_Rectz3Test_DerivedBivariateSpline.test_creation_from_Rect4s|����	�	�H�C���m�6�6�s�C�@�@�G����S�u�-�-�-�A��
�
�c�3�3�3�U�
�C�C�A���A�����		�	r6c��|j�dd��}tt��5|jddd��dS#1swxYwYdS�Nr")r3r�r��AttributeError�fp�r/�ders  r3�test_invalid_attribute_fpz5Test_DerivedBivariateSpline.test_invalid_attribute_fp;s����m�.�.�q�!�4�4��
�>�
*�
*�	�	��F�F�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A	�A	c��|j�dd��}tt��5|���ddd��dS#1swxYwYdSrC)r2r�r�rDr-rFs  r3�#test_invalid_attribute_get_residualz?Test_DerivedBivariateSpline.test_invalid_attribute_get_residual@s����o�0�0��A�6�6��
�>�
*�
*�	�	�������	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A�AN)
rErFrG�__doc__r_r=r?rArHrJrHr6r3r*r*s{��������B�B�B�"������������
����r6r*)rrr&)-r4�numpyrh�
numpy.testingrrrrrr�pytestr	r�r
rrr
rrr�scipy.interpolate._fitpack_pyrrrr�scipy.interpolate._fitpack2rrrrrrrrrrr�r8rMrtrr�r�objectr*rHr6r3�<module>rRs����������G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�*�*�*�*�*�*�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�K�K�K�K�K�K�K�K�K�K�K�K�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�m$�m$�m$�m$�m$�m$�m$�m$�`\6�\6�\6�\6�\6�\6�\6�\6�~w8�w8�w8�w8�w8�w8�w8�w8�tFB�FB�FB�FB�FB�FB�FB�FB�RRB�RB�RB�RB�RB�RB�RB�RB�jIF�IF�IF�IF�IF�IF�IF�IF�X|G�|G�|G�|G�|G�|G�|G�|G�~5�5�5�5�2�2�2�2�2�&�2�2�2�2�2r6

Youez - 2016 - github.com/yon3zu
LinuXploit