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 :  /usr/lib/python3/dist-packages/scipy/spatial/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/scipy/spatial/tests/__pycache__/test_kdtree.cpython-311.pyc
�

d�c���R�ddlZddlmZmZmZmZmZmZddlm	Z
ddlZddlmZddl
ZddlmZmZmZmZddlmZddlmZddlZejeeg���d	���Zd
�Zd�ZGd�d
��ZeGd�de����ZeGd�de����ZeGd�de����ZeGd�de����Z Gd�d��Z!Gd�d��Z"Gd�d��Z#eGd�de#����Z$eGd�de#����Z%eGd �d!e#����Z&eGd"�d#e$����Z'eGd$�d%e$����Z(eGd&�d'e$����Z)eGd(�d)e%����Z*eGd*�d+e$����Z+eGd,�d-e$����Z,d.�Z-d/�Z.Gd0�d1��Z/eGd2�d3e/����Z0eGd4�d5e/����Z1eGd6�d7e0����Z2eGd8�d9e1����Z3eGd:�d;e0����Z4eGd<�d=e1����Z5Gd>�d?��Z6d@�Z7dA�Z8dB�Z9dC�Z:GdD�dE��Z;eGdF�dGe;����Z<GdH�dI��Z=eGdJ�dKe=����Z>dL�Z?dM�Z@dN�ZAdO�ZBdP�ZCdQ�ZDdR�ZEdS�ZFdT�ZGdU�ZHdV�ZIdW�ZJdX�ZKdY�ZLdZ�ZMd[�ZNd\�ZOd]�ZPd^�ZQd_�ZRd`�ZSejT�Ue��dakdb�c��dd���ZVde�ZWdf�ZXdg�ZYdh�ZZdi�Z[dj�Z\dk�Z]dl�Z^dm�Z_ejT�`dngdo���dp���ZaeGdq�dr����Zbds�Zcdt�Zddu�ZeejT�`dveeg��dw���Zfdx�ZgdS)y�N)�assert_equal�assert_array_equal�assert_�assert_almost_equal�assert_array_almost_equal�assert_allclose)�raises)�python_implementation)�KDTree�	Rectangle�distance_matrix�cKDTree)�cKDTreeNode��minkowski_distance)�paramsc��|jS�N)�param)�requests �A/usr/lib/python3/dist-packages/scipy/spatial/tests/test_kdtree.py�kdtree_typers
���=��c�<�|j�d��std���ttfD]c}|jdd�dz|jz}|t��vrtd|z���t
||fd|i��}|t��|<�d|S)z�Class decorator to create test cases for KDTree and cKDTree

    Tests use the class variable ``kdtree_type`` as the tree constructor.
    �_Testz)Expected a class name starting with _Test�N�_zDuplicated test name: r)�__name__�
startswith�RuntimeErrorrr�globals�type)�kls�tree�	test_name�	test_cases    r�
KDTreeTestr's���
�<�"�"�7�+�+�H��F�G�G�G���!�)�)���L����$�s�*�T�]�:�	���	�	�!�!��7�)�C�D�D�D���S�F�]�D�,A�B�B�	�(��	�	�)����Jrc��||z
}||d|zkxx|zcc<||d|zkxx|z
cc<t|d|��}|S)N��?g�rr)�a�b�p�boxsize�diff�ds      r�distance_boxr0+sk���q�5�D����g�
�	����'�)�������w��	����7�*�����4��A�&�&�A��Hrc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�ConsistencyTestsc�$�t|||��Srr��selfr*r+r,s    r�distancezConsistencyTests.distance3���!�!�Q��*�*�*rc�|�|j}|j�|d��\}}t|dzt	j||j|z
dz����d}tt	jt	j|j|tj	dd�fz
dzd���|dz|z
k����dS)Nr��:�0�yE>��axis)
�x�kdtree�queryr�np�sum�datar�all�newaxis)r5r=r/�i�epss     r�test_nearestzConsistencyTests.test_nearest6s����F���{� � ��A�&�&���1��A�q�D�"�&�!�D�I�a�L�.�1�)<�"=�"=�>�>�>������r�v�t�y��2�:�q�q�q�=�)9�9�A�=�A�F�F�F��A��c��Q�R�R�S�S�S�S�Src���|j}|j}|j�||��\}}t	j|��}|t	j|��}t|dzt	j||j	|z
dz����d}tt	jt	j|j	|tjdd�fz
dzd���|dz|zk��|��dS)Nr9r:rr;)r=�mr>r?r@�amax�argmaxrrArBrrD)r5r=rI�dd�iir/rErFs        r�test_m_nearestzConsistencyTests.test_m_nearest=s����F���F����"�"�1�a�(�(���B��G�B�K�K���r�y��}�}����A�q�D�"�&�!�D�I�a�L�.�1�)<�"=�"=�>�>�>����R�V�B�F�D�I�a��
�A�A�A�
�.>�$>��#B��K�K�K�a�QR�d�SV�h�V�W�W�YZ�[�[�[�[�[rc	��|j}|j}|j�||jj|���\}}d}d}t||��D]m\}}|tjkr�|dz
}t|dzt
j	||j
|z
dz����t|||zkd||fz���ntt
j	|�
|j
|d��|dz|zk��|��dS)N��k�distance_upper_boundr:rrr9� near_d=%g should be less than %g)r=r/r>r?�n�zipr@�infrrArBrrr6�	r5r=r/rLrMrF�hits�near_d�near_is	         r�test_points_nearz!ConsistencyTests.test_points_nearGs���F���F����"�"�1���
�A�"�N�N���B�����!�"�b�k�k�	V�	V�N�F�F��������A�I�D����	�2�6�1�T�Y�v�5F�3F��2J�+K�+K�L�L�L��F�Q�s�U�N�$F�&�RS��$T�U�U�U�U��R�V�D�M�M�$�)�Q��:�:�Q��T�#�X�E�F�F��M�M�M�M�Mrc	��|j}|j}|j�||jjd|���\}}d}d}t||��D]g\}}|tjkr�|dz
}t||�	||j
|d����t|||zkd||fz���htt
j
|�	|j
|d��||zk��|��dS)Nr�rQr,rRr:rrS)r=r/r>r?rTrUr@rVrr6rBrrrArWs	         r�test_points_near_l1z$ConsistencyTests.test_points_near_l1Us����F���F����"�"�1���
��QR�"�S�S���B�����!�"�b�k�k�	V�	V�N�F�F��������A�I�D����
�
�a���6�9J�A�(N�(N�O�O�O��F�Q�s�U�N�$F�&�RS��$T�U�U�U�U��R�V�D�M�M�$�)�Q��:�:�Q�s�U�B�C�C�T�J�J�J�J�Jrc	�2�|j}|j}|j�||jjt
j|���\}}d}d}t||��D]q\}}|t
jkr�|dz
}t||�	||j
|t
j����t|||zkd||fz���rttj
|�	|j
|t
j��||zk��|��dS)Nr]r:rrrS)r=r/r>r?rTr@rVrUrr6rBrrrArWs	         r�test_points_near_linfz&ConsistencyTests.test_points_near_linfcs���F���F����"�"�1���
���VW�"�X�X���B�����!�"�b�k�k�	V�	V�N�F�F��������A�I�D����
�
�a���6�9J�B�F�(S�(S�T�T�T��F�Q�s�U�N�$F�&�RS��$T�U�U�U�U��R�V�D�M�M�$�)�Q���?�?�!�C�%�G�H�H�$�O�O�O�O�Orc��|j}|j}d}|j�||��\}}|j�|||���\}}t	tj||d|zzk����dS)N皙�����?)rFr)r=rQr>r?rr@rC)r5r=rQrF�d_real�i_realr/rEs        r�test_approxzConsistencyTests.test_approxqs{���F���F������*�*�1�a�0�0�����{� � ��A�3� �/�/���1����q�F�A�c�E�N�*�+�+�,�,�,�,�,rN)
r�
__module__�__qualname__r6rGrNr[r^r`re�rrr2r22s�������+�+�+�T�T�T�\�\�\�N�N�N�K�K�K�P�P�P�-�-�-�-�-rr2c��eZdZd�ZdS)�_Test_randomc�n�d|_d|_tj�d��tj�|j|j��|_|�|jd���|_tj�|j��|_	d|_
d|_dS)N�d���r9��leafsize皙�����?�
)rTrIr@�random�seed�randnrBrr>r=r/rQ�r5s r�setup_methodz_Test_random.setup_method|s���������
�	���t�����I�O�O�D�F�D�F�3�3��	��&�&�t�y�1�&�=�=���������(�(����������rN�rrfrgrwrhrrrjrjzs#����������rrjc���eZdZ�fd�Z�xZS)�_Test_random_farc���t�����tj�|j��dz|_dS)Nrr)�superrwr@rsrurIr=�r5�	__class__s �rrwz_Test_random_far.setup_method�s9���
��������������(�(��+����r�rrfrgrw�
__classcell__�r~s@rrzrz�s8�������,�,�,�,�,�,�,�,�,rrzc� �eZdZd�Zd�Zd�ZdS)�_Test_smallc��tjgd�gd�gd�gd�gd�gd�gd�gd�g��|_|�|j��|_|jj|_|jj|_tj�d	��tj�	d
��|_
d|_d|_dS)
N�rrr�rrr�rrr�rrr�rrr�rrr�rrr�rrrrn�r)rm)
r@�arrayrBrr>rTrIrsrtrur=r/rQrvs rrwz_Test_small.setup_method�s����H�i�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�)�*�*��	��&�&�t�y�1�1�������������
�	���t���������#�#����������rc�X�t|j�dd��d��dS)N�rrrbr)rbr�rr>r?rvs rrGz_Test_small.test_nearest�s6�����!�!�+�q�1�1��	�	�	�	�	rc�d�t|j�dd��ddgddgf��dS)Nr�r9rbg�������?rrr�rvs r�test_nearest_twoz_Test_small.test_nearest_two�sC�����!�!�+�q�1�1��s��a��V�$�	&�	&�	&�	&�	&rN)rrfrgrwrGr�rhrrr�r��sA���������"���
&�&�&�&�&rr�c���eZdZ�fd�Z�xZS)�_Test_small_nonleafc���t�����|�|jd���|_dS)Nrro)r|rwrrBr>r}s �rrwz _Test_small_nonleaf.setup_method�s9���
���������&�&�t�y�1�&�=�=����rrr�s@rr�r��s8�������>�>�>�>�>�>�>�>�>rr�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�Test_vectorization_KDTreec��tjgd�gd�gd�gd�gd�gd�gd�gd�g��|_t|j��|_dS�	Nr�r�r�r�r�r�r�r�)r@r�rBrr>rvs rrwz&Test_vectorization_KDTree.setup_method�sh���H�i�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�)�*�*��	��T�Y�'�'����rc��|j�tjgd�����\}}t	t|t����t	tj|tj����dS�Nr�)	r>r?r@r�r�
isinstance�float�
issubdtype�
signedinteger�r5r/rEs   r�test_single_queryz+Test_vectorization_KDTree.test_single_query�sd���{� � ���)�)�)�!4�!4�5�5���1��
�1�e�$�$�%�%�%���
�a��!1�2�2�3�3�3�3�3rc���|j�tjd����\}}t	tj|��d��t	tj|��d��dS�N�r9rmr�)r9rm�r>r?r@�zerosr�shaper�s   r�test_vectorized_queryz/Test_vectorization_KDTree.test_vectorized_query��[���{� � ���)�!4�!4�5�5���1��R�X�a�[�[�&�)�)�)��R�X�a�[�[�&�)�)�)�)�)rc	��d}|jj|z}|j�tjgd���|���\}}ttj|��|f��ttj|��|f��ttjtj	||d�������ttj||d�|jjk����dS�N�r��rQ)
r>rTr?r@r�rr�rrC�isfinite�r5�s�kkr/rEs     r�$test_single_query_multiple_neighborsz>Test_vectorization_KDTree.test_single_query_multiple_neighbors�s�����
�[�]�1�_���{� � ���)�)�)�!4�!4�� �;�;���1��R�X�a�[�[�2�%�(�(�(��R�X�a�[�[�2�%�(�(�(������A�q�b�c�c�F�+�+�+�,�,�-�-�-����q�!����v����.�/�/�0�0�0�0�0rc�$�d}|jj|z}|j�tjd��|���\}}ttj|��dd|f��ttj|��dd|f��ttjtj	|dd�dd�|d�f������ttj|dd�dd�|d�f|jjk����dS�Nr�r�r�r9rm�
r>rTr?r@r�rr�rrCr�r�s     r�(test_vectorized_query_multiple_neighborszBTest_vectorization_KDTree.test_vectorized_query_multiple_neighbors�������
�[�]�1�_���{� � ���)�!4�!4�� �;�;���1��R�X�a�[�[�1�a��*�-�-�-��R�X�a�[�[�1�a��*�-�-�-������A�a�a�a����Q�B�C�C�i�L�1�1�1�2�2�3�3�3����q����A�A�A��r�s�s��|�t�{�}�4�5�5�6�6�6�6�6rc��d}tjtd���5|j�|d���ddd��dS#1swxYwYdS)N��?zk must be an integer or*��matchr�)�pytestr	�
ValueErrorr>r?)r5r=s  r�test_query_raises_for_k_nonez6Test_vectorization_KDTree.test_query_raises_for_k_none�s�����
�]�:�-G�
H�
H�
H�	)�	)��K���a�4��(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�A�A�AN)	rrfrgrwr�r�r�r�r�rhrrr�r��sn������	(�	(�	(�4�4�4�
*�*�*�
1�1�1�7�7�7�)�)�)�)�)rr�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�Test_vectorization_cKDTreec��tjgd�gd�gd�gd�gd�gd�gd�gd�g��|_t|j��|_dSr�)r@r�rBrr>rvs rrwz'Test_vectorization_cKDTree.setup_method�sh���H�i�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�'�i�i�)�*�*��	��d�i�(�(����rc���|j�gd���\}}tt|t����tt|t
����dSr�)r>r?rr�r��intr�s   rr�z,Test_vectorization_cKDTree.test_single_query�sU���{� � ����+�+���1��
�1�e�$�$�%�%�%��
�1�c�"�"�#�#�#�#�#rc���|j�tjd����\}}t	tj|��d��t	tj|��d��dSr�r�r�s   rr�z0Test_vectorization_cKDTree.test_vectorized_query�r�rc�L�tj�d��tj�dd��j}|j�|��\}}t|||��D]0\}}}t|j�|��||f���1dS)Nrnr���)	r@rsrtru�Tr>r?rUr)r5�qs�ds�i_s�qr/rEs       r�*test_vectorized_query_noncontiguous_valueszETest_vectorization_cKDTree.test_vectorized_query_noncontiguous_values�s���
�	���t����
�Y�_�_�Q��
%�
%�
'���+�#�#�B�'�'���C��2�r�3�'�'�	7�	7�G�A�q�!����*�*�1�-�-��1�v�6�6�6�6�	7�	7rc	���d}|jj|z}|j�gd�|���\}}tt	j|��|f��tt	j|��|f��t
t	jt	j||d�������t
t	j||d�|jjk����dSr�)	r>rTr?rr@r�rrCr�r�s     rr�z?Test_vectorization_cKDTree.test_single_query_multiple_neighbors�s�����
�[�]�1�_���{� � ����b� �1�1���1��R�X�a�[�[�2�%�(�(�(��R�X�a�[�[�2�%�(�(�(������A�q�b�c�c�F�+�+�+�,�,�-�-�-����q�!����v����.�/�/�0�0�0�0�0rc�$�d}|jj|z}|j�tjd��|���\}}ttj|��dd|f��ttj|��dd|f��ttjtj	|dd�dd�|d�f������ttj|dd�dd�|d�f|jjk����dSr�r�r�s     rr�zCTest_vectorization_cKDTree.test_vectorized_query_multiple_neighborsr�rN)	rrfrgrwr�r�r�r�r�rhrrr�r��sn������	)�	)�	)�$�$�$�
*�*�*�
7�7�7�1�1�1�7�7�7�7�7rr�c�$�eZdZdZd�Zd�Zd�ZdS)�ball_consistency�c�0�t|dz|dz|��S�Nr�rr4s    rr6zball_consistency.distances��!�!�c�'�1�s�7�A�6�6�6rc�F�tj|j��}tj|j|jdd���}|j�||j|j|j	���}t|��D]�\}}|�|j||||j��||d|j	zzz
}|�|j||||j��||d|j	zzz}t||j|zkd����dS)N����r,rFr�T)r@�
atleast_2dr=�broadcast_tor/r�r��query_ball_pointr,rF�	enumerater6rBr�tol)r5r=r/�lrE�ind�dist�norms        r�test_in_ballzball_consistency.test_in_balls����M�$�&�!�!���O�D�F�A�G�C�R�C�L�1�1���F�#�#�A�t�v���T�X�#�F�F����l�l�	=�	=�F�A�s��=�=���3���1��t�v�>�>��1��r�$�(�{�AS�S�D��=�=���3���1��t�v�>�>��1��r�$�(�{�AS�S�D��t�d�h��o�5�t�<�<�<�<�	=�	=rc��tj|j��}tj|j|jdd���}|j�||j|j|j	���}t|��D]�\}}tj|jjt���}d||<|�|j||||j��||d|j	zzz
}|�|j||||j��||d|j	zzz}t!||j|zkd����dS)Nr�r���dtypeFr�T)r@r�r=r�r/r�r�r�r,rFr��onesrT�boolr6rBrr�)	r5r=r/r�rEr��cr�r�s	         r�test_found_allzball_consistency.test_found_alls#���M�$�&�!�!���O�D�F�A�G�C�R�C�L�1�1���F�#�#�A�t�v���T�X�#�F�F����l�l�	>�	>�F�A�s�������-�-�-�A��A�c�F��=�=���1��q��t�T�V�<�<�q��t�R���[�?Q�Q�D��=�=���1��q��t�T�V�<�<�q��t�R���[�?Q�Q�D��t�t�x�i�$�&6�6��=�=�=�=�	>�	>rN)rrfrgr�r6r�r�rhrrr�r�sF������

�C�7�7�7�=�=�=�	>�	>�	>�	>�	>rr�c��eZdZd�ZdS)�_Test_random_ballc�J�d}d}tj�d��tj�||��|_|�|jd���|_tj�|��|_d|_d|_	d|_
dS)	Nrlrmrnr9ro�@rrq)r@rsrtrurBrr�r=r,rFr/�r5rTrIs   rrwz_Test_random_ball.setup_method+s�����
��
�	���t�����I�O�O�A�q�)�)��	��!�!�$�)�a�!�8�8��������#�#�������������rNrxrhrrr�r�)s#������	�	�	�	�	rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�_Test_random_ball_periodicc�&�t|||d��Sr��r0r4s    rr6z#_Test_random_ball_periodic.distance9����A�q�!�S�)�)�)rc�<�d}d}tj�d��tj�||f���|_|�|jdd���|_tj|d��|_d	|_	d
|_
d|_dS)Ni'rmrn��sizer9r�rpr-rbr�rrq)r@rsrt�uniformrBrr��fullr=r,rFr/r�s   rrwz'_Test_random_ball_periodic.setup_method<s�����
��
�	���t�����I�%�%�A�q�6�%�2�2��	��!�!�$�)�a��!�C�C������C���������������rc�"�|j�|jdz|j|j|j���}|D]O}t
|�|j||j|j��|jd|jzzk���P|j�|jdz
|j|j|j���}|D]O}t
|�|j||j|j��|jd|jzzk���PdS)Nr�r�)	r�r�r=r/r,rFrr6rB)r5r�rEs   r�test_in_ball_outsidez/_Test_random_ball_periodic.test_in_ball_outsideGs����F�#�#�D�F�S�L�$�&�D�F���#�Q�Q���	Y�	Y�A��D�M�M�$�)�A�,�����?�?�4�6�2�d�h�;�CW�W�X�X�X�X��F�#�#�D�F�S�L�$�&�D�F���#�Q�Q���	Y�	Y�A��D�M�M�$�)�A�,�����?�?�4�6�2�d�h�;�CW�W�X�X�X�X�	Y�	Yrc	��tj|jjt���}|j�|jdz|j|j|j	���}d||<ttj|�|j
||j|j��|jd|j	zzk����|j�|jdz
|j|j|j	���}d||<ttj|�|j
||j|j��|jd|j	zzk����dS)Nr�r�r�F)r@r�r�rTr�r�r=r/r,rFrrCr6rB)r5r�r�s   r�test_found_all_outsidez1_Test_random_ball_periodic.test_found_all_outsideOs���G�D�F�H�D�)�)�)���F�#�#�D�F�S�L�$�&�D�F���#�Q�Q����!�����t�}�}�T�Y�q�\�4�6�4�6�B�B�d�f�b�QU�QY�k�FZ�Z�[�[�\�\�\��F�#�#�D�F�S�L�$�&�D�F���#�Q�Q����!�����t�}�}�T�Y�q�\�4�6�4�6�B�B�d�f�b�QU�QY�k�FZ�Z�[�[�\�\�\�\�\rN)rrfrgr6rwr�r�rhrrr�r�7sX������*�*�*�	�	�	�Y�Y�Y�]�]�]�]�]rr�c��eZdZdZd�ZdS)�"_Test_random_ball_largep_issue9890g�vIh�%<=c��d}d}tj�d��tj�dd||f���|_|�|j��|_|j|_d|_d|_	d|_
dS)Nr�r9�{rlr�rrr)r@rsrt�randintrBrr�r=r,rFr/r�s   rrwz/_Test_random_ball_largep_issue9890.setup_method`s{����
��
�	���s�����I�%�%�c�4�q�!�f�%�=�=��	��!�!�$�)�,�,�����������������rN)rrfrgr�rwrhrrr�r�Zs*�������C�	�	�	�	�	rr�c���eZdZ�fd�Z�xZS)�_Test_random_ball_approxc�V��t�����d|_dS�Nrb�r|rwrFr}s �rrwz%_Test_random_ball_approx.setup_methodo�$���
������������rrr�s@rrrl�8���������������rrc���eZdZ�fd�Z�xZS)�!_Test_random_ball_approx_periodicc�V��t�����d|_dSrrr}s �rrwz._Test_random_ball_approx_periodic.setup_methodwrrrr�s@rr
r
trrr
c���eZdZ�fd�Z�xZS)�_Test_random_ball_farc�V��t�����d|_dS�Nr��r|rwr/r}s �rrwz"_Test_random_ball_far.setup_method�$���
������������rrr�s@rr
r
|�8���������������rr
c���eZdZ�fd�Z�xZS)�_Test_random_ball_far_periodicc�V��t�����d|_dSrrr}s �rrwz+_Test_random_ball_far_periodic.setup_method�rrrr�s@rrr�rrrc���eZdZ�fd�Z�xZS)�_Test_random_ball_l1c�V��t�����d|_dS)Nr)r|rwr,r}s �rrwz!_Test_random_ball_l1.setup_method��$���
������������rrr�s@rrr��8���������������rrc���eZdZ�fd�Z�xZS)�_Test_random_ball_linfc�j��t�����tj|_dSr�r|rwr@rVr,r}s �rrwz#_Test_random_ball_linf.setup_method��&���
�������������rrr�s@rrr��8���������������rrc��d}d}tj�d��|tj�||����}|�tj�dd|��d��}t|jd��tt|dt����dS)	N��rnr9r�r�r9r��rr)
r@rsrtrur�rr�rr��list)rrTrIr��rs     r�test_random_ball_vectorizedr(�s���
�A�	�A��I�N�N�4������B�I�O�O�A�q�)�)�*�*�A�	���2�9�?�?�1�a��3�3�Q�7�7�A����&�!�!�!��J�q��w��%�%�&�&�&�&�&rc�*�tj�d��d}d}tj�||��}||��}|�|dd���}|�|dd���}|�|dd���}t|��D].}||s||rt
||||���/t|��D].}||s||rt
||||���/dS)	Nr�r9g�~j�t�h?r��workers�@r�)r@rsrtrur��ranger)	rrTrQ�pointsr��l1�l2�l3rEs	         r�$test_query_ball_point_multithreadingr3�s&���I�N�N�1�����A�	�A�
�Y�_�_�Q��
"�
"�F���F���A�	
�	�	�F�E�1�	�	5�	5�B�	
�	�	�F�E�2�	�	6�	6�B�	
�	�	�F�E�2�	�	6�	6�B�
�1�X�X�-�-��
�a�5�	-�B�q�E�	-��r�!�u�b��e�,�,�,��
�1�X�X�-�-��
�a�5�	-�B�q�E�	-��r�!�u�b��e�,�,�,��-�-rc� �eZdZd�Zd�Zd�ZdS)�two_trees_consistencyc�$�t|||��Srrr4s    rr6ztwo_trees_consistency.distance�r7rc	�D�|j�|j|j|j|j���}t
|��D]]\}}|D]U}t|�|j	||j
||j��|jd|jzzk���V�^dS)Nr�r�)�T1�query_ball_tree�T2r/r,rFr�rr6�data1�data2)r5r'rEr��js     r�test_all_in_ballz&two_trees_consistency.test_all_in_ball�s����G�#�#�D�G�T�V�t�v�4�8�#�L�L���a�L�L�	e�	e�D�A�q��
e�
e����
�
�d�j��m�T�Z��]�D�F�K�K�t�v�WY�Z^�Zb�Wb�Oc�c�d�d�d�d�
e�	e�	erc
��|j�|j|j|j|j���}t
|��D]�\}}tj|jj	t���}d||<ttj|�
|j||j||j��|jd|jzzk������dS)Nr�r�Fr�)r8r9r:r/r,rFr�r@r�rTr�rrCr6r<r;)r5r'rEr�r�s     rr�z$two_trees_consistency.test_found_all�s����G�#�#�D�G�T�V�t�v�4�8�#�L�L���a�L�L�	i�	i�D�A�q�����	��.�.�.�A��A�a�D��B�F�4�=�=���A���
�1�
�t�v�N�N�RV�RX�Z\�]a�]e�Ze�Rf�f�g�g�h�h�h�h�	i�	irN)rrfrgr6r>r�rhrrr5r5�sI������+�+�+�e�e�e�i�i�i�i�irr5c��eZdZd�ZdS)�_Test_two_random_treesc��d}d}tj�d��tj�||��|_|�|jd���|_tj�||��|_|�|jd���|_d|_	d|_
d|_dS)	N�2rmrnr9ror�rrq)r@rsrtrur;rr8r<r:r,rFr/r�s   rrwz#_Test_two_random_trees.setup_method�s�����
��
�	���t�����Y�_�_�Q��*�*��
��"�"�4�:��"�:�:����Y�_�_�Q��*�*��
��"�"�4�:��"�:�:�������������rNrxrhrrrArA�s#������
�
�
�
�
rrAc��eZdZd�Zd�ZdS)�_Test_two_random_trees_periodicc�&�t|||d��Sr�r�r4s    rr6z(_Test_two_random_trees_periodic.distance�r�rc��d}d}tj�d��tj�||f���|_|�|jdd���|_tj�||f���|_|�|jdd���|_d|_	d	|_
d
|_dS)NrCrmrnr�r9r�r�r�rrq)r@rsrtr�r;rr8r<r:r,rFr/r�s   rrwz,_Test_two_random_trees_periodic.setup_method�s�����
��
�	���t�����Y�&�&�Q��F�&�3�3��
��"�"�4�:��3�"�G�G����Y�&�&�Q��F�&�3�3��
��"�"�4�:��3�"�G�G�������������rN)rrfrgr6rwrhrrrErE�s2������*�*�*�
�
�
�
�
rrEc���eZdZ�fd�Z�xZS)�_Test_two_random_trees_farc�V��t�����d|_dS�Nr9rr}s �rrwz'_Test_two_random_trees_far.setup_method�rrrr�s@rrIrI�rrrIc���eZdZ�fd�Z�xZS)�#_Test_two_random_trees_far_periodicc�V��t�����d|_dSrKrr}s �rrwz0_Test_two_random_trees_far_periodic.setup_method�rrrr�s@rrMrM�rrrMc���eZdZ�fd�Z�xZS)�_Test_two_random_trees_linfc�j��t�����tj|_dSrrr}s �rrwz(_Test_two_random_trees_linf.setup_methodrrrr�s@rrPrP�r rrPc���eZdZ�fd�Z�xZS)�$_Test_two_random_trees_linf_periodicc�j��t�����tj|_dSrrr}s �rrwz1_Test_two_random_trees_linf_periodic.setup_method	rrrr�s@rrSrSr rrSc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�Test_rectanglec�8�tddgddg��|_dS�Nrr)r�rectrvs rrwzTest_rectangle.setup_methods���q�!�f�q�!�f�-�-��	�	�	rc�Z�t|j�ddg��d��dS)Nr)r�rrY�min_distance_pointrvs r�test_min_insidezTest_rectangle.test_min_insides,���D�I�8�8�#�s��D�D�a�H�H�H�H�Hrc�Z�t|j�ddg��d��dS�Nr)g�?r[rvs r�test_min_one_sidez Test_rectangle.test_min_one_sides,���D�I�8�8�#�s��D�D�c�J�J�J�J�Jrc�~�t|j�ddg��tjd����dSrK)rrYr\r@�sqrtrvs r�test_min_two_sidesz!Test_rectangle.test_min_two_sidess4���D�I�8�8�!�Q��@�@�"�'�!�*�*�M�M�M�M�Mrc��t|j�ddg��dtjd��z��dS)Nr)rr9�rrY�max_distance_pointr@rbrvs r�test_max_insidezTest_rectangle.test_max_insides9���D�I�8�8�#�s��D�D�a���PQ�
�
�l�S�S�S�S�Src��t|j�ddg��tjdd����dSr_)rrYrfr@�hypotrvs r�test_max_one_sidez Test_rectangle.test_max_one_sides9���D�I�8�8�#�s��D�D�b�h�s�TW�FX�FX�Y�Y�Y�Y�Yrc��t|j�ddg��dtjd��z��dSrKrervs r�test_max_two_sidesz!Test_rectangle.test_max_two_sides"s8���D�I�8�8�!�Q��@�@�!�B�G�A�J�J�,�O�O�O�O�Orc��|j�dd��\}}t|jddg��t|jddg��t|jddg��t|jddg��dS)Nrrbr)rY�splitr�maxes�mins)r5�less�greaters   r�
test_splitzTest_rectangle.test_split%sy���	����3�/�/�
��g��4�:��Q�x�0�0�0��4�9�q�!�f�-�-�-��7�=�1�a�&�1�1�1��7�<�#�q��2�2�2�2�2rN)rrfrgrwr]r`rcrgrjrlrsrhrrrVrVs�������.�.�.�I�I�I�K�K�K�N�N�N�T�T�T�Z�Z�Z�P�P�P�3�3�3�3�3rrVc�p�ttddgddgd��tjd����dS�Nrrr9)rrr@rbrhrr�test_distance_l2rv-s5���*�A�q�6�A�q�6�1�=�=�r�w�q�z�z�J�J�J�J�Jrc�L�ttddgddgd��d��dSru)rrrhrr�test_distance_l1rx1s-���*�A�q�6�A�q�6�1�=�=�q�A�A�A�A�Arc�`�ttddgddgtj��d��dSrX)rrr@rVrhrr�test_distance_linfrz5s/���*�A�q�6�A�q�6�2�6�B�B�A�F�F�F�F�Frc��tj�d��tj�ddd��}tj�ddd��}t	t||��jd��dS)Nrnrrrr��)rrr|)r@rsrtrurrr�)r=�ys  r�test_distance_vectorizationr~9sh���I�N�N�4����
�	����A�q�!�!�A�
�	����1�a� � �A��#�A�q�)�)�/��9�9�9�9�9rc� �eZdZd�Zd�Zd�ZdS)�count_neighbors_consistencyc
���d}t|j�|j|��t	jd�|j�|j|��D������dS)Nrqc�,�g|]}t|����Srh��len��.0r�s  r�
<listcomp>z?count_neighbors_consistency.test_one_radius.<locals>.<listcomp>D���L�L�L�1��A���L�L�Lr�rr8�count_neighborsr:r@rAr9�r5r's  r�test_one_radiusz+count_neighbors_consistency.test_one_radiusAsn�����T�W�,�,�T�W�a�8�8���L�L���(?�(?����(K�(K�L�L�L�M�M�	O�	O�	O�	O�	Orc
���d}t|j�|j|��t	jd�|j�|j|��D������dS)Nr�c�,�g|]}t|����Srhr�r�s  rr�zAcount_neighbors_consistency.test_large_radius.<locals>.<listcomp>Ir�rr�r�s  r�test_large_radiusz-count_neighbors_consistency.test_large_radiusFsn�����T�W�,�,�T�W�a�8�8���L�L���(?�(?����(K�(K�L�L�L�M�M�	O�	O�	O�	O�	Orc���tjtjtjd��tjd��d����}|j�|j|��}ttjtj	|��dk����t||��D]3\}}t|j�|j|��|���4dS)N�{�G�z�?rrr�r)r@�exp�linspace�logr8r�r:rrCr.rUr)r5�rs�resultsr'�results     r�test_multiple_radiusz0count_neighbors_consistency.test_multiple_radiusKs���
�V�B�K���t���b�f�R�j�j�!�<�<�
=�
=���'�)�)�$�'�2�6�6�����r�w�w�'�'�1�,�-�-�.�.�.��R��)�)�	F�	F�I�A�v����0�0���!�<�<�f�E�E�E�E�	F�	FrN)rrfrgr�r�r�rhrrr�r�@sL������O�O�O�
O�O�O�
F�F�F�F�Frr�c��eZdZd�ZdS)�_Test_count_neighborsc�4�d}d}tj�d��|�tj�||��d���|_|�tj�||��d���|_dS)NrCr9rnro)r@rsrtrrur8r:r�s   rrwz"_Test_count_neighbors.setup_methodTsx����
��
�	���t�����"�"�2�9�?�?�1�a�#8�#8�1�"�E�E����"�"�2�9�?�?�1�a�#8�#8�1�"�E�E����rNrxrhrrr�r�Rs(������F�F�F�F�Frr�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�"sparse_distance_matrix_consistencyc�$�t|||��Srrr4s    rr6z+sparse_distance_matrix_consistency.distance^r7rc
���|j�|j|j��}|j�|j|j��}t|��D]^\}}|D]V}t
|||f|�|jj||jj||j	��d����W�_|�
��D]\\}}}t|||v��� dS)N���decimal)r8�sparse_distance_matrixr:r'r9r�rr6rBr,�itemsr)r5�Mr'rEr�r=r/s       r�test_consistency_with_neighborszBsparse_distance_matrix_consistency.test_consistency_with_neighborsas����G�*�*�4�7�D�F�;�;���G�#�#�D�G�T�V�4�4���a�L�L�	0�	0�D�A�q��
0�
0��#�A�a��d�G�$(�M�M�$�'�,�q�/�4�7�<�PQ�?�TX�TZ�$[�$[�,.�0�0�0�0�0�
0��7�7�9�9�	�	�K�V�a��Q��A��1��I�����	�	rc�P�|j�|j|j��dSr)r8r�r'rvs r�test_zero_distancez5sparse_distance_matrix_consistency.test_zero_distancels$����&�&�t�w���7�7�7�7�7rc��|j�|j|j��}t	|jj|jj��}d|||jk<t
|���|d���dS)Nrr�r�)r8r�r:r'r
rBr�toarray)r5�M1�expecteds   r�test_consistencyz3sparse_distance_matrix_consistency.test_consistencypsh��
�W�
+�
+�D�G�T�V�
<�
<��"�4�7�<����>�>��&'���D�F�"�#�!�"�*�*�,�,��"�E�E�E�E�E�Erc�d�tj�d��tjtj�dd��t
���}|�|dd���}|�|d�����}t||j
d�	��dS)
Nr�r9r�F��
balanced_tree�
compact_nodesr�r�r�)r@rsrtr�rur�rr�r�rr�)r5�too_manyr$r/s    r�#test_against_logic_error_regressionzFsparse_distance_matrix_consistency.test_against_logic_error_regressionws���
�	���q�����8�B�I�O�O�B��2�2�#�>�>�>������E�� �@�@���'�'��a�0�0�8�8�:�:��!�!�Q�S�"�5�5�5�5�5�5rc���tj|j|jf��}t|j��D]V}t|j��D]?}|j|dd�f|j|dd�fz
}tj||��|||f<�@�Wtj|��}d|||jk<tj|j|jf��}|j	�
|j|jd���}|���D]\}}|||f|||f<�t||d���tj|j|jf��}|j	�
|j|jd���}t|jd��D]3}|d|}|d	|}|d
|}||||f<�4t||d���|j	�
|j|jd���}t||���d���|j	�
|j|jd���}t||���d���dS)
Nr��dict��output_typer�r��ndarrayrrEr=�v�
dok_matrix�
coo_matrix)r@r�rTr.r;r<�dotrbr'r8r�r:�keysrr�r�)r5�refrEr=r�r�r'rQs        r�test_ckdtree_return_typesz<sparse_distance_matrix_consistency.test_ckdtree_return_types�sa���h�����'�(�(���t�v���	)�	)�A��4�6�]�]�
)�
)���J�q�!�!�!�t�$�t�z�!�Q�Q�Q�$�'7�7���F�1�a�L�L��A�q�D�	�	�
)��g�c�l�l����C�$�&�L���x�����(�)�)���G�*�*�4�7�D�F��*�O�O���F�F�H�H�	#�	#�D�A�q��A�q�6��D��A��J�J�!�#�t�R�8�8�8�8��x�����(�)�)���G�*�*�4�7�D�F�!�
+�
#�
#���q�w�q�z�"�"�	�	�A��#��q�	�A��#��q�	�A��#��q�	�A��D��A��J�J�!�#�t�R�8�8�8�8��G�*�*�4�7�D�F�$�
+�
&�
&��!�#�q�y�y�{�{�B�?�?�?�?��G�*�*�4�7�D�F�$�
+�
&�
&��!�#�q�y�y�{�{�B�?�?�?�?�?�?rN)	rrfrgr6r�r�r�r�r�rhrrr�r�\sv������+�+�+�	�	�	�8�8�8�F�F�F�6�6�6� @� @� @� @� @rr�c��eZdZd�ZdS)�_Test_sparse_distance_matrixc��d}d}tj�d��tj�||��}tj�||��}|�|d���|_|�|d���|_d|_d|_||_	||_
||_||_dS)NrCrmrnr9ror))
r@rsrtrurr8r:r'r,r;r<rTrI)r5rTrIr;r<s     rrwz)_Test_sparse_distance_matrix.setup_method�s�����
��
�	���t�����	����1�%�%���	����1�%�%���"�"�5�1�"�5�5����"�"�5�1�"�5�5�����������
���
��������rNrxrhrrr�r��s#������
�
�
�
�
rr�c	���d}d}d}tj�d��tj�||��}tj�||��}t	||��}t|j||f��t|��D]F}t|��D]4}tt||||��|||f���5�GdS)Nrr�rmrn)
r@rsrtrur
rr�r.rr)rIrTrQ�xs�ysr�rEr=s        r�test_distance_matrixr��s���
�A�
�A�	�A��I�N�N�4����	�����A�	�	�B�	�����A�	�	�B�	��R�	 �	 �B����A�q�6�"�"�"�
�1�X�X�L�L���q���	L�	L�A�� 2�2�a�5�"�Q�%� @� @�"�Q��T�(�K�K�K�K�	L�L�Lrc�4�d}d}d}tj�d��tj�||��}tj�||��}t	||��}t	||d���}t||��dS)Nrrr�rmrnr)�	threshold)r@rsrtrur
r)rIrTrQr�r�r��dsls       r�test_distance_matrix_loopingr��s���
�A�
�A�	�A��I�N�N�4����	�����A�	�	�B�	�����A�	�	�B�	��R�	 �	 �B�
�"�b�A�
.�
.�
.�C���S�����rc��|�||��}t��}t|��D]'\}}|D]}||kr|�||f��� �(t	||�|��k��dSr)r9�setr��addr�query_pairs)r�r/r'r�rEr�r=s       r�check_onetree_queryr��s���	���!�Q���A����A��!�������1��	�	�A��1�u�u����q�!�f�
�
�
��	��A����q�!�!�!�"�"�"�"�"rc���tj�d��d}d}tj�||��}||��}t	|d��tj�d|z|��}|d|�xxdzcc<||d|z�xxdz
cc<||��}t	|d��t	|d��t	|d��t	|d	��dS)
NrrCrmrbr�g����MbP?r9g�h㈵��>g���ư>)r@rsrtrur�)rrTrQr/r�s     r�test_onetree_queryr��s����I�N�N�1����
�A�	�A�
�Y�_�_�Q��
"�
"�F���F���A���3����
�Y�_�_�Q�q�S�!�
$�
$�F�
�2�A�2�J�J�J�%��J�J�J�
�1�Q�q�S�5�M�M�M�Q��M�M�M���F���A���3������5�!�!�!���7�#�#�#���4� � � � � rc��|ddgg��}t|�d��t����dS)Nrrr))rr�r�)rr$s  r�test_query_pairs_single_noder��s?���;��A��x� � �D���!�!�#�&�&����.�.�.�.�.rc	���tj�d��d}d}d}|dz}tj�||��}||��}t	��}t|��D]a}t|dz|��D]K}	||dd�f||	dd�fz
}
tj|
|
��|kr|�||	f���L�bt|��}|�	|��}t|��}
t||
��|�	|d���}t|��}
t||
��t	��}|�	|d���}t|jd��D]C}|�t||df��t||df��f���Dt|��}t||��dS)	NrrCr9rbrr�r�r�)
r@rsrtrur�r.r�r��sortedr�rr�r�)rrTrQr'�r2r/r��bruterEr=r��l0r�r0�arrr1s                r�test_kdtree_query_pairsr��s����I�N�N�1����
�A�	�A��A�	
�A��B�
�Y�_�_�Q��
"�
"�F���F���A��E�E�E�
�1�X�X�"�"���q��s�A���	"�	"�A��q�!�!�!�t��v�a����d�|�+�A��v�a��|�|�r�!�!��	�	�1�a�&�!�!�!��	"�
����B�	�
�
�a���A�	����B��r�2����	�
�
�a�U�
�+�+�A�	����B��r�2�������A�
�-�-��y�-�
1�
1�C�
�3�9�Q�<�
 �
 �0�0��	���s�3�q�!�t�9�~�~�s�3�q�!�t�9�~�~�.�/�/�/�/�	����B��r�2�����rc�F��tjd��}tjdd|zd��}tjdd|zd����fd�|D��}||��}|�|d���}|�|dz�	��}t	||��dS)
Nr9rr�rmc�"��g|]}�D]}||f���Srhrh)r��xi�yi�y_ranges   �rr�z(test_query_pairs_eps.<locals>.<listcomp>s*���=�=�=�R�W�=�=�r��R��=�=�=�=rrb)r'rF�)\��(�?�r')r@rbr�r�r)r�spacing�x_range�xy_arrayr$�	pairs_eps�pairsr�s       @r�test_query_pairs_epsr�s�����g�a�j�j�G��k�!�Q��[�!�,�,�G��k�!�Q��[�!�,�,�G�=�=�=�=�7�=�=�=�H��;�x� � �D�� � �7�� �3�3�I����w��~��.�.�E���	�"�"�"�"�"rc	� �tjdd�dd�f\}}tt|���|�������}||��}tt
gd���t
|�dd������tj|t���}||��}tt
gd���t
|�dd������dS)Nrrm)rm��	�)r9rrr�)
r@�mgridr&rU�ravelrr�r��asarrayr�)rr=r}r/r$s     r�test_ball_point_intsr�s���
�8�A�a�C��1��H��D�A�q�
�#�a�g�g�i�i������+�+�
,�
,�F��;�v���D���
�
�
�&�&���-�-�f�a�8�8�9�9�;�;�;�
�Z��e�
,�
,�
,�F��;�v���D���
�
�
�&�&���-�-�f�a�8�8�9�9�;�;�;�;�;rc	��d�td��D��}tt|��t|ddd�����dS)Nc�4�g|]}tj����Srh)r�node)r�rs  rr�z+test_kdtree_comparisons.<locals>.<listcomp>.s��-�-�-�q�V�[�]�]�-�-�-rr�r�)r.rr�)�nodess r�test_kdtree_comparisonsr�,sI��-�-�E�!�H�H�-�-�-�E�������u�T�T�r�T�{� 3� 3�4�4�4�4�4rc�*�tj�d��d}d}tj�||��}||���|d���d}||d����|d���d}||d�	���|d���d}||dd�
���|d���d}t||��t||��t||��dS)Nrr*rmr#r�r�F)r�)r�)r�r�)r@rsrtrur?r)rrTrQr/r8r:�T3�T4s        r�test_kdtree_build_modesr�2s ���I�N�N�1�����A�	�A�
�Y�_�_�Q��
"�
"�F�	��V�	�	�	"�	"�6�Q�	"�	/�	/��	3�B�	��V�5�	1�	1�	1�	7�	7��!�	7�	D�	D�R�	H�B�	��V�5�	1�	1�	1�	7�	7��!�	7�	D�	D�R�	H�B�	��V�5�#(�
*�
*�
*�*/�%��!�%�*<�*<�R�
A�B��r�2�����r�2�����r�2�����rc��ddl}tj�d��d}d}tj�||��}||��}|�|��}|�|��}|�|d���d}|�|d���d}t||��dS)NrrCrmr#r�r�)	�pickler@rsrtru�dumps�loadsr?r�rr�rTrQr/r8�tmpr:s        r�test_kdtree_picklerAs����M�M�M��I�N�N�1����
�A�	�A�
�Y�_�_�Q��
"�
"�F�	��V�	�	�B�
�,�,�r�
�
�C�	���c�	�	�B�	���&�A��	�	�r�	"�B�	���&�A��	�	�r�	"�B��r�2�����rc��ddl}tj�d��d}d}tj�||f���}||d���}|�|��}|�|��}|�|d���d	}|�|d���d	}t||��dS)
NrrCrmr�r�)r-r#r�r�)	r�r@rsrtr�r�r�r?rr�s        r�test_kdtree_pickle_boxsizerOs����M�M�M��I�N�N�1����
�A�	�A�
�Y�
�
�Q��F�
�
+�
+�F�	��V�S�	)�	)�	)�B�
�,�,�r�
�
�C�	���c�	�	�B�	���&�A��	�	�r�	"�B�	���&�A��	�	�r�	"�B��r�2�����rc��tj�d��d}d}tj�||��}||d���}|���}|�|d���d}tj�||��|d	<|�|d���d}t
||��dS)
Nrr*rmT)�	copy_datar#r�r�.)r@rsrtru�copyr?r)rrTrQr/r�r�r8r:s        r�test_kdtree_copy_datar]s����I�N�N�1�����A�	�A�
�Y�_�_�Q��
"�
"�F���F�d�+�+�+�A����
�
�A�	
����a�����	�B��)�/�/�!�Q�'�'�F�3�K�	
����a�����	�B��r�2�����rc�f�tj�d��d}d}tj�||��}||��}|�|dd���d}|�|dd���d}|�|d���d}t||��t||��|�td	d
���tj	td���5|�|d
d���ddd��dS#1swxYwYdS)Nrr*rmr#r-)rQr,r�r��	cpu_countc��dSrrhrhrr�<lambda>z'test_ckdtree_parallel.<locals>.<lambda>ys���rzCannot determine ther�rr+)r@rsrtrur?r�setattr�osr�r	�NotImplementedError)	r�monkeypatchrTrQr/r�r8r:r�s	         r�test_ckdtree_parallelrlsc���I�N�N�1�����A�	�A�
�Y�_�_�Q��
"�
"�F���F���A�	
����1�b��	)�	)�"�	-�B�	
����1�b��	)�	)�"�	-�B�	
����1��	�	�b�	!�B��r�2�����r�2��������K���6�6�6�	��*�2H�	I�	I�	I�'�'�	�����2��&�&�&�'�'�'�'�'�'�'�'�'�'�'�'����'�'�'�'�'�'s�D&�&D*�-D*c����tj�d��d}d}tj�||��}t	|�����fd����j���j}t
tj|j��td����t
�j
|jdd�f|j��dS)Nrrlrmc�(��tt|t����|jdkrVt|jdu��t|jdu��t|jjd�jk��dS�|j���|j��|jj	dd�|jf}|jj	dd�|jf}t|�
��|���k��dS)Nr�r)rr�r�	split_dim�lesserrr�indicesr�rp�data_points�max�min)rTr=r}r>�recurse_trees   ��rrz'test_ckdtree_view.<locals>.recurse_tree�s�����
�1�k�*�*�+�+�+��;�"����A�H��$�%�%�%��A�I��%�&�&�&��A�I�O�A�&�&�/�9�:�:�:�:�:��L���"�"�"��L���#�#�#���$�Q�Q�Q���^�4�A��	�%�a�a�a���n�5�A��A�E�E�G�G�a�e�e�g�g�%�&�&�&�&�&r)r@rsrtrurr$r�sortrr.rBr)rTrQr/r>rs   @@r�test_ckdtree_viewr~s������I�N�N�1�����A�	�A�
�Y�_�_�Q��
"�
"�F�
�V�_�_�F�'�'�'�'�'�'��L��������A��r�w�q�y�)�)�5��:�:�6�6�6��v�{�1�9�a�a�a�<�0�!�-�@�@�@�@�@rc���d}d}gd�}d}tj�d��tj�||f���}||d���}|�||��\}}|�||��\}	}
t||	��t||
��tjddg��}d}|�||��\}}|�||��\}	}
t|	|d	|dz
f��t|
|d	|dz
f��|�|d��\}}|�|dg��\}	}
tt|j��d��tt|	j��d��t|tj	|	����t|tj	|
����dS)
N��r9)rr9r�r�rnr�rro.)
r@rsrtr�r?rr�r�r�r�)rrTrI�klist�kintrBr>rLrM�dd1�ii1s           r�test_kdtree_list_kr"�s����A�	�A��I�I�E��D��I�N�N�4����
�9���1�a�&��)�)�D�
�[���
*�
*�
*�F��\�\�$��
&�
&�F�B���|�|�D�$�'�'�H�C����S������S����
�H�a��V���E��D�
�\�\�$��
%�
%�F�B���|�|�D�%�(�(�H�C����b��e�a�i��(�)�)�)���b��e�a�i��(�)�)�)��\�\�$��
"�
"�F�B���|�|�D�1�#�&�&�H�C����R�X����"�"�"���S�Y����#�#�#���R�X�c�]�]�#�#�#���R�X�c�]�]�#�#�#�#�#rc��d}d}d}tj�d��tj�||f���}||dd���}||d���}dd	d
tjfD]�}|�|||���\}}	|�|dz||���\}
}t
||
��t|	|��|�|dz
||���\}
}t
||
��t|	|��t|||d|���\}}
t
||��t|	|
����dS)
N��r�rnr�rr�r�ror9g@�r,)r-r,)	r@rsrtr�rVr?rr�simulate_periodic_box)rrTrIrQrBr>�kdtree2r,rLrMr r!�dd2�ii2s              r�test_kdtree_boxr*�si���A�	�A�	�A��I�N�N�4����
�9���1�a�&��)�)�D�
�[���3�
7�
7�
7�F��k�$��+�+�+�G���C���
 �
�
�����d�A���+�+���B��<�<��s�
�A��<�3�3���S��B��$�$�$��R������<�<��s�
�A��<�3�3���S��B��$�$�$��R�����(��$��3�!�L�L�L���S��B��$�$�$��R������
�
rc��d}d}d}tj�d��tj�||f���}||dd���}||d�	��}ddtjfD]X}|�|||�
��\}}	|�|||�
��\}
}t
||
��t|	|���YdS)Nr$r9r�rnr�rr�r�ror%)r@rsrtr�rVr?rr)rrTrIrQrBr>r'r,rLrMr r!s            r�test_kdtree_box_0boxsizer,�s����A�	�A�	�A��I�N�N�4����
�9���1�a�&��)�)�D�
�[���3�
7�
7�
7�F��k�$��+�+�+�G���B�F�^�������d�A���+�+���B��=�=��q�A�=�.�.���S��B��$�$�$��R�������rc��tjddd���dd��}|dd�dfxxdz
cc<tjt
��5||dd���ddd��n#1swxYwYtjt
��5||dd���ddd��n#1swxYwY||dd	���dS)
Nrr9rrr�rr�r�)r�r�)r�r�)r@r��reshaper�r	r��rrBs  r�test_kdtree_box_upper_boundsr0�sZ��
�;�q�!�R� � �(�(��Q�/�/�D�����A��J�J�J�"��J�J�J�	��z�	"�	"�3�3���D�1�c�2�2�2�2�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3�	��z�	"�	"�:�:���D�1�j�9�9�9�9�:�:�:�:�:�:�:�:�:�:�:����:�:�:�:��K��q�*�5�5�5�5�5�5s$�A3�3A7�:A7�B2�2B6�9B6c�d�tjddd��}tt||dd���dS)Nr�rrrr�r�)r@r��
assert_raisesr�r/s  r�test_kdtree_box_lower_boundsr3�s4��
�;�r�1�b�!�!�D��*�k�4�!�S�I�I�I�I�I�Irc�F�g}g}tjd|jdz��}tjtj|dg|jdz����j}|dz
}|D]~}	||	dz|zz}
|�|
||���\}}|�d|��}|�d|��}|�|��|�|���tj	|d���}tj	|d���}tj
t|��t|��|zgddg�	��}
||
d
dd�<||
ddd�<|
�d���|
ddd�d|�f|
d
dd�d|�ffS)
Nr�rr�r%r�r;)rM�i8)rL�f8r�rMrL)�order)
r@�aranger�r��
unravel_indexr�r?r.�append�concatenate�emptyr�r)r>rBrQr-r,rLrMr=�nnrT�imager(r)r�s              rr&r&�s���	�B�	�B�
�	�!�t�z�!�}�$�%�%�A�	��"�"�1�q�c�D�J�q�M�&9�:�:�	;�	;�	=�B�	�c��B�
�����q�3�w��(�(���<�<��q�A�<�.�.���S��k�k�"�a� � ���k�k�"�a� � ��
�	�	�#����
�	�	�#�����	����	$�	$�	$�B�	����	$�	$�	$�B�
�X�s�4�y�y�#�b�'�'�A�+�.���7����F��F�4�L����O��F�4�L����O�
�K�K�d�K�����$�<����2�A�2����t��Q�Q�Q����U� 3�3�3r�PyPyz Fails on PyPy CI runs. See #9507)�reasonc��	ddl}n#t$rYdSwxYwd\}}tjt	dd|z|��t	dd|z|��f\}}tj|��dztjd||zz��tj|��zz}tj|��}||dd�<d}tj�	d|j
tj�	d��dz��}||j|<tjtj
||k����j}	tjtj
||k����j}
|�|j��j}t%d��D]}t'|	��}
�d}t%d��D]u}|�|j��j}t'|	��}
|
�|
d	d
���\}}|�|j��j}||kr|dz
}�vt+|dk��dS)Nr)皙�����?rBrr#rrg�X@rCrlrmr9)rQr,)�resource�ImportErrorr@r��slice�sin�cos�
empty_likersrr��flat�vstack�nonzeror��	getrusage�RUSAGE_SELF�	ru_maxrssr.rr?r)rC�dx�dyr}r=�z�z_copy�FILLVAL�mask�igood�ibad�mem_userEr$�	num_leaksr��iquery�new_mem_uses                  r�test_ckdtree_memuser[s'���������������������F�B��
�8�E�!�Q��V�R�(�(��!�Q��V�R�(�(�)�*�D�A�q�
��q�	�	�2�
���r�A�a�C�x�(�(�2�6�!�9�9�4�4�A�
�]�1�
�
�F��F�1�1�1�I��G�
�9���Q����	�(9�(9�"�(=�(=��(A�B�B�D��F�K����I�b�j��g��.�.�/�/�1�E�
�9�R�Z��W��-�-�.�.�0�D�� � ��!5�6�6�@�G�
�2�Y�Y�����u�~�~����I�
�3�Z�Z�����$�$�X�%9�:�:�D���u�~�~���z�z�$�!�q�z�1�1���f��(�(��)=�>�>�H���� � ���N�I���I��N�����s��
�c�h�tjddd���dd��}||d���}tjt	|��d���}|�|��}t
|gd���tt|j|dd���td	��D�]}|�
|tjdd	|����}|�
|tjdd	|��||f�
��}|�
|tjdd	|��|df�
��}|�
|tjdd	|��d|f�
��}	|�
|tjdd	|��|�
��t
||��t
||��t
||	����tt	|����D]�}|���}
d|
|<||
dk}||��}|�
|tjdd	d��|
|
f�
��}|�
|tjdd	d����}t
||��tt|j
|tjdd	d��|
�
����dS)Nrrrmr�ro�f4r�)rmr9rrr9rrrr)�weightsrl)r@r�r.r�r��_build_weightsrr2r�r.r�r)
rrB�tree1r^�nwrE�c1�c2�c3�c4�w1r<�tree2s
             r�test_kdtree_weightsrhBs���
�;�q�!�Q���'�'��A�.�.�D��K��q�)�)�)�E��g�c�$�i�i�t�,�,�,�G�	�	�	�g�	&�	&�B��r�0�0�0�1�1�1��*�e�2�G�C�R�C�L�A�A�A�
�2�Y�Y�#�#��
�
"�
"�5�"�+�a��Q�*?�*?�
@�
@��
�
"�
"�5�"�+�a��Q�*?�*?� �'�*�#�,�,��
�
"�
"�5�"�+�a��Q�*?�*?� �$��#�)�)��
�
"�
"�5�"�+�a��Q�*?�*?��w��#�)�)��
���e�R�[��B��%:�%:��	�	!�	!�	!�	�2�r�"�"�"��2�r�"�"�"��2�r�"�"�"�"�
�3�t�9�9�
�
�8�8��
�\�\�^�^����1���R�1�W�
����E�"�"��
�
"�
"�5�"�+�a��S�*A�*A��R��#�"�"���
"�
"�5�"�+�a��S�*A�*A�
B�
B���2�r�"�"�"�	�j�%�"7��2�;�q�"�c�*�*�B�	8�	8�	8�	8�	8�!8�8rc�z�d}d}tj�d��tj�||f���}||d���}gd�}tjt|����}|�||��}|�||d�	��}t||�����ttj|��tj|����D]>\}	}
|�||
��}t||t|	�����?dS)
Nr$r9rnr�rro)rr�r�g{�G�z�?rBF��
cumulative)r@rsrt�normalr8r�r�r�cumsumrU�	itertools�permutationsrr&)rrTrIrBr>�r0�i0�n0�nncrEr's           r�&test_kdtree_count_neighbous_multiple_rrtps-���A�	�A��I�N�N�4����
�9���!�Q���(�(�D�
�[���
*�
*�
*�F�	$�	$�	$�B�	��3�r�7�7�	�	�B�	�	�	���	+�	+�B�
�
 �
 ����
 �
>�
>�C���S�Z�Z�\�\�"�"�"��I�*�2�.�.��*�2�.�.�0�0�+�+���1�
�"�"�6�1�-�-���1�b��a���k�*�*�*�*�	+�+rc��tj�d��tj�dd��}tj�dd��}||��}|�ddgd���\}}|�ddgd|z��}t
|g��|�|d���\}}|���}|�|d|z��}tjdt�	��}|�
g��t
||��||��}	|�|	d|z��}t
dggz|��|�|	d|z��}t|d
k��|�|	d|zd���}t
|tjd
��kd��|�|	d|zd���}t
|tjd
��kd��|�|	d|zd���}t!|i��|�|	d|zd���}dtjfdtjfdtjfg}
tj|
d���}tjd|�	��}t
||��|�|d���\}}|dd�df���}|�d|zd���}t!|t+����|�d|zd���}tjdtj�	��}t
||��dS)Nrnrrr9r)rr�rb)rr)r�r�rr�r�)rrrrTr�r�r�rEr=r�)�align)rr�r�)rr9)r@rsrt�randr?r�rrr<�object�fillr9r�rr�r�r�intp�float64r�r�r�)r�X�Yr$r/rErQ�mindr}�other�_dtype�	res_dtypes            r�test_len0_arraysr��s6���I�N�N�4����
�	���r�1���A�
�	���r�1���A��;�q�>�>�D��:�:�r�2�h�!�:�$�$�D�A�q����r�2�h��A��.�.�A��q�"�����:�:�a�1�:���D�A�q��5�5�7�7�D����a��T��*�*�A�
��v�V�,�,�,�A��F�F�2�J�J�J��q�!�����K��N�N�E����U�C��H�-�-�A��r�2�$�w��"�"�"����U�C��H�-�-�A��A��F�O�O�O��#�#�E�3�t�8��#�N�N�A��q�B�H�X�.�.�.��5�5�5��#�#�E�3�t�8��#�N�N�A��q�B�H�X�.�.�.��5�5�5��#�#�E�3�t�8��#�H�H�A���B�����#�#�E�3�t�8��#�K�K�A��B�G�n�s�B�G�n�s�B�J�.?�
@�F����t�,�,�,�I�
��u�I�.�.�.�A��q�!�����:�:�a�1�:���D�A�q��Q�Q�Q��U�8�<�<�>�>�D�����T��u��5�5�A���C�E�E��������T��y��9�9�A�
��v�R�W�-�-�-�A��q�!�����rc
� �d}tdd��D]�}tj||f��}d||dzd�<tjdd���D]�\}}||||d���}|jdksJ�|tur|jn|jj}ttj
|jj��tj
d	|dz����ttj
|jj��tj
|dz|�����Œ�dS)
Nirr�r9�FT)�repeat)r�r�rpr�r)r.r@r�rn�productr�rr$�_noderrrrr8rr)rrTrIrB�balanced�compactr>r$s        r�test_kdtree_duplicated_inputsr��s=���A�
�1�a�[�[�&�&���w��1�v������Q��T�U�U��!*�!2�=��!K�!K�!K�
	&�
	&��H�g� �[��X�/6��D�D�D�F��;�!�#�#�#�#�#.�'�#9�#9�F�K�K��K�%�
�
�����+�,�,��	�!�Q�!�V�$�$�
&�
&�
&�
�����,�-�-��	�!�q�&�!�$�$�
&�
&�
&�
&�
	&�	&�&rc�d�|dggd���}tt|j|ddgd���dS)NrrrorbFrj)r2r�r�)rr>s  r�'test_kdtree_noncumulative_nondecreasingr��sO��
�[�1�#���
+�
+�
+�F��*�f�4���a��U�,�,�,�,�,�,rc��tjgd�gd�gd�gd�gd�gd�gd���}||��}|�|d	d
���\}}t|dtjtjtjgdd
tjtjgdd
tjtjgdd
tjtjgdd
tjtjgdtjtjtjgg��dS)N)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�r{r�rmrqrPr�r�)r@r�r?rrV)r�xyz�ckdt�deq�ieqs     r�test_short_knnr��s��
�(�������������������
�����C��;�s���D��z�z�#���z�=�=�H�C���c��"�&�"�&�"�&�
)�
��r�v�r�v�&�
��r�v�r�v�&�
��r�v�r�v�&�
��r�v�r�v�&�
�������(�
*�+�+�+�+�+rc���tj�d��tj�d���}tj�d���}||���tj�ddt|�����}��||��}�fd�t||��D��}t||��D]/\}}tt|��t|�����0dS)Nrn�rlr�r�r�333333�?c�B��g|]\}}��||����Srh�r�)r��qi�dir$s   �rr�z2test_query_ball_point_vector_r.<locals>.<listcomp>�s-���I�I�I���R�t�$�$�R��,�,�I�I�Ir)
r@rsrtrlr�r�r�rUrr�)	rrBr?r/�rvector�rscalarr*r+r$s	        @r�test_query_ball_point_vector_rr��s�����I�N�N�4����
�9�����*�*�D��I���(��+�+�E��;�t���D�
�	���!�S�s�5�z�z��2�2�A��#�#�E�1�-�-�G�I�I�I�I�3�u�a�=�=�I�I�I�G��G�W�%�%�1�1���1��6�!�9�9�f�Q�i�i�0�0�0�0�1�1rc�����tj�d��tj�d���}tj�d���}||���d���|�d���}d���|�d���D��}��fd	�|D��}��fd
�|D��}t||��t||��t||��dS)Nrnr�r�r�T��
return_lengthc�,�g|]}t|����Srhr�)r�r�s  rr�z0test_query_ball_point_length.<locals>.<listcomp>s��X�X�X�C�s�3�x�x�X�X�XrFc�V��g|]%}t��|�������&Srh)r�r��r�r�r/r$s  ��rr�z0test_query_ball_point_length.<locals>.<listcomp>s1���A�A�A�R�s�4�(�(��Q�/�/�0�0�A�A�Arc�@��g|]}��|�d�����S)Tr�r�r�s  ��rr�z0test_query_ball_point_length.<locals>.<listcomp>s.���P�P�P�B�t�$�$�R��$�$�?�?�P�P�Pr)r@rsrtrlr�r)	rrBr?�length�length2�length3�length4r/r$s	       @@r�test_query_ball_point_lengthr��s
�����I�N�N�4����
�9�����*�*�D��I���(��+�+�E��;�t���D��A�
�
"�
"�5�!�4�
"�
@�
@�F�X�X�4�#8�#8���QV�#8�#W�#W�X�X�X�G�A�A�A�A�A�5�A�A�A�G�P�P�P�P�P�%�P�P�P�G��v�w�'�'�'��v�w�'�'�'��v�w�'�'�'�'�'rc�V�tj�d��tj�d���}tjd��dz}tjtjd��ddd�dz��ddd�}tj�d���}tj|j��j}|jd|jdksJ�|jd|jdksJ�||��}|�||d���}|�||d���}t||��|�
|d	��\}	}
|�
|d	��\}}t|	|��t|
|��dS)
Nrnr�r�rlg{�G�z�?r�Tr�r)r@rsrtrlr8�ascontiguousarrayr��stridesr�rr?)
rrB�d_contiguous�d_discontiguous�query_contiguous�query_discontiguousr$�length1r��d1�i1�d2�i2s
             r�test_discontiguousr�s����I�N�N�4����
�9�����*�*�D��9�S�>�>�D�(�L��*��)�C�.�.���2��.��5�7�7�7;�t��t�=�O��y�'�'�X�'�6�6���.�/?�/A�B�B�D���&�r�*�.>�.F�r�.J�J�J�J�J��"�2�&�,�*>�r�*B�B�B�B�B��;�t���D��#�#�$4�$0��$�F�F�G��#�#�$7�$3�4�$�I�I�G��w��(�(�(�
�Z�Z�(�!�
,�
,�F�B��
�Z�Z�+�Q�
/�
/�F�B���r�2�����r�2�����rzbalanced_tree, compact_nodes))TF)TT)FFr�c�n�tj�d��tjd���}tjd���}tjd���}||||���}|�|dd�	��}|d
ksJ�|�|d��\}}	|	jdksJ�|jdksJ�tj|���	��sJ�|�
|d
d
g��}
t|
d
d
g��|�|d��}|jdksJ�dS)Nrn)rr�)r�)rr�r$r�r�Tr�rr9)r9r9rr%)
r@rsrtr<r�r�r?r��isinfrCr�rr�)rr�r��empty_v3�query_v3�query_v2r$r�rLrM�Nr�s            r�test_kdtree_empty_inputr�#sJ���I�N�N�4�����x�f�%�%�%�H��w�V�$�$�$�H��w�V�$�$�$�H��;�x�}�%2�4�4�4�D�
�
"�
"�8�S��
"�
E�
E�F��Q�;�;�;�;�
�Z�Z��!�
$�
$�F�B��
�8�v�����
�8�v�����
�8�B�<�<�����������T�A�q�6�*�*�A��q�1�a�&�!�!�!��#�#�D�#�.�.�A��7�f������rc� �eZdZd�Zd�Zd�ZdS)�_Test_sorted_query_ball_pointc���tj�d��tj�dd��|_|�|j��|_dS)Nrnrlr)r@rsrtrur=rr�rvs rrwz*_Test_sorted_query_ball_point.setup_methodAsH��
�	���t���������a�(�(����$�$�T�V�,�,��	�	�	rc��|j�|jdd���}|D]}t|t	|����� |jD]<}|j�|dd���}t|t	|�����=dS)Nr�T��
return_sorted)r�r�r=rr�)r5�	idxs_list�idxsr�s    r�test_return_sorted_Truez5_Test_sorted_query_ball_point.test_return_sorted_TrueFs����I�.�.�t�v�r��.�N�N�	��	3�	3�D��t�V�D�\�\�2�2�2�2��&�	3�	3�B��9�-�-�b�"�D�-�I�I�D��t�V�D�\�\�2�2�2�2�	3�	3rc�B���j��jd��}|D]}t|t	|����� �fd��jD��}�j��jdd���}t||��D]\}}t||���dS)z�Previous behavior was to sort the returned indices if there were
        multiple points per query but not sort them if there was a single point
        per query.r�c�F��g|]}�j�|d����S)r�)r�r�)r�r�r5s  �rr�zI_Test_sorted_query_ball_point.test_return_sorted_None.<locals>.<listcomp>Ws+���P�P�P�2�D�I�6�6�r�2�>�>�P�P�PrFr�N)r�r�r=rr�rU)r5r�r��idxs_list_single�idxs_list_False�idxs0�idxs1s`      r�test_return_sorted_Nonez5_Test_sorted_query_ball_point.test_return_sorted_NoneOs�����I�.�.�t�v�r�:�:�	��	3�	3�D��t�V�D�\�\�2�2�2�2�P�P�P�P���P�P�P���)�4�4�T�V�R�u�4�U�U����1A�B�B�	-�	-�L�E�5��u�e�,�,�,�,�	-�	-rN)rrfrgrwr�r�rhrrr�r�?sA������-�-�-�
3�3�3�-�-�-�-�-rr�c�H�tj�dd���t��}tjtd���5t|��}ddd��n#1swxYwYt|j	��}tjtd���5|�
|��ddd��n#1swxYwYtjtd���5|�|d���ddd��dS#1swxYwYdS)Nrrr9zcomplex datar�rr�)r@rsrw�view�complexr�r	�	TypeErrorr�realr?r��r/�ts  r�test_kdtree_complex_datar�]s���
�Y�^�^�B��
"�
"�
'�
'��
0�
0�F�	��y��	7�	7�	7����6�N�N��������������������	�v�{���A�	��y��	7�	7�	7���	�������������������������
��y��	7�	7�	7�(�(�	���6�Q��'�'�'�(�(�(�(�(�(�(�(�(�(�(�(����(�(�(�(�(�(s6�A0�0A4�7A4�*C�C�C�2D�D�Dc��tj�d��tj�dd��}t	|��}|j}t
|tj��sJ�|j|j	dksJ�|g}|�rx|�
d��}t
|tj��rat
|jt��sJ�|jt|j��ksJ�t||j|jj��n�t
|tj��sJ�t
|jt��sJ�d|jcxkr|jksnJ�t
|jt*��sJ�t
|jt��sJ�|j|jj|jjzksJ�|�|j��|�|j��|��vdSdS)Nrnrlrmrr�)r@rsrtrwrr$r��	innernode�childrenr��pop�leafnoder�r��idxrr�rrrIrnr�rqrrr:)r/r��rootr�rTs     r�test_kdtree_tree_accessr�ms����I�N�N�4����
�Y�^�^�C��
#�
#�F��v���A��6�D��d�F�,�-�-�-�-�-��=�F�L��O�+�+�+�+��F�E�
�!��I�I�b�M�M���a���)�)�	!��a�j�#�.�.�.�.�.��:��Q�U���+�+�+�+��v�a�e�}�a�g�.A�B�B�B�B��a��!1�2�2�2�2�2��a�k�3�/�/�/�/�/����)�)�)�)�a�c�)�)�)�)�)�)��a�g�u�-�-�-�-�-��a�j�#�.�.�.�.�.��:����1�9�3E�!E�E�E�E�E��L�L���#�#�#��L�L��� � � ��!�!�!�!�!rc�~�tj�d��tj�dd��}t	|��}t|jt��sJ�|j|j	dksJ�t|jt��sJ�|j|j	dksJ�t|j
t��sJ�|j
dksJ�t|jtj
|d�����t|jtj|d�����|j|usJ�dS)Nrnrlrmrrrrr;)r@rsrtrwrr�rIr�rTr�rprrorJrp�aminrBr�s  r�test_kdtree_attributesr��s���I�N�N�4����
�Y�^�^�C��
#�
#�F��v���A��a�c�3�������3�&�,�q�/�!�!�!�!��a�c�3�������3�&�,�q�/�!�!�!�!��a�j�#�&�&�&�&�&��:�������q�w����Q� 7� 7� 7�8�8�8��q�v�r�w�v�A�6�6�6�7�7�7��6�V������r�kdtree_classc	�Z�
��tj�d��tjddd��}tj�d���d��}tj�d���d��}tj�d��}tj�d	��}||��}||��}|�||d
||f���}|ddd�f|dd�dfz�tj�|ddd�dd�f|dd�ddd�fz
d�
���
�
�fd�ttj
dg|dd���|��D��}	t||	��dS)NrnrBr�)r|r��-)�r�r|r�F)rkr^r�r;c�`��g|]*\}}tj�|�k�|kz����+Srh)r@rA)r��prev_radius�radiusr�r^s   ��rr�z8test_kdtree_count_neighbors_weighted.<locals>.<listcomp>�sP���O�O�O�%�+�v��f�W�k�D�0�T�V�^�D�E�F�F�O�O�Orr)r@rsrtr8r.r��linalgr�rUrn�chainr)r�r'�A�B�wA�wB�kdA�kdB�nAB�expectr�r^s          @@r�$test_kdtree_count_neighbors_weightedr��s������I�N�N�4����
�	�$��4� � �A�
�	������$�$�U�+�+�A�
�	������$�$�V�,�,�A�	��	�	�!�	�	�B�	��	�	�"�	�	�B�
�,�q�/�/�C�
�,�q�/�/�C�

�
�
�c�1���B��
�
H�
H�C���q�q�q��k�B�q�q�q�$�w�K�'�G�
�9�>�>�!�D�!�!�!�Q�Q�Q�J�-�!�A�A�A�t�Q�Q�Q�J�-�7�b�>�A�A�D�O�O�O�O�O�),�Y�_�a�S�!�C�R�C�&�-I�-I�1�)M�)M�O�O�O�F��C�� � � � � rc�N�gd�}t|��}tj|tj|tj��g��dd�df}t|���d��}t|d|����d��}||ksJ�dS)N)
rr#i����r|���i�i�����r�i����r9)r�r@r;r��nanrr�)�valsrTrB�query_with_nans�query_without_nanss     r�test_kdtree_nanr��s���1�1�1�D��D�	�	�A�
�>�4����B�F�!3�!3�4�5�5�a�a�a��g�>�D��T�l�l�.�.�q�1�1�O���R�a�R��)�)�5�5�a�8�8���0�0�0�0�0�0�0r)hr
�
numpy.testingrrrrrrr�r	r2�platformr
�numpyr@�
scipy.spatialrrr
r�scipy.spatial._ckdtreerrrn�fixturerr'r0r2rjrzr�r�r�r�r�r�r�r�rr
r
rrrr(r3r5rArErIrMrPrSrVrvrxrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr"r*r,r0r3r&�mark�skipifr[rhrtr�r�r�r�r�r�r��parametrizer�r�r�r�r�r�r�rhrr�<module>rs�
��
�	�	�	�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�+�*�*�*�*�*�
�
�
�
�*�*�*�*�*�*�����E�E�E�E�E�E�E�E�E�E�E�E�.�.�.�.�.�.�,�,�,�,�,�,����������(�)�)�)���*�)�����(
�
�
�E-�E-�E-�E-�E-�E-�E-�E-�P�	�	�	�	�	�#�	�	���	��,�,�,�,�,�|�,�,���,��&�&�&�&�&�"�&�&���&�:�>�>�>�>�>�+�>�>���>�+)�+)�+)�+)�+)�+)�+)�+)�Z-7�-7�-7�-7�-7�-7�-7�-7�^>�>�>�>�>�>�>�>�4�
�
�
�
�
�(�
�
���
��]�]�]�]�]�!1�]�]���]�D������)9������"������0������������(9������������-������������%?������������,������������.������'�'�'�-�-�-�&i�i�i�i�i�i�i�i�&������2������������&;������"������!7������������*I������������"8������������+J������3�3�3�3�3�3�3�3�>K�K�K�B�B�B�G�G�G�:�:�:�F�F�F�F�F�F�F�F�$�F�F�F�F�F�7�F�F���F�D@�D@�D@�D@�D@�D@�D@�D@�N������#E������"L�L�L�	�	�	�#�#�#�!�!�!�$/�/�/�
���B#�#�#�
;�
;�
;�5�5�5�
�
�
�������
�
�
�'�'�'�$A�A�A�D $� $� $�D���6���&6�6�6�J�J�J�4�4�4�2����)�)�+�+�v�5�=��?�?�'�'�?�?�'�R,8�,8�,8�\+�+�+�$,�,�,�\&�&�&�.,�,�,�+�+�+�21�1�1�(�(�(� ���8����7������
����
�.�-�-�-�-�-�-�-���-�:
(�
(�
(� !�!�!�<���(�����&�'�):�;�;�!�!�<�;�!�.1�1�1�1�1r

Youez - 2016 - github.com/yon3zu
LinuXploit