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_interpolate.cpython-311.pyc
�

d�c�u��V�ddlmZmZmZmZmZmZmZddlm	Z
ddlZddlmZm
Z
mZmZmZmZddlZddlmZmZmZmZmZmZmZmZmZmZmZmZm Z ddl!m"Z"m#Z#ddlm$Z$ddl%m&Z&m'Z'dd	l(m)Z)dd
l!m*Z*Gd�d��Z+Gd
�d��Z,Gd�d��Z-Gd�d��Z.Gd�d��Z/Gd�d��Z0Gd�d��Z1Gd�d��Z2Gd�d��Z3Gd�d��Z4Gd�d ��Z5Gd!�d"��Z6d#�Z7ej8fd$�Z9d%�Z:d)d&�Z;d)d'�Z<d)d(�Z=dS)*�)�assert_�assert_equal�assert_almost_equal�assert_array_almost_equal�assert_array_equal�assert_allclose�suppress_warnings)�raisesN)�mgrid�pi�sin�ogrid�poly1d�linspace)
�interp1d�interp2d�lagrange�PPoly�BPoly�splrep�splev�
splantider�splint�sproot�Akima1DInterpolator�NdPPoly�BSpline)�poch�gamma)�_ppoly)�assert_deallocated�IS_PYPY)�nquad)�binomc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestInterp2Dc	�@�tddd�dtd�f\}}t|d|zz��}t��5}|�t
��t
|||��}t|dd��td��d���tddd	�dtd
�f\}}t||�	��|�	����t|d|zz��d���ddd��dS#1swxYwYdS)Nr��4@�5@��?��?�@��decimaly8@y9@)
rrr
r	�filter�DeprecationWarningrrr�ravel)�self�y�x�z�sup�II�v�us        �J/usr/lib/python3/dist-packages/scipy/interpolate/tests/test_interpolate.py�
test_interp2dzTestInterp2D.test_interp2dsQ���Q�q��W�a��3�h�&�'���1���#�a�%��L�L��
�
 �
 �	9�C��J�J�)�*�*�*��!�Q��"�"�B����3����c�#�h�h��B�B�B�B���1�S��!�B�s�(�*�+�D�A�q����1�7�7�9�9�a�g�g�i�i� 8� 8� #�A�c�!�e�G���a�
9�
9�
9�
9�
	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s�CD�D�Dc��tddd��}tdtd��}t|ddd�f|dd�dfdzz��}t��5}|�t
��t
|||��}t|dd��td��d���ddd��dS#1swxYwYdS)Nrr(��r-r,r.)rrr
r	r0r1rr)r3r5r4r6r7r8s      r;�test_interp2d_meshgrid_inputz)TestInterp2D.test_interp2d_meshgrid_input&s���Q��2�����Q��B������$����'�
�Q�q�q�q�$�w�Z��]�*�+�+��
�
 �
 �	C�C��J�J�)�*�*�*��!�Q��"�"�B����3����c�#�h�h��B�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs�AC�C�Cc��tj�d��tddd��}tdtd��}t|ddd�f|dd�dfdzz��}t
��5}|�t��t|�
��|�
��|d���}tj�|��t|ddd�f|dd�dfdzz��}t|�
��|�
��|d���}tj�|��tj�|��t|ddd�f|dd�dfdzz��}t|||d���}tddd	��}tdtd
��}t|||��|||����t|||��|||����ddd��dS#1swxYwYdS)N��rr(r>r?r-�cubic��kind��)
�np�random�seedrrr
r	r0r1r�copy�shuffler)r3r5r4r6r7�ip1�ip2�ip3s        r;�%test_interp2d_meshgrid_input_unsortedz2TestInterp2D.test_interp2d_meshgrid_input_unsorted0sP��
�	���t�����Q��2�����Q��B������$����'�
�Q�q�q�q�$�w�Z�"�_�,�-�-��
�
 �
 �	/�C��J�J�)�*�*�*��1�6�6�8�8�Q�V�V�X�X�q�w�?�?�?�C��I���a� � � ��A�d�A�A�A�g�J��1�1�1�d�7��B��.�/�/�A��1�6�6�8�8�Q�V�V�X�X�q�w�?�?�?�C��I���a� � � ��I���a� � � ��A�d�A�A�A�g�J��1�1�1�d�7��b��0�1�1�A��1�a���1�1�1�C���A�r�"�"�A���B��#�#�A����Q����C�C��1�I�I�.�.�.����Q����C�C��1�I�I�.�.�.�#	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�>F:I�I	�I	c��tddd�dtd�f\}}t|d|zz��}t��5}|�t
��t
|||��}tjgd���}tjddg��}t|||��|||ddd	�����tt|||ddd	�ddd
��ddd��dS#1swxYwYdS)Nrr(r)r*r+)���g333333@gffffff@���T)rrr
r	r0r1rrH�arrayr�
assert_raises�
ValueError)r3r4r5r6r7�func�xe�yes        r;�test_interp2d_eval_unsortedz(TestInterp2D.test_interp2d_eval_unsortedIsR���Q�q��W�a��3�h�&�'���1���C��E�	�N�N��
�
 �
 �	F�C��J�J�)�*�*�*��A�q�!�$�$�D���)�)�)�$�$�B���3��*�%�%�B��D�D��R�L�L�$�$�r�2�d�d��d�8�*<�*<�=�=�=��*�d�B��4�4�R�4��!�Q��E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	F�	Fs�B(C6�6C:�=C:c���tjddg��}d|d<tjd��x}}t��5}|�t
��t
|||d��}t|dd��tjdg��d�	��t|dd
��tjdg��d�	��ddd��dS#1swxYwYdS)NrTr,)r(r(�linearr-��?r+r(r.�@)	rH�zeros�aranger	r0r1rrrV)r3�ar5r4r7�bs      r;�test_interp2d_linearz!TestInterp2D.test_interp2d_linearVs(���H�a��V������$���	�!�����A�
�
 �
 �	I�C��J�J�)�*�*�*���A�q�(�+�+�A����#�s���R�X�s�e�_�_�a�H�H�H�H����#�s���R�X�s�e�_�_�a�H�H�H�H�		I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�	I�	Is�BC�C�Cc	���tjddd��}tjddd��}|ddd�fdz|dd�dfz}tjddd��}tjddd	��}t��5}|�t��t|||d
���}t
t|||��t|||tj���}|||��}|dk|dkz}	|dk|dkz}
ttj
||
dd�f�������ttj
|dd�|	f�������ttj||
dd�fdd�|	f�������ddd��dS#1swxYwYdS)
Nr�rTr(�rUrRrF�!T��bounds_error��
fill_value)
rHrr	r0r1rrWrX�nanr�isnan�all�isfinite)r3r5r4r6�ix�iyr7rd�iz�mx�mys           r;�test_interp2d_boundsz!TestInterp2D.test_interp2d_boundsas
���K��1�a� � ���K��1�a� � ��
�d�A�A�A�g�J��M�A�a�a�a��g�J�&��
�[��Q��
#�
#��
�[��Q��
#�
#��
�
 �
 �	;�C��J�J�)�*�*�*���A�q�t�4�4�4�A��*�a��R�0�0�0���A�q�R�V�4�4�4�A���2�r���B��q�&�R�!�V�$�B��q�&�R�!�V�$�B��B�H�R��A�A�A��Y�'�'�+�+�-�-�.�.�.��B�H�R����2��Y�'�'�+�+�-�-�.�.�.��B�K��B�3����6�
�1�1�1�r�c�6� 2�3�3�7�7�9�9�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�EG�G�"GN)	�__name__�
__module__�__qualname__r<r@rPr\rerw��r;r&r&sw������
9�
9�
9�C�C�C�/�/�/�2F�F�F�	I�	I�	I�;�;�;�;�;r|r&c�r�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd(d�Zd(d�Zd�Zd�Zd�Zd�Zd(d�Zd(d�Zd�Zejdfd�Zd�Zej �!e"d���d���Z#d�Z$d �Z%d!�Z&d"�Z'd#�Z(ej �)d$d%��d&���Z*d'S))�TestInterp1Dc���tjd��|_tjd��|_tjd��|_|j�d��|_tjd��|_tjd��|_tj	dg��|_
tj	dg��|_tjd���d��|_tjd���d��|_
tjd���d	��|_tjd���d��|_tjd
���d��|_tjd
���d��|_tjd���d��|_d
|jdd�df<d|jdd�df<tjd���d��|_d
|jddd�f<d|jddd�f<d|_dS)N�@�$@)r(rTr-�g4@�r(�
)r�r()r(r(rTg>@)r(rRrT)rRr(rTrGr���rUgY�)rHrb�x5�x10�y10�reshape�x25�x2�y2rV�x1�y1�y210�y102�y225�y25�y235�y325�y210_edge_updated�y102_edge_updatedrm�r3s r;�setup_methodzTestInterp1D.setup_methodzs����)�B�-�-����9�S�>�>����9�S�>�>����8�#�#�E�*�*����)�B�-�-����)�B�-�-����(�B�4�.�.����(�B�4�.�.����I�c�N�N�*�*�7�3�3��	��I�c�N�N�*�*�7�3�3��	��I�c�N�N�*�*�9�5�5��	��9�S�>�>�)�)�&�1�1����I�c�N�N�*�*�9�5�5��	��I�c�N�N�*�*�9�5�5��	�
"$��3���!7�!7��!@�!@���')���q�q�q�!�t�$�(+���q�q�q�"�u�%�"$��3���!7�!7��!@�!@���')���q�!�!�!�t�$�(+���r�1�1�1�u�%� ����r|c�
�dD];}t|j|j|���t|j|j|d����<t|j|jdd���t|j|jdtjdg�����t|j|jdd���t|j|jdd���t|j|jdd	���t|j|jd
���t|j|jd���t|j|jd���t|j|jd
���t|j|jddd	���t|j|jdd
tjd�����t|j|jdd
tjd��tjd��f���t|j|jdd
tjd��df���ttt|j
|j��ttt|jtjd
����ttt|j|j��ttt|j|j��ttt|j|j��t|j|j��t|j|jd
���ttt|j
|j��ttt|j|j��ttt|j|jdd���ttt|j|jdgd����ttt|j|jdtjd�����ttt|j|jddgg���ttt|j|jdddg���ttt|j|jdtjg�����ttt|j|jdd���ttt|j|jdd
ddg���ttt|j|jdd
dddgf���dS)N)	�nearest�
nearest-up�zeror^�slinear�	quadraticrC�previous�nextrD�extrapolate�rErmr^)rUrgrU)rU)rUrUrrgr(rR�rE�axisrmr��r�)rUrUrUr{r�)rr�r�rHrVr�r��onesrWrXr�r�r�r�r��r3rEs  r;�test_validationzTestInterp1D.test_validation�s���
?�	N�	N�D��T�X�t�x�d�3�3�3�3��T�X�t�x�d�}�M�M�M�M�M����4�8�(�w�G�G�G�G����4�8�(��H�b�T�N�N�	,�	,�	,�	,����4�8�(�!�	#�	#�	#�	#����4�8�(��	 �	 �	 �	 ����4�8�(�$�	&�	&�	&�	&����4�8�!�,�,�,�,����4�8�!�,�,�,�,����4�8�!�,�,�,�,����4�8�!�,�,�,�,����4�9�8�"�$�	&�	&�	&�	&����$�)�(���G�B�K�K�	)�	)�	)�	)����$�)�(���W�R�[�[�"�'�"�+�+�6�	8�	8�	8�	8����$�)�(���W�R�[�[�"�-�	/�	/�	/�	/�	�j�(�D�H�d�h�?�?�?�	�j�(�D�H�b�h�q�k�k�B�B�B�	�j�(�D�H�d�g�>�>�>��j�(�D�G�T�X�>�>�>��j�(�D�H�d�i�@�@�@����4�9�%�%�%����4�9�1�-�-�-�-�	�j�(�D�G�T�X�>�>�>��j�(�D�H�d�g�>�>�>�	�j�(�D�H�d�h�X�!-�	/�	/�	/�	/��j�(�D�H�d�h�X�!-���	/�	/�	/�	/��j�(�D�H�d�h�X�!#��,�!7�!7�	9�	9�	9�	9��j�(�D�H�d�h�X�#%�$��	)�	)�	)�	)��j�(�D�H�d�h�X�"$�b��	+�	+�	+�	+��j�(�D�H�d�h�X�!#��"���	/�	/�	/�	/��j�(�D�H�d�h�X�!#�	%�	%�	%�	%��j�(�D�G�T�Y�X��"�b��	3�	3�	3�	3��j�(�D�G�T�Y�X��"�r�2�h��	9�	9�	9�	9�	9�	9r|c���tt|j|j��j��tt|j|jd���j��tt|j|j��j��tt|j|jd���j��tt
jt|j|j��j����tt|j|jd���jd��tt|j|jd���jd��tt|j|j��j
d��tt|j|j��j
d��tt|j|jd�	��j
d��tt|j|j��j|j��tt|j|j��j|j��tt|j|j��j|j��dS)
NF)rKrj�@rl)r,r-rrgr�)rrr�r�rKrkrHrormrr�r�r�rr5r4r�s r;�	test_initzTestInterp1D.test_init�s���	����4�8�,�,�1�2�2�2��H�T�X�t�x�e�<�<�<�A�A�B�B�B�����4�8�,�,�9�:�:�:��H�T�X�t�x�e�D�D�D�Q�Q�R�R�R�����$�(�D�H�5�5�@�A�A�B�B�B��X�d�h���S�A�A�A�L��	�	�	��X�d�h���Z�H�H�H�S��	!�	!�	!��X�d�h���1�1�6��:�:�:��X�d�h��	�2�2�7��;�;�;��X�d�h��	��:�:�:�?��C�C�C��8�D�H�d�h�7�7�9�4�8�D�D�D��8�D�H�d�h�7�7�9�4�8�D�D�D��8�D�H�d�i�8�8�:�D�I�F�F�F�F�Fr|c��t|j|j��}t|jddd�|jddd���}t||j��|j��t|d��t	jdg����t|gd���|gd�����t|jddd�|jddd�d���}t||j��|j��t|jddd�|jddd�d���}t
t||j��t|j|j��}t|jddd�|jdd�ddd�f��}t||j��||j����dS)NrU�333333�?�g333333@gffffff@�@F)�
assume_sortedT)	rr�r�rrHrVrWrXr�)r3�interp10�interp10_unsorted�interp10_assume_kw�interp10_assume_kw2�
interp10_y_2d�interp10_y_2d_unsorteds       r;�test_assume_sortedzTestInterp1D.test_assume_sorted�s����D�H�d�h�/�/��$�T�X�d�d��d�^�T�X�d�d��d�^�D�D��!�"3�"3�D�H�"=�"=�t�x�H�H�H�!�"3�"3�C�"8�"8�"�(�C�5�/�/�J�J�J�!�"3�"3�O�O�O�"D�"D�"*�(�?�?�?�";�";�	=�	=�	=�&�d�h�t�t��t�n�d�h�t�t��t�n�49�;�;�;��!�"4�"4�T�X�">�">���I�I�I�&�t�x���"��~�t�x���"��~�59�;�;�;��	�j�"5�t�x�@�@�@�!���4�9�5�5�
�!)�$�(�4�4�R�4�.�$�)�A�A�A�t�t��t�G�:L�!M�!M��!�-�-���"9�"9�"8�"8���"B�"B�	D�	D�	D�	D�	Dr|c�:�dD]}|�|���dS)N)r^r�)�
_check_linearr�s  r;�test_linearzTestInterp1D.test_linears2��)�	%�	%�D����t�$�$�$�$�	%�	%r|c��t|j|j|���}t||j��|j��t|d��t	jdg����t|gd���t	jgd�����t|j|j|d���}t
|gd���gd�d�	��t|dd
���}ttt|j|jfi|��dS)NrDr�r�r�r����r�	�)rUrr�r��+����=��rtolT�rErmrk�
rr�r�rrHrVr�dictrWrX)r3rEr��extrapolator�optss     r;r�zTestInterp1D._check_linears&���D�H�d�h�T�:�:�:��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���3�%���A�A�A�!�(�(�?�?�?�";�";�"$�(�?�?�?�";�";�	=�	=�	=� ���$�(��+8�:�:�:�����_�_�_�5�5�&���U�	4�	4�	4�	4���,�!%�'�'�'��	�j�(�D�H�d�h�G�G�$�G�G�G�G�Gr|c�`�tjdD]\}tjd|���}|}t||d���|��}t	|j|��t
||d����]gd�}tjd	d
g}t||��|��}t
||d���dS)N�float���dtyper^rD�V瞯�<��atol�rrgr(rrg)rH�sctypesrbrrr�rrn)r3�dtypr5r4�yps     r;�test_linear_dtypeszTestInterp1D.test_linear_dtypes+s����J�w�'�	/�	/�D��	�!�4�(�(�(�A��A�.��!�Q�X�.�.�.�q�1�1�B����4�(�(�(��B���.�.�.�.�.�
�I�I��
�V�Q��N��
�X�a��^�^�A�
�
����A�E�*�*�*�*�*�*r|c���tjtjtjg}|tjtjgz}gd�}|D]�}tjdd|���}|D]�}tj|dz���|��}|D]S}|�|��}	|D]9}
t|||
d���}t||	��|d|�d	|�d
|������:�T����dS)N)r�r�r�rCrr�r�r�F�rErk�H�����z>z, � �r��err_msg)rH�float16�float32�float64�	complex64�
complex128rb�exp�astyperr)r3�dt_r�dt_rc�spline_kinds�dtxr5�dtyr4�dtn�xnewrE�fs            r;�test_slinear_dtypesz TestInterp1D.test_slinear_dtypes=s5���
�B�J��
�3�����b�m�4�4��@�@�@���		O�		O�C��	�!�R�s�+�+�+�A��
O�
O���F�A�2�c�6�N�N�)�)�#�.�.���O�O�C��8�8�C�=�=�D� ,�O�O��$�Q���5�I�I�I��'���$�����?B�s�s�C�C�C���0M�O�O�O�O�O�O�O�
O�		O�		Or|c��t|j|jd���}t||j��|j��t|d��t	jdg����t|d��t	jdg����t|gd���t	jgd�����dS)NrCrDr�r_r��rr�r�rrHrV�r3r�s  r;�
test_cubiczTestInterp1D.test_cubicNs����D�H�d�h�W�=�=�=��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���3�%���A�A�A�!�(�(�3�-�-���3�%���A�A�A�!�(�(�?�?�?�";�";�"$�(�?�?�?�";�";�	>�	>�	>�	>�	>r|c�r�t|j|jd���}t||j��|j��t|d��t	jd����t|d��t	jd����t|gd���t	jgd�����t|j|jdd�	��}t
|gd
���gd�d�
��tddd���}ttt|j|jfi|��dS)Nr�rDr�r,r_r��r-r�r�r�r�r��rrr�r�r�r�Tr�r��r3r�r�r�s    r;�test_nearestzTestInterp1D.test_nearestWsF���D�H�d�h�Y�?�?�?��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���"���>�>�>�!�(�(�3�-�-���"���>�>�>�!�(�(�?�?�?�";�";�"$�(�<�<�<�"8�"8�	;�	;�	;� ���$�(��+8�:�:�:�����_�_�_�5�5�$���5�	2�	2�	2�	2���,�!%�'�'�'��	�j�(�D�H�d�h�G�G�$�G�G�G�G�Gr|c�r�t|j|jd���}t||j��|j��t|d��t	jd����t|d��t	jd����t|gd���t	jgd�����t|j|jdd	�
��}t
|gd���gd�d
���tdd	d���}ttt|j|jfi|��dS)Nr�rDr�r,r_r-r�r�r�r�r�r�r�r�Tr�r�r�s    r;�test_nearest_upzTestInterp1D.test_nearest_uplsF���D�H�d�h�\�B�B�B��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���"���>�>�>�!�(�(�3�-�-���"���>�>�>�!�(�(�?�?�?�";�";�"$�(�<�<�<�"8�"8�	;�	;�	;� ���$�(��+8�:�:�:�����_�_�_�5�5�$���5�	2�	2�	2�	2���,�!%�'�'�'��	�j�(�D�H�d�h�G�G�$�G�G�G�G�Gr|c
�v�t|j|jd���}t||j��|j��t|d��t	jd����t|d��t	jd����t|gd���t	jgd�����t|j|jdd�	��}t
|gd
���tjdddgd
���t|j|jdd�	��}t
|gd���tjtjddddg��t|j|jdd�	��}t
|gd���tjtjddddgtjtjddddgg��t|j|j	ddd���}t
|gd���tjtjgddgddgg��tddd���}ttt|j|jfi|��tgd�gd�ddd���}t
|gd���tjtjddd d d g��tgd!�gd"�ddd#���}t
|gd���tjtjddd d d g��t|j|j
dd�	��}t
|gd���tjtjddd$d$gtjtjddd$d$gg��t|j|jddd���}t
|gd���tjtjgddgd$d$gg��dS)%Nr�rDr�r,r_r��r-r�r�r�r�r�rr�r�r��rU���rTr���rTr����r��r�rTr�r�r�Tr�r��rrgrU�rErmr��r�rUrrgr(rRrTrgrU�r(rrg�rUrrgFr��rr�r�rrHrVrrnr�r�r�rWrXr�r��r3r�r��interpolator1D�interpolator2D�interpolator2DAxis0r�s       r;�
test_previouszTestInterp1D.test_previous�sE���D�H�d�h�Z�@�@�@��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���"���>�>�>�!�(�(�3�-�-���"���>�>�>�!�(�(�?�?�?�";�";�"$�(�<�<�<�"8�"8�	;�	;�	;� ���$�(��+8�:�:�:�����_�_�_�5�5����A�q�)��	7�	7�	7�	7�"�$�(�D�H�:�-:�<�<�<�����'=�'=�'=�>�>������A�q�!�4�	6�	6�	6�"�$�(�D�I�J�-:�<�<�<�����'=�'=�'=�>�>��&�"�&�!�Q��1�5��&�"�&�"�b�"�b�9�;�	<�	<�	<�'�t�x����,-�-�I�I�I���+�+�K�K�K�8�8��&�"�&�)��b���b��#�	$�	$�	$�
��,�!%�'�'�'��	�j�(�D�H�d�h�G�G�$�G�G�G�"�)�)�)�",�*�*�:�-:�04�6�6�6��	���'>�'>�'>�?�?������A�r�2�r�:�	<�	<�	<�"�)�)�)�",�*�*�:�-:�05�7�7�7��	���'>�'>�'>�?�?������A�r�2�r�:�	<�	<�	<�"�$�(�D�,B�'1�-:�<�<�<��	���'=�'=�'=�>�>��&�"�&�!�Q��S�9��&�"�&�"�b�#�s�;�=�	>�	>�	>�'�t�x��1G�,6�,-�-�I�I�I��	�+�+�K�K�K�8�8��&�"�&�)��b���s��%�	&�	&�	&�	&�	&r|c
�v�t|j|jd���}t||j��|j��t|d��t	jd����t|d��t	jd����t|gd���t	jgd�����t|j|jdd�	��}t
|gd
���dddtjgd
���t|j|jdd�	��}t
|gd���ddddtjtjg��t|j|jdd�	��}t
|gd���ddddtjtjgddddtjtjgg��t|j|j	ddd���}t
|gd���ddgddgtjtjgg��tddd���}ttt|j|jfi|��tgd�gd�ddd���}t
|gd���dddddtjtjg��tgd �gd!�ddd"���}t
|gd���dddddtjtjg��t|j|j
dd�	��}t
|gd���d#d#ddtjtjgd#d#ddtjtjgg��t|j|jddd���}t
|gd���d#d#gddgtjtjgg��dS)$Nr�rDr�r-r_r�)r�r�r�r�r�r�rr�r�r�r�rTr�r�r�r�r�r�rgr�Tr�r�rrrrUrrFrGrrs       r;�	test_nextzTestInterp1D.test_next�sE���D�H�d�h�V�<�<�<��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���"���>�>�>�!�(�(�3�-�-���"���>�>�>�!�(�(�?�?�?�";�";�"$�(�<�<�<�"8�"8�	;�	;�	;� ���$�(��+8�:�:�:�����_�_�_�5�5��A�q�"�&�)��	7�	7�	7�	7�"�$�(�D�H�6�-:�<�<�<�����'=�'=�'=�>�>��A�q�!�R�V�R�V�4�	6�	6�	6�"�$�(�D�I�F�-:�<�<�<�����'=�'=�'=�>�>��Q��1�b�f�b�f�5��b�"�b�"�&�"�&�9�;�	<�	<�	<�'�t�x����,-�-�I�I�I���+�+�K�K�K�8�8��Q���b���&�"�&�)�+�	,�	,�	,�
��,�!%�'�'�'��	�j�(�D�H�d�h�G�G�$�G�G�G�"�)�)�)�",�*�*�6�-:�04�6�6�6��	���'>�'>�'>�?�?��A�q�!�R�����8�	:�	:�	:�"�)�)�)�",�*�*�6�-:�05�7�7�7��	���'>�'>�'>�?�?��A�q�!�R�����8�	:�	:�	:�"�$�(�D�,B�'-�-:�<�<�<��	���'=�'=�'=�>�>��b�!�Q�����7��b�"�b�"�&�"�&�9�;�	<�	<�	<�'�t�x��1G�,2�,-�-�I�I�I��	�+�+�K�K�K�8�8��b���b���&�"�&�)�+�	,�	,�	,�	,�	,r|c��t|j|jd���}t||j��|j��t|d��t	jd����t|d��t	jd����t|gd���t	jgd�����dS)Nr�rDr�r,r_r�r�r�r�s  r;�	test_zerozTestInterp1D.test_zeros����D�H�d�h�V�<�<�<��!�(�(�4�8�"4�"4�d�h�?�?�?�!�(�(�3�-�-���"���>�>�>�!�(�(�3�-�-���"���>�>�>�!�(�(�?�?�?�";�";�"$�(�<�<�<�"8�"8�	:�	:�	:�	:�	:r|c���tt||��	||��dS#t$r1}d�|��t|��vsJ�Yd}~dSd}~wwxYw)Nz{})rWrX�format�str)r3�interpolant�
test_array�
fail_value�errs     r;�bounds_check_helperz TestInterp1D.bounds_check_helpers���	�j�+�z�:�:�:�	9��K�
�#�#�#�#�#���	9�	9�	9��K�K�
�+�+�s�3�x�x�7�7�7�7�7�7�7�7�7�7�����	9���s�%�
A �&A�A r^c�0�t|j|j|jd|���}t	|d��tj|j����t	|d��tj|j����t	|dgdgdgdggg��tj|j����t	|�tjgd�����tjgd�gd	�g����t|j|jd
|���}|�|dd��|�|d
d
��|�|gd�d��|�|gd�d��|gd���dS)NF)rmrkrEgffffff&@g333333�g333333)@g�����L3@)r�r�r��"@�&@)TFFFF)FFFFTT)rkrEr�r)r�r�r�)r�r,�5@r)r�r�r)	rr�r�rmrrHrV�
_check_boundsr)r3rE�extrap10�raises_bounds_errors    r;�
_bounds_checkzTestInterp1D._bounds_checks����D�H�d�h�4�?�).�T�;�;�;��	�8�8�D�>�>�2�8�D�O�+D�+D�E�E�E��8�8�D�>�>�2�8�D�O�+D�+D�E�E�E��8�8�t�f�t�f�t�f�t�f�%E�$F�G�G��8�D�O�4�4�	7�	7�	7��8�1�1�!�x�(C�(C�(C�D�D�F�F��8�%G�%G�%G�%G�%G�%G�%I�J�J�	K�	K�	K�
'�t�x����,0�2�2�2��	
� � �!4�d�D�A�A�A�� � �!4�d�D�A�A�A�� � �!4�6F�6F�6F��M�M�M�� � �!4�6F�6F�6F��M�M�M���O�O�O�,�,�,�,�,r|c���tjd���tj��}tjd���tj��}t	|||tjd���}||dz
��}t
tj|d����t|tj	tj|dd�f��dS)Nr�Fr�rgrrU)
rHrbr��int_rrnrror�r_)r3rEr5r4�c�yis      r;�_bounds_check_int_nan_fillz'TestInterp1D._bounds_check_int_nan_fill5s����I�b�M�M� � ���)�)���I�b�M�M� � ���)�)���Q�����e�L�L�L��
�Q�q�1�u�X�X������A���� � � �!�"�b�e�B�F�A�c�r�c�F�N�&;�<�<�<�<�<r|c�d�dD],}|�|��|�|���-dS)N)r^rCr�r�r�r�r�r�)rr$r�s  r;�test_boundszTestInterp1D.test_bounds=sH��5�	2�	2�D����t�$�$�$��+�+�D�1�1�1�1�	2�	2r|c��t|j|j|dd���}t|d��d��t|d��d��t|ddg��ddg��|j|j|j|jfD�]}t|j||ddd�	��}t|d��d��t|d��d��t|ddg��d��t|j||ddd�	��}t|d��d��t|d��d��|j	d
kr#ddgg|j
dzg|j
dz}nddgg|j
dz}t|ddg��|����gd
�}|j|jfD](}ttt|j||d|d�	���)t|j|j|d|d�	��}t|d��gd
�gdz��t|d��gd
�gdz��t|ddg��ddgddgddgggdz��ddg}ttt|j|j|d|d�	��|j|j|jfD]�}t|j||d|d�	��}ddg}|j	d
kr|g|j
dz}t|d��|��t|d��|��ddgddgg}|j	d
kr|g|j
dz}t|ddg��|����tjgd���df}|j|jfD](}ttt|j||d|d�	���)t|j|j|d|d�	��}t|d��d��t|d��gd�gdz��t|ddg��ddgddgddgggdz��tjddg��df}ttt|j|j|d|d�	��|j|j|jfD]�}t|j||d|d�	��}t|d��d��ddg}|j	d
kr|g|j
dz}t|d��|��ddgddgg}|j	d
kr|g|j
dz}t|ddg��|����gd�gd
�f}|j|jfD](}ttt|j||d|d�	���)td��D]�}|dkrt!d�|D����}t|j|j|d|d�	��}t|d��gd
�gdz��t|d��gd�gdz��t|ddg��ddgddgddgggdz����ddgddgf}ttt|j|j|d|d�	��|j|j|jfD]�}t|j||d|d�	��}ddg}|j	d
kr|g|j
dz}t|d��|��ddg}|j	d
kr|g|j
dz}t|d��|��ddgddgg}|j	d
kr|g|j
dz}t|ddg��|����ddgddgg}|j|j|jfD](}ttt|j||d|d�	���)td��D]�}|dkrtj|��}t|j|j|d|d�	��}t|d��ddgddgg��t|d��ddgddgg��t|ddg��ddgddggddgddggg����ddgddggddgddggf}|j|j|jfD](}ttt|j||d|d�	���)td��D]�}|dkr4tj|d��tj|d��f}t|j|j|d|d�	��}t|d��ddgddgg��t|d��ddgddgg��t|ddg��ddgddggddgddggg����dS)N)����dFr�r�r)���r(rU)rEr�rmrkrRrgr)r)���,r(r+r,)r(�8�������r-r.c3�>K�|]}tj|��V��dS�N)rHrV)�.0r�s  r;�	<genexpr>z1TestInterp1D._check_fill_value.<locals>.<genexpr>�s*����"C�"C�1�2�8�A�;�;�"C�"C�"C�"C�"C�"Cr|i�i�i���i0���)rr�r�rr�r�r�r�r��ndim�shaperWrXrHrV�range�tuple)r3rE�interpr4�resultrm�iis       r;�_check_fill_valuezTestInterp1D._check_fill_valueCs ���$�(�D�H�4�%0�u�F�F�F��!�&�&��*�*�c�2�2�2�!�&�&��+�+�t�4�4�4�!�&�&�#�r��"3�"3�d�C�[�A�A�A��)�T�Y��	�4�8�<�	A�	A�A��d�g�q�t�"�),�5�B�B�B�F�%�f�f�R�j�j�#�6�6�6�%�f�f�S�k�k�3�7�7�7�%�f�f�c�2�Y�&7�&7��=�=�=��d�g�q�t�"�)4�5�J�J�J�F�%�f�f�R�j�j�#�6�6�6�%�f�f�S�k�k�4�8�8�8��v��{�{� �#�;�-�!�'�!�*�4�5����
�B�����+������3��%�f�f�c�2�Y�&7�&7��@�@�@�@�%�_�_�
��)�T�Y�'�	N�	N�A��*�h�����!�j�u�
N�
N�
N�
N�
N��$�'�4�9�4�b�%/�e�E�E�E��!�&�&��*�*����.?�!�.C�D�D�D�!�&�&��+�+����/@�1�/D�E�E�E�!�&�&�#�r��"3�"3��S�z�8;�S�z�8;�S�z�7C�6D�FG�6H�	I�	I�	I�
�3�Z�
��j�(�D�G�T�Y�T��*�5�	J�	J�	J�	J��)�T�Y���1�	A�	A�A��d�g�q�t�"�)3�%�I�I�I�F��3�Z�F��v��{�{� ��A�G�A�J�.��%�f�f�R�j�j�&�9�9�9�%�f�f�S�k�k�6�:�:�:��C�j�3��*�-�F��v��{�{� ��A�G�A�J�.��%�f�f�c�2�Y�&7�&7��@�@�@�@��h�1�1�1�2�2�C�8�
��)�T�Y�'�	N�	N�A��*�h�����!�j�u�
N�
N�
N�
N�
N��$�'�4�9�4�b�%/�e�E�E�E��!�&�&��*�*�c�2�2�2�!�&�&��+�+�0B�0B�0B�/C�a�/G�H�H�H�!�&�&�#�r��"3�"3��c�{�8<�c�{�8<�c�{�7D�6E�GH�6I�	J�	J�	J�
�h��d�|�,�,�c�2�
��j�(�D�G�T�Y�T��*�5�	J�	J�	J�	J��)�T�Y���1�	A�	A�A��d�g�q�t�"�)3�%�I�I�I�F�%�f�f�R�j�j�#�6�6�6��D�\�F��v��{�{� ��A�G�A�J�.��%�f�f�S�k�k�6�:�:�:��S�k�D�#�;�/�F��v��{�{� ��A�G�A�J�.��%�f�f�c�2�Y�&7�&7��@�@�@�@�)�(�(�/�/�/�:�
��)�T�Y�'�	N�	N�A��*�h�����!�j�u�
N�
N�
N�
N�
N���(�(�		N�		N�B��Q�w�w�"�"C�"C�
�"C�"C�"C�C�C�
��d�g�t�y�t�"�)3�%�I�I�I�F�%�f�f�R�j�j�?�?�?�2C�a�2G�H�H�H�%�f�f�S�k�k�4F�4F�4F�3G�!�3K�L�L�L�%�f�f�c�2�Y�&7�&7�D�#�;�<@�#�;�<@�#�;�;H�:I�KL�:M�
N�
N�
N�
N��T�l�S�#�J�/�
��j�(�D�G�T�Y�T��*�5�	J�	J�	J�	J��)�T�Y���1�	A�	A�A��d�g�q�t�"�)3�%�I�I�I�F��3�Z�F��v��{�{� ��A�G�A�J�.��%�f�f�R�j�j�&�9�9�9��D�\�F��v��{�{� ��A�G�A�J�.��%�f�f�S�k�k�6�:�:�:��S�k�D�#�;�/�F��v��{�{� ��A�G�A�J�.��%�f�f�c�2�Y�&7�&7��@�@�@�@��C�j�4��,�/�
��)�T�Y���1�	N�	N�A��*�h�����!�j�u�
N�
N�
N�
N�
N���(�(�
	K�
	K�B��Q�w�w��X�j�1�1�
��d�g�t�y�t�"�)3�%�I�I�I�F�%�f�f�R�j�j�C��:��d�|�2L�M�M�M�%�f�f�S�k�k�S�#�J��t��3M�N�N�N�%�f�f�c�2�Y�&7�&7�C��:�<?��:�;G�<@�$�<�<@�$�<�;I�:J�
K�
K�
K�
K��d�|�e�U�^�4��S�z�D�$�<�0�2�
��)�T�Y���1�	N�	N�A��*�h�����!�j�u�
N�
N�
N�
N�
N���(�(�	L�	L�B��Q�w�w� �h�z�!�}�5�5�r�x�
�1�
�7N�7N�O�
��d�g�t�y�t�"�)3�%�I�I�I�F�%�f�f�R�j�j�C��:��d�|�2L�M�M�M�%�f�f�S�k�k�T�4�L�5:�E�N�4D�
E�
E�
E�%�f�f�c�2�Y�&7�&7�D�#�;�<@�#�;�;H�<A�4�=�<A�4�=�;J�:K�
L�
L�
L�
L�	L�	Lr|c�:�dD]}|�|���dS�N)r^r�rCr�r�r�r�r�)r:r�s  r;�test_fill_valuezTestInterp1D.test_fill_value�s4��1�	)�	)�D��"�"�4�(�(�(�(�	)�	)r|c��t|j|jd���}t|jd��d|_t|jd��dS)Ng�^@rlgt@)rr�r�rrm)r3r7s  r;�test_fill_value_writeablez&TestInterp1D.test_fill_value_writeable�sN���$�(�D�H��?�?�?���V�&��.�.�.�!����V�&��.�.�.�.�.r|c	��t|j|j|���}t|t	jddgddgg����t	jddgddgg����t
t|d��tj����t|d��j
d��t|j|j|���}t|d��t	jdd	g����t|t	jddg����t	jddgd	d
gg����t|j|jd|���}t|d��t	jddg����t|t	jddg����t	jddgd
dgg����t	jddgddgg��}t||��t	jddgddggddgd
dggg����t||��t	jd
dgdd	ggddgddggg����dS)NrDr�r�r-�@r�r{r,r�(@r�r�rEr�g*@g.@g1@r��@g,@)
rr�r�rrHrVr�
isinstance�ndarrayrr4r�r�)r3rEr��	interp210�	interp102�x_news      r;�_nd_check_interpzTestInterp1D._nd_check_interp�s����D�H�d�h�T�:�:�:��!�(�(�2�8�b�"�X��B�x�4H�+I�+I�"J�"J�"$�(�R��H�r�2�h�+?�"@�"@�	B�	B�	B�	�
�8�8�C�=�=�"�*�5�5�6�6�6��X�X�c�]�]�(�"�-�-�-��T�X�t�y�t�<�<�<�	�!�)�)�B�-�-���2�s�)�1D�1D�E�E�E�!�)�)�B�H�b�"�X�,>�,>�"?�"?�"$�(�R��H�s�C�j�+A�"B�"B�	D�	D�	D��T�X�t�y�q�t�D�D�D�	�!�)�)�B�-�-���3��*�1E�1E�F�F�F�!�)�)�B�H�b�"�X�,>�,>�"?�"?�"$�(�R��H�r�2�h�+?�"@�"@�	B�	B�	B���2�r�(�R��H�-�.�.��!�)�)�E�"2�"2�"$�(�b�"�X��B�x�,@�.1�3�Z�#�s��,D�,F�#G�#G�	H�	H�	H�	"�)�)�E�"2�"2�"$�(�b�"�X��S�z�,B�.0�"�X��S�z�,B�,D�#E�#E�	F�	F�	F�	F�	Fr|c���gd�}tjtj|����j|�}t	|��D]�\}}tj|��}t||||���}t
||��||���tjd���d��dz}t|��}	gd�|	||dz�<t
||��j|	|�����dS)N)rSrT�rhrC�r�rL)r(rRrgrBrg)	rHrb�prodr��	enumeraterr�listr4)
r3rErcr4�n�sr5r6r�rds
          r;�_nd_check_shapezTestInterp1D._nd_check_shapes����L�L��)�B�I�b�g�a�j�j�!�!�)�1�-���a�L�L�	D�	D�D�A�q��	�!���A���A�A�D�1�1�1�A�%�a�a��d�d�A�t�<�<�<�<���5�!�!�)�)�'�2�2�S�8�B��Q���A��w�w�A�a��!��e�H�%�a�a��e�e�k�1�d�C�C�C�C�C�	D�	Dr|c�d�dD],}|�|��|�|���-dS)N)r^rCr�r�r�r�r�r�)rJrSr�s  r;�test_ndzTestInterp1D.test_ndsH��1�	'�	'�D��!�!�$�'�'�'�� � ��&�&�&�&�	'�	'r|c��tjgd���}||dzz}|�|��}t|||���}t	|dd�||��dd���tjddd��}t||j|���}t||j|���}t	||��j||����t	||��j||����dS)N)
rgr`rRg������@rSg������@g������@g @g#@r���?@rDrUrgr�rF)rHrVr�rrr�real�imag)	r3r�rEr5r4r"�xi�cr�cis	         r;�_check_complexzTestInterp1D._check_complex%s����H�@�@�@�A�A��
��f�
���
�H�H�U�O�O��
�Q���%�%�%��!�!�C�R�C�&�!�!�A�$�$�s��s�)�4�4�4��[��B��
#�
#��
�a���d�
+�
+�
+��
�a���d�
+�
+�
+��!�!�!�B�%�%�*�b�b��f�f�5�5�5�!�!�!�B�%�%�*�b�b��f�f�5�5�5�5�5r|c��dD]B}|�tj|��|�tj|���CdSr<)r]rHr�r�r�s  r;�test_complexzTestInterp1D.test_complex5sP��1�	5�	5�D������d�3�3�3�����
�t�4�4�4�4�	5�	5r|zTest not meaningful on PyPy)�reasonc���tjdd��}tjdd��}tt||��5}|ddg��~ddd��dS#1swxYwYdS)Nrrg皙�����?皙�����?)rHrr!r)r3r5r4r7s    r;�test_circular_refszTestInterp1D.test_circular_refs;s���
�K��1�����K��1����
��!�Q�
/�
/�	�6��F�C��:�����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A!�$A!c��dD]O}tjgd�tj���}t|||���}t	||��|���PdS)N)r�r�r�)r�2�r�rD)rHrV�int8rr)r3rEr5r9s    r;�test_overflow_nearestz"TestInterp1D.test_overflow_nearestEsd��3�	0�	0�D������R�W�5�5�5�A��!�Q�T�*�*�*�B�%�b�b��e�e�Q�/�/�/�/�	0�	0r|c�R�tjd���t��}|���}tj|d<dD]T}t
|||���}|ddg��}ttj|���	�����UdS)Nr�rL)r�r�rDg������@rA)
rHrbr�r�rKrnrrrqrp)r3r5r4rE�ir�valss      r;�test_local_nanszTestInterp1D.test_local_nansLs���
�I�b�M�M� � ��'�'��
�F�F�H�H���v��!��'�	-�	-�D��!�Q�T�*�*�*�B��2�s�C�j�>�>�D��B�K��%�%�)�)�+�+�,�,�,�,�	-�	-r|c�,�tjd���t��}|���}|���}tj|d<dD]�}t
|||���}t
|||���}dddgddgddggfD]y}tj|��}||��||��}	}ttj	|	���
����t|j|	j���z��dS)Nr�rR)r�rCrDrLrgrT)
rHrbr�r�rKrnr�asarrayrrorprr4)
r3r5r4�ynrErk�irnr��out�outns
          r;�test_spline_nanszTestInterp1D.test_spline_nansWs��
�I�a�L�L����&�&��
�F�F�H�H��
�V�V�X�X�����1��*�	4�	4�D��!�Q�T�*�*�*�B��1�b�t�,�,�,�C��Q��F�a��V�a��V�$4�5�
4�
4���z�$�'�'���B�q�E�E�3�3�q�6�6�T��������*�*�,�,�-�-�-��S�Y��
�3�3�3�3�	
4�	4�	4r|c���tjd��tjz}tjd��}t	t
��5t
||d���ddd��dS#1swxYwYdS)Nr�rCrD)rHr�rnrbrWrXr)r3r5r4s   r;�
test_all_nanszTestInterp1D.test_all_nansis����G�B�K�K�"�&� ���I�b�M�M��
�:�
&�
&�	)�	)��Q���(�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�
A*�*A.�1A.c�p�tjdd��}tj|dz��}tjddd��}dD]o}||j_d|j_dD]R}t|||�	��}||��}t
tj|��������S�pdS)
Nrr�r�r�rb�TFF)r^r�r�r�r�rCrD)	rHrbr��flags�	writeablerrrqrp)r3r5r4r��xnew_writeablerEr�rls        r;�test_read_onlyzTestInterp1D.test_read_onlyps����I�a������F�A�2��8�����y��A�s�#�#��+�	1�	1�N�#1�D�J� � %�A�G��"�
1�
1���Q���-�-�-���q��w�w�����D�)�)�-�-�/�/�0�0�0�0�	
1�	1�	1r|rE)r^r�r�r�r�c�
�tdgdg|dd���}t|gd���gd���tdgdg|d�	��}ttd
���5|d��ddd��dS#1swxYwYdS)
Nr_rLFr�)rErkrm)rgr_r()r(rLr�Tr�zx_new is above��matchr-)rrrWrX)r3rEr�s   r;�test_single_valuezTestInterp1D.test_single_value~s���

�c�U�Q�C�d�� '�
)�
)�
)���1�1�[�[�[�>�>�:�:�:�6�6�6��c�U�Q�C�d��>�>�>��
�:�-=�
>�
>�
>�	�	�
�A�c�F�F�F�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A8�8A<�?A<N)r^)+rxryrzr�r�r�r�r�r�r�r�r�r�r�r
rrrrr$r&r:r=r?rJrSrUrH�complex_r]r_�pytest�mark�skipifr"rdrirmrtrvr|�parametrizer�r{r|r;r~r~xs�������'!�'!�'!�RB9�B9�B9�HG�G�G�&D�D�D�4%�%�%�H�H�H�&+�+�+�$O�O�O�">�>�>�H�H�H�*H�H�H�*C&�C&�C&�JC,�C,�C,�J:�:�:�9�9�9�-�-�-�-�0=�=�=�=�2�2�2�_L�_L�_L�B)�)�)�/�/�/�F�F�F�F�@D�D�D�D�'�'�'�$&�;�X�6�6�6�6� 5�5�5��[����(E��F�F���G�F��0�0�0�	-�	-�	-�4�4�4�$)�)�)�1�1�1��[����G���������r|r~c��eZdZd�ZdS)�TestLagrangec���tgd���}tjt|j����}||��}t||��}t
|j|j��dS)N)rTr(rgrSrR)rrHrb�len�coeffsrr)r3�p�xs�ys�pls     r;�
test_lagrangezTestLagrange.test_lagrange�s^���;�;�;����
�Y�s�1�8�}�}�
%�
%��
�Q�r�U�U��
�b��_�_��!�!�(�2�9�5�5�5�5�5r|N)rxryrzr�r{r|r;r�r��s#������6�6�6�6�6r|r�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestAkima1DInterpolatorc��tjdd��}tjgd���}t||��}tjgd���}tjgd���}t	||��|��dS)Nr�r�r�r-r,r�r-r��@r�g������@�ffffff@r��
r�r+r,r_r`�@g@r�g@g������@g333333!@g������#@r��
r�g�?r-r_g@�?g�@g�.�袋@g�^��@gn��@gGNB�@grcߖ��@g�	��I@r�)rHrbrVrr�r3r5r4�akrZr#s      r;�	test_evalz!TestAkima1DInterpolator.test_eval�s����I�b�#�����H�E�E�E�F�F��
 ��A�
&�
&��
�X�������
�X�������
	���2����#�#�#�#�#r|c�j�tjdd��}tjgd���}tj|d|zf��}t	||��}tjgd���}tjgd���}tj|d|zf��}t||��|��dS)Nr�rr�r-r�r�)rHrbrV�column_stackrrr�s      r;�test_eval_2dz$TestAkima1DInterpolator.test_eval_2d�s����I�b�#�����H�E�E�E�F�F���O�Q��Q��K�(�(��
 ��A�
&�
&��
�X�&�&�&�'�'��
�X�8�8�8�9�9���_�b�"�r�'�]�
+�
+�����2����#�#�#�#�#r|c��tjdd��}tjgd���}tjd��}||dd�ddf<d|z|dd�ddf<d|z|dd�ddf<d	|z|dd�ddf<t	||��}tjgd
���}tjd��}tjgd���}||dd�ddf<d|z|dd�ddf<d|z|dd�ddf<d	|z|dd�ddf<t||��|��dS)
Nr�rr�)r�r(r(rr-rgr�rDr�)�
r(r(r�)rHrbrV�emptyrr)r3r5�y_r4r�rZr#�yi_s        r;�test_eval_3dz$TestAkima1DInterpolator.test_eval_3d�sf���I�b�#����
�X�F�F�F�
G�
G���H�Z� � ����!�!�!�Q��'�
��"�W��!�!�!�Q��'�
��"�W��!�!�!�Q��'�
��"�W��!�!�!�Q��'�
�
 ��A�
&�
&��
�X�&�&�&�'�'��
�X�j�
!�
!���h�9�9�9�:�:����1�1�1�a��7���3�h��1�1�1�a��7���3�h��1�1�1�a��7���3�h��1�1�1�a��7�����2����#�#�#�#�#r|c�(�tjgd���}tj||dzf��j}t	||��}tjddg��}||��}t|tj||dzf��j��dS)Nr�r(r+r_)rHrV�vstack�Trr)r3r5r4r��x_eval�y_evals      r;�%test_degenerate_case_multidimensionalz=TestAkima1DInterpolator.test_degenerate_case_multidimensional�s����H�Y�Y�Y�����I�q�!�Q�$�i� � �"��
 ��A�
&�
&����3��*�%�%����F�������	�6�6�1�9�*=� >� >� @�A�A�A�A�Ar|c��tjdd��}tjgd���}t||��}d}t	jt|���5|�dd��ddd��dS#1swxYwYdS)Nr�rr�z9Extending a 1-D Akima interpolator is not yet implementedr~)rHrbrVrr�r
�NotImplementedError�extend)r3r5r4r�rs     r;�test_extendz#TestAkima1DInterpolator.test_extend�s����I�b�#�����H�E�E�E�F�F��
 ��A�
&�
&��K��
�]�.�e�
<�
<�
<�	"�	"��I�I�d�D�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s�A=�=B�BN)rxryrzr�r�r�r�r�r{r|r;r�r��sb������$�$�$�$�$�$�"$�$�$�2B�B�B�"�"�"�"�"r|r�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestPPolyCommonc���tjddgddgddgg��}tjgd���}ttt||��ttt
||��dS)NrgrSr(rTrRrL)rrgr+)rHrVrWrXrr)r3r"r5s   r;�test_sort_checkzTestPPolyCommon.test_sort_check�se���H�q�!�f�q�!�f�q�!�f�-�.�.���H�[�[�[�!�!���j�%��A�.�.�.��j�%��A�.�.�.�.�.r|c��tt��5tddgddg��ddd��dS#1swxYwYdS)Nrgr(r)rWrXrr�s r;�test_ctor_czTestPPolyCommon.test_ctor_c�s���
�:�
&�
&�	"�	"��1�a�&�1�a�&�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s�7�;�;c��tj�d��d}tjtjddtj�d��zdf��}dtj�|dzt
|��dz
dd��zdz
}ttfD�]}||dd�dd�f|dd���}|�	|dd�dd�f|dd���||dd�dd�f|dd���}|�	|dd�dd�f|dd���|||��}t|j|j��t|j|j��t|j|j��t|j|j����
dS)	NrBrRrr�rGr(rgr�)
rHrIrJ�uniquer!�randr�rrr�rr"r5)r3�orderr5r"�cls�pp�pp2�pp3s        r;r�zTestPPolyCommon.test_extend�s���
�	���t�������I�b�e�A�r�B�I�N�N�2�$6�$6�6��:�;�<�<��
�b�i�n�n�U�1�W�c�!�f�f�Q�h��1�5�5�5��9���5�>�	-�	-�C���Q�q�q�q��!��t�W�a����f�%�%�B��I�I�a����!�"�"��g�q����v�&�&�&��#�a����2�3�3��i��2�3�3��(�(�C��J�J�q����C�R�C��y�!�C�R�C�&�)�)�)��#�a��)�)�C��r�t�S�U�+�+�+��r�t�S�U�+�+�+��s�u�c�e�,�,�,��s�u�c�e�,�,�,�,�	-�	-r|c��tj�d��tjddd��}tj�dd��}tjddd��}tj�dd��}t
tfD]�}|||��}|||��}|||��}|�||dd���tjdddd	�
��}	tjddd��}
t||	��||	����t||
��||
������dS)NrBrrgrLr(rTrSr,F)�endpoint)	rHrIrJrr�rrr�r)r3r5r"r��c2r��pp1r��pp_comb�xi1�xi2s           r;�test_extend_diff_ordersz'TestPPolyCommon.test_extend_diff_orderss<��
�	���t�����K��1�a� � ���I�N�N�1�a� � ��
�[��A�q�
!�
!��
�Y�^�^�A�q�
!�
!���5�>�
	4�
	4�C��#�a��)�)�C��#�b�"�+�+�C��c�!�Q�i�i�G��N�N�2�r�!�"�"�v�&�&�&��+�a��C�%�8�8�8�C��+�a��C�(�(�C��C�C��H�H�g�g�c�l�l�3�3�3��C�C��H�H�g�g�c�l�l�3�3�3�3�
	4�
	4r|c�J�tj�d��d}tjtj�ddd����}tj�|dz|jddz
dd��}ttfD�]}|||��}||dd�dd�f|dd���}|�	|dd�dd�f|dd���||dd�dd�f|dd���}|�	|dd�dd�f|dd���t|j|j��t|j|j��t|j|j��t|j|j����
dS)NrrRr��rgr(r�)
rHrIrJ�sort�uniformr�r4rrr�rr"r5)r3r�r5r"r�r��p1�p2s        r;�test_extend_descendingz&TestPPolyCommon.test_extend_descendings���
�	���q�������G�B�I�%�%�a��R�0�0�1�1���I�N�N�5�1�9�a�g�a�j�1�n�a��;�;���5�>�	*�	*�C���A�q�	�	�A���Q�q�q�q�"�1�"�u�X�q��"��v�&�&�B��I�I�a����1�2�2��h��"�#�#��'�'�'���Q�q�q�q�"�#�#�v�Y��"�#�#��'�'�B��I�I�a����3�B�3��i��3�B�3��(�(�(��r�t�Q�S�)�)�)��r�t�Q�S�)�)�)��r�t�Q�S�)�)�)��r�t�Q�S�)�)�)�)�	*�	*r|c
� �tj�d��tj�ddddd��}tjtj�d����}tj�dd	��}t
tfD],}|||��}t||��jd
���-t
tfD]�}||d|��}ttj|d����d
��ttj|tj	d������d
��tt|tj	ddgdggt�������dS)NrBr�r�rTrLrhr�rRrS)rRrSrTrLrh).rrrr+r{rbrc皙�����?r�)
rHrIrJr�r�rrrr4rVrWrX�object)r3r"r5�xpr�r�s      r;�
test_shapezTestPPolyCommon.test_shape1sW��
�	���t�����I�N�N�1�b�!�Q��*�*���G�B�I�N�N�2�&�&�'�'��
�Y�^�^�A�q�
!�
!���5�>�	7�	7�C���A�q�	�	�A����2����o�6�6�6�6��5�>�	V�	V�C���A�l�O�Q�'�'�A����!�!�C�&�&�)�)�2�.�.�.����!�!�B�H�S�M�M�"2�"2�3�3�R�8�8�8��*�a���C��:��u�2E�V�)T�)T�)T�U�U�U�U�
	V�	Vr|c	�\�tj�d��tjtj�d����}tj�d��dz}|j|j}}tj�d��}ttfD]}}|||��|||��|||��}	}}dD]T}
t|||
��j|||
����t|||
��j|	||
�����U�~dS)N�90r�)r�r�y�?333333�?rTr�)	rHrIrJr�rXrYrrr)r3r5r"�c_re�c_imr�r�r��p_re�p_im�nus           r;�test_complex_coefz!TestPPolyCommon.test_complex_coefCs��
�	���u�����G�B�I�$�$�R�(�(�)�)���I���W�%�%��3���V�Q�V�d��
�Y�
�
�a�
 �
 ���5�>�	>�	>�C��C��1�I�I�s�s�4��|�|�S�S��q�\�\�T�t�A��
>�
>�����"�b�	�	����R����=�=�=����"�b�	�	����R����=�=�=�=�
>�	>�	>r|c�X�tj�d��tj�dddddd��}|j}tj�d��}d	D�]�}|j|d
z}tjtj�|d
z����}ttfD�],}||||���}t|j	j|||dz�|d|�z||dzd�z��||��}	|d|�|jz|d|zd�z}
t|	j|
��||||����
��||||����
d��||||������||||����d��fD]}t|j|j�����.���d
D]6}ttfD]%}tt|fit|||������&�7dS)Nr�rRrSrTrLrhr�)rgr(�rrgr(rRrgr�r()rUrSrTrL)r"r5r�)rHrIrJr�r4r�rrrr"�
derivative�antiderivativer�rWrXr�)r3r"�c_sr�r��mr5r�r��res�
targ_shaper�s            r;�	test_axiszTestPPolyCommon.test_axisOsc��
�	���u�����I�N�N�1�a��A�q�!�,�,���g��
�Y�
�
�f�
%�
%�� �	2�	2�D����Q���A����	���q��s�+�+�,�,�A��u�~�

2�

2���C��1�4�(�(�(���Q�S�Y� ��d�1�f��-��E�T�E�
�:�S��a����\�I�K�K�K��a��e�e�� ��$��Z�"�(�2�S��4����\�A�
��S�Y�
�3�3�3��3�q�!�$�/�/�/�:�:�<�<��3�q�!�$�/�/�/�:�:�1�=�=��3�q�!�$�/�/�/�>�>�@�@��3�q�!�$�/�/�/�>�>�q�A�A�C�2�2�B�!���!�&�1�1�1�1�	2�

2�""�	L�	L�D��u�~�
L�
L���j�#�K�K���Q�T�1J�1J�1J�K�K�K�K�
L�	L�	Lr|N)rxryrzr�r�r�r�r�r�r�r�r{r|r;r�r��s�������/�/�/�"�"�"�
-�-�-�,4�4�4�2*�*�*�*V�V�V�$
>�
>�
>�L�L�L�L�Lr|r�c�d�eZdZGd�de��ZGd�de��Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestPolySubclassingc��eZdZdS)�TestPolySubclassing.PN�rxryrzr{r|r;�Pr�n��������r|r�c��eZdZdS)�TestPolySubclassing.BNr�r{r|r;�Br�qr�r|r�c�8�tj�d��tjtj�d����}tj�d��}|�||��|�||��fS)NrBrR)rSr()rHrIrJr�r�r�)r3r5r"s   r;�_make_polynomialsz%TestPolySubclassing._make_polynomialstsm��
�	���t�����G�B�I�$�$�Q�'�'�(�(���I���V�$�$���v�v�a��|�|�T�V�V�A�q�\�\�)�)r|c��|���\}}||fD]0}|���}t|j|j���1|���}t|j|j��dSr0)r�r�r�	__class__r�)r3r��bpr��pd�ppas      r;�test_derivativez#TestPolySubclassing.test_derivativezsy���'�'�)�)���B��b��	4�	4�A������B����b�l�3�3�3�3����!�!���R�\�3�=�1�1�1�1�1r|c��tj�d��tjtjdtj�d��df��}tj�t
|����}t||d���}|j�	|��}t|j|j��dS)NrBrr�rg�rR)rHrIrJr�r!r�r�rr��from_splinerr�)r3r5r4�splr�s     r;�test_from_splinez$TestPolySubclassing.test_from_spline�s���
�	���t�����G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���I�N�N�3�q�6�6�"�"���Q��Q�����
�V�
�
��
$�
$���R�\�4�6�*�*�*�*�*r|c��|���\}}|j�|��}t|j|j��|j�|��}t|j|j��dSr0)r�r��from_bernstein_basisrr�r��from_power_basis)r3r�r�r��bp1s     r;�test_conversionsz$TestPolySubclassing.test_conversions�so���'�'�)�)���B��f�)�)�"�-�-���S�]�D�F�+�+�+��f�%�%�b�)�)���S�]�D�F�+�+�+�+�+r|c��gd�}dgdgdgg}|j�||��}t|j|j��dS)Nr�rgr(rR)r��from_derivativesrr�)r3r5r4r�s    r;�test_from_derivativesz)TestPolySubclassing.test_from_derivatives�sM���I�I���S�1�#��s�O��
�V�
$�
$�Q��
*�
*���R�\�4�6�*�*�*�*�*r|N)rxryrzrr�rr�r�r�r�r�rr{r|r;r�r�ms�������
�
�
�
�
�E�
�
�
�
�
�
�
�
�E�
�
�
�*�*�*�2�2�2�+�+�+�,�,�,�+�+�+�+�+r|r�c��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�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�	TestPPolyc���tjddgddgddgg��}tjgd���}t||��}t|d��d	��t|d
��d��dS)NrgrSr(rTrRrL�rr+rg�333333�?��Q��
@�ffffff�?�p=
ף@�rHrVrr�r3r"r5r�s    r;�test_simplezTestPPoly.test_simple�s|���H�q�!�f�q�!�f�q�!�f�-�.�.���H�[�[�[�!�!���!�Q�K�K�����#��� 4�5�5�5����#��� @�A�A�A�A�Ar|c�\�tjddgddgddgg��}tjgd���}t||d�	��}t|d
��d��t|d��d
��t|d
d��d��t|dd��d��dS)NrgrSr(rTrRrLr�periodic�r�g�������?r�333333ӿrg������@gffffff@r	r
s    r;�
test_periodiczTestPPoly.test_periodic�s����H�q�!�f�q�!�f�q�!�f�-�.�.���H�[�[�[�!�!���!�Q�J�/�/�/�����#��� :�;�;�;����$���!K�L�L�L����#�q�	�	�;�/�/�/����$��
�
�$7�8�8�8�8�8r|c�z�tjddgddgddgg��}tjgd���}tjgd���}t||d	�
��dD]\}||j_t||��}||��}ttj|��������]dS)NrgrSr(rTrRrLr)rrbrcr
rrx)rHrVrryrzrrqrp)r3r"r5r�rzr�rls       r;r|zTestPPoly.test_read_only�s����H�q�!�f�q�!�f�q�!�f�-�.�.���H�[�[�[�!�!���x�
�
�
�&�&��
�a��
�+�+�+�+�&�	-�	-�I� )�A�G���a����A��1�T�7�7�D��B�K��%�%�)�)�+�+�,�,�,�,�		-�	-r|c	��d�}tj�d��d}dD�]�}tjtj�dd|dz����}tj�dd|dz|f�	��}tj|��}|ddd�ftj|dz��ddd
�dfz}||��}||z}	tj|j|	��}
|
|z}t||d���}t|dd�ddd
�f|ddd
�d���}
tj�d
dd��}t||��|
|��d���t||d��|
|d��d���|���}|
���}t||��||��d���|���}|
���}tj�d
dd��D]\}}|�
||��}|
�
||��}t||d���t||��||��z
||��||��z
d�����|
���}|���}t|tj|��d������dS)Nc���tj|dz���dd��}tj|dz��}t||��}|ddd�ddd�fS)NrgrU)rHrbr�r$)�powerrQ�kr�s    r;�binom_matrixz/TestPPoly.test_descending.<locals>.binom_matrix�s_���	�%�!�)�$�$�,�,�R��3�3�A��	�%�!�)�$�$�A��a����A��T�T�r�T�4�4�R�4�Z�=� r|rrR�r�r�rGr�rgr�r(��sizerUTrr*r�r)�vIh�%<=r��rTr(��-���q=)rHrIrJr�r��diffrb�dotr�rrr�r��	integrate�roots)r3rrr�r5�ca�h�h_powersr��cap�cdp�cd�par��x_test�pa_d�pd_d�pa_i�pd_ircrd�int_a�int_d�roots_d�roots_as                         r;�test_descendingzTestPPoly.test_descending�s��	!�	!�	!�	�	���q�������%	C�%	C�A����	�)�)�!�R��Q��7�7�8�8�A���"�"�2�q���	�1�~�"�>�>�B����
�
�A���q�q�q��z�R�Y�u�q�y�%9�%9�$�$�B�$��*�%E�E�H���U�#�#�A��x�-�C��&���c�"�"�C��x��B��r�1�$�/�/�/�B��r�!�!�!�T�T�r�T�'�{�A�d�d��d�G��>�>�>�B��Y�&�&�s�B��4�4�F��B�B�v�J�J���6�
�
��?�?�?�?��B�B�v�q�M�M�2�2�f�a�=�=�u�E�E�E�E��=�=�?�?�D��=�=�?�?�D��D�D��L�L�$�$�v�,�,�U�C�C�C�C�
�$�$�&�&�D��$�$�&�&�D��	�)�)�#�r�6�:�:�
,�
,���1����Q��*�*�����Q��*�*����u�5�9�9�9�9����Q���$�$�q�'�'� 1�4�4��7�7�T�T�!�W�W�3D�%*�,�,�,�,�,��h�h�j�j�G��h�h�j�j�G��G�R�W�W�%5�%5�E�B�B�B�B�B�K%	C�%	Cr|c��tj�ddddd��}tjgd���}t	||��}t|jj|j��t|jj|j��t|d��j|jdd���t|tj�dd����jd|jdd�z��|�	��}t|jjd	��|�
��}t|jjd
��dS)NrLr(rgrRrrrT�rTrL�rTr(rgr(rR)rhr(rgr(rR)rHrIr�rVrrr5r4r"r�r�)r3r"r5r��dp�ips      r;�test_multi_shapezTestPPoly.test_multi_shape�s���I�N�N�1�a��A�q�)�)���H�[�[�[�!�!���!�Q�K�K���Q�S�Y���(�(�(��Q�S�Y���(�(�(��Q�Q�s�V�V�\�1�7�1�2�2�;�/�/�/��Q�Q�r�y�~�~�a��+�+�,�,�2�F�Q�W�Q�R�R�[�4H�I�I�I�
�\�\�^�^���R�T�Z��1�1�1�
�
�
�
�
���R�T�Z��1�1�1�1�1r|c�F�tj�d��tjddgddgddggt���}tjgd	���}tj||��}t|d
��d��t|d��d
��dS)NrBrgrSr(rTrRrLr�rrrrr)rHrIrJrVr�r�construct_fastrr
s    r;�test_construct_fastzTestPPoly.test_construct_fast�s���
�	���t�����H�q�!�f�q�!�f�q�!�f�-�U�;�;�;���H�[�[�[�!�!��� ��A�&�&�����#��� 4�5�5�5����#��� @�A�A�A�A�Ar|c�(�tj�d��tj�ddd��}tjtjdtj�d��df��}t
||��}tjd}t|||��}t||��|��t|dd�dd�df||��}t||��dd�df|��dS)	NrBrRr��rr�rg)rr+g��Q��?�333333�?)
rHrIrJr�r�r!r�
_ppoly_eval_1r�
_ppoly_eval_2)r3r"r5r�r��expecteds      r;�#test_vs_alternative_implementationsz-TestPPoly.test_vs_alternative_implementationss���
�	���t�����I�N�N�1�b�"�%�%���G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���!�Q�K�K��
�U�&�
'�� ��A�r�*�*�����"���x�(�(�(� ��1�1�1�Q�Q�Q�q�5��1�b�1�1�����"���a�a�a��c�
�H�-�-�-�-�-r|c��tj�d��tjtjdtj�d��df��}tj�t
|����}t||d���}tj	|��}tj
ddd��}t||��t||����t|�}tj	|��}t||��||����|\}}	}
dD]C}t||	|
|���}tj	|��}t|j|j���DdS)	NrBrr�rgr�r+)NTFr)rHrIrJr�r!r�r�rrr�rrrrrr�)
r3r5r4r�r�rZrd�ppp�tr"r�extrapr�s
             r;r�zTestPPoly.test_from_splinesO��
�	���t�����G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���I�N�N�3�q�6�6�"�"���Q��Q�����
�
�s�
#�
#��
�[��A�s�
#�
#�����2����b�#���/�/�/�
�S�M�����"�"�����B�����2���'�'�'����1�a�)�	7�	7�F���1�a�V�4�4�4�A��!�!�$�$�A�����
�6�6�6�6�	7�	7r|c�*�tj�d��tjgd�g��j}tjgd�g��j}tjddgg��j}tjddg��}t||��}t||��}t||��}t
|���j|j��t
|�d��j|j��dS)	NrB)rSrRr(rg)r�rLr(�rLrrgr()	rHrIrJrVr�rrr�r")r3r"�dc�ddcr5r��dpp�ddpps        r;�test_derivative_simplez TestPPoly.test_derivative_simple(s���
�	���t�����H�l�l�l�^�$�$�&��
�X�}�}�}�o�
&�
&�
(���h����'�(�(�*���H�a��V����
�1�a�[�[���B��l�l���S�!�}�}����
�
���)�3�5�1�1�1���
�
�a�(�(�*�D�F�3�3�3�3�3r|c	��tj�d��tjtjdtj�d��df��}tj�t
|����}t||d���}tj	|��}tj
ddd��}tdd��D]+}t|||��t|||�����,dS)NrBrr�rgr�r+rR)rHrIrJr�r!r�r�rrr�rr5rr�r3r5r4r�r�rZ�dxs       r;�test_derivative_evalzTestPPoly.test_derivative_eval6s���
�	���t�����G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���I�N�N�3�q�6�6�"�"���Q��Q�����
�
�s�
#�
#��
�[��A�s�
#�
#����1�+�+�	<�	<�B��B�B�r�2�J�J��b�#�r�(:�(:�;�;�;�;�	<�	<r|c�<�tj�d��tjtjdtj�d��df��}tj�t
|����}t||dd���}tj	|��}tj
ddd��}tdd��D]>}t|||��|�
|��|��d	|fz�
���?dS)NrBrr�rgrT�rRrr+r�zdx=%drM)rHrIrJr�r!r�r�rrr�rr5rr�rNs       r;r�zTestPPoly.test_derivativeBs���
�	���t�����G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���I�N�N�3�q�6�6�"�"���Q��Q�!�$�$�$��
�
�s�
#�
#��
�[��A�s�
#�
#����2�,�,�	5�	5�B��B�B�r�2�J�J�(9��
�
�b�(9�(9�"�(=�(=�$+�r�e�O�
5�
5�
5�
5�
5�	5�	5r|c�.�tdggddg��}t|���jtdgdggddg��j��t|���jtdgdggddg��j��dS)Nr,rrg)rrr�r"r5)r3r�s  r;�test_antiderivative_of_constantz)TestPPoly.test_antiderivative_of_constantOs����B�4�&�1�a�&�!�!���Q�%�%�'�'�)�5�1�#��s��a��V�+D�+D�+F�G�G�G��Q�%�%�'�'�)�5�1�#��s��a��V�+D�+D�+F�G�G�G�G�Gr|c�N�tddgggd���}|���}t|jddgddgg��t|jgd���t|�dd��d��t|d��|d��z
d��dS)Nr,r+r�rgrr(r_)rr�rr"r5rr)r3r��qs   r;�#test_antiderivative_regression_4355z-TestPPoly.test_antiderivative_regression_4355Us����B��9�+�y�y�y�)�)��
�������Q�S�A�s�8�a��V�,�-�-�-��Q�S�)�)�)�$�$�$�����A�q�)�)�3�/�/�/����!���q�q��t�t��S�)�)�)�)�)r|c��tj�d��tjgd�gd�g��j}tjgd�gd�g��j}tjgd�gd�g��j}tjgd���}t||��}|���}|�d	��}|���}t|j|��t|j	j|j��t|j	j|j��t|j	j|j��dS)
NrB)rRr(rg)rr��?)rgrgrgr)rrrY��?)��?gUUUUUU�?r+rr)rrg�?rZg�����*�?)rr[rgr()
rHrIrJrVr�rr�rr5r")	r3r"�ic�iicr5r��ipp�iipp�iipp2s	         r;�test_antiderivative_simplez$TestPPoly.test_antiderivative_simple^s=��
�	���t����
�H�i�i�i����0�1�1�3���X�|�|�|�%=�%=�%=�>�
?�
?�
A���h�-�-�-�H�H�H�J�K�K�KL�	��H�\�\�\�"�"��
�1�a�[�[�����!�!��� � ��#�#���"�"�$�$�����q�!�!�!�������&�&�&�����#�%�(�(�(����	�3�5�)�)�)�)�)r|c
���tj�d��tjddd��dz}tj�t|����}t
||dd���}tj|��}tdd��D]�}|�
|��}|�|��}t|j
|j
��t|��D]x}|�|��}d	}	|	|jdd
�zd|	z
|jdd�zz}
t||jdd���||
��dd||fz�
���y��dS)NrBrrgrGr(rTrRr�rrUr�z
dx=%d k=%d)r�r�)rHrIrJrr�r�rrr�r5r�r�rr"r5)r3r5r4r�r�rOr^r�r�rr�s           r;�!test_antiderivative_vs_derivativez+TestPPoly.test_antiderivative_vs_derivativevsy��
�	���t�����K��1�b�!�!�1�$���I�N�N�3�q�6�6�"�"���Q��Q�!�$�$�$��
�
�s�
#�
#����2�,�,�	K�	K�B��#�#�B�'�'�C��.�.��$�$�C��B�D�#�%�(�(�(��2�Y�Y�
K�
K���n�n�Q�'�'�����S�U�3�B�3�Z�<�1�q�5�#�%����)�*;�;�����C�E�!�"�"�I�����H�
�
�%)�<�2�q�'�3I�K�K�K�K�K�

K�	K�	Kr|c�`�tj�d��tjtjdtj�d��df��}tj�t
|����}t||dd���}tj	|��}tdd��D]f}|�|��}t||��}tj
ddd��}t||��t||��d	�
���gdS)NrBrr�rgrTrRr�r+r�r�)rHrIrJr�r!r�r�rrr�r5r�rrrr)	r3r5r4r�r�rOr��spl2rZs	         r;�test_antiderivative_vs_splinez'TestPPoly.test_antiderivative_vs_spline�s	��
�	���t�����G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���I�N�N�3�q�6�6�"�"���Q��Q�!�$�$�$��
�
�s�
#�
#����2�,�,�	'�	'�B��#�#�B�'�'�C��c�2�&�&�D���Q��3�'�'�B��C�C��G�G�U�2�t�_�_�!%�
'�
'�
'�
'�
'�	'�	'r|c�\�tjgd�gd�g��j}tjgd���}t||��}|���}t|d��|d��d���|���}t|j|j��dS)N)r(rgr(r()r(rgrRrRrgA���?g_p��?g:�0�yE>r�)rHrVr�rr�rr�r")r3r"r5r�r6r�s      r;�test_antiderivative_continuityz(TestPPoly.test_antiderivative_continuity�s����H�l�l�l�L�L�L�1�2�2�4���H�[�[�[�!�!���!�Q�K�K��
�
�
�
�
��	���:�����:���T�B�B�B�B��]�]�_�_�����a�c�"�"�"�"�"r|c	�n�tj�d��tjtjdtj�d��df��}tj�t
|����}t||dd���}tj	|��}d\}}|�
||��}|���}t|||��||��z
��t|t|||����d\}}|�
||d	�
��}t|||��||��z
��ttj|�
||d�
���������dS)NrBrr�rgrTrR)r��������?)rrkTrF)rHrIrJr�r!r�r�rrr�rr�rrrrorp)	r3r5r4r�r�rcrd�igr^s	         r;�test_integratezTestPPoly.test_integrate�sm��
�	���t�����G�B�E�!�R�Y�^�^�B�/�/��2�3�4�4���I�N�N�3�q�6�6�"�"���Q��Q�!�$�$�$��
�
�s�
#�
#�����1�
�\�\�!�Q�
�
�����!�!����C�C��F�F�S�S��V�V�O�,�,�,���F�1�a��-�-�.�.�.����1�
�\�\�!�Q�D�\�
1�
1����C�C��F�F�S�S��V�V�O�,�,�,�������a����>�>�?�?�C�C�E�E�F�F�F�F�Fr|c�F�tjgd���}tjddgddgddgddgg��}dD]g}||j_t	||��}|�dd	��}t
tj|��������hdS)
N�rgr(rSr�r�r-��r,rxrgrS)	rHrVryrzrrrrqrp)r3r5r"rzr�rls      r;�test_integrate_readonlyz!TestPPoly.test_integrate_readonly�s����H�Y�Y�Y�����H�r�2�h��c�
�R��I��B�x�@�A�A��&�	-�	-�I� )�A�G���a����A��;�;�q�!�$�$�D��B�K��%�%�)�)�+�+�,�,�,�,�
	-�	-r|c��tjgd���}tjddgddgddgddgg��}t||d���}|���}|d	��|d
��z
}t	|�d
d	��|��t	|�dd��|��t	|�dd
��d|z��t	|�dd��|d��|d��z
��t	|�dd��|d��|d
��z
|d	��z|d��z
��t	|�dd��|d��|d
��z
|d	��z|d��z
��t	|�dd��|d��|d
��z
|d	��z|d��z
d	|zz��t	|�dd��|d��|d��z
��t	|�dd��|d��|d��z
��t	|�dd��|d��|d��z
d|zz
��dS�Nror�r�r-rpr,r
rrSrgr*i�������r(r_r`r�rTg/@�rrUrRi����)rHrVrr�rr�r3r5r"r��I�
period_ints      r;�test_integrate_periodicz!TestPPoly.test_integrate_periodic�s����H�Y�Y�Y�����H�r�2�h��c�
�R��I��B�x�@�A�A���!�Q�J�/�/�/��
�������Q�q�T�T�A�A�a�D�D�[�
�����A�q�)�)�:�6�6�6�����C��,�,�j�9�9�9�����C��,�,�a�*�n�=�=�=�����C��-�-�q�q��v�v���#����?�?�?�����C��+�+�Q�Q�q�T�T�A�A�a�D�D�[�1�1�Q�4�4�-?�!�!�C�&�&�-H�I�I�I�����H�f�5�5���!���q�q��t�t��a�a��d�d�*�Q�Q�s�V�V�3�	5�	5�	5�����C��0�0���!���q�q��t�t��a�a��d�d�*�Q�Q�s�V�V�3�a�*�n�D�	F�	F�	F�	����A�r�*�*�A�A�a�D�D�1�1�Q�4�4�K�8�8�8�����B��,�,�a�a��d�d�Q�Q�q�T�T�k�:�:�:�����A�s�+�+�Q�Q�q�T�T�A�A�a�D�D�[�1�z�>�-I�J�J�J�J�Jr|c�@�tjddd��dz}tjd|z��}t||dd���}t	j|��}|���}||dk|d	kz}t|t|��d
���dS)NrrgrFr(rGrRrRgV瞯Ҽg�?r�r�)	rHrr
rrr�r rr)r3r5r4r�r�rcs      r;�
test_rootszTestPPoly.test_roots�s����K��1�b�!�!�1�$���F�2�a�4�L�L���Q��Q�!�$�$�$��
�
�s�
#�
#���H�H�J�J��
�q�I�~�!�y�.�1�2����6�#�;�;�U�3�3�3�3�3�3r|c���tjddgddgddgg��j}tjgd���}t||��}t	|���ddtjdg��d}|���}|ddd�fxx|z
cc<t||��}t	|�|��ddtjdg��dS)	NrUr[r)rr�r=r,r�g333333�?r-rg)	rHrVr�rrr rnrK�solve)r3r"r5r��const�c1r�s       r;�test_roots_idzerozTestPPoly.test_roots_idzero�s���
�H�r�4�j�1�a�&�2�t�*�5�6�6�8���H�'�'�'�(�(��
�1�a�[�[���2�8�8�:�:� �#�r�v�z�:�	<�	<�	<���
�V�V�X�X��
�1�a�a�a�4����E������B��l�l���3�9�9�U�+�+� �#�r�v�z�:�	<�	<�	<�	<�	<r|c��dgdgg}ddg}t||��}t|���dtjg��t|�d��dtjg��t|�d��g��ddgddgg}gd�}t||��}t|���dtjdtjg��t|�d��dtjdtjg��t|�d��g��dS)Nrrgr�)rrr rHrnr}r
s    r;�test_roots_all_zerozTestPPoly.test_roots_all_zeros���S�1�#�J��
��F���!�Q�K�K���1�7�7�9�9�q�"�&�k�2�2�2��1�7�7�1�:�:��2�6�{�3�3�3��1�7�7�1�:�:�r�*�*�*���V�a��V����I�I���!�Q�K�K���1�7�7�9�9�q�"�&�!�R�V�&<�=�=�=��1�7�7�1�:�:��2�6�1�b�f�'=�>�>�>��1�7�7�1�:�:�r�*�*�*�*�*r|c�"�tjgd�gd�g��j}tjgd���}t||��}t	|���ddg��t	|�d���dg��dS)N)rgrrU)rUrrrr�rFr)rHrVr�rrr �r3r"r5r�s    r;�test_roots_repeatedzTestPPoly.test_roots_repeateds���

�H�j�j�j�*�*�*�-�.�.�0���H�Z�Z�Z� � ��
�1�a�[�[���2�8�8�:�:��A�w�/�/�/��2�8�8��8�6�6���<�<�<�<�<r|c�<�tjdgdgg��j}tjgd���}t||��}t	|���dg��t	|�d���g��t	|�d��dg��t	|�dd���g��t	|�d��g��t	|�dd���g��dS)NrgrUrr+F)�
discontinuityr_)rHrVr�rrr r}r�s    r;�test_roots_discontzTestPPoly.test_roots_disconts����H�q�c�B�4�[�!�!�#���H�[�[�[�!�!��
�1�a�[�[���2�8�8�:�:��u�-�-�-��2�8�8�%�8�8�8�"�=�=�=�	�2�8�8�C�=�=�3�%�0�0�0��2�8�8�C�u�8�=�=�r�B�B�B��2�8�8�C�=�=�"�-�-�-��2�8�8�C�u�8�=�=�r�B�B�B�B�Br|c��tj�d��d}dD�]�}tdd��D�]r}tjtjddtj�d��zdf��}dtj�|dzt|��dz
dd	��zdz
}t||��}dtj���fD]�}|�	|d
|���}td��D]�}	td	��D]�}
||	|
f}|j
dkri||j
z
}|||���dd�|	|
f}||d|�
��dd�|	|
f}
d|�dt|����}t||z
|
zdd|�����������t���t|dkt|����dS)NrBrrxr�r�rGr(rgrRF)r�r�r)r�r��(z) r = r�r�r))rHrIrJr5r�r!r�r�rr}r�reprrr)r3�numr�r�r5r"r�r4rc�i�j�rr�val�cmpval�msgs               r;�test_roots_randomzTestPPoly.test_roots_random.s��
�	���t������(�	=�	=�K��q�"���
=�
=���I�b�e�A�r�B�I�N�N�2�,>�,>�'>��$B�C�D�D���b�i�n�n�U�1�W�c�!�f�f�Q�h��1�=�=�=��A���1�a�[�[���R�Y�-�-�/�/�0�=�=�A�����%�[��Q�Q�A�"�1�X�X�=�=��!&�q���
=�
=�A�!"�1�Q�3��B�!�w��{�{� #�r�w���&(�b���&E�&E�&E�a�a�a��!�e�&L��)+��B�1�8C�*E�*E�*E�EF�Q�Q�q��U�*L���7B�{�{�D��H�H�H�&N�� /��Q��&�0@�!�$�8;�!=�!=�!=�!=��
=�=�=�
=�,	��c�	�4��9�9�%�%�%�%�%r|c
��tj�d��tdd��D�]�}tj�|dd��}|dkr
d|dd�ddf<dtj���fD�]:}tj|jt���}tj	||��|dkr4ttj|��������rd}d}t|��D]A}|||df||dz
|z
zzz
}|t||df||dz
|z
zz��z
}�Btjd	�
��5||z}ddd��n#1swxYwY|���}|tj|��}t!|dd�����<���dS)
NrBrgr��rR)rgr(rgrr��ignore)�invalidg�����|�=r�)rHrIrJr5r�r�r4�complexr �
_croots_poly1rrorp�abs�errstater2r)r3rr"r4�wr��cresr�s        r;�test_roots_crootszTestPPoly.test_roots_crootsMs���
�	���t�����q�"���	4�	4�A��	���q�!�S�)�)�A��A�v�v�"��!�!�!�A�a�%�����)�)�+�+�,�
4�
4���H�Q�W�G�4�4�4���$�Q��*�*�*���6�6��B�H�Q�K�K�O�O�-�-�.�.�.�������q���8�8�A��1�Q�t�V�9�q�1�Q�3�q�5�z�1�1�C��C��!�D�&�	�A��!��A��J� 6�7�7�7�D�D��[��2�2�2� � ��4�K�C� � � � � � � � � � � ���� � � � ��i�i�k�k���2�8�C�=�=�.�)����Q�U�3�3�3�3�3�#
4�	4�	4s� E2�2E6�9E6c	�0�tjgd�g��j}tjddg��}dD�]�}t|||���}|���}|���}|dur�t
tj|ddg���������t
tj|ddg���������t
tj|ddg���������t|�
��dg���� t|ddg��d	d
g��t
tj|ddg���������t
tj|ddg���������t|�
��ddg�����dS)Nrrrg�TFNrF皙������皙�����?g�G�z��?g�z�G�ʿrU)
rHrVr�rr�r�rrorprr r�any)r3r"r5r�r��pp_d�pp_is       r;�test_extrapolate_attrzTestPPoly.test_extrapolate_attrks����H�j�j�j�\�"�"�$���H�a��V����.�	5�	5�K��q�!��5�5�5�B��=�=�?�?�D��$�$�&�&�D��e�#�#������T�3�K���1�1�5�5�7�7�8�8�8������t�S�k�!2�!2�3�3�7�7�9�9�:�:�:������t�S�k�!2�!2�3�3�7�7�9�9�:�:�:��R�X�X�Z�Z�!��-�-�-�-����D�#�;���(�H�1E�F�F�F��B�H�T�T�4��+�%6�%6�7�7�;�;�=�=�=�>�>�>��B�H�T�T�4��+�%6�%6�7�7�;�;�=�=�=�>�>�>�����
�
�Q��G�4�4�4�4�	5�	5r|N)rxryrzrrr|r1r7r:rAr�rLrPr�rTrWrardrgrirmrqryr{r�r�r�r�r�r�r�r{r|r;rr�s�������B�B�B�	9�	9�	9�
-�
-�
-�/C�/C�/C�b
2�
2�
2�B�B�B�.�.�.�7�7�7�.4�4�4�
<�
<�
<�5�5�5�H�H�H�*�*�*�*�*�*�0K�K�K�0'�'�'� #�#�#�G�G�G�*
-�
-�
-�K�K�K�0	4�	4�	4�<�<�<�&+�+�+� 
=�
=�
=�
C�
C�
C�&�&�&�>4�4�4�<5�5�5�5�5r|rc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�	TestBPolyc�h�ddg}dgg}t||��}t|d��d��dS)NrrgrRrbr��rr�r3r5r"r�s    r;rzTestBPoly.test_simple�s?��
��F���S�E��
�1�a�[�[�����3����$�$�$�$�$r|c�l�ddg}dgdgg}t||��}t|d��d��dS)NrrgrRrbggfffff@r�r�s    r;�test_simple2zTestBPoly.test_simple2�sC��
��F���S�1�#�J��
�1�a�[�[�����3����0�0�0�0�0r|c�p�ddg}dgdgdgg}t||��}t|d��d��dS)NrrgrRrSrcg433333@r�r�s    r;�test_simple3zTestBPoly.test_simple3�sR��
��F���S�1�#��s�O��
�1�a�[�[�����3���9�	;�	;�	;�	;�	;r|c�t�ddg}dgdgdgdgg}t||��}t|d��d��dS)Nrrgr(rg:�O��n�?r�r�s    r;�test_simple4zTestBPoly.test_simple4�sY��
��F���S�1�#��s�Q�C� ��
�1�a�[�[�����3���"(�	)�	)�	)�	)�	)r|c�x�ddg}dgdgdgdgdgg}t||��}t|d��d��dS)Nrrgr�r(rg��	h"l@r�r�s    r;�test_simple5zTestBPoly.test_simple5�s]��
��F���S�1�#��s�Q�C�!��%��
�1�a�[�[�����3���"(�	)�	)�	)�	)�	)r|c��gd�}ddgddgddgg}t||d���}t|d��d��t|d	��d
��t|dd��d��t|d	d��d
��dS)N�rrgrRrRrr(r
rg333333@gH�z�G�?g��������[��(\�?rg��������rr�r�s    r;rzTestBPoly.test_periodic�s����I�I����V�a��V�a��V�$��
�1�a�Z�
0�
0�
0�����3����,�,�,����4���.�1�1�1����3��
�
�H�-�-�-����4����[�1�1�1�1�1r|c	��tj�d��d}dD�]7}tjtj�dd|dz����}tj�dd|dz|f���}|ddd	����}t
||d
���}t
|dd�ddd	�f|ddd	�d
���}tj�dd
d��}t||��||��d���t||d��||d��d���|���}	|���}
t|	|��|
|��d���|�	��}|�	��}tj�dd
d��D]\}
}|�
|
|��}|�
|
|��}t||d���t||��||
��z
||��||
��z
d�������9dS)NrrRrr�rgr�rbrrUTrr*r�r)rr�rr)rHrIrJr�r�rKrrr�r�r)r3rr�r5r!r&r'r�r(r)r*r+r,rcrdr-r.s                 r;r1zTestBPoly.test_descending�sX��
�	���q�������	,�	,�A����	�)�)�!�R��Q��7�7�8�8�A���"�"�4��E�A�I�q�>�"�B�B�B��D�D�b�D������B��r�1�$�/�/�/�B��r�!�!�!�T�T�r�T�'�{�A�d�d��d�G��>�>�>�B��Y�&�&�s�B��4�4�F��B�B�v�J�J���6�
�
��?�?�?�?��B�B�v�q�M�M�2�2�f�a�=�=�u�E�E�E�E��=�=�?�?�D��=�=�?�?�D��D�D��L�L�$�$�v�,�,�U�C�C�C�C�
�$�$�&�&�D��$�$�&�&�D��	�)�)�#�r�6�:�:�
,�
,���1����Q��*�*�����Q��*�*����u�5�9�9�9�9����Q���$�$�q�'�'� 1�4�4��7�7�T�T�!�W�W�3D�%*�,�,�,�,�,�	
,�/	,�	,r|c�^�tj�ddddd��}tjgd���}t	||��}t|jj|j��t|jj|j��t|d��j|jdd���t|tj�dd����jd|jdd�z��|�	��}t|jjd	��dS)
NrLr(rgrRrrrTr3r4)
rHrIr�rVrrr5r4r"r�)r3r"r5r�r5s     r;r7zTestBPoly.test_multi_shape�s����I�N�N�1�a��A�q�)�)���H�[�[�[�!�!���!�Q�K�K���Q�S�Y���(�(�(��Q�S�Y���(�(�(��Q�Q�s�V�V�\�1�7�1�2�2�;�/�/�/��Q�Q�r�y�~�~�a��*�*�+�+�1��1�7�1�2�2�;�&�	(�	(�	(��\�\�^�^���R�T�Z��1�1�1�1�1r|c��ddg}dgdgdgg}t||��}d}|dz}t||��dd|z
zd|z
zd|zd|z
zzd|z|zz��dS)Nrr(rRrgrSrbr�)r3r5r"r��xvalrRs      r;�test_interval_lengthzTestBPoly.test_interval_length�s���
��F���S�1�#��s�O��
�1�a�[�[�����1�H�����4���!�q��s�)�Q�q�S�/�E�!�G�Q�q�S�M�"A�A��E�!�G�"K�L�L�L�L�Lr|c��gd�}ddgddgddgg}t||��}t|d��d��t|d��d��dS)	Nr�rRrr(r�gG�z�G�?�333333�?r�r�r�s    r;�test_two_intervalszTestBPoly.test_two_intervals�sf���I�I����V�a��V�a��V�$��
�1�a�[�[�����3����-�-�-����3����0�0�0�0�0r|c	��ddg}dgdgdgg}t||��}dD�](}t|||���}|���}|dur}ttj|d	d
g���������ttj|d	d
g�����������ttj|d	d
g���������ttj|d	d
g�����������*dS)Nrr(rRrgrSr�rFr�g������@)rr�rrHrorpr�)r3r5r"r�r��bp_ds      r;r�zTestBPoly.test_extrapolate_attr�s>��
��F���S�1�#��s�O��
�1�a�[�[��.�	?�	?�K��q�!��5�5�5�B��=�=�?�?�D��e�#�#������T�3�K���1�1�5�5�7�7�8�8�8������t�S�k�!2�!2�3�3�7�7�9�9�:�:�:�:��B�H�R�R��s��_�_�5�5�9�9�;�;�;�<�<�<��B�H�T�T�4��+�%6�%6�7�7�;�;�=�=�=�>�>�>�>�	?�	?r|N)rxryrzrr�r�r�r�rr1r7r�r�r�r{r|r;r�r��s�������%�%�%�1�1�1�;�;�;�)�)�)�)�)�)�
2�
2�
2� ,� ,� ,�D2�2�2�M�M�M�1�1�1�
?�
?�
?�
?�
?r|r�c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestBPolyCalculusc��gd�}ddgddgddgg}t||��}|���}t|d��d��t|d��d��t|dd	�
��|dd�
��|dd�
��ggd���t|dd	�
��|dd�
��|dd�
��ggd���dS)
Nr�rRrr(r�r�r�rrg�r�)r�r�r�)rr,r)rr�r)r3r5r"r��bp_ders     r;r�z!TestBPolyCalculus.test_derivatives���I�I����V�a��V�a��V�$��
�1�a�[�[�����������s���X�.�.�.����s���S�)�)�)�	���C�A������3�1�
�
�
�r�r�#�!�}�}�}�E�,�,�,�	.�	.�	.����C�A������3�1�
�
�
�r�r�#�!�}�}�}�E�$���	&�	&�	&�	&�	&r|c�<�tj�d��d\}}tjtj�|����}tj�||dz
f��}t	||��}tj|��}t|��D]n}|���}|���}tj	|d|dd��}t||��||�����odS�NrB�rTr�rgrrUr?)rHrIrJr�rrr�r5r�rr)	r3r�rr5r"r�r��dr�s	         r;�test_derivative_ppolyz'TestBPolyCalculus.test_derivative_ppolys���
�	���t�������1��G�B�I�$�$�Q�'�'�(�(���I���a��1��X�&�&��
�1�a�[�[��
�
'��
+�
+���q���	,�	,�A������B������B���Q�q�T�1�R�5�"�-�-�B��B�B�r�F�F�B�B�r�F�F�+�+�+�+�		,�	,r|c	�$�tj�d��d\}}tjtj�|����}tj�||dz
f��}|���|dzfD]|}t||��}tj|d|dd��}t|��D]8}t|||��|�	|��|�����9�}dS)NrBr�rgrWrrUr?)
rHrIrJr�rKrrr5rr�)	r3r�rr5r"�ccr�r�r�s	         r;�test_deriv_inplacez$TestBPolyCalculus.test_deriv_inplace!s��
�	���t�������1��G�B�I�$�$�Q�'�'�(�(���I���a��1��X�&�&���6�6�8�8�Q��\�*�	A�	A�B��r�1���B���Q�q�T�1�R�5�"�-�-�B��1�X�X�
A�
A�����2�q�	�	�+;�2�=�=��+;�+;�B�+?�+?�@�@�@�@�
A�	A�	Ar|c
�$�gd�}ddgddgg}t||��}|���}tjddd��}t	||��tj|dk|dzdzd|z|dzdz
zd	z��d
d
���dS)Nr�rrgrRr�r(r-r+g�?r�r�r�)rr�rHrr�where)r3r5r"r��bi�xxs      r;raz,TestBPolyCalculus.test_antiderivative_simple.s���
�I�I����V�a��V���
�1�a�[�[��
�
�
�
 �
 ��
�[��A�r�
"�
"�����2������a���Q����),�r��R��U�Q�Y�)?�$�)F�H�H�"��	0�	0�	0�	0�	0�	0r|c���tj�d��tjtj�d����}tj�d��}t	||��}tj|d|dd��}t
|������|��||��dd���dS)	NrBr��rSr�r(rRrrUr)rr�)	rHrIrJr�rrrr�r��r3r5r"r�r�s     r;�test_der_antiderz"TestBPolyCalculus.test_der_antiderBs���
�	���t�����G�B�I�$�$�R�(�(�)�)���I���]�+�+��
�1�a�[�[��
�[��1��q��u�c�
*�
*���8��)�)�+�+�6�6�8�8��<�<���2���U��	8�	8�	8�	8�	8�	8r|c��tj�d��tjtj�d����}tj�d��}t	||��}tj|��}tj|d|dd��}t|�	d��|��|�	d��|��dd�	��dS)
NrBr�r�rrUr�r(rr�)
rHrIrJr�rrr�rrr�)r3r5r"r�r�r�s      r;�test_antider_ppolyz$TestBPolyCalculus.test_antider_ppolyLs���
�	���t�����G�B�I�$�$�R�(�(�)�)���I���]�+�+��
�1�a�[�[��
�
'��
+�
+��
�[��1��q��u�b�
)�
)���,��)�)�!�,�,�R�0�0�,��)�)�!�,�,�R�0�0�u�5�	J�	J�	J�	J�	J�	Jr|c��tj�d��tjtj�d����}tj�d��}t	||�����}|jdd�}t||dz
��||dz��dd���dS)	NrBr��rSr�rgrUr�rr�)rHrIrJr�rr�r5rr�s     r;�test_antider_continuousz)TestBPolyCalculus.test_antider_continuousXs���
�	���t�����G�B�I�$�$�R�(�(�)�)���I���W�%�%��
�1�a�[�[�
'�
'�
)�
)��
�T�!�B�$�Z�����2��:�����2��:���U��	@�	@�	@�	@�	@�	@r|c��tj�d��tjtj�d����}tj�d��}t	||��}tj|��}t|�dd��|�dd��dd���dS)NrBr�r�rrgrr�)	rHrIrJr�rrr�rr)r3r5r"r�r�s     r;rmz TestBPolyCalculus.test_integratebs���
�	���t�����G�B�I�$�$�R�(�(�)�)���I���W�%�%��
�1�a�[�[��
�
'��
+�
+������Q��*�*����Q��*�*��U�	D�	D�	D�	D�	D�	Dr|c�`�dgg}ddg}t||��}t|�dd��dd���t||d���}tt	j|�dd������t|�ddd	���dd���dS)
Nrgrr(r-r�r�FrT)rrrrrHro)r3r"r5rd�b1s     r;�test_integrate_extrapz'TestBPolyCalculus.test_integrate_extrapks����S�E��
��F���!�Q�K�K��	����A�q�)�)�2�E�:�:�:�:��1�a�U�
+�
+�
+��������a��+�+�,�,�-�-�-�����Q��t��<�<�b�u�M�M�M�M�M�Mr|c��tjgd���}tjddgddgddgddgg��}tjt	||��d���}|���}|d	��|d
��z
}t
|�d
d	��|��t
|�dd��|��t
|�dd
��d|z��t
|�dd��|d��|d��z
��t
|�dd��|d��|d
��z
|d	��z|d��z
��t
|�dd��|d��|d
��z
|d	��z|d��z
��t
|�dd��|d��|d
��z
|d	��z|d��z
d	|zz��t
|�dd��|d��|d��z
��t
|�dd��|d��|d��z
��t
|�dd��|d��|d��z
d|zz
��dSrs)rHrVrr�rr�rrrvs      r;ryz)TestBPolyCalculus.test_integrate_periodicxs����H�Y�Y�Y�����H�r�2�h��c�
�R��I��B�x�@�A�A���"�5��A�;�;�J�G�G�G��
�������Q�q�T�T�A�A�a�D�D�[�
�����A�q�)�)�:�6�6�6�����C��,�,�j�9�9�9�����C��,�,�a�*�n�=�=�=�����C��-�-�q�q��v�v���#����?�?�?�����C��+�+�Q�Q�q�T�T�A�A�a�D�D�[�1�1�Q�4�4�-?�!�!�C�&�&�-H�I�I�I�����H�f�5�5���!���q�q��t�t��a�a��d�d�*�Q�Q�s�V�V�3�	5�	5�	5�����C��0�0���!���q�q��t�t��a�a��d�d�*�Q�Q�s�V�V�3�a�*�n�D�	F�	F�	F�	����A�r�*�*�A�A�a�D�D�1�1�Q�4�4�K�8�8�8�����B��,�,�a�a��d�d�Q�Q�q�T�T�k�:�:�:�����A�s�+�+�Q�Q�q�T�T�A�A�a�D�D�[�1�z�>�-I�J�J�J�J�Jr|c��dgg}ddg}t||��}tjddd��}t|�d��|��|���|��dd���t|�d��|��|�d��|��dd���dS)Nrgrr?rUrr�)rrHrrr�r�)r3r"r5rdr�s     r;�test_antider_negz"TestBPolyCalculus.test_antider_neg�s����S�E��
��F���!�Q�K�K��
�[��A�r�
"�
"���(����R�(�(��,�,�.@�a�.>�.>�.@�.@��.D�.D�"��	0�	0�	0�	0������Q����+�+�-A�Q�-=�-=�b�-A�-A�"�-E�-E�"��	0�	0�	0�	0�	0�	0r|N)rxryrzr�r�r�rar�r�r�rmr�ryr�r{r|r;r�r�s�������&�&�&�
,�
,�
,�A�A�A�0�0�0�(8�8�8�
J�
J�
J�@�@�@�D�D�D�N�N�N�K�K�K�00�0�0�0�0r|r�c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestPolyConversionsc�$�gd�}ddgddgddgg}t||��}tj|��}tj|��}ddg}t	||��||����t	||��||����dS)	Nr�rRr(rgr�rSrb�ffffff�?)rrr�r�r)r3r5r"r�r�r�r�s       r;�test_bp_from_ppz#TestPolyConversions.test_bp_from_pp�s����I�I����V�a��V�a��V�$��
�1�a�[�[��
�
#�B�
'�
'���(��,�,���3�Z�����2�����2���'�'�'����2�����B���(�(�(�(�(r|c�4�tj�d��d\}}tjtj�|����}tj�||dz
f��}t	||��}tj|��}t	j|��}tj|d|dd��}t||��||����t||��||����dSr�)
rHrIrJr�rrr�r�rr)	r3r�rr5r"r�r�r�r�s	         r;�test_bp_from_pp_randomz*TestPolyConversions.test_bp_from_pp_random�s���
�	���t�������1��G�B�I�$�$�Q�'�'�(�(���I���a��1��X�&�&��
�1�a�[�[��
�
#�B�
'�
'���(��,�,��
�[��1��q��u�b�
)�
)�����2�����2���'�'�'����2�����B���(�(�(�(�(r|c�$�gd�}ddgddgddgg}t||��}tj|��}tj|��}ddg}t	||��||����t	||��||����dS)Nr�rRrgrSr(rbr�)rrr�r�r)r3r5r"r�r�r�r�s       r;�test_pp_from_bpz#TestPolyConversions.test_pp_from_bp�s����I�I����V�a��V�a��V�$��
�1�a�[�[��
�
'��
+�
+���$�R�(�(���3�Z�����2�����2���'�'�'����2�����B���(�(�(�(�(r|c�f�gd�}ddgddgddgg}t||��}tt��5tj|��ddd��n#1swxYwYt	||��}tt��5t	j|��ddd��dS#1swxYwYdS)Nr�rRrgrSr()rrW�	TypeErrorr�rr�)r3r5r"r�r�s     r;�test_broken_conversionsz+TestPolyConversions.test_broken_conversions�s6���I�I����V�a��V�a��V�$��
�1�a�[�[��
�9�
%�
%�	+�	+��&�r�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+��1�a�[�[��
�9�
%�
%�	'�	'��"�2�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's#�A�A�A�B&�&B*�-B*N)rxryrzr�r�r�r�r{r|r;r�r��sP������	)�	)�	)�)�)�)�	)�	)�	)�
'�
'�
'�
'�
'r|r�c�n�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�TestBPolyFromDerivativesc�\�tjdddgdg��}t|ddg��dS)Nrrgr(rRr-r��r�_construct_from_derivativesr)r3rs  r;�test_make_poly_1z)TestBPolyFromDerivatives.test_make_poly_1�s6��
�
.�q�!�a�S�1�#�
>�
>����R��H�%�%�%�%�%r|c��tjddddgdg��}t|gd���tjddddgdg��}t|gd���tjdddgddg��}t|gd���dS)Nrrg)r,r,r,r(rR)r-r�r,)r-g�r,r��r3rr��c3s    r;�test_make_poly_2z)TestBPolyFromDerivatives.test_make_poly_2�s���
�
.�q�!�a��V�a�S�
A�
A����L�L�L�)�)�)��
.�q�!�a��V�a�S�
A�
A����N�N�N�+�+�+��
.�q�!�a�S�1�a�&�
A�
A����N�N�N�+�+�+�+�+r|c��tjddgd�dg��}t|gd���tjdddggd���}t|gd���tjddddgdd	g��}t|gd
���dS)Nrrg)rgr(rRrS)r,竪�����?g������@rD)rSr(rR)r,gUUUUUU	@g������
@rDr(rR)r,r�r�rDr�r�s    r;�test_make_poly_3z)TestBPolyFromDerivatives.test_make_poly_3�s���
�
.�q�!�Y�Y�Y���
D�
D����1�1�1�2�2�2��
.�q�!�a�S�)�)�)�
D�
D����2�2�2�3�3�3��
.�q�!�a��V�a��V�
D�
D����.�.�.�/�/�/�/�/r|c��tj�d��tjdtj�d��f}tjdtj�d��f}t	jdd||��}t	|dd�dfddg��}t
d��D]H}t|d��|d��g||||g��|���}�IdS)Nr�rrTrgrLr�r,)	rHrIrJr!rr�r5rr�)r3�ya�ybr"r�r�s      r;�test_make_poly_12z*TestBPolyFromDerivatives.test_make_poly_12�s���
�	���u����
�U�1�b�i�&�&�q�)�)�)�
*��
�U�1�b�i�&�&�q�)�)�)�
*���-�a��B��;�;��
�1�Q�Q�Q��W�:��1�v�
&�
&���q���	!�	!�A��R�R��V�V�R�R��V�V�,�r�!�u�b��e�n�=�=�=������B�B�	!�	!r|c�x�tj�d��ddg}d\}}tj�|ddddf��}t||��}tj||��}t||��}tjddd��}t
||��||����dS)	Nr�rrg)r�rTr(rRrSr�)rHrIrJr�
_raise_degreerr)	r3r5rr�r"r�rr�r�s	         r;�test_raise_degreez*TestBPolyFromDerivatives.test_raise_degree�s���
�	���u����
��F�����1��I���a��A�q�!�_�-�-��
�1�a�[�[��
�
 ��A�
&�
&���B��l�l��
�[��A�r�
"�
"�����2�����B���(�(�(�(�(r|c�N�tttjddgdg��dS)Nrrg�rWrXrr�r�s r;�
test_xi_yiz#TestBPolyFromDerivatives.test_xi_yis%���j�%�"8�1�a�&�1�#�F�F�F�F�Fr|c�`�gd�}dgdgdgg}tttj||��dS)N�rrrgrr)r3rZr#s   r;�test_coords_orderz*TestBPolyFromDerivatives.test_coords_orders9��
�Y�Y���c�A�3���_���j�%�"8�"�b�A�A�A�A�Ar|c�
�gd�}ddgdgddgddgg}tj||��}t|jjdk��|���}dD](}t
||��||��gddg���)dS)Nr�r)rSrR)r�rbr,r�gffffff�?r-r`r�)rr�rr"r4r�r)r3rZr#r��ppdr�s      r;�
test_zerosz#TestBPolyFromDerivatives.test_zeros
s���
�\�\���!�f�q�c�A�q�6�A�q�6�
*��
�
#�B��
+�
+�����
�f�$�%�%�%��m�m�o�o��2�	9�	9�B��R�R��V�V�S�S��W�W�-��B�x�8�8�8�8�	9�	9r|c����tj�d��tjd�t	|dz��D����}�fd�t	|dz��D��}||fS)NrBc��g|]
}d|dzz��S)r,r(r{)r1r�s  r;�
<listcomp>z<TestBPolyFromDerivatives._make_random_mk.<locals>.<listcomp>s ��7�7�7�q��a��d��7�7�7r|rgc�N��g|]!}tj������"Sr{)rHrI)r1r�rs  �r;rz<TestBPolyFromDerivatives._make_random_mk.<locals>.<listcomp>s)���
6�
6�
6�a�b�i���q�!�!�
6�
6�
6r|)rHrIrJror5�r3r�rrZr#s  `  r;�_make_random_mkz(TestBPolyFromDerivatives._make_random_mksk���
�	���t����
�Z�7�7�E�!�A�#�J�J�7�7�7�
8�
8��
6�
6�
6�
6�5��1��:�:�
6�
6�
6���2�v�
r|c�
��d\}}|�||��\}}tj||��}t|dz��D];�t	||���fd�|D����|���}�<dS)N�rTr�r(c� ��g|]
}|���Sr{r{)r1�yyr�s  �r;rz;TestBPolyFromDerivatives.test_random_12.<locals>.<listcomp>$s���$<�$<�$<�2�R��Y�$<�$<�$<r|)rrr�r5rr�)r3r�rrZr#r�r�s      @r;�test_random_12z'TestBPolyFromDerivatives.test_random_12s�������1��%�%�a��+�+���B�
�
#�B��
+�
+���1�a�4�[�[�	!�	!�E��B�B�r�F�F�$<�$<�$<�$<��$<�$<�$<�=�=�=������B�B�	!�	!r|c	��d\}}|�||��\}}tttjfit||d�����dS)Nrr�rZr#�orders)rrWrXrr�r�rs     r;�test_order_zeroz(TestBPolyFromDerivatives.test_order_zero'sc�����1��%�%�a��+�+���B��j�%�"8�	0�	0��"��A�.�.�.�	0�	0�	0�	0�	0r|c
���d\}}|�||��\}}tj||d|zdz
���tttjfit||d|z�����dS)Nrr(rg�rr)rrr�rWrXr�rs     r;�test_orders_too_highz-TestBPolyFromDerivatives.test_orders_too_high-s������1��%�%�a��+�+���B�
��r�2�a��c�!�e�4�4�4�4��j�%�"8�	2�	2��"��A�a�C�0�0�0�	2�	2�	2�	2�	2r|c
�\�d\}}|�||��\}}d}tj|||���}t|dzdz��D]N}t	||dd�dz
��||dd�dz����|���}�Ot
tj||dd�dz
��||dd�dz������d}tj|||���}t|dz��D]N}t	||dd�dz
��||dd�dz����|���}�Ot
tj||dd�dz
��||dd�dz������dS)	NrrTrr(rgrUrrL)	rrr�r5rr�rrH�allclose)r3r�rrZr#r�r�r�s        r;�test_orders_globalz+TestBPolyFromDerivatives.test_orders_global5s������1��%�%�a��+�+���B���
�
#�B��5�
9�
9�
9���u�a�x��z�"�"�	!�	!�A��B�B�r�!�B�$�x�%�/�0�0�"�"�R��"��X��5E�2F�2F�G�G�G������B�B��B�K���2�a��d�8�e�#3� 4� 4�b�b��A�b�D��E�9I�6J�6J�K�K�K�L�L�L�
��
�
#�B��5�
9�
9�
9���u�a�x���	!�	!�A��B�B�r�!�B�$�x�%�/�0�0�"�"�R��"��X��5E�2F�2F�G�G�G������B�B��B�K���2�a��d�8�e�#3� 4� 4�b�b��A�b�D��E�9I�6J�6J�K�K�K�L�L�L�L�Lr|c
��d\}}|�||��\}}d�t|��D��}t|dd���D]�\}}tj|||���}t||dzdz��D]>}	t||dz
��||dz����|���}�?ttj	||dz
��||dz��������dS)N)rhr�c��g|]}|dz��S)rgr{)r1�os  r;rz>TestBPolyFromDerivatives.test_orders_local.<locals>.<listcomp>Qs��*�*�*�A�!�a�%�*�*�*r|rgrUrr(r)
rr5rOrr�rr�rrHr )
r3r�rrZr#rr�r5r�r�s
          r;�test_orders_localz*TestBPolyFromDerivatives.test_orders_localMs�����1��%�%�a��+�+���B�*�*��q���*�*�*���b��2��h�'�'�	C�	C�D�A�q��'��B�v�>�>�>�B��6�!�9��>�A�-�.�.�
%�
%�����1�u�9�
�
�r�r�!�e�)�}�}�=�=�=��]�]�_�_������B�B�q�5�y�M�M�2�2�a�%�i�=�=�A�A�A�B�B�B�B�	C�	Cr|c�4�d\}}tjtj�|dz����}tj�|dz|dddf��}tj||��}t|jjd|z|dddf��dS)N)rhrTrgrLrhr�r()rHr�rIrr�rr"r4)r3r�rrZr#r�s      r;�test_yi_trailing_dimsz.TestBPolyFromDerivatives.test_yi_trailing_dimsYs������1�
�W�R�Y�%�%�a��c�*�*�
+�
+��
�Y�
�
�q��s�A�q�!�Q�/�
0�
0��
�
#�B��
+�
+���R�T�Z�!�A�#�q�!�Q��!2�3�3�3�3�3r|c��tjd��}tjddgdgdgg|���}t	|d��d��tjd��}tjddgdgdgg|���}t	|d��d��d}tjddgdgdgg|���}t	|d��d��d}dS)Nrgrr)rH�int32rr�r�int64)r3rr�s   r;�test_gh_5430z%TestBPolyFromDerivatives.test_gh_5430`s���
��!�����"�A�q�6�Q�C�!��:�f�E�E�E���A�A�a�D�D�!�$�$�$���!�����"�A�q�6�Q�C�!��:�f�E�E�E���A�A�a�D�D�!�$�$�$����"�A�q�6�Q�C�!��:�f�E�E�E���A�A�a�D�D�!�$�$�$����r|N)rxryrzr�r�r�rrrr	rrrrrr!r%r'r+r{r|r;r�r��s������&�&�&�
,�
,�
,�0�0�0�	!�	!�	!�)�)�)�G�G�G�B�B�B�
9�9�9����!�!�!�0�0�0�2�2�2�M�M�M�0
C�
C�
C�4�4�4�����r|r�c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestNdPPolyc��tj�d��tj�dd��}tjddd��}tj�d��}t||f��}||f��}t
|dd�dd�df||�����}t||��dS)NrBrSrTrrgrLr+)	rHrIrJr�rrr>r2r)r3r"r5rZr��v1�v2s       r;�test_simple_1dzTestNdPPoly.test_simple_1dss���
�	���t�����I�N�N�1�a� � ���K��1�c�"�"��
�Y�^�^�C�
 �
 ���A��t����
�Q��u�X�X��
�1�Q�Q�Q�q�q�q��X�;��2�
.�
.�
4�
4�
6�
6����B�����r|c
�@�tj�d��tj�dddd��}tjddd��}tjddd��d	z}tj�d
��}tj�d
��}tjt
|��dg|j���}|�tj	��tj|�dd
d��||ftj
ddgtj���tj||ftj
ddgtj���d|��|���}t#|||f||��}t%||��t'|||f��}dD]V}	|tj||f|	���}t#|||f|||	���}t%||t)|	������WdS)NrBrSrTrLrhrrgr�r(r+r�r��*)N�rr�rrg)rgr)r(rR)r�r(r�rM)rHrIrJr�rr�r�r��fillrnr �evaluate_ndr�rV�intc�c_r2�
_ppoly2d_evalrrr�)
r3r"r5r4rZr#r/r0r�r�s
          r;�test_simple_2dzTestNdPPoly.test_simple_2d�s���
�	���t�����I�N�N�1�a��A�&�&���K��1�c�"�"���K��1�c�"�"�A�%��
�Y�^�^�C�
 �
 ��
�Y�^�^�C�
 �
 ��
�X�s�2�w�w��l�!�'�
2�
2�
2��
����������1�9�9�S�#�q�1�1��q�6��8�Q��F�"�'�:�:�:��5��R��=��8�Q��F�"�'�:�:�:���
	�	�	��X�X�Z�Z��
�1�q�!�f�b�"�
-�
-����B�����A��1�v����@�	6�	6�B���2�5��R��=�R�(�(�(�B��q�1�a�&�"�b�R�8�8�8�B��B��D��H�H�5�5�5�5�5�	6�	6r|c	��tj�d��tj�dddddd��}tjdd	d��}tjdd	d��d
z}tjdd	d��dz}tj�d
��}tj�d
��}tj�d
��}t||||f��}dD]I}	||||f|	���}
t
||||f||||	���}t|
|t|	������JdS)NrBrSrTrLrhr�r�rrgr(r�rR�()N�rrr�rrgr�rgrr)r(rRr)rLrr(r�rM)	rHrIrJr�rr�
_ppoly3d_evalrr�)r3r"r5r4r6rZr#�zir�r�r/r0s            r;�test_simple_3dzTestNdPPoly.test_simple_3d�s7��
�	���t�����I�N�N�1�a��A�q�!�,�,���K��1�c�"�"���K��1�c�"�"�A�%���K��1�c�"�"�A�%��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
���A��1�a�y�!�!���	6�	6�B���B��B�<�B�'�'�'�B��q�1�a��)�R��R�B�?�?�?�B��B��D��H�H�5�5�5�5�5�		6�	6r|c
���tj�d��tj�dddddddd	��}tjd
dd��}tjd
dd��dz}tjd
dd	��d
z}tjd
dd��dz}tj�d��}tj�d��}tj�d��}tj�d��}	t|||||f��}
|
||||	f��}t
|||||f||||	��}t||��dS)NrBrSrTrLrhr�r�r�r�rrgr(rRr�r�)rHrIrJr�rr�
_ppoly4d_evalr)
r3r"r5r4r6r:rZr#rB�uir�r/r0s
             r;�test_simple_4dzTestNdPPoly.test_simple_4d�sB��
�	���t�����I�N�N�1�a��A�q�!�R��4�4���K��1�c�"�"���K��1�c�"�"�A�%���K��1�d�#�#�Q�&���K��1�d�#�#�Q�&��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
���A��1�a��|�$�$��
�Q��B��B��
 �
 ��
�1�q�!�Q��l�B��B��
;�
;����B�����r|c�(�tj�d��tj�dd��}tjddd��}t||f��}|�dg���}t||��}|���}t|j	|j	��|�
dg���}t||��}|�
d��}t|j	|j	��dS)	NrBrSrTrrgrLr�r()rHrIrJr�rrr�rrr"r�)r3r"r5r�r5r��dp1s       r;�
test_deriv_1dzTestNdPPoly.test_deriv_1d�s���
�	���t�����I�N�N�1�a� � ���K��1�c�"�"���A��t�����\�\�a�S�\�
!�
!��
�1�a�[�[���m�m�o�o�����c�e�$�$�$��
�
�!��
�
%�
%��
�1�a�[�[������"�"�����c�e�$�$�$�$�$r|c�j�tj�d��tj�dddddd��}tjdd	d��}tjdd	d��d
z}tjdd	d��dz}t||||f��}t
|�ddd	d
dd��|��}|�d
g�
��}|�d
��}t|j
|j
�dd
dd	dd����t
|�d	ddd
dd��|��}|�gd��
��}|�d	��}t|j
|j
�d
dddd	d����t
|�d
ddd	dd��|��}|�gd��
��}|�d��}t|j
|j
�d
ddddd	����dS)NrBrSrTrLrhr�r�rrgr(r�rRr�r?)rrrR)rHrIrJr�rrr�	transposer�rr"r�)	r3r"r5r4r6r�r�r5rIs	         r;�
test_deriv_3dzTestNdPPoly.test_deriv_3d�s��
�	���t�����I�N�N�1�a��A�q�!�,�,���K��1�c�"�"���K��1�c�"�"�A�%���K��1�c�"�"�A�%���A��1�a�y�!�!���1�;�;�q�!�Q��1�a�0�0�!�
4�
4��
�\�\�a�S�\�
!�
!���m�m�A������������1�a��A�q�9�9�	;�	;�	;��1�;�;�q�!�Q��1�a�0�0�!�
4�
4��
�
�
����
�
+�
+������"�"����������1�a��A�q�9�9�	;�	;�	;��1�;�;�q�!�Q��1�a�0�0�!�
4�
4��
�\�\�Y�Y�Y�\�
'�
'���m�m�A������������1�a��A�q�9�9�	;�	;�	;�	;�	;r|c��tjd��}tjddd��dz}tjddd��dz}tjddd��dz}t||||f��}|�d	��}|�d
��}tj�d��}tj�d��}tj�d��}	t||||	f��||dzz|	dzztd��td��zz��dS)N)rgrgrgrRrSrTrrgrSrTr(rLrR)rgrrS)rr(rr�)	rHr�rrr�rIr�rr)
r3r"r5r4r6r�r6rZr#rBs
          r;�test_deriv_3d_simplez TestNdPPoly.test_deriv_3d_simple�s-��
�G�&�'�'���K��1�c�"�"�A�%���K��1�c�"�"�A�%���K��1�c�"�"�A�%���A��1�a�y�!�!��
�
�
�i�
(�
(��
�
�
�y�
)�
)��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
��
�Y�^�^�B�
�
�����B��B�<�(�(��R��U�
�R��U�*�e�A�h�h�u�Q�x�x�.?�@�	B�	B�	B�	B�	Br|c
��	�tj�d��tj�dddd��}tjddd��dz}tjddd��d	z}|�dd	dd
��}|�|jd|jdd�����}tj
||d	��|�|j��}|�dd	dd
��}|�dd
dd	��}|�|jd|jdd�����}tj
||d	��|�|j��}|�d	dd
d�����}t|||f���	ddgd
dgdd
gddgfD]c}�	�|��}t�	fd�|tdd���gd	z���\}}t||ddt!|������ddS)NrBrSrTr>rurrgr�r(rRrUr5)rr+)rr)r=rcc����||f��Sr0r{)r5r4r�s  �r;�<lambda>z/TestNdPPoly.test_integrate_2d.<locals>.<lambda>(	s���1�1�a��V�9�9�r|g�h㈵��>)�epsrel�epsabs)r�)r�r�r�)rHrIrJr�rrLr�r4rKr �fix_continuityrrr#r�rr�)
r3r"r5r4�cx�rangesrl�ig2�err2r�s
         @r;�test_integrate_2dzTestNdPPoly.test_integrate_2d	sE���
�	���t�����I�N�N�1�a��R�(�(���K��1�d�#�#�Q�&���K��1�d�#�#�Q�&��
�K�K��1�a��#�#��
�Y�Y�q�w�q�z�1�7�1�:�r�
2�
2�
7�
7�
9�
9����b�!�Q�'�'�'��J�J�q�w����
�K�K��1�a��#�#��
�K�K��1�a��#�#��
�Y�Y�q�w�q�z�1�7�1�:�r�
2�
2�
7�
7�
9�
9����b�!�Q�'�'�'��J�J�q�w����
�K�K��1�a��#�#�(�(�*�*��
�A��1�v������'� �&�)���)�"�J�/�1�		2�		2�F�
���V�$�$�B��4�4�4�4�f�$(��T�$B�$B�$B�#C�A�#E�G�G�G�I�C���B��$�T�$(��L�L�
2�
2�
2�
2�
2�		2�		2r|c	� �tj�d��tj�dddddd��}tjdd	d��d	z}tjdd	d��d
z}tjdd	d��dz}t||||f��}tj�d
��}tj�d
��}d\}}	|�||	d���}
|�d��}t|
||f��||	||f��||||f��z
��|�||	d	���}|�d��}
t|||f��|
||	|f��|
|||f��z
��|�||	d
���}|�d��}t|||f��||||	f��||||f��z
��dS)NrBrSrTrLr>rur�rrgr(r�rRr+)rcrr�r@r?r)	rHrIrJr�rr�integrate_1dr�r)r3r"r5r4r6r�r:r9rcrd�px�pax�py�pay�pz�pazs                r;�test_integrate_1dzTestNdPPoly.test_integrate_1d-	s���
�	���t�����I�N�N�1�a��B��B�/�/���K��1�d�#�#�Q�&���K��1�d�#�#�Q�&���K��1�d�#�#�Q�&��
�A��1�a�y�!�!���I�N�N�3�����I�N�N�3�������1�
�^�^�A�q�q�^�
)�
)�����y�)�)�����A�q�6�
�
�C�C��A�q�	�N�N�S�S�!�Q���^�^�$C�D�D�D�
�^�^�A�q�q�^�
)�
)�����y�)�)�����A�q�6�
�
�C�C��A�q�	�N�N�S�S�!�Q���^�^�$C�D�D�D�
�^�^�A�q�q�^�
)�
)�����y�)�)�����A�q�6�
�
�C�C��A�q�	�N�N�S�S�!�Q���^�^�$C�D�D�D�D�Dr|N)rxryrzr1r;rCrGrJrMrOrZrcr{r|r;r-r-rs������� � � �6�6�6�:6�6�6�( � � �(%�%�%�(;�;�;�>B�B�B�&2�2�2�BE�E�E�E�Er|r-c������tjt|���jdf��}t	|��D]�\}}|dks|dkrtj||dd�f<�%tj||��dz
�||�z
�t|�|cxko|�dzknc��t���fd�t�jd��D����}|||dd�f<��|S)z&Evaluate piecewise polynomial manuallyr(rrgNc3�Z�K�|]%}�|�f��jd|z
dz
zzV��&dS)rrgN)r4)r1rr"r�r�s  ���r;r2z _ppoly_eval_1.<locals>.<genexpr>R	sW�����,�,���!�A�#���Q�W�Q�Z��\�!�^�,�,�,�,�,�,�,�,r|)
rHrar�r4rOrn�searchsortedr�sumr5)	r"r5�xpsrrr�r�rcr�r�s	`      @@r;r>r>H	s#�����
�(�C��H�H�a�g�a�j�)�
*�
*�C��3���	�	���2�
��6�6�R�!�V�V��v�C��!�!�!��H���O�A�r�"�"�Q�&����1��I����!���#�#�#�#�Q�q��s�V�#�#�#�#�$�$�$��,�,�,�,�,�,��q�w�q�z�*�*�,�,�,�
,�
,����A�a�a�a�C����Jr|c�t�
���|d}|d}|jd}tj|��}tj|��}tj|��}||k||kz}	|||	<|�|	��}
tj||
��dz
���dt|�����|�|
|����z
}tj	||����
tj
�
��fd�tt|
����D����}|||	<||_|S)z4Evaluate piecewise polynomial manually (another way)rrUrg)�Nc	�n��g|]1}tj�|dd�f�dd��|f����2Sr0)rHr)r1r�V�indxsr�s  ���r;rz!_ppoly_eval_2.<locals>.<listcomp>i	sA���P�P�P�A�r�v�a��1�1�1��g�r�!�!�!�U�1�X�+��7�7�P�P�Pr|)r4rHr2�
empty_like�compressrf�clipr��take�vanderrVr5)r��breaksr�r6rcrd�K�	saveshaper��maskr�r�valuesrlrmr�s             @@@r;r?r?X	s"������q�	�A��r�
�A���Q��A������I�
�8�D�>�>�D�
�-��
�
�C��A�I�$�!�)�$�D��C���J�	
���t�	�	�B��O�F�B�'�'��)�E��J�J�q�#�f�+�+�&�&�E�	�B�
����E�"�"�"�D�
�	�$�!����A�
�X�P�P�P�P�P�P��s�2�w�w���P�P�P�
Q�
Q�F��C��I��C�I��Jr|c�z�|dkrtd���||krdSt||z
dz|��|||z
zzS)z
    d^n (x**y) / dx^n
    rzinvalid derivative orderrg)rXr)r5r4rQs   r;�_dpowryo	sO��	�1�u�u��3�4�4�4�	
�Q����q��A��E�A�I�q�!�!�A��A��J�.�.r|c�f�|�d}tjt|��f|j���}|jdd�\}}tt
||����D�]R\}\}	}
|dd|	cxkr|ddkr*nn'|dd|
cxkr|ddksntj||<�htj|d|	��dz
}tj|d|
��dz
}|	|d|z
}
|
|d|z
}d}t|jd��D]j}t|jd��D]M}||||z
dz
||z
dz
||ft|
||d��zt|||d��zz
}�N�k|||<��T|S)z@
    Straightforward evaluation of 2-D piecewise polynomial
    Nr4r�r(rrUrg�rHr�r�r�r4rO�ziprnrfr5ry)r"r�r��ynewr�rr�nx�ny�joutr5r4�j1�j2�s1�s2r��k1�k2s                  r;r:r:{	s���
�z�
��
�(�C��I�I�<�q�w�
/�
/�
/�C�
�W�R�a�R�[�F�B��!�#�d�D�/�/�2�2�����f�q�!��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+�+��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+���C��I��
�_�R��U�A�
&�
&��
*��
�_�R��U�A�
&�
&��
*��
��A��r��]��
��A��r��]��������
�#�#�	0�	0�B��A�G�A�J�'�'�
0�
0����"�R�%��'�"�R�%��'�"�R�/�0���B��1��.�.�/���B��1��.�.�/�0���
0�
��D�	�	��Jr|c��|�d}tjt|��f|j���}|jdd�\}}}	tt
|||����D�]�\}
\}}}
|dd|cxkr|ddkrRnnO|dd|cxkr|ddkr*nn'|dd|
cxkr|ddksntj||
<��tj|d|��dz
}tj|d|��dz
}tj|d|
��dz
}||d|z
}||d|z
}|
|d|z
}d}t|jd��D]�}t|jd��D]�}t|jd��D]m}||||z
dz
||z
dz
|	|z
dz
|||ft|||d��zt|||d��zt|||d��zz
}�n����|||
<���|S)	z@
    Straightforward evaluation of 3-D piecewise polynomial
    Nr>r�rRrrUrgr(r{)r"r�r�r}�znewr�rrr~r�nzr�r5r4r6r�r��j3r�r��s3r�r�r��k3s                        r;rArA�	s���
�z�
��
�(�C��I�I�<�q�w�
/�
/�
/�C����!���J�B��B�$�S��t�T�%:�%:�;�;�����i�q�!�Q��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+�+��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+�+��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+���C��I��
�_�R��U�A�
&�
&��
*��
�_�R��U�A�
&�
&��
*��
�_�R��U�A�
&�
&��
*��
��A��r��]��
��A��r��]��
��A��r��]��������
�#�#�	4�	4�B��A�G�A�J�'�'�
4�
4������
�+�+�4�4�B��A�b��e�A�g�b��e�A�g�b��e�A�g�b��B�>�?�#�B��B�q�E�2�2�3�#�B��B�q�E�2�2�3�$�B��B�q�E�2�2�3�4�C�C�4�
4���D�	�	��Jr|c���|�d}tjt|��f|j���}|jdd�\}}	}
}tt
||||����D�]|\}\}
}}}|dd|
cxkr|ddkrznnw|dd|cxkr|ddkrRnnO|dd|cxkr|ddkr*nn'|d	d|cxkr|d	dksntj||<��tj|d|
��dz
}tj|d|��dz
}tj|d|��dz
}tj|d	|��dz
}|
|d|z
}||d|z
}||d|z
}||d	|z
}d}t|jd��D]�}t|jd��D]�}t|jd��D]�}t|jd	��D]�}||||z
dz
|	|z
dz
|
|z
dz
||z
dz
||||ft|||d��zt|||d��zt|||d��zt|||d	��zz
}�����Ȍ�|||<��~|S)
z@
    Straightforward evaluation of 4-D piecewise polynomial
    N)rrrrr�rSrrUrgr(rRr{)r"r�r�r}r��unewr�rrrurv�mz�mur�r5r4r6r:r�r�r��j4r�r�r��s4r�r�r�r��k4s                              r;rErE�	s6��
�z�
��
�(�C��I�I�<�q�w�
/�
/�
/�C��W�R�a�R�[�N�B��B��'��D�$��d�(C�(C�D�D�����l�q�!�Q���A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+�+��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+�+��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+�+��A��q��Q�+�+�+�+�"�Q�%��)�+�+�+�+���C��I��
�_�R��U�A�
&�
&��
*��
�_�R��U�A�
&�
&��
*��
�_�R��U�A�
&�
&��
*��
�_�R��U�A�
&�
&��
*��
��A��r��]��
��A��r��]��
��A��r��]��
��A��r��]��������
�#�#�	8�	8�B��A�G�A�J�'�'�
8�
8������
�+�+�8�8�B�#�A�G�A�J�/�/�8�8����"�R�%��'�"�R�%��'�"�R�%��'�"�R�%��'�"�R��2�"M� N�"'��B��1��"6�"6�!7�"'��B��1��"6�"6�!7�#(��B��1��"6�"6�!7�#(��B��1��"6�"6�	!7�8���8�8�
8���D�	�	��Jr|r0)>�
numpy.testingrrrrrrr	r�r
rW�numpyrrr
rrrrH�scipy.interpolaterrrrrrrrrrrrr�
scipy.specialrrr �scipy._lib._gcutilsr!r"�scipy.integrater#r$r&r~r�r�r�r�rr�r�r�r�r-r>rnr?ryr:rArEr{r|r;�<module>r�sz��?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�+�*�*�*�*�*�
�
�
�
�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�����������������������������������&�%�%�%�%�%�%�%�$�$�$�$�$�$�;�;�;�;�;�;�;�;�!�!�!�!�!�!�������\;�\;�\;�\;�\;�\;�\;�\;�~Q�Q�Q�Q�Q�Q�Q�Q�h6�6�6�6�6�6�6�6�G"�G"�G"�G"�G"�G"�G"�G"�TJL�JL�JL�JL�JL�JL�JL�JL�Z,+�,+�,+�,+�,+�,+�,+�,+�^b5�b5�b5�b5�b5�b5�b5�b5�J?�?�?�?�?�?�?�?�DX0�X0�X0�X0�X0�X0�X0�X0�v.'�.'�.'�.'�.'�.'�.'�.'�b`�`�`�`�`�`�`�`�FSE�SE�SE�SE�SE�SE�SE�SE�l
�
�
� .0�V�����.	/�	/�	/�!�!�!�!�H%�%�%�%�P*�*�*�*�*�*r|

Youez - 2016 - github.com/yon3zu
LinuXploit