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

d�c�G����ddlZddlZddlmZmZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZmZmZmZmZmZddlZddlmZddlmZmZmZmZmZmZmZm Z m!Z!ddlm"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7gd�Z8ej9gd	�gd
�gd�gd�gd
�gd�gd���Z:ee:��Z;iZ<d�Z=e=��d�Z>dPd�Z?					dQd�Z@d�ZAd�ZBdPd�ZCeed���d�dfd�ZDddd�d ddddddddddd!deed���fd"�ZEeEed#d�$��ZFeEed#dd�%��ZGeEed#dd#�&��ZHeEed#ddd#�'��ZIeEe1��ZJeEe*d�(��xZKZLeEe7��ZMeEe(��ZNeEe%��ZOeEe$��ZPeEe'��ZQeEe&��ZReEe-��ZSeEe.��ZTeEe+��ZUeEe)d�)��ZVeEe6d�)��ZWeEe"��ZXeEe#d�)��ZYeEe5��ZZeEe4��Z[eEe2��Z\Gd*�d+��Z]Gd,�d-��Z^Gd.�d/��Z_Gd0�d1��Z`Gd2�d3��ZaGd4�d5��Zbd6�ZcGd7�d8��Zdd9�ZeGd:�d;��Zfejg�hd<gd=���d>���Zid?�Zjd@�ZkdA�ZldB�ZmdC�ZndD�ZodE�ZpdF�ZqdG�ZrdH�ZsdI�ZtdJ�ZudK�ZvdL�ZwdM�ZxdN�ZydO�ZzdS)R�N)�wraps�partial)�norm)�verbose�assert_�assert_array_equal�assert_equal�assert_almost_equal�assert_allclose�break_cycles�IS_PYPY)�raises)	�
squareform�pdist�cdist�	num_obs_y�
num_obs_dm�is_valid_dm�
is_valid_y�_validate_vector�_METRICS_NAMES)�
braycurtis�canberra�	chebyshev�	cityblock�correlation�cosine�dice�	euclidean�hamming�jaccard�
jensenshannon�	kulsinski�kulczynski1�mahalanobis�	minkowski�rogerstanimoto�
russellrao�
seuclidean�
sokalmichener�sokalsneath�sqeuclidean�yule)zcdist-X1.txtzcdist-X2.txtziris.txtzpdist-boolean-inp.txtzpdist-chebyshev-ml-iris.txtzpdist-chebyshev-ml.txtzpdist-cityblock-ml-iris.txtzpdist-cityblock-ml.txtzpdist-correlation-ml-iris.txtzpdist-correlation-ml.txtzpdist-cosine-ml-iris.txtzpdist-cosine-ml.txtzpdist-double-inp.txtzpdist-euclidean-ml-iris.txtzpdist-euclidean-ml.txtzpdist-hamming-ml.txtzpdist-jaccard-ml.txtzpdist-jensenshannon-ml-iris.txtzpdist-jensenshannon-ml.txtzpdist-minkowski-3.2-ml-iris.txtzpdist-minkowski-3.2-ml.txtzpdist-minkowski-5.8-ml-iris.txtzpdist-seuclidean-ml-iris.txtzpdist-seuclidean-ml.txtzpdist-spearman-ml.txtzrandom-bool-data.txtzrandom-double-data.txtzrandom-int-data.txtzrandom-uint-data.txt)r��m����)r.r�'����)r/r3r���4�)r0r4r7r���e)r1r5r8r:r�)r2r6r9r;r<r�double��dtypec��tD]�}|�dd���dd��}tj�tj�t��d|��}t|��}tj	|��t|<|�����tjtd��td<tjtd��td<tj
td��td<tjtd	��td	<tjtd
��td
<dS)Nz.txt�z-ml�data�pdist-boolean-inp�random-bool-data�random-double-data�random-float32-data�random-int-data�random-uint-data)�
_filenames�replace�os�path�join�dirname�__file__�open�np�loadtxt�eo�close�bool_�float32�int_�uint)�fn�name�fqfn�fps    �C/usr/lib/python3/dist-packages/scipy/spatial/tests/test_distance.py�load_testing_filesr^ps�������z�z�&�"�%�%�-�-�e�R�8�8���w�|�|�B�G�O�O�H�5�5�v�r�B�B��
�$�Z�Z���:�b�>�>��4��
���
�
�
�
� �h�r�*=�'>�?�?�B����X�b�);�&<�=�=�B��� "�
�2�.B�+C� D� D�B����G�B�'8�$9�:�:�B����W�R�(:�%;�<�<�B�����c�<�tjd��jdkS)Nr�)rQ�intp�itemsize�r_r]�	_is_32bitre�s��
�7�1�:�:���"�"r_c���d��D���|�d��D���d}td��D�����|dkrJt�fd��D����std���t�dj��|}�|fzS)Nc�6�g|]}tj|����Srd)rQ�
asanyarray��.0�as  r]�
<listcomp>z!_chk_asarrays.<locals>.<listcomp>�s"��
/�
/�
/�1�b�m�A���
/�
/�
/r_c�P�g|]#}|jdkrtj|��n|��$S��)�ndimrQ�ravelris  r]rlz!_chk_asarrays.<locals>.<listcomp>�s>��#�#�#��"#��1���"�(�1�+�+�+�!�#�#�#r_rc3�>K�|]}tj|��V��dS�N)rQ�
atleast_1dris  r]�	<genexpr>z _chk_asarrays.<locals>.<genexpr>�s,����4�4��2�=��#�#�4�4�4�4�4�4r_c3�D�K�|]}|j�djkV��dS)rN)rp)rjrk�arrayss  �r]ruz _chk_asarrays.<locals>.<genexpr>�s0�����<�<��1�6�V�A�Y�^�+�<�<�<�<�<�<r_z(array ndim must be the same for neg axis)�tuple�all�
ValueError�rangerp)rw�axiss` r]�
_chk_asarraysr}�s����
/�
/��
/�
/�
/�F��|�#�#�!�#�#�#����
�4�4�V�4�4�4�
4�
4�F��a�x�x��<�<�<�<�V�<�<�<�<�<�	I��G�H�H�H��V�A�Y�^�$�$�T�*���T�G��r_FTc
�����t|����}
|
dd�|
dc}�|o|}|s|rtd�|D����}|rFd�|D��}t|��r+d}d}td�t||��D����}��t	j����n/|r&t	j|dj����n|��fzS|	rt����|rt|�����t��fd�|D����std	���|r'�dk���rtd
���|rRt	j�dk��d��j
�j
kr$t��fd�|D����}���|r�dk�
��rd�|��fzS)
N�r|���c3�vK�|]4}tj�|��tjjuV��5dSrs)rQ�ma�getmask�nomaskris  r]ruz_chk_weights.<locals>.<genexpr>�s9����Q�Q�Q�B�E�M�M�!�,�,�B�E�L�@�Q�Q�Q�Q�Q�Qr_c�Z�g|](}tjtj|������)Srd)rQ�isnan�sumris  r]rlz _chk_weights.<locals>.<listcomp>�s*��8�8�8�A�B�H�R�V�A�Y�Y�'�'�8�8�8r_Tc3�bK�|]*\}}|rtj�|��n|V��+dSrs�rQr��masked_invalid)rjrk�has_nans   r]ruz_chk_weights.<locals>.<genexpr>�s\����D�D�)�q�'�7>�D�2�5�/�/��2�2�2�1�D�D�D�D�D�Dr_rc3�F�K�|]}�j|j�fkV��dSrs��shape)rjrkr|�weightss  ��r]ruz_chk_weights.<locals>.<genexpr>�s3�����A�A�Q�w�}����� 0�0�A�A�A�A�A�Ar_z*weights shape must match arrays along axiszweights cannot be negativec3�F�K�|]}tj|�����V��dS)rN)rQ�take)rjrkr|�pos_weightss  ��r]ruz_chk_weights.<locals>.<genexpr>�s4�����N�N�!�2�7�1�k��=�=�=�N�N�N�N�N�Nr_ro)r}�anyrx�ziprQrh�onesr��
_freq_weights�_weight_maskedryrz�nonzero�size)
rwr�r|�
force_weights�simplify_weights�pos_only�	neg_check�
nan_screen�mask_screen�ddof�chked�has_nansr�s
 ``         @r]�_chk_weightsr��sN�����

�&�t�,�,�,�E���"��:�u�R�y�L�F�D�'�=�
�,=���R�[�R��Q�Q�&�Q�Q�Q�Q�Q�
��D�8�8��8�8�8���x�=�=�	D��K� �M��D�D�-0���-B�-B�D�D�D�D�D�F����-��(�(���	�(��'�&��)�/�$�/�0�0�����$��'�'��)���(�(���8� ���$�7�7���A�A�A�A�A�&�A�A�A�A�A�G��E�F�F�F��7�g��k�&�&�(�(�7��5�6�6�6��+��j��1��-�-�a�0����g�l�*�*��N�N�N�N�N�v�N�N�N�N�N�F��k�*�G���W��\�.�.�0�0�����W�d�O�#�#r_c��|�|S|�t��}||k���rtd|z���|S)Nz2frequency (integer count-type) weights required %s)�astype�intr�rz)r��int_weightss  r]r�r��sR�������.�.��%�%�K��;��#�#�%�%�Y��M�PW�W�X�X�X��r_c�����d�tj|��}|D]�}tj�|��}|tjjur�5|jdkrCt
�fd�t|j��D����}|�|���}|d|�	t��z
z}��|S)Nrroc3�(�K�|]}|�k�|V��
dSrsrd)rj�ir|s  �r]ruz!_weight_masked.<locals>.<genexpr>�s'�����C�C�1��d���Q�����C�Cr_r)rQrhr�r�r�rprxr{r�r�r�)rwr�r|rk�	axis_mask�not_axess  `   r]r�r��s�����|����m�G�$�$�G�
�-�-���E�M�M�!�$�$�	�����$�$���6�A�:�:��C�C�C�C��a�f�
�
�C�C�C�C�C�H�!�
�
�8�
�4�4�I��1�y�'�'��,�,�,�,����Nr_c�2��	�
��d�|D��}tj|tj���}tj�|��}d��	|dj��
t
��
fd�|D����s
Jd���tt|���
z��D]i}|�	�
|z���|�}|�
��}||z|�<tj|d|z
|z��}��	�fd�|D��}�j||fS)	Nc��g|]G}tj|jtj��r|�tj��n|��HSrd)rQ�
issubdtyper?�integerr��float64)rj�arrs  r]rlz_rand_split.<locals>.<listcomp>�sS��*�*�*��)+�
�c�i���(L�(L��c�j�j���$�$�$��*�*�*r_r>c����tjtj�|������}|���fd�t	�j��D����S)Nrc�:��g|]}|�kr
�j|nd��Srnr�)rjr�rkr|s  ��r]rlz/_rand_split.<locals>.mytake.<locals>.<listcomp>�s;���7�7�7�#$�./�$�Y�Y�q�w�q�z�z�A�7�7�7r_)rQrhr��reshaper{rp)rk�ixr|�records` ` r]�mytakez_rand_split.<locals>.mytake�sm������r�w�q�"�4�8�8�8�9�9���~�~�7�7�7�7�7�(-�a�f�
�
�7�7�7�8�8�	8r_rc3�:�K�|]}|j��kV��dSrsr�)rjrkr|�n_obss  ��r]ruz_rand_split.<locals>.<genexpr>�s.�����6�6�!�q�w�t�}��%�6�6�6�6�6�6r_z#data must be aligned on sample axis��?c
�V��g|]%}tj|�|�����������&S�r�rQ�append)rjrkr|r��split_ixs  ���r]rlz_rand_split.<locals>.<listcomp>�sR���8�8�8�+,��)�A�v�v�a���=�=�=�!%�'�'�'�8�8�8r_)rQ�arrayr��random�RandomStater�ryr{r��randint�randr�)rwr�r|�	split_per�seed�seeded_randr��prev_w�qr�r�r�s  `      @@@r]�_rand_splitr��sa������*�*�"(�*�*�*�F��h�w�b�j�1�1�1�G��)�'�'��-�-�K�8�8�8�

�1�I�O�D�!�E��6�6�6�6�6�v�6�6�6�6�6�]�]�8]�]�]�]�
�3�y�>�>�E�)�
*�
*�8�8���&�&�u�q�y�1�1����"����������J�����)�G�b�1�f��%6�7�7��8�8�8�8�8�8�06�8�8�8����7�?�r_��h㈵��>��atolc��|Srsrd��xs r]�<lambda>r��s���r_c�T�||��}||��}	tj||k�����r|||��dSdS#t$r|||��YdStt
f$r,t
||��D]\}}t|||����YdSwxYw)N)�compare_assert)rQr�r��AttributeError�	TypeErrorrzr��_rough_check)	rk�br��key�w�check_a�check_b�a_i�b_is	         r]r�r��s���c�!�f�f�G��c�!�f�f�G�B�
�8�G�w�&�'�'�+�+�-�-�	-��N�7�G�,�,�,�,�,�	-�	-���)�)�)���w��(�(�(�(�(�(��z�"�B�B�B��G�W�-�-�	B�	B�H�C����c�.�A�A�A�A�A�	B�	B�	B�B���s�6A�B'�+8B'�&B'�c��|Srsrdr�s r]r�r�s��1�r_r�r�c�|����������	�
���
����t�������	����
�������
��fd���}|S)z�runs fn on its arguments 2 or 3 ways, checks that the results are the same,
       then returns the same thing it would have returned beforec������|i|��}|d��}|�d�}|��$d��}|�d����t||�dd���}|dd�|d|dc}}��#rd�|D��}	t|��|z}�r||�$<t|�|i|�������rp|dz|�$<t|�|i|������|d	z|�$<	t|�|i|������n.#t$r!}t|��|||f��|�d}~wwxYw��r�t
||��!��
��\}}	||	d|j�<d|	|jd�<t|��|z}
|	|�$<t|�|
i|������|D]O}td��g|j	z}t|jd��|�<t|��}||dz||<�Pt|��|z}
t|�|
i|������|D]Y}td��g|j	z}t|jd��|�<t|��}||tjz||<�Z|�d
d��dkr,�r*t|��|z}
t|�|
i|�������rUd�|D��}t|��|z}
t|�|
i|�������rd|�$<t|�|
i|������~~
~	�rX�fd�|D��}
tj||��dz}t|
��|z}||�$<t|�|i|������~~
~�"rL�!dkrFt
||��!��
��\}}t|��|z}||�$<t|�|i|������n7#t$r*}� stj�j�d|����Yd}~nd}~wwxYw|S)Nr|T)r�r|r�r����r�c�Z�g|](}tj|�������)Srd)rQrt�squeezeris  r]rlz4_weight_checked.<locals>.wrapped.<locals>.<listcomp>s*��A�A�A�Q�b�m�A�I�I�K�K�0�0�A�A�Ar_)r�g@Y@gB`��"۹?)r�r�r�e�
nan_policy�omitc�L�g|]!}tj�|����"Srdr�ris  r]rlz4_weight_checked.<locals>.wrapped.<locals>.<listcomp>Gs(��!N�!N�!N�a�"�%�"6�"6�q�"9�"9�!N�!N�!Nr_c�>��g|]}tj||������Sr�r�)rjrkr|s  �r]rlz4_weight_checked.<locals>.wrapped.<locals>.<listcomp>Qs*���I�I�I�Q�b�i��1�4�8�8�8�I�I�Ir_�@z NotImplemented weights: )�getr�rxr��	Exception�typer�r��slicerprQ�nanr��NotImplementedError�warnings�warn�__name__)%�args�kwargs�resultrw�restr�r��e�
dud_arrays�dud_weights�dud_argsrk�indexer�
dup_arrays�dup_weights�dup_args�split_arrays�
split_weights�
split_argsr|�
const_test�default_axis�dud_test�dup_testrYr��ma_safe�ma_very_safe�n_args�nan_safe�	ones_testr��silentr��
split_testr��
weight_args%                   @�����������������r]�wrappedz _weight_checked.<locals>.wrappedsJ������T�$�V�$�$���g�v�g����F�G�G�}���*�*�Z��.�.���z�z�&�,�/�/���V�W�4�t�ae�f�f�f�� %�c�r�c�
�E�"�I�u�R�y������	B�A�A�&�A�A�A�F�F	R���=�=�4�'�D��
C�%,��z�"��V�R�R��%8��%8�%8�c�B�B�B�B��
?�%,�u�_��z�"��V�R�R��%8��%8�%8�c�B�B�B�B�%,�u�_��z�"�?� ����T�)<�V�)<�)<�#�F�F�F�F�F�� �?�?�?�!�$�q�'�'�1�f�g�"6�7�7�Q�>�����?�����!
6�*5�f�g�t�W`�gk�*l�*l�*l�'�
�K�-4��M�W�\�M�*�-.��G�L�M�M�*� ��,�,�t�3��%0��z�"��V�R�R��%<�V�%<�%<�#�F�F�F�F�#�2�2�A�$�T�{�{�m�a�f�4�G�$)�'�,��$=�$=�G�D�M�#�G�n�n�G�!"�7��c�!1�A�g�J�J� ��,�,�t�3���V�R�R��%<�V�%<�%<�#�F�F�F�F�#�5�5�A�$�T�{�{�m�a�f�4�G�$)�'�,��$=�$=�G�D�M�#�G�n�n�G�!"�7��b�f�!4�A�g�J�J��:�:�l�D�1�1�V�;�;��;�$�Z�0�0�4�7�H� ����X�)@��)@�)@�c�J�J�J�J��O�!N�!N�:�!N�!N�!N�J�$�Z�0�0�4�7�H� ����X�)@��)@�)@�c�J�J�J�J�#�O�-1��z�*�$�V�R�R��-D�V�-D�-D�#�N�N�N�N���+��
6�I�I�I�I�&�I�I�I�
� �i���9�9�C�?�� ��,�,�t�3��%0��z�"��V�R�R��%<�V�%<�%<�#�F�F�F�F��j�+��
I�i�!�m�m�.9�&�'�4�[d�ko�.p�.p�.p�+��m�"�<�0�0�4�7�
�%2��z�"��V�R�R��%>�v�%>�%>�C�H�H�H�H���"�	R�	R�	R��
R��
�����a�a�P�Q�Q�Q����������		R����
�
s>�	AN.�%C>�=N.�>
D)�D$�$D)�)JN.�.
O"�8 O�O")r)rYr
rr�rr�r
rrrrrrr	rr�r�r�rs`````````````````  r]�_weight_checkedrs���������������������2�Y�Y�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T��Y�T�j�Nr_ro)rr�)rr�r)rr�r
)rr�rr
)r)rc��eZdZd�Zd�Zd�Zej�dddddd	d
de	j
g��d���Zd
�Zd�Z
d�Zdd�Zd�Zd�Zd�Zd�Zd�ZdS)�	TestCdistc��gd�|_tjtjtjtjgtjtjtjgtjtjgtjgd�|_dS�N)rFrGrHrErD)�boolrXr�rV��rnd_eo_namesrQrXrWrVr=�
valid_upcasts��selfs r]�setup_methodzTestCdist.setup_method��d��1�1�1���(*�w�����R�Y�&O�')�w��
�B�I�&F�&(�j�"�)�%<�*,�)��6�6����r_c
�8�dd�}gd�gd�gd�g}gd�gd�gd	�g}d
tjd��d�}d
gd
z}tD�]%}tj���5}|dkr|�td��ttt||fd|i|��ttt||fdt|��i|��ttt||fdd|zi|��ttt||g|�Rd|i�ttt||g|�Rdt|��i�ttt||g|�Rdd|zi�ddd��n#1swxYwY��'ttt|||��ttt|||g|�R�ttt|||fi|��ttt|||dd���ttt|||ddd���ttt|||ddd��ttt|||dd��ttt|||d��ttt|||ddd���tt|||dd���d��dS)Nror�c��||z|zSrsrd�r��y�arg�kwarg�kwarg2s     r]�
_my_metricz3TestCdist.test_cdist_extra_args.<locals>._my_metric������;��'�'r_�r�r��@��333333�?�ffffff@�333333@�皙����@r+皙����@)g@�@g @)g@�333333@g������ @)g@r1r/���Q�	@���N0tV4l1D_p4raMr���r#�"Kulsinski has been deprecated from�metric�test_r.�ffffff
@�r#r$�r#皙�����?�r8r"r$皙����@�ror�)rQ�aranger�testing�suppress_warnings�filter�DeprecationWarning�
assert_raisesr�r�evalr)rr%�X1�X2r�r�r8�sups        r]�test_cdist_extra_argszTestCdist.test_cdist_extra_args�s���	(�	(�	(�	(��l�l�O�O�O�_�_�_�
=���l�l�O�O�O�_�_�_�
=��$(�b�i��l�l�;�;���v��|��$�	>�	>�F���-�-�/�/�
>�3��[�(�(��J�J�1�C�E�E�E��i���B�7�7�%+�7�/5�7�7�7��i���B�=�=�%)�&�\�\�=�5;�=�=�=��i���B�A�A�%,�v�%5�A�9?�A�A�A��i���B�4�.2�4�4�4�%+�4�4�4��i���B�:�48�:�:�:�%)�&�\�\�:�:�:��i���B�>�8<�>�>�>�%,�v�%5�>�>�>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��"	�i���B�
�;�;�;��i���B�
�B�T�B�B�B�B��i���B�
�E�E�f�E�E�E��i���B�
���	-�	-�	-�	-��i���B�
�A�q��L�L�L�L��i���B�
�C��c�J�J�J��i���B�
�C��E�E�E��i���B�
�C�@�@�@��i���B�
�C���	-�	-�	-�	-�	��b�"�Z�"%�c�3�3�3�47�	9�	9�	9�	9�	9s� C-E�E	� E	c��d}td}td}t||d��}t||d��}t|||tdk���dS)N�V瞯�<�cdist-X1�cdist-X2r�test_euclideanr���rtolr�rS�wcdist_no_constrr)r�epsrHrI�Y1�Y2s      r]�#test_cdist_euclidean_random_unicodez-TestCdist.test_cdist_euclidean_random_unicode�s]����
�
�^��
�
�^��
�R��[�
1�
1��
�R��%5�
6�
6����B�S�'�A�+�>�>�>�>�>�>r_�p皙�����?��?r��G�z��?r�gffffff@gffffff@c���d}td}td}t||d|���}t||d|���}t||d|tdk�	��dS)
N�vIh�%<=rNrOr&�rY�test_minkowskirr�)r�rRrrS)rrYrUrHrIrVrWs       r]�test_cdist_minkowski_randomz%TestCdist.test_cdist_minkowski_random�sk����
�
�^��
�
�^��
�R��[�A�
6�
6�
6��
�R��%5��
;�
;�
;����B�Q�S�'�A�+�F�F�F�F�F�Fr_c��d}td}td}t||d��}d�}dtj|||��z|||��zj��z
}t|||tdk���dS)	N�+����=rNrOrc�l�tj�|d����dd��S)Nrorr�)rQ�linalgrr�)�Xs r]�normsz1TestCdist.test_cdist_cosine_random.<locals>.norms�s*���9�>�>�!�!�>�,�,�4�4�R��;�;�;r_ror�rQ)rS�wcdistrQ�dot�Trr)rrUrHrIrVrgrWs       r]�test_cdist_cosine_randomz"TestCdist.test_cdist_cosine_random�s�����
�
�^��
�
�^��
�B��H�
%�
%��	<�	<�	<�����e�e�B�i�i��2���b�	�	�>�*<�=�=�
=����B�S�'�A�+�>�>�>�>�>�>r_c�Z�tjdgdgg��}tjdgdgg��}t||d���}t|dtjd��gtjd��tjd��gg��tjd	d	gd
d	gg��}tjd	dgdd	gd	dgg��}t||d���}tjd��}t||||gdd|zdgg��tttd	dggddggd���dS)
Nr�r3�r%�r8��@��?rr�ror�)rQr�rr�sqrtrFrz)r�x1�x2�dist�rt2s     r]�test_cdist_mahalanobisz TestCdist.test_cdist_mahalanobis�sA��
�X��s�Q�C�j�
!�
!��
�X��s�Q�C�j�
!�
!���R��M�2�2�2�����R�W�S�\�\�2�R�W�S�\�\�2�7�1�:�:�4N�O�P�P�P��X��1�v��A�w�'�
(�
(��
�X��1�v��1�v��2�w�/�
0�
0���R��M�2�2�2���g�a�j�j�����S�#���A��G�Q��@�A�A�A�	�j��q�!�f�X��A��x�
�	G�	G�	G�	G�	G�	Gr_c����Gd�d����fd�}tj���ggt���}t|||���}d}t	||t
dk���dS)	Nc��eZdZdS)�6TestCdist.test_cdist_custom_notdouble.<locals>.myclassN�r��
__module__�__qualname__rdr_r]�myclassrz���������Dr_r~c�~��t|d���rt|d���std���dS�NrzType has been changed�+����?��
isinstancerz�r�r!r~s  �r]r%z9TestCdist.test_cdist_custom_notdouble.<locals>._my_metric��B����a��d�G�,�,�
:�J�q��t�W�4M�4M�
:� �!8�9�9�9��5r_r>rnr�r��r)rQr��objectrr	r)rr%rB�cdist_y�right_yr~s     @r]�test_cdist_custom_notdoublez%TestCdist.test_cdist_custom_notdouble�s����	�	�	�	�	�	�	�	�	�	�	�	�	��x�'�'�)�)��
�V�4�4�4����d�:�6�6�6�����W�g�w��{�;�;�;�;�;�;r_�H�����z>c�<�	t||fd|i|��}t||fdt|��i|��}t||fdd|zi|��}t|||tdk���t|||tdk���dS#t$r�}	|	j}
tdkr#t
|
j��t
|	��t|
t||fd|i|��t|
t||fdt|��i|��t|
t||fdd|zi|��Yd}	~	dSd}	~	wwxYw�Nr8r9r�rQ)	rrGrrr��	__class__�printr�rF)rrHrIr8rUr��y1�y2�y3r��e_clss           r]�_check_calling_conventionsz$TestCdist._check_calling_conventions�su��	C��r�2�7�7�f�7��7�7�B��r�2�=�=�d�6�l�l�=�f�=�=�B��r�2�A�A�g��&6�A�&�A�A�B�
�B���g��k�B�B�B�B��B���g��k�B�B�B�B�B�B���	S�	S�	S��K�E���{�{��e�n�%�%�%��a�����%���B�H�H�v�H��H�H�H��%���B�N�N�t�F�|�|�N�v�N�N�N��%���B�R�R�w��7G�R�6�R�R�R�R�R�R�R�R�R�����	S���s�AA<�<
D�B
D�Dc��|jD�]�}t|ddd�ddd�f}t|ddd�ddd�f}tD�]�}tdkrt	d|d|��|dvrd|vr�)t
j���5}|d	kr|�td
��|�
|||��ddd��n#1swxYwY|dkretj||g���t
j
��}tj|dd�
��}|�
||||�����|dkr�tj||g���t
j
��}tjtj|j����}tjt
j�|��j��}|�
||||���������dS)Nrmr�ror��	testing: � with: >rr-r#r(r$r+r*r'rr#r7r)r�r|r���Vr%��VI)rrSrrr�rQrBrCrDrEr��vstackr�r=�var�
atleast_2d�covrjr�re�inv)	r�eo_namerHrIr8rJ�X12r�r�s	         r]�test_cdist_calling_conventionsz(TestCdist.test_cdist_calling_conventionss[���(�	K�	K�G��G��S�S�q�S�$�$�B�$�Y�'�B��G��Q�T��T�3�3�Q�3�Y�'�B�(�
K�
K���Q�;�;��+�v�y�'�B�B�B��-�-�-�28�w�1F�1F���Z�1�1�3�3�D�s���,�,��
�
�#5�#G�I�I�I��3�3�B��F�C�C�C�	D�D�D�D�D�D�D�D�D�D�D����D�D�D�D��\�)�)��)�R��H�-�-�4�4�R�Y�?�?�C���s���3�3�3�A��3�3�B��F�a�3�H�H�H�H��}�,�,��)�R��H�-�-�4�4�R�Y�?�?�C��
�b�f�S�U�m�m�4�4�A���"�)�-�-��"2�"2�"4�5�5�B��3�3�B��F�r�3�J�J�J��3
K�	K�	Ks�9C�C�Cc��d}td|jdftd|jdftd|jdftd|jd	fg}tD�]}|D�]}|d
ddd�ddd�f}|d
d
dd�ddd�f}	t|||���}|d
D]B}t||��||��|���}	t	||	|t
dk����C��#t$rz}
|
j}t
dkr#t|j	��t|
��|d
D]1}||��}||��}
t|t||
|����2Yd}
~
��
d}
~
wwxYw��dS)Nr�rDrrHrXrGr�rFrVrrmr�ror�rnrQ)rSrrrrrr�r�r�r�rF)rrU�testsr8�testrHrIr��new_typer�r�r��X1new�X2news              r]�test_cdist_dtype_equivalencez&TestCdist.test_cdist_dtype_equivalence+s�����'�(�$�*<�V�*D�E��'�(�$�*<�V�*D�E��&�'��);�E�)B�C��*�+�T�-?�	�-J�K�M��%�	O�	O�F��
O�
O���!�W�S�S�q�S�$�$�B�$�Y�'���!�W�Q�T��T�3�3�Q�3�Y�'��O��r�2�f�5�5�5�B�%)��G�O�O��"�8�8�B�<�<���"���f�M�M�M��'��B�S�'�A�+�N�N�N�N�N�O��!�Q�Q�Q��K�E���{�{��e�n�-�-�-��a����$(��G�Q�Q�� (������ (������%�e�U�E�5��P�P�P�P�P�Q�Q�Q�Q�Q�����Q����
O�	O�	Os�%D�
F�
A/F�Fc���d}td}td}|jd|jd}}tD�]�}t��}|dkrd|d<t	j||ftj���}t|||fi|��}	t|||fd	|i|��}
t|	|
|td
k���t|
|u��t	j|dz
|dzftj���}ttt|||fd	|i|��t	jd
|zd
|zftj���ddd
�ddd
�f}t	j||ftjd
���}
ttt|||fd	|i|��ttt|||fd	|
i|��t	j||ftj
���}ttt|||fd	|i|�����dS)NrMrNrOrr&r\rYr>�outr�rQro�F)r?�order)rSr�r�dictrQ�emptyr=rrrrrFrz�int64)rrUrHrI�out_r�out_cr8r��out1rVrW�out2�out3�out4�out5s               r]�test_cdist_outzTestCdist.test_cdist_outFsl����
�
�^��
�
�^���x��{�B�H�Q�K�u��$�	E�	E�F��V�V�F���$�$�"��s���8�U�E�N�"�)�<�<�<�D��r�2�v�0�0��0�0�B��r�2�v�:�:�4�:�6�:�:�B��B���g��k�B�B�B�B��B�$�J�����8�U�1�W�e�A�g�.�b�i�@�@�@�D��*���R��
E�
E�59�
E�=C�
E�
E�
E��8��U��A��I�&�b�i�9�9�9�9<��1��c�c��c��C�D��8�U�E�N�"�)�3�G�G�G�D��*���R��
E�
E�59�
E�=C�
E�
E�
E��*���R��
E�
E�59�
E�=C�
E�
E�
E��8�U�E�N�"�(�;�;�;�D��*���R��
E�
E�59�
E�=C�
E�
E�
E�
E�5	E�	Er_c��d}tdddd�ddd�f}tdddd�ddd�f}|���}|���}t||��t||��t|jj��t|jj��t|jj��t|jj��tD]U}t��}|dkrd|d<t|||fi|��}t|||fi|��}	t||	|tdk����VdS)	NrMrNr�rOr&r\rYrQ)rS�copyr	r�flags�c_contiguousrr�rrr)
rrUrHrI�X1_copy�X2_copyr8r�rVrWs
          r]�
test_stridingzTestCdist.test_stridingjs]����
�
�^�C�C�a�C���1��H�
%��
�
�^�C�C�a�C���1��H�
%���'�'�)�)���'�'�)�)��	�R��!�!�!��R��!�!�!��B�H�)�)�*�*�*��B�H�)�)�*�*�*���
�*�+�+�+���
�*�+�+�+�$�	C�	C�F��V�V�F���$�$�"��s���r�2�v�0�0��0�0�B��w���:�:�6�:�:�B��B���g��k�B�B�B�B�B�	C�	Cr_c�p�tD]�}tj�dd��}tj�dd��}t	��}|dkrd|d<t||fd|i|��}d�|||fD��}~~~trt��td�|D����sJ���dS)N�
r&r\rYr8c�6�g|]}tj|����Srd)�weakref�ref)rj�vs  r]rlz1TestCdist.test_cdist_refcount.<locals>.<listcomp>�s ��?�?�?�A���Q���?�?�?r_c3�.K�|]}|��duV��dSrsrd)rj�weak_refs  r]ruz0TestCdist.test_cdist_refcount.<locals>.<genexpr>�s-����D�D�h�x�x�z�z�T�)�D�D�D�D�D�Dr_)	rrQr�r�r�rr
rry)rr8rsrtr�r��	weak_refss       r]�test_cdist_refcountzTestCdist.test_cdist_refcount�s���$�	E�	E�F������B�'�'�B������B�'�'�B��V�V�F���$�$�"��s����B�8�8�v�8��8�8�C�@�?�"�b�#��?�?�?�I��B���
������D�D�)�D�D�D�D�D�D�D�D�D�#	E�	Er_N�r�)r�r|r}rrKrX�pytest�mark�parametrizerQ�infrarkrwr�r�r�r�r�r�r�rdr_r]rrs5������6�6�6�*9�*9�*9�X?�?�?��[���S�3��c�4�#&��S�"�&�#:�;�;�G�G�;�;�G�?�?�?�G�G�G�$<�<�<�C�C�C�C�$"K�"K�"K�HO�O�O�6"E�"E�"E�HC�C�C�6E�E�E�E�Er_rc	�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
jd���Ze	j
jd���Z
e	j
jd	���Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Ze	j
jd���Ze	j
jd���Ze	j
jd���Zd�Zd�Zd�Zd�Ze	j
jd���Ze	j
jd���Z e	j
jd���Z!d�Z"d�Z#d�Z$e	j
jd ���Z%e	j
jd!���Z&e	j
jd"���Z'e	j
�(d#d$d%d&d'd(e)j*g��d)���Z+d*�Z,d+�Z-d,�Z.e	j
jd-���Z/e	j
jd.���Z0e	j
jd/���Z1e	j
jd0���Z2e	j
jd1���Z3e	j
jd2���Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQdP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVdU�ZWdV�ZXdW�ZYdX�ZZdY�Z[dZ�Z\d[�Z]e	j
jd\���Z^d]�Z_d^�Z`dfd`�Zada�Zbdb�Zcdc�Zddd�ZedeS)g�	TestPdistc��gd�|_tjtjtjtjgtjtjtjgtjtjgtjgd�|_dSrrrs r]rzTestPdist.setup_method�rr_c	��dd�}ddgddgddgg}d	tjd��d
�}d	gdz}tD�]}tj���5}|dkr|�td
��ttt|fd|i|��ttt|fdt|��i|��ttt|fdd|zi|��ttt|g|�Rd|i�ttt|g|�Rdt|��i�ttt|g|�Rdd|zi�ddd��n#1swxYwY��!ttt||��ttt||g|�R�ttt||fi|��ttt||dd���ttt||ddd���ttt||ddd��ttt||dd��ttt||d��ttt||ddd���tt||dd���d��dS)Nror�c��||z|zSrsrdr s     r]r%z3TestPdist.test_pdist_extra_args.<locals>._my_metric�r&r_r�r�r*r+r.r2r4r6r#r7r8r9r:r;r<r=r>r?r@)rQrArrBrCrDrErFr�rrGr)rr%rHr�r�r8rJs       r]�test_pdist_extra_argszTestPdist.test_pdist_extra_args�s3��	(�	(�	(�	(��2�h��c�
�S�#�J�
/��$(�b�i��l�l�;�;���v��|��$�
	>�
	>�F���-�-�/�/�
>�3��[�(�(��J�J�1�C�E�E�E��i���L�L�6�L�V�L�L�L��i���=�=�%)�&�\�\�=�5;�=�=�=��i���A�A�%,�v�%5�A�9?�A�A�A��i���I�D�I�I�I�6�I�I�I��i���O�$�O�O�O�4��<�<�O�O�O��i���>�8<�>�>�>�%,�v�%5�>�>�>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��	�i���J�7�7�7��i���J�>��>�>�>�>��i���J�A�A�&�A�A�A��i���J���	-�	-�	-�	-��i���J��1�C�H�H�H�H��i���J��S�#�F�F�F��i���J��S�A�A�A��i���J��<�<�<��i���J����	-�	-�	-�	-�	��b��"%�c�3�3�3�47�	9�	9�	9�	9�	9s�C'E�E	�E	c��d}td}td}t|d��}t|||���dS�Nr��pdist-double-inp�pdist-euclideanr�rR�rS�wpdist_no_constr�rrUrf�Y_right�Y_test1s     r]�test_pdist_euclidean_randomz%TestPdist.test_pdist_euclidean_random��G�����!�"���&�'��!�!�[�1�1�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dSr�r�r�s     r]�test_pdist_euclidean_random_uz'TestPdist.test_pdist_euclidean_random_u�r�r_c��d}tjtd��}td}t|d��}t	|||���dSr��rQrVrSr�rr�s     r]�#test_pdist_euclidean_random_float32z-TestPdist.test_pdist_euclidean_random_float32�sQ�����J�r�,�-�.�.���&�'��!�!�[�1�1�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r�r�rPr�r��rrUrfr��Y_test2s     r]� test_pdist_euclidean_random_nonCz*TestPdist.test_pdist_euclidean_random_nonC�sH�����!�"���&�'��!�!�%5�6�6�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr��iris�pdist-euclidean-irisrr�r�r�s     r]� test_pdist_euclidean_iris_doublez*TestPdist.test_pdist_euclidean_iris_double�sE�����v�J���+�,��!�!�[�1�1�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Nr�r�r�rr�rQ�rQrVrSr�rrr�s     r]�!test_pdist_euclidean_iris_float32z+TestPdist.test_pdist_euclidean_iris_float32��U�����J�r�&�z�"�"���+�,��!�!�[�1�1�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|d��}t|||���dS)Nr�r�r�rPr�r�r�s     r]�test_pdist_euclidean_iris_nonCz(TestPdist.test_pdist_euclidean_iris_nonC�sH�����v�J���+�,��!�!�%5�6�6�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r��pdist-seuclideanr)r��rSrrr�s     r]�test_pdist_seuclidean_randomz&TestPdist.test_pdist_seuclidean_randomsG�����!�"���'�(����<�(�(�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���tj|dd���}t|d|�	��}t	|||���dS)
Nr�r�r�r)r�rror�r�)rQrVrSrrr�)rrUrfr�r�r�r�s       r]�$test_pdist_seuclidean_random_float32z.TestPdist.test_pdist_seuclidean_random_float32
s������J�r�,�-�.�.���'�(����<�(�(�����s�3�3�3�3�
�F�1�1�1�%�%�%����<�1�-�-�-�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r�r��test_seuclideanr�r�r�s     r]�!test_pdist_seuclidean_random_nonCz+TestPdist.test_pdist_seuclidean_random_nonCsH�����!�"���'�(����,�-�-�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r��pdist-seuclidean-irisr)r�r�r�s     r]�test_pdist_seuclidean_irisz$TestPdist.test_pdist_seuclidean_irissE�����v�J���,�-����<�(�(�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dS)Nr�r�rr)r�)rQrVrSrrr�s     r]�"test_pdist_seuclidean_iris_float32z,TestPdist.test_pdist_seuclidean_iris_float32%sO�����J�r�&�z�"�"���,�-����<�(�(�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r�rr�r�r�r�s     r]�test_pdist_seuclidean_iris_nonCz)TestPdist.test_pdist_seuclidean_iris_nonC-sH�����v�J���,�-����,�-�-�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS�Nr�r��pdist-cosinerr��rS�wpdistrr�s     r]�test_pdist_cosine_randomz"TestPdist.test_pdist_cosine_random6sF�����!�"���^�$����H�%�%�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSr�rQrVrSrrr�s     r]� test_pdist_cosine_random_float32z*TestPdist.test_pdist_cosine_random_float32=sP�����J�r�,�-�.�.���^�$����H�%�%�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r�r	�test_cosiner�r
r�s     r]�test_pdist_cosine_random_nonCz'TestPdist.test_pdist_cosine_random_nonCDsF�����!�"���^�$����M�*�*�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r��pdist-cosine-irisrr�r
r�s     r]�test_pdist_cosine_irisz TestPdist.test_pdist_cosine_irisLsE�����v�J���(�)����H�%�%�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Nr�r�rrr��r�r)rQrVrSrrrr�s     r]�test_pdist_cosine_iris_float32z(TestPdist.test_pdist_cosine_iris_float32TsU�����J�r�&�z�"�"���(�)����H�%�%�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|d��}t|||���dS)Nr�r�rrr�r
r�s     r]�test_pdist_cosine_iris_nonCz%TestPdist.test_pdist_cosine_iris_nonC\sE�����v�J���(�)����M�*�*�����s�3�3�3�3�3�3r_c��tjtj�d���d����}tj||g��}t
t|d��ddkd���dS)Ni9�[rrz&cosine distance should be non-negative��msg)rQ�absr�r�r�r�rr)rr�rfs   r]�test_pdist_cosine_boundsz"TestPdist.test_pdist_cosine_boundsds~��
�F�2�9�(�(��.�.�3�3�B�7�7�8�8���I�q�!�f������q�(�#�#�A�&�!�+�<�	>�	>�	>�	>�	>�	>r_c��d}td}td}t|d��}t|||���dS�Nr�r��pdist-cityblockrr�r�r�s     r]�test_pdist_cityblock_randomz%TestPdist.test_pdist_cityblock_randommsG�����!�"���&�'��!�!�[�1�1�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSr"r�r�s     r]�#test_pdist_cityblock_random_float32z-TestPdist.test_pdist_cityblock_random_float32tsQ�����J�r�,�-�.�.���&�'��!�!�[�1�1�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r�r#�test_cityblockr�r�r�s     r]� test_pdist_cityblock_random_nonCz*TestPdist.test_pdist_cityblock_random_nonC{sH�����!�"���&�'��!�!�%5�6�6�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nrcr��pdist-cityblock-irisrr�r�r�s     r]�test_pdist_cityblock_irisz#TestPdist.test_pdist_cityblock_iris�sE�����v�J���+�,��!�!�[�1�1�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Nr�r�r+rr�rQr�r�s     r]�!test_pdist_cityblock_iris_float32z+TestPdist.test_pdist_cityblock_iris_float32�r�r_c��d}td}td}t|d��}t|||���dS)Nrcr�r+r(r�r�r�s     r]�test_pdist_cityblock_iris_nonCz(TestPdist.test_pdist_cityblock_iris_nonC�sH�����v�J���+�,��!�!�%5�6�6�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS�Nr�r��pdist-correlationrr�r
r�s     r]�test_pdist_correlation_randomz'TestPdist.test_pdist_correlation_random�sG�����!�"���(�)����M�*�*�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSr2rr�s     r]�%test_pdist_correlation_random_float32z/TestPdist.test_pdist_correlation_random_float32�sQ�����J�r�,�-�.�.���(�)����M�*�*�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r�r3�test_correlationr�r
r�s     r]�"test_pdist_correlation_random_nonCz,TestPdist.test_pdist_correlation_random_nonC�sH�����!�"���(�)����.�/�/�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nr�r��pdist-correlation-irisrr�r
r�s     r]�test_pdist_correlation_irisz%TestPdist.test_pdist_correlation_iris�sE�����v�J���-�.����M�*�*�����s�3�3�3�3�3�3r_c��d}td}tjtd��}t|d��}t	|||t
dk���dS)Nr�r�r;rr�rQ)rSrQrVrrrr�s     r]�#test_pdist_correlation_iris_float32z-TestPdist.test_pdist_correlation_iris_float32�sU�����v�J���*�R� 8�9�:�:����M�*�*�����s�G�a�K�H�H�H�H�H�Hr_c���tjdkrd}ntjd��td}td}t|d��}t
|||���dS)Nlr�zsee gh-16456r�r;r8r�)�sys�maxsizer��skiprSrrr�s     r]� test_pdist_correlation_iris_nonCz*TestPdist.test_pdist_correlation_iris_nonC�se���;�����C�C��K��'�'�'��v�J���-�.����.�/�/�����s�3�3�3�3�3�3r_rYrZr[r�r�皙����	@c��d}td}t|d|���}t|d|���}t||d|���dS)Nr^r�r&r_r`r)r�rRr�)rrYrUrfrVrWs      r]�test_pdist_minkowski_random_pz'TestPdist.test_pdist_minkowski_random_p�sX�����!�"��
�Q��q�
1�
1�
1��
�Q� 0�A�
6�
6�
6����B�Q�S�1�1�1�1�1�1r_c��d}td}td}t|dd���}t|||���dS�Nr�r��pdist-minkowski-3.2r&rDr_r�r�r�s     r]�test_pdist_minkowski_randomz%TestPdist.test_pdist_minkowski_random�sL�����!�"���*�+��!�!�[�C�8�8�8�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|dd���}t	|||���dSrHr�r�s     r]�#test_pdist_minkowski_random_float32z-TestPdist.test_pdist_minkowski_random_float32�sV�����J�r�,�-�.�.���*�+��!�!�[�C�8�8�8�����s�3�3�3�3�3�3r_c��d}td}td}t|dd���}t|||���dS)Nr�r�rIr`rDr_r�r�r�s     r]� test_pdist_minkowski_random_nonCz*TestPdist.test_pdist_minkowski_random_nonC�sM�����!�"���*�+��!�!�%5��=�=�=�����s�3�3�3�3�3�3r_c��d}td}td}t|dd���}t|||���dS)Nr�r��pdist-minkowski-3.2-irisr&rDr_r�r�r�s     r]�test_pdist_minkowski_3_2_irisz'TestPdist.test_pdist_minkowski_3_2_iris��J�����v�J���/�0��!�!�[�C�8�8�8�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|dd���}t	|||���dS)Nr�r�rPr&rDr_r�r�r�s     r]�%test_pdist_minkowski_3_2_iris_float32z/TestPdist.test_pdist_minkowski_3_2_iris_float32�sT�����J�r�&�z�"�"���/�0��!�!�[�C�8�8�8�����s�3�3�3�3�3�3r_c��d}td}td}t|dd���}t|||���dS)Nr�r�rPr`rDr_r�r�r�s     r]�"test_pdist_minkowski_3_2_iris_nonCz,TestPdist.test_pdist_minkowski_3_2_iris_nonC��K�����v�J���/�0��!�!�%5��=�=�=�����s�3�3�3�3�3�3r_c��d}td}td}t|dd���}t|||���dS)Nr�r��pdist-minkowski-5.8-irisr&r1r_r�r�r�s     r]�test_pdist_minkowski_5_8_irisz'TestPdist.test_pdist_minkowski_5_8_irisrRr_c��d}tjtd��}td}t|dd���}t	|||t
dk���dS)	Nr�r�rYr&r1r_r�rQr�r�s     r]�%test_pdist_minkowski_5_8_iris_float32z/TestPdist.test_pdist_minkowski_5_8_iris_float32	sZ�����J�r�&�z�"�"���/�0��!�!�[�C�8�8�8�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|dd���}t|||���dS)Nr�r�rYr`r1r_r�r�r�s     r]�"test_pdist_minkowski_5_8_iris_nonCz,TestPdist.test_pdist_minkowski_5_8_iris_nonCrWr_c
�r�tjgd����dd��}t|d���}t	|dtjd��tjd��tjd��tjd��tjd	��g��tjd
d
gdd
gd
dgdd
gd
dgg��}t|d���}tjd��}t	|||||dd|zddd|zdg
��t
ttd
dgdd
ggd���dS)N)r�r�r(r0r�ror%rnrorqrpr�rr�r�r3)	rQr�r�rrrrrFrzr)rr�rurvs    r]�test_pdist_mahalanobisz TestPdist.test_pdist_mahalanobissG���H�)�)�)�*�*�2�2�2�q�9�9���Q�}�-�-�-����s�B�G�C�L�L�"�'�#�,�,�!�w�s�|�|�R�W�S�\�\�2�7�3�<�<�I�	J�	J�	J�
�H�q�!�f�r�1�g��1�v��1�v��2�w�?�@�@���Q�}�-�-�-���g�a�j�j����s�C��c�1�a�#�g�q�!�Q��W�a�P�Q�Q�Q�	�j���1�v��1�v�.�}�	F�	F�	F�	F�	F�	Fr_c��d}td}td}t|d��}t|||���dS�NrMrC�
pdist-hammingr r�r
r�s     r]�test_pdist_hamming_randomz#TestPdist.test_pdist_hamming_random*sF�����"�#���_�%����I�&�&�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSrbrr�s     r]�!test_pdist_hamming_random_float32z+TestPdist.test_pdist_hamming_random_float321�P�����J�r�-�.�/�/���_�%����I�&�&�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS�NrMrCrc�test_hammingr�r
r�s     r]�test_pdist_hamming_random_nonCz(TestPdist.test_pdist_hamming_random_nonC8sF�����"�#���_�%����N�+�+�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSrb�rQr�rSrrr�s     r]�test_pdist_dhamming_randomz$TestPdist.test_pdist_dhamming_random?rgr_c��d}tjtd��}td}t|d��}t	|||���dSrbrr�s     r]�"test_pdist_dhamming_random_float32z,TestPdist.test_pdist_dhamming_random_float32Frgr_c��d}tjtd��}td}t|d��}t	|||���dSrirmr�s     r]�test_pdist_dhamming_random_nonCz)TestPdist.test_pdist_dhamming_random_nonCMsP�����J�r�-�.�/�/���_�%����N�+�+�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS�N�:�0�yE>rC�
pdist-jaccardr!r�r
r�s     r]�test_pdist_jaccard_randomz#TestPdist.test_pdist_jaccard_randomTsF�����"�#���_�%����I�&�&�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSrtrr�s     r]�!test_pdist_jaccard_random_float32z+TestPdist.test_pdist_jaccard_random_float32[�P�����J�r�-�.�/�/���_�%����I�&�&�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS�NrurCrv�test_jaccardr�r
r�s     r]�test_pdist_jaccard_random_nonCz(TestPdist.test_pdist_jaccard_random_nonCbsF�����"�#���_�%����N�+�+�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||���dSrtrmr�s     r]�test_pdist_djaccard_randomz$TestPdist.test_pdist_djaccard_randomirzr_c��d}tjtd��}td}t|d��}t	|||���dSrtrr�s     r]�"test_pdist_djaccard_random_float32z,TestPdist.test_pdist_djaccard_random_float32przr_c��d}ttjd��d��}ttjd��||���dS)NrM�rmr3r!r�r��rrQ�zerosr�rrU�Ys   r]�test_pdist_djaccard_allzerosz&TestPdist.test_pdist_djaccard_allzeroswsC�����"�(�6�"�"�I�.�.��������a�c�2�2�2�2�2�2r_c��d}tjtd��}td}t|d��}t	|||���dSr|rmr�s     r]�test_pdist_djaccard_random_nonCz)TestPdist.test_pdist_djaccard_random_nonC|sP�����J�r�-�.�/�/���_�%����N�+�+�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)N�dy���=r��pdist-jensenshannonr"r�r�r�s     r]�test_pdist_jensenshannon_randomz)TestPdist.test_pdist_jensenshannon_random�sG�����!�"���*�+����?�+�+�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Nrur�r�r"r�rQ�rQrVrSrrrr�s     r]�'test_pdist_jensenshannon_random_float32z1TestPdist.test_pdist_jensenshannon_random_float32�sW�����J�r�,�-�.�.���*�+����?�+�+�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|d��}t|||���dS)Nr�r�r��test_jensenshannonr�r�r�s     r]�$test_pdist_jensenshannon_random_nonCz.TestPdist.test_pdist_jensenshannon_random_nonC�sH�����!�"���*�+����/�0�0�����s�3�3�3�3�3�3r_c��t��rd}nd}td}td}t|d��}t|||���dS)Ng��&�.�=g�-���q=r��pdist-jensenshannon-irisr"r�)rerSrrr�s     r]�test_pdist_jensenshannon_irisz'TestPdist.test_pdist_jensenshannon_iris�sX���;�;�	��C�C��C��v�J���/�0����?�+�+�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Ng���ư>r�r�r"r�rr�r�s     r]�%test_pdist_jensenshannon_iris_float32z/TestPdist.test_pdist_jensenshannon_iris_float32�sU�����J�r�&�z�"�"���/�0����?�+�+�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|d��}t|||���dS)Ng-C��6
?r�r�r�r�r�r�s     r]�"test_pdist_jensenshannon_iris_nonCz,TestPdist.test_pdist_jensenshannon_iris_nonC�sF�����v�J���/�0����/�0�0�����s�3�3�3�3�3�3r_c��d}ttjd��d��}ttjd��||���dS)NrMr�r}r�r�r�r�s   r]�!test_pdist_djaccard_allzeros_nonCz+TestPdist.test_pdist_djaccard_allzeros_nonC�sC�����"�(�6�"�"�N�3�3��������a�c�2�2�2�2�2�2r_c��d}td}td}t|d��}t|||���dS)Nrur��pdist-chebyshevrr�r�r�s     r]�test_pdist_chebyshev_randomz%TestPdist.test_pdist_chebyshev_random�sG�����!�"���&�'����;�'�'�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Nr�r�r�rr�rQr�r�s     r]�#test_pdist_chebyshev_random_float32z-TestPdist.test_pdist_chebyshev_random_float32�sW�����J�r�,�-�.�.���&�'����;�'�'�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|d��}t|||���dS)Nrur�r��test_chebyshevr�r�r�s     r]� test_pdist_chebyshev_random_nonCz*TestPdist.test_pdist_chebyshev_random_nonC�sH�����!�"���&�'����+�,�,�����s�3�3�3�3�3�3r_c��d}td}td}t|d��}t|||���dS)Nrcr��pdist-chebyshev-irisrr�r�r�s     r]�test_pdist_chebyshev_irisz#TestPdist.test_pdist_chebyshev_iris�sE�����v�J���+�,����;�'�'�����s�3�3�3�3�3�3r_c��d}tjtd��}td}t|d��}t	|||t
dk���dS)Nr�r�r�rr�rQr�r�s     r]�!test_pdist_chebyshev_iris_float32z+TestPdist.test_pdist_chebyshev_iris_float32�sU�����J�r�&�z�"�"���+�,����;�'�'�����s�G�a�K�H�H�H�H�H�Hr_c��d}td}td}t|d��}t|||���dS)Nrcr�r�r�r�r�r�s     r]�test_pdist_chebyshev_iris_nonCz(TestPdist.test_pdist_chebyshev_iris_nonC�sF�����v�J���+�,����+�,�,�����s�3�3�3�3�3�3r_c�N�ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}t	|ddd���t	|ddd���dS�N�rorroror�rororroror>�333333�?r绽���|�=�rRr���	wmatchingrQr�rr�r�m�m2s   r]�test_pdist_matching_mtica1z$TestPdist.test_pdist_matching_mtica1�s����b�h����/�/��h����/�/�
1�
1��
�r�x����t�<�<�<��x����t�<�<�<�>�>����3�Q�U�3�3�3�3���C�a�e�4�4�4�4�4�4r_c�N�ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}t	|ddd���t	|ddd���dS�N�rorro�rororr>�UUUUUU�?rr�r�r�r�s   r]�test_pdist_matching_mtica2z$TestPdist.test_pdist_matching_mtica2�s����b�h�y�y�y�)�)��X�i�i�i�(�(�
*�
*��
�r�x�	�	�	��6�6�6��h�y�y�y��5�5�5�7�7����5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c�N�ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}t	|ddd���t	|ddd���dSr���wjaccardrQr�rrr�s   r]�test_pdist_jaccard_mtica1z#TestPdist.test_pdist_jaccard_mtica1�s����R�X�o�o�o�.�.��X�o�o�o�.�.�
0�
0��
�b�h����d�;�;�;��h����d�;�;�;�=�=����3�Q�U�3�3�3�3���C�a�e�4�4�4�4�4�4r_c�N�ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}t	|ddd���t	|ddd���dSr�r�r�s   r]�test_pdist_jaccard_mtica2z#TestPdist.test_pdist_jaccard_mtica2�s����R�X�i�i�i�(�(��X�i�i�i�(�(�
*�
*��
�b�h�y�y�y��5�5�5��h�y�y�y��5�5�5�7�7����5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS)Nr�r�r>r�rr�r���wyulerQr�rrr�rr�s   r]�test_pdist_yule_mtica1z TestPdist.test_pdist_yule_mtica1s����"�(�?�?�?�+�+��(�?�?�?�+�+�
-�
-��
�2�8�O�O�O�4�8�8�8��8�O�O�O�4�8�8�8�:�:���Q�;�;��!�H�H�H���1�1�5�1�1�1�1���A�A�E�2�2�2�2�2�2r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS)Nr�r�r>r�rr�r�r�r�s   r]�test_pdist_yule_mtica2z TestPdist.test_pdist_yule_mtica2
s����"�(�9�9�9�%�%��(�9�9�9�%�%�
'�
'��
�2�8�I�I�I�T�2�2�2��8�I�I�I�T�2�2�2�4�4���Q�;�;��!�H�H�H���1�1�5�1�1�1�1���A�A�E�2�2�2�2�2�2r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS)	Nr�r�r>r�g۶m۶m�?rr�r���wdicerQr�rrr�rr�s   r]�test_pdist_dice_mtica1z TestPdist.test_pdist_dice_mtica1s����"�(�?�?�?�+�+��(�?�?�?�+�+�
-�
-��
�2�8�O�O�O�4�8�8�8��8�O�O�O�4�8�8�8�:�:���Q�;�;��!�H�H�H���5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS)	Nr�r�r>r�rqrr�r�r�r�s   r]�test_pdist_dice_mtica2z TestPdist.test_pdist_dice_mtica2!s����"�(�9�9�9�%�%��(�9�9�9�%�%�
'�
'��
�2�8�I�I�I�T�2�2�2��8�I�I�I�T�2�2�2�4�4���Q�;�;��!�H�H�H���3�Q�U�3�3�3�3���C�a�e�4�4�4�4�4�4r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS�	Nr�r�r>r�g�?rr�r�)r+rQr�rrr�rr�s   r]�test_pdist_sokalsneath_mtica1z'TestPdist.test_pdist_sokalsneath_mtica1+���������1�1������1�1�
3�
3��
���/�/�/��>�>�>���/�/�/��>�>�>�@�@���Q�;�;��!�H�H�H���5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS�	Nr�r�r>r�g�������?rr�r�)�wsokalsneathrQr�rrr�rr�s   r]�test_pdist_sokalsneath_mtica2z'TestPdist.test_pdist_sokalsneath_mtica25s������)�)�)�,�,���)�)�)�,�,�
.�
.��
�"�(�9�9�9�D�9�9�9��(�9�9�9�D�9�9�9�;�;���Q�;�;��!�H�H�H���5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dSr���wrogerstanimotorQr�rrr�rr�s   r]� test_pdist_rogerstanimoto_mtica1z*TestPdist.test_pdist_rogerstanimoto_mtica1?s����B�H�_�_�_�5�5��H�_�_�_�5�5�
7�
7��
�R�X�o�o�o�T�B�B�B��X�o�o�o�T�B�B�B�D�D���Q�;�;��!�H�H�H���5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dSr�r�r�s   r]� test_pdist_rogerstanimoto_mtica2z*TestPdist.test_pdist_rogerstanimoto_mtica2Is����B�H�Y�Y�Y�/�/��H�Y�Y�Y�/�/�
1�
1��
�R�X�i�i�i�t�<�<�<��X�i�i�i�t�<�<�<�>�>���Q�;�;��!�H�H�H���5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS)	Nr�r�r>r�r�rr�r���wrussellraorQr�rrr�rr�s   r]�test_pdist_russellrao_mtica1z&TestPdist.test_pdist_russellrao_mtica1Sr�r_c��ttjgd���tjgd�����}ttjgd�t���tjgd�t�����}tdkrt|��t
|ddd���t
|ddd���dS)	Nr�r�r>r�r�rr�r�r�r�s   r]�test_pdist_russellrao_mtica2z&TestPdist.test_pdist_russellrao_mtica2]s���������+�+������+�+�
-�
-��
���)�)�)�4�8�8�8���)�)�)�4�8�8�8�:�:���Q�;�;��!�H�H�H���5�q�u�5�5�5�5���E���6�6�6�6�6�6r_c���td}tdkrt|j|j��d}t|d��}t|d��}t
|||tdk���dS)Nr�r�rMr�
test_canberrarQ)rSrr�r�r?r�r)r�DrUr�r�s     r]�test_pdist_canberra_matchz#TestPdist.test_pdist_canberra_matchgsl���v�J���Q�;�;��!�'�1�7�#�#�#���
�Q�
�
+�
+��
�Q��
0�
0����B�S�'�A�+�>�>�>�>�>�>r_c�n�d}tdgdgfd��}d}t|||tdk���dS)Nrur:r,rgd�>@1��?r�r)r�rr)rrU�pdist_yr�s    r]�test_pdist_canberra_ticket_711z(TestPdist.test_pdist_canberra_ticket_711qsF����!�C�5�3�%�.�*�=�=�������s�G�a�K�H�H�H�H�H�Hr_c����Gd�d����fd�}tj���g���ggt���}t||���}d}t	||t
dk���dS)	Nc��eZdZdS)�6TestPdist.test_pdist_custom_notdouble.<locals>.myclassNr{rdr_r]r~r�{rr_r~c�~��t|d���rt|d���std���dSr�r�r�s  �r]r%z9TestPdist.test_pdist_custom_notdouble.<locals>._my_metric~r�r_r>rnr�r�r�)rQr�r�rr	r)rr%rBr�r�r~s     @r]�test_pdist_custom_notdoublez%TestPdist.test_pdist_custom_notdoubleys����	�	�	�	�	�	�	�	�	�	�	�	�	��x�'�'�)�)��w�w�y�y�k�2�&�A�A�A����Z�0�0�0�����W�g�w��{�;�;�;�;�;�;r_r�c�0�	t|fd|i|��}t|fdt|��i|��}t|fdd|zi|��}t|||tdk���t|||tdk���dS#t$r�}|j}	tdkr#t
|	j��t
|��t|	t|fd|i|��t|	t|fdt|��i|��t|	t|fdd|zi|��Yd}~dSd}~wwxYwr�)	rrGrrr�r�r�r�rF)
rrfr8rUr�r�r�r�r�r�s
          r]r�z$TestPdist._check_calling_conventions�si��	C��q�2�2��2�6�2�2�B��q�8�8��f���8��8�8�B��q�<�<��6�!1�<�V�<�<�B�
�B���g��k�B�B�B�B��B���g��k�B�B�B�B�B�B���	N�	N�	N��K�E���{�{��e�n�%�%�%��a�����%���C�C�&�C�F�C�C�C��%���I�I�$�v�,�,�I�&�I�I�I��%���M�M�'�F�2B�M�f�M�M�M�M�M�M�M�M�M�����	N���s�=A9�9
D�BD�Dc	�p�|jD�]�}t|ddd�ddd�f}tD�]�}tdkrt	d|d|��|dvrd|vr�)t
j���5}|dkr|�td��|�
||��ddd��n#1swxYwY|d	krMtj|�t
j
��d
d���}|�
|||�
����|dkr�tjtj|�t
j
��j����}tjt
j�|��j��}|�
|||���������dS)Nrmr�r�r�>	rr-�matchingr#r(r$r+r*r'rr#r7r)rror�r�r%r�)rrSrrr�rQrBrCrDrEr�r�r�r=r�r�rjr�rer�)rr�rfr8rJr�r�s       r]�test_pdist_calling_conventionsz(TestPdist.test_pdist_calling_conventions�s��
�(�	F�	F�G��7��C�C�a�C���1��H�%�A�(�
F�
F���Q�;�;��+�v�y�'�B�B�B��-�-�-�28�w�1F�1F���Z�1�1�3�3�?�s���,�,��
�
�#5�#G�I�I�I��3�3�A�v�>�>�>�	?�?�?�?�?�?�?�?�?�?�?����?�?�?�?��\�)�)���q�x�x��	�2�2���C�C�C�A��3�3�A�v��3�C�C�C�C��}�,�,��
�b�f�Q�X�X�b�i�-@�-@�-B�&C�&C�D�D�A���"�)�-�-��"2�"2�"4�5�5�B��3�3�A�v�"�3�E�E�E��-
F�		F�	Fs�48B8�8B<�?B<c
��d}td|jdftd|jdftd|jdftd|jd	fg}tD]�}|D]�}|d
ddd�ddd�f}	t||�
��}|dD]8}t||��|�
��}t	|||t
dk����9�l#t$rm}	|	j}
t
dkr#t|
j	��t|	��|dD]%}||��}t|
t||�
���&Yd}	~	��d}	~	wwxYw��dS)Nr�rDrrHrXrGr�rFrVrrmr�rnrorQ)rSrrrrrr�r�r�r�rF)rrUr�r8r�rHr�r�r�r�r�rIs            r]�test_pdist_dtype_equivalencez&TestPdist.test_pdist_dtype_equivalence�s������'�(�$�*<�V�*D�E��'�(�$�*<�V�*D�E��&�'��);�E�)B�C��*�+�T�-?�	�-J�K�M��%�	O�	O�F��
O�
O���!�W�S�S�q�S�#�#�A�#�X�&��
O��r�&�1�1�1�B�%)��G�O�O��"�8�8�B�<�<��?�?�?��'��B�S�'�A�+�N�N�N�N�N�O��!�G�G�G��K�E���{�{��e�n�-�-�-��a����$(��G�G�G��%�X�b�\�\��%�e�U�B�v�F�F�F�F�F�G�G�G�G�G�����G����	
O�	O�	Os�
C � 
E�*A#E�Ec�.�d}tdddd�ddd�f}t|jd|jddz
zdz��}tD�]@}t	��}|dkrd|d	<tj|t
j�
��}t||fi|��}t||fd|i|��}t|||���t||u��tj|d
zt
j�
��}	ttt||fd|	i|��tjd|zt
j�
��ddd�}
ttt||fd|
i|��tj|t
j
�
��}ttt||fd|i|����BdS)NrMrFrmr�rror&r\rYr>r�r�r3)rSr�r�rr�rQr�r=rrrrFrzr�)rrUrf�out_sizer8r�r�r�r�r�r�r�s            r]�test_pdist_outzTestPdist.test_pdist_out�s������$�%�c�c��c�3�3�Q�3�h�/������
�a�g�a�j�1�n�5��:�;�;��$�	L�	L�F��V�V�F���$�$�"��s���8�H�B�I�6�6�6�D��A�v�0�0��0�0�G��A�v�:�:�4�:�6�:�:�G��G�W�3�7�7�7�7��G�t�O�$�$�$��8�H�q�L��	�:�:�:�D��*�e�Q��K�K�D�K�F�K�K�K��8�A��L��	�:�:�:�3�3�Q�3�?�D��*�e�Q��K�K�D�K�F�K�K�K��8�H�B�H�5�5�5�D��*�e�Q��K�K�D�K�F�K�K�K�K�'	L�	Lr_c��d}tdddd�ddd�f}|���}t|jj��t|jj��t
D]S}t
��}|dkrd|d<t||fi|��}t||fi|��}t|||tdk����TdS)	NrMrFrmr�r&r\rYrQ)
rSr�rr�r�rr�rrr)rrUrf�X_copyr8r�rVrWs        r]r�zTestPdist.test_striding�s������$�%�c�c��c�3�3�Q�3�h�/��������	�A�G�(�(�)�)�)����)�*�*�*�$�	C�	C�F��V�V�F���$�$�"��s���q�&�+�+�F�+�+�B��v�v�0�0��0�0�B��B���g��k�B�B�B�B�B�	C�	Cr_Nr�)fr�r|r}rr�r�r�r�r�r�r��slowr�r�r�r�r�r�rrrrrrrrrr r$r&r)r,r.r0r4r6r9r<r>rCr�rQr�rFrJrLrNrQrTrVrZr\r^r`rdrfrkrnrprrrwryr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rdr_r]r�r��sF������6�6�6�&9�&9�&9�P4�4�4�4�4�4�4�4�4�4�4�4��[��4�4���4��[��I�I���I��[��4�4���4�4�4�4�
4�
4�
4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��[��4�4���4��[��I�I���I��[��4�4���4�>�>�>�4�4�4�4�4�4�4�4�4��[��4�4���4��[��I�I���I��[��4�4���4�4�4�4�4�4�4�4�4�4��[��4�4���4��[��I�I���I��[��4�4���4��[���S�3��c�3��R�V�"D�E�E�2�2�F�E�2�4�4�4�4�4�4�4�4�4��[��4�4���4��[��4�4���4��[��4�4���4��[��4�4���4��[��I�I���I��[��4�4���4�F�F�F�"4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�3�3�3�
4�4�4�4�4�4�I�I�I�4�4�4�
4�
4�
4�I�I�I�4�4�4�3�3�3�
4�4�4�I�I�I�4�4�4�4�4�4�I�I�I�4�4�4�5�5�5�7�7�7�5�5�5�7�7�7�3�3�3�3�3�3�7�7�7�5�5�5�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7��[��?�?���?�I�I�I�<�<�<�C�C�C�C�$F�F�F�BO�O�O�2L�L�L�4C�C�C�C�Cr_r�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestSomeDistanceFunctionsc�r�tjgd���}tjgd���}||fg|_dS)Nr'�r�r�r0)rQr��cases)rr�r!s   r]rz&TestSomeDistanceFunctions.setup_methods9���H�_�_�_�%�%���H�_�_�_�%�%���!�f�X��
�
�
r_c	�,�|jD]�\}}t||d���}t|d��t||d���}t|d��t||d���}t|d��t||d���}t|d	����tjd
dg��}tjdd
g��}tt||��t|�d��|�d������dS)Nror_r(��?gq�az��@r�g��w�@r[g�R�"�6@i`i�i^i��uint16)rr&r
rQr�r	r�)	rr�r!�dist1�dist1p5�dist2�dist0p25rkr�s	         r]r`z(TestSomeDistanceFunctions.test_minkowski
s&���J�	D�	D�D�A�q��a��a�(�(�(�E���s�+�+�+���1��,�,�,�G���)C�D�D�D��a��a�(�(�(�E���z�2�2�2� ��A��.�.�.�H���*B�C�C�C�C�

�H�c�3�Z� � ���H�c�3�Z� � ���Y�q�!�_�_��q�x�x��1�1�1�8�8�H�3E�3E�F�F�	H�	H�	H�	H�	Hr_c��|jD]7\}}t||��}t|tjd�����8dS)Nrm)r�
weuclideanr
rQrr�rr�r!rus    r]rPz(TestSomeDistanceFunctions.test_euclideansK���J�	2�	2�D�A�q��a��#�#�D���b�g�a�j�j�1�1�1�1�	2�	2r_c�`�|jD]%\}}t||��}t|d���&dS)Nr0)r�wsqeuclideanr
r
s    r]�test_sqeuclideanz*TestSomeDistanceFunctions.test_sqeuclidean"sC���J�	+�	+�D�A�q���1�%�%�D���c�*�*�*�*�	+�	+r_c
��|jD]R\}}t||��}t|ddtjd��tjd��zzz
���SdS)Nr�g2@��)r�wcosiner
rQrrr
s    r]rz%TestSomeDistanceFunctions.test_cosine'sd���J�	P�	P�D�A�q��1�a�=�=�D���c�D�B�G�B�K�K�"�'�"�+�+�4M�,N�&N�O�O�O�O�	P�	Pr_c
�$�tjgd���}tjgd���}|jD][\}}t||��}t	|dtj||��t
|��t
|��zzz
���\dS)N)��rr�)�UUUUUU��rgUUUUUU@r�)rQr�r�wcorrelationr
rir)r�xm�ymr�r!rus      r]r8z*TestSomeDistanceFunctions.test_correlation,s���
�X�n�n�n�
%�
%��
�X�9�9�9�
:�
:���J�	T�	T�D�A�q���1�%�%�D���c�B�F�2�r�N�N�d�2�h�h��b���>Q�,R�&R�S�S�S�S�	T�	Tr_c���tjgd���}tjgd���}t||��}d|cxkr*dtjtj��jzksnJ�dS)N)%rorororororo��rorororrrrorrorrororrror�rororrororrorrrrrrro)%r�r�r�r�r�r�rr�r�r�rrrr�rr�rr�r�rorr�r�r�r�rr�r�rr�rrrrrrr�rr�)rQr�r�finfor�rUr
s    r]�test_correlation_positivez3TestSomeDistanceFunctions.test_correlation_positive3s����H�I�I�I�
J�
J��
�H�I�I�I�
J�
J���1�a� � ���D�9�9�9�9�B���"�*�!5�!5�!9�9�9�9�9�9�9�9�9�9r_c��tjgd���}tjgd���}tjgd�gd�gd�g��}|jD]8\}}t|||��}t	|tjd�����9dS)Nr'r)r�r�ro)r�r�r�)ror�r�g@)rQr�rr%r
rr)rr�r!�virus     r]�test_mahalanobisz*TestSomeDistanceFunctions.test_mahalanobis>s����H�_�_�_�%�%���H�_�_�_�%�%��
�X����������I�
J�
J���J�	4�	4�D�A�q��q�!�R�(�(�D���b�g�c�l�l�3�3�3�3�	4�	4r_N)r�r|r}rr`rPrrr8rr!rdr_r]rrs����������H�H�H�&2�2�2�
+�+�+�
P�P�P�
T�T�T�	:�	:�	:�4�4�4�4�4r_rc�h�eZdZejejejejegZ	d�Z
d�Zd�Zd�Z
d�Zd�ZdS)�TestSquareFormc�D�|jD]}|�|���dSrs)�checked_dtypes�check_squareform_matrix�rr?s  r]�test_squareform_matrixz%TestSquareForm.test_squareform_matrixJ�5���(�	0�	0�E��(�(��/�/�/�/�	0�	0r_c�D�|jD]}|�|���dSrs)r%�check_squareform_vectorr's  r]�test_squareform_vectorz%TestSquareForm.test_squareform_vectorNr)r_c�6�tjd|���}t|��}t|jd��t|j|��tjd|���}t|��}t|jd��t|j|��tjddgddgg|���}t|��}t|jd��t|j|��t|tjdg|�����dS)N)rrr>�r�rororg������@rn)rQr�rr	r�r?r�r)rr?�A�rAs    r]r&z&TestSquareForm.check_squareform_matrixRs����H�V�5�)�)�)��
��]�]���R�X�t�$�$�$��R�X�u�%�%�%��H�V�5�)�)�)��
��]�]���R�X�t�$�$�$��R�X�u�%�%�%��H�q�#�h��a��)��7�7�7��
��]�]���R�X�t�$�$�$��R�X�u�%�%�%��2�r�x���U�;�;�;�<�<�<�<�<r_c��tjd|���}t|��}t|jd��t|j|��t
|dgg��tjdg|���}t|��}t|jd��t|j|��t
|tjddgddgg|�����dS)Nr.r>r/rg������ @)r�r�)rQr�rr	r�r?rr�)rr?r��rvs    r]r+z&TestSquareForm.check_squareform_vectorcs����H�T��'�'�'��
��]�]���R�X�v�&�&�&��R�X�u�%�%�%��2���u�%�%�%��H�c�U�%�(�(�(��
��]�]���R�X�v�&�&�&��R�X�u�%�%�%��2�r�x�!�S��C��8�(<�E�J�J�J�K�K�K�K�Kr_c�V�tdd��D]}|�|���dS)Nr�rm)r{�check_squareform_multi_matrix�r�ns  r]�test_squareform_multi_matrixz+TestSquareForm.test_squareform_multi_matrixps:���q�!���	2�	2�A��.�.�q�1�1�1�1�	2�	2r_c���tj�|d��}t|��}t	t|j��d��t|��}t|��}|j}d}tdkr t|j|j|j��t	t|��d��t	t|j��d��t	|d|d��td|d��D]`}t|dz|d��D]D}	||	kr$t	|||	f||��|dz
}�,t	|||	fd���E�adS)N�rorr3r�)rQr�r�r�r	�lenr�rrr�r{)
rr7rfr�r0�Yr�s�kr��js
          r]r5z,TestSquareForm.check_squareform_multi_matrixts[���I�N�N�1�a� � ���A�����S���\�\�1�%�%�%��q�M�M��
��]�]��
�G��
���a�<�<��!�'�1�7�B�H�-�-�-��S��V�V�Q�����S���]�]�A�&�&�&��Q�q�T�1�Q�4� � � ��q�!�A�$���	-�	-�A��1�q�5�!�A�$�'�'�
-�
-����6�6� ��1�a�4��!�A�$�/�/�/���F�A�A� ��1�a�4��!�,�,�,�,�
-�	-�	-r_N)r�r|r}rQr�rV�int32�int8rr%r(r,r&r+r8r5rdr_r]r#r#Gs��������j�"�*�b�h����F�N�0�0�0�0�0�0�=�=�=�"L�L�L�2�2�2�-�-�-�-�-r_r#c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestNumObsYc���tdd��D]N}tj�|d��}t	|��}tt
|��|���OdS)Nr�r�r:)r{rQr�r�r�r	r)rr7rfr�s    r]�test_num_obs_y_multi_matrixz'TestNumObsY.test_num_obs_y_multi_matrix�s^���q�"���	*�	*�A��	���q�!�$�$�A���"�"�A���1���q�)�)�)�)�	*�	*r_c�<�tt|jd��dS�Nro)rFrz�check_yrs r]�test_num_obs_y_1zTestNumObsY.test_num_obs_y_1�s��	�j�$�,��2�2�2�2�2r_c�J�t|�d����dS�Nr��rrHrs r]�test_num_obs_y_2zTestNumObsY.test_num_obs_y_2�s"��	����Q��� � � � � r_c�J�t|�d����dS)Nr3rLrs r]�test_num_obs_y_3zTestNumObsY.test_num_obs_y_3�� ������Q��� � � � � r_c�J�t|�d����dS�Nr:rLrs r]�test_num_obs_y_4zTestNumObsY.test_num_obs_y_4�rPr_c�V�tdd��D]}|�|���dS)Nrm�)r{�minit)rr�s  r]�test_num_obs_y_5_10zTestNumObsY.test_num_obs_y_5_10�s4���q�"���	�	�A��J�J�q�M�M�M�M�	�	r_c���tg��}tdd��D] }|�||dz
zdz���!tdd��D]!}||vrtt|j|���"dS�Nr�rUrorm�i��setr{�addrFrz�bad_y�rrkr7r�s    r]�test_num_obs_y_2_100z TestNumObsY.test_num_obs_y_2_100�s���
��G�G���q�"���	#�	#�A�
�E�E�!�q�1�u�+��/�"�"�"�"��q�#���	9�	9�A���z�z��j�$�*�a�8�8�8��	9�	9r_c�J�t|�|����dSrsrLr6s  r]rVzTestNumObsY.minit�rPr_c�^�tj�|��}t|��Srs)rQr�r�r�rr7r!s   r]r^zTestNumObsY.bad_y�s!���I�N�N�1������|�|�r_c�N�t|�|����|kSrs)r�make_yr6s  r]rHzTestNumObsY.check_y�s������Q���(�(�A�-�-r_c�R�tj�||dz
zdz��S�Nror��rQr�r�r6s  r]rezTestNumObsY.make_y�s#���y�~�~�q�A��E�{�q�0�1�1�1r_N)r�r|r}rErIrMrOrSrWr`rVr^rHrerdr_r]rCrC�s�������*�*�*�3�3�3�
!�!�!�
!�!�!�!�!�!����9�9�9�!�!�!����.�.�.�2�2�2�2�2r_rCc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestNumObsDMc�,�tdd��D]�}tj�|d��}t	|��}t|��}tdkrt|j|j��tt|��|����dS)Nror�r:r3)r{rQr�r�r�rrr�r�r	r)rr7rfr�r0s     r]�test_num_obs_dm_multi_matrixz)TestNumObsDM.test_num_obs_dm_multi_matrix�s����q�"���	+�	+�A��	���q�!�$�$�A���"�"�A��1�
�
�A��!�|�|��a�g�q�w�'�'�'���A����*�*�*�*�
	+�	+r_c�J�t|�d����dS)Nr�r�check_Drs r]�test_num_obs_dm_0zTestNumObsDM.test_num_obs_dm_0�� ������Q��� � � � � r_c�J�t|�d����dSrGrnrs r]�test_num_obs_dm_1zTestNumObsDM.test_num_obs_dm_1�rqr_c�J�t|�d����dSrKrnrs r]�test_num_obs_dm_2zTestNumObsDM.test_num_obs_dm_2�rPr_c�J�t|�d����dSrKrnrs r]�test_num_obs_dm_3zTestNumObsDM.test_num_obs_dm_3�rPr_c�J�t|�d����dSrRrnrs r]�test_num_obs_dm_4zTestNumObsDM.test_num_obs_dm_4�rPr_c�N�t|�|����|kSrs)r�make_Dr6s  r]rozTestNumObsDM.check_D�s���$�+�+�a�.�.�)�)�Q�.�.r_c�B�tj�||��Srsrhr6s  r]r{zTestNumObsDM.make_D�s���y�~�~�a��#�#�#r_N)r�r|r}rlrprsrurwryror{rdr_r]rjrj�s�������+�+�+�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�/�/�/�$�$�$�$�$r_rjc�$�t|d���S�NT)�throw)r)r�s r]�is_valid_dm_throwr��s���q��%�%�%�%r_c�\�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�
TestIsValidDMc�|�tjdtj���}ttt
|��dS)N�rmr>�rQr�r=rFrzr��rr�s  r]�$test_is_valid_dm_improper_shape_1D_Ez2TestIsValidDM.test_is_valid_dm_improper_shape_1D_E�s1���H�T���+�+�+���j�"3�a�9�9�9�9�9r_c��tjdtj���}tt	|��d��dS)Nr�r>F�rQr�r=r	rr�s  r]�$test_is_valid_dm_improper_shape_1D_Fz2TestIsValidDM.test_is_valid_dm_improper_shape_1D_F�s4���H�T���+�+�+���[��^�^�U�+�+�+�+�+r_c�|�tjdtj���}ttt
|��dS�N�r3r3r3r>r�r�s  r]�$test_is_valid_dm_improper_shape_3D_Ez2TestIsValidDM.test_is_valid_dm_improper_shape_3D_E�s1���H�Y�b�i�0�0�0���j�"3�a�9�9�9�9�9r_c��tjdtj���}tt	|��d��dS�Nr�r>Fr�r�s  r]�$test_is_valid_dm_improper_shape_3D_Fz2TestIsValidDM.test_is_valid_dm_improper_shape_3D_F�s4���H�Y�b�i�0�0�0���[��^�^�U�+�+�+�+�+r_c���tj�d��}t|��}t	dd��D]	}d|||f<�
ttt|��dS)Nr�rrmr�)rQr�r�rr{rFrzr��rr!r�r�s    r]�#test_is_valid_dm_nonzero_diagonal_Ez1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_E�s_���I�N�N�2�����q�M�M���q�!���	�	�A��A�a��d�G�G��j�"3�a�9�9�9�9�9r_c���tj�d��}t|��}t	dd��D]	}d|||f<�
tt
|��d��dS)Nr�rrmr�F)rQr�r�rr{r	rr�s    r]�#test_is_valid_dm_nonzero_diagonal_Fz1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_F�sb���I�N�N�2�����q�M�M���q�!���	�	�A��A�a��d�G�G��[��^�^�U�+�+�+�+�+r_c��tj�d��}t|��}|ddz|d<t	t
t|��dS)Nr��r3roro�ror3)rQr�r�rrFrzr��rr!r�s   r]�test_is_valid_dm_asymmetric_Ez+TestIsValidDM.test_is_valid_dm_asymmetric_EsJ���I�N�N�2�����q�M�M���D�'�A�+��$���j�"3�a�9�9�9�9�9r_c��tj�d��}t|��}|ddz|d<t	t|��d��dS)Nr�r�ror�F�rQr�r�rr	rr�s   r]�test_is_valid_dm_asymmetric_Fz+TestIsValidDM.test_is_valid_dm_asymmetric_FsM���I�N�N�2�����q�M�M���D�'�A�+��$���[��^�^�U�+�+�+�+�+r_c��tjdtj���}tt	|��d��dS)Nr/r>Tr�r�s  r]�test_is_valid_dm_correct_1_by_1z-TestIsValidDM.test_is_valid_dm_correct_1_by_1s4���H�V�2�9�-�-�-���[��^�^�T�*�*�*�*�*r_c��tj�d��}t|��}t	t|��d��dS)NroTr�r�s   r]�test_is_valid_dm_correct_2_by_2z-TestIsValidDM.test_is_valid_dm_correct_2_by_2�<���I�N�N�1�����q�M�M���[��^�^�T�*�*�*�*�*r_c��tj�d��}t|��}t	t|��d��dS�Nr3Tr�r�s   r]�test_is_valid_dm_correct_3_by_3z-TestIsValidDM.test_is_valid_dm_correct_3_by_3r�r_c��tj�d��}t|��}t	t|��d��dS)N�Tr�r�s   r]�test_is_valid_dm_correct_4_by_4z-TestIsValidDM.test_is_valid_dm_correct_4_by_4r�r_c��tj�d��}t|��}t	t|��d��dS)Nr�Tr�r�s   r]�test_is_valid_dm_correct_5_by_5z-TestIsValidDM.test_is_valid_dm_correct_5_by_5$s<���I�N�N�2�����q�M�M���[��^�^�T�*�*�*�*�*r_N)r�r|r}r�r�r�r�r�r�r�r�r�r�r�r�r�rdr_r]r�r��s�������:�:�:�,�,�,�:�:�:�,�,�,�:�:�:�,�,�,�:�:�:�,�,�,�+�+�+�+�+�+�
+�+�+�
+�+�+�
+�+�+�+�+r_r�c�$�t|d���Sr~)r)r!s r]�is_valid_y_throwr�*s���a�t�$�$�$�$r_c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestIsValidYc�|�tjdtj���}ttt
|��dS)N�r3r3r>�rQr�r=rFrzr��rr!s  r]�#test_is_valid_y_improper_shape_2D_Ez0TestIsValidY.test_is_valid_y_improper_shape_2D_E3s1���H�W�B�I�.�.�.���j�"2�Q�8�8�8�8�8r_c��tjdtj���}tt	|��d��dS)Nr�r>F�rQr�r=r	rr�s  r]�#test_is_valid_y_improper_shape_2D_Fz0TestIsValidY.test_is_valid_y_improper_shape_2D_F7s4���H�W�B�I�.�.�.���Z��]�]�E�*�*�*�*�*r_c�|�tjdtj���}ttt
|��dSr�r�r�s  r]�#test_is_valid_y_improper_shape_3D_Ez0TestIsValidY.test_is_valid_y_improper_shape_3D_E;s1���H�Y�b�i�0�0�0���j�"2�Q�8�8�8�8�8r_c��tjdtj���}tt	|��d��dSr�r�r�s  r]�#test_is_valid_y_improper_shape_3D_Fz0TestIsValidY.test_is_valid_y_improper_shape_3D_F?s4���H�Y�b�i�0�0�0���Z��]�]�E�*�*�*�*�*r_c�j�|�d��}tt|��d��dS)Nr�T��correct_n_by_nr	rr�s  r]�test_is_valid_y_correct_2_by_2z+TestIsValidY.test_is_valid_y_correct_2_by_2C�1������"�"���Z��]�]�D�)�)�)�)�)r_c�j�|�d��}tt|��d��dSr�r�r�s  r]�test_is_valid_y_correct_3_by_3z+TestIsValidY.test_is_valid_y_correct_3_by_3Gr�r_c�j�|�d��}tt|��d��dS)Nr:Tr�r�s  r]�test_is_valid_y_correct_4_by_4z+TestIsValidY.test_is_valid_y_correct_4_by_4Kr�r_c�j�|�d��}tt|��d��dS)NrmTr�r�s  r]�test_is_valid_y_correct_5_by_5z+TestIsValidY.test_is_valid_y_correct_5_by_5Or�r_c���tg��}tdd��D] }|�||dz
zdz���!tdd��D]!}||vrtt|j|���"dSrYr[r_s    r]�test_is_valid_y_2_100z"TestIsValidY.test_is_valid_y_2_100Ss�����G�G���q�"���	#�	#�A�
�E�E�!�q�1�u�+��/�"�"�"�"��q�#���	9�	9�A���z�z��j�$�*�a�8�8�8��	9�	9r_c�b�tj�|��}t|d���Sr~)rQr�r�rrcs   r]r^zTestIsValidY.bad_y[s(���I�N�N�1�����!�4�(�(�(�(r_c�V�tj�||dz
zdz��}|Srgrhrcs   r]r�zTestIsValidY.correct_n_by_n_s'���I�N�N�A��Q��K�A�-�.�.���r_N)r�r|r}r�r�r�r�r�r�r�r�r�r^r�rdr_r]r�r�.s�������
9�9�9�+�+�+�9�9�9�+�+�+�*�*�*�*�*�*�*�*�*�*�*�*�9�9�9�)�)�)�����r_r�rY)g$�g�roc	��tttddgddg|��tttddgddg|ddg��dS)Nror�r3r:)rFrzr&r_s r]�
test_bad_pr�dsL���*�i�!�Q��!�Q���;�;�;��*�i�!�Q��!�Q���Q��F�C�C�C�C�Cr_c�F�tttgd�gd���dS)N)FFF)rFrzr+rdr_r]�test_sokalsneath_all_falser�ks*���*�k�+@�+@�+@�BW�BW�BW�X�X�X�X�Xr_c��ttgd�gd���d��ttgd�gd���d��dS)N�ror�r3�r�r:r�ro�rororr�rorrorr�)r	�	wcanberrardr_r]r�r�psL����9�9�9�i�i�i�0�0�!�4�4�4���<�<�<����6�6��:�:�:�:�:r_c��ttgd�gd���dd���ttgd�gd���dd���dS)	Nr�r�gUUUUUU�?���decimalr�r�rq)r
�wbraycurtisrdr_r]�test_braycurtisr�vsV����I�I�I�y�y�y�9�9�6�2�N�N�N�N���L�L�L�,�,�,�?�?��b�Q�Q�Q�Q�Q�Qr_c�J�tjgd���}tjgd���}tt||��dd���tt	||��tjd��d���t
td���5t	|tjdd�f|tjdd�f��tjd��fddd��n#1swxYwYt
td���5t|tjdd�f|tjdd�f��ddd��n#1swxYwYt
td���5t|dd�tjf|dd�tjf��ddd��n#1swxYwYtj	d	���
d
d
��}t
tt||��t
tt||��tj�d��}|�
d��}|�
d��}t	||��}t||��}t|d
z|d���dS)
N)rororo)rrrr(rr�r3�Input vector should be 1-D��matchr:r�i��Ir�)rQr�r
rrrrrFrz�newaxisrAr�r�r�r�)rsrtr��rsr!�d1�d2s       r]�test_euclideansr�|s$��	��)�)�)�	�	�B�	��)�)�)�	�	�B���R��,�,�c�2�>�>�>�>��
�2�r�*�*�B�G�A�J�J��C�C�C�C�
�z�9�
;�
;�
;�E�E��2�b�j�!�!�!�m�$�b���Q�Q�Q��&7�8�8�"�'�!�*�*�D�D�E�E�E�E�E�E�E�E�E�E�E����E�E�E�E�
�z�9�
;�
;�
;�;�;��R��
�A�A�A�
�&��2�:�q�q�q�=�(9�:�:�:�;�;�;�;�;�;�;�;�;�;�;����;�;�;�;�
�z�9�
;�
;�
;�;�;��R����2�:�
�&��1�1�1�b�j�=�(9�:�:�:�;�;�;�;�;�;�;�;�;�;�;����;�;�;�;�
	�	�!�����Q��"�"�A��*�j�!�Q�/�/�/��*�l�A�q�1�1�1�
��	�	�z�	*�	*�B�
������A�
������A�	�A�q�	�	�B�	�a��	�	�B���A��r�2�.�.�.�.�.�.s7�A
C.�.C2�5C2�9E�E�E�59F:�:F>�F>c�N�gd�}gd�}ttt||��dS)N)rrror�)rFrz�whamming�r�r!s  r]�test_hamming_unequal_lengthr��s.���	�	�A����A��*�h��1�-�-�-�-�-r_c��tjgd�d���}tjgd�d���}d}tt||��|��dS)N)�eggs�spamr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�z|S4r>)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�g�������?)rQr�rr�)rkr��desireds   r]�test_hamming_string_arrayr��s���
��B�B�B��	�	�	�A�	��B�B�B��	�	�	�A��G��H�Q��N�N�G�,�,�,�,�,r_c��tjgd�gd�g��}t|ddd���}t||ddd���}t|dd���}t||dd���}t	||d���t	||d���dS)N)
��QUU�T@�Y@r�r�gB@gN@g�V@g�b@g8@gH@r&ro)r8rYr�)r8rYrMr�)rQr�rrr)�arr_in�p0�c0�p1�c1s     r]�test_minkowski_wr��s���
�X�2�2�2�2�2�2�3�4�4�F�
�v�k�Q�$�	7�	7�	7�B�	�v�v�k�Q�$�	?�	?�	?�B�	�v�k�Q�	/�	/�	/�B�	�v�v�k�Q�	7�	7�	7�B��B���'�'�'�'��B���'�'�'�'�'�'r_c�d�gd�}gd�}tjtjtjtjfD]k}ttj||���tj||�����}ttj|j	tj
�����ltjtjtj
tjfD]�}tj|��j}tdgtj|g|�����}ttj|g|���dg��}t#||��t#|tj|��dz����tjtjtjtjg}dD]?}t-t|��r(|�t1t|�����@|D]O}ttj||���tj||�����}t#|j	|���PdS)Nr�)r:rmr�r>rr�)�float16�float128)rQrA�int16r@r�r�asarrayrr�r?�floating�uint8r�uint32�uint64�iinfo�maxr	r�rV�	complex64�
complex128�hasattrr��getattr)r�r!r?�d�umaxr�r��dtypess        r]�test_sqeuclidean_dtypesr�s���	�	�	�A��	�	�A��'�2�8�R�X�r�x�8�5�5�����A�U�3�3�3�R�Z���5O�5O�5O�P�P����
�a�g�r�{�3�3�4�4�4�4��(�B�I�r�y�"�)�<�.�.���x����"��
�1�#�r�z�4�&��>�>�>�
?�
?��
�"�*�d�V�5�9�9�9�A�3�
?�
?���R������R���D�)�)�1�,�-�-�-�-��j�"�*�b�l�B�M�
B�F�(�.�.���2�u���	.��M�M�'�"�e�,�,�-�-�-���%�%�����A�U�3�3�3�R�Z���5O�5O�5O�P�P���Q�W�e�$�$�$�$�%�%r_c��gd�}gd�}d�|D��}d�|D��}t||��}t||��}t||��dS)N)TTF)TFTc�,�g|]}t|����Srd�r��rjr�s  r]rlz&test_sokalmichener.<locals>.<listcomp>�������A��Q�����r_c�,�g|]}t|����Srdrrs  r]rlz&test_sokalmichener.<locals>.<listcomp>�r
r_)r*r	)rYr�r�r!rr	s      r]�test_sokalmichenerr�sr�����A����A�������A�������A��!�Q���E��!�Q���E��������r_c��d}d}d}d}d||zz||zd||zzzz}t|d��tddgddgddg���}t||��gd	�}gd
�}dD]"}tt|||g��d���#dS)
Nrog�������?r�r�gX���$I�?ror�r�)FFTTTFFTTTTTTFTFFFTT)TTTFFTTTFTTTTTFFFTTT)g�������?rZr�g4@r�)r
r*)	�ntf�nft�ntt�nff�expected�actual�a1�a2r�s	         r]�test_sokalmichener_with_weightr�s����C�
�C�
�C�
�C��C�#�I��#��)�a�3��9�o�"=�>�H���)�,�,�,�
�A�q�6�A�q�6�a��X�
6�
6�
6�F���&�)�)�)�
D�
D�
D�B�
I�
I�
I�B�$�L�L���M�"�b�1�#�6�6�8J�K�K�K�K�L�Lr_c���tjgd�gd�gd�gd�g��}|���}tD]3}t	|||��t||��t
||���4dS)Nr'r)r-�g3333336@g�����L7@g333333F@)rQr�r�rrrr)rHr�r8s   r]�test_modifies_inputrs���	��\�\�\�$�_�_�$�_�_�'�'�'�)�
*�
*�B��g�g�i�i�G� �(�(��
�b�"�f����
�b�&�����2�w�'�'�'�'�(�(r_c���tjgd�gd�gd�gd�g��}tjd��}tD�]5}t	jt��5t|||d��ddd��n#1swxYwYt	jt��5t||d��ddd��n#1swxYwYdD]�}|di}|d	kr|d
ks|dkr|dks|d
kr|dkr�+t	jt��5t|||fi|��ddd��n#1swxYwYt	jt��5t||fi|��ddd��n#1swxYwY����7dS)Nr'r)r-rr3r�)rYr�r��foor�r)r�r%rYr&)	rQr�rArr�rr�rr)rHr�r8r"r�s     r]�test_Xdist_deprecated_argsr s���	��\�\�\�$�_�_�$�_�_�'�'�'�)�
*�
*�B��i��l�l�G� �,�,��
�]�9�
%�
%�	&�	&��"�b�&�"�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&��]�9�
%�
%�	"�	"��"�f�b�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�$�	,�	,�C��%�[�F������,� 6� 6�
�D�[�[�V�}�4�4�
�C�Z�Z�F�k�1�1����y�)�)�
0�
0��b�"�f�/�/��/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0���y�)�)�
,�
,��b�&�+�+�F�+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��	,�,�,sH�A7�7A;	�>A;	�B9�9B=	�B=	�
D&�&D*�-D*�
E%�%E)�,E)c��tdddd�ddd�f}tj|jd��}|ddd�|ddd�<tD]�}|dvr�tj���5}|dkr|�td��|t|��d|zfD]?}ttt|||�	��ttt||||�	���@	ddd��n#1swxYwY��dS)
NrFrmr�ro)r)r%r"r#r7r9r)rSrQr�r�rrBrCrDrErGrFrzrr)rfr�r8rJr�s     r]�test_Xdist_non_negative_weightsr".sh��
� �!�#�#�A�#�s�s��s�(�+�A�
�����
���A����!��f�W�A�c�c��c�F� �	?�	?���C�C�C��
�Z�
)�
)�
+�
+�	?�s���$�$��
�
�-�?�A�A�A��d�6�l�l�G�f�,<�=�
?�
?���j�%��A��;�;�;�;��j�%��A�q�A�>�>�>�>�>�
?�		?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?��	?�	?s�9A7C=�=D	�D	c�$�gd�}t|��}t||��t|tj���}t||��t	|jtj��dg}t|��}t	|jd��t	||��d}ttd���5t|��ddd��n#1swxYwYtj	d���
ddd��}ttd���5t|��ddd��n#1swxYwYddgd	d
gg}ttd���5t|��ddd��dS#1swxYwYdS)Nr�r>ror�r�rmr�r�r3r:)rrrQr�r	r?rprFrzrAr�r�s  r]�test__validate_vectorr$>sV���	�	�A�����A��q�!������"�*�-�-�-�A��q�!�������"�*�%�%�%�	
��A�����A����������A����	�A�	�z�9�
;�
;�
;��������������������������	�	�!�����Q��A�&�&�A�	�z�9�
;�
;�
;���������������������������Q��!�Q���A�	�z�9�
;�
;�
;����������������������������s6�=C�C� C�#D?�?E�E�(F�F	�F	c�,�tjdt���}t|d|d��}|dksJ�t	|d��}t|dg��t
|dd�|dd�d��}t|dgg��dS)N)r�r�r>rror-ro)rQr�rr�rr	r)r�rs  r]�test_yule_all_samer&[s���
���d�#�#�#�A�
�a��d�A�a�D���A���8�8�8�8�
�a����A���S�E����
�a����e�Q�r��r�U�F�#�#�A���c�U�G�����r_c��ttgd�gd�d��d��ttddgddg��d��ttgd�gd���d��ttddggddggd	�
��ddg��ttddggddggd�
��dg��ttddggddggd	d
���ddgg��ttddggddggdd
���dgg��tjgd�gd�gd�g��}tjgd�gd�gd�g��}tt||d	�
��gd���tt||d�
��gd���dS)N)r�roro)ror�ror�r�rorqg)>�d��?rrrrog����?T)r|�keepdims)ror�r3r:)rmr��ra)�	r���)�
rr�rU)����)����)g�'Y���?gT�yCЇ�?g�F��w$�?g�\B�Z��?)g;0%7/�?g���)o�?gk��u��?)r
r"rQr�)rkr�s  r]r�r�hs.���
�o�o�o�����L�L������
�s�C�j�3��*�=�=�+�-�-�-��
�o�o�o����G�G��M�M�M��
��S�z�l�c�3�Z�L�q�I�I�I��c�
�$�$�$��
��S�z�l�c�3�Z�L�q�I�I�I�"��%�%�%��
��S�z�l�c�3�Z�L�q�/3�5�5�5�8;�S�z�l�D�D�D��
��S�z�l�c�3�Z�L�q�/3�5�5�5�8A�{�m�E�E�E�	��,�,�,��,�,�!�/�/�#�	$�	$�A�	��"�"�"�"�"�"�"�"�"�$�	%�	%�A��
�a���3�3�3�D�D�D�F�F�F��
�a���3�3�3�9�9�9�;�;�;�;�;r_c��d}tjt|���5tgg��ddd��dS#1swxYwYdS)Nz�Kulsinski has been deprecated from scipy.spatial.distance in SciPy 1.9.0 and it will be removed in SciPy 1.11.0. It is superseded by scipy.spatial.distance.kulczynski1.r�)r��warnsrEr#rs r]�test_kulsinski_deprecationr8�s���F�C�
��(��	4�	4�	4����"�b������������������������s�<�A�Ars)	NNFTFFFFN){r@�os.pathrK�	functoolsrrr��numpyrQr��numpy.linalgr�
numpy.testingrrrr	r
rrr
r�rrF�scipy.spatial.distancerrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-rIr��_tdist�_ytdistrSr^rer}r�r�r�r�r�rrhrTrr�r�r�r�r�r��
wcityblock�
wchebyshevrr�
wkulsinski�wkulczynski1r�rrr�r�r��wsokalmichenerr�rr�rr#rCrjr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr r"r$r&r�r8rdr_r]�<module>rFs���F�
�
�
�����$�$�$�$�$�$�$�$�������������������2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2��
�
�
�*�*�*�*�*�*�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D����
�@
���/�/�/�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�4�
<D�
E�
E�
E���*�V�
�
��
��=�=�=������#�#�#�����-1�7;�+0�/4��	-$�-$�-$�-$�`����������6'.�g�o�D�&I�&I�&I�!�k�T�B�B�B�B�  !�t���QT� ��"�t�d�#�d�E�PU�`e�!��'�'�/�X\�:]�:]�:]�	]�]�]�]�@
���Q��	>�	>�	>��!�/�%�a��SX�Y�Y�Y��	���Q��a�	H�	H�	H��!�/�%�a��SX�ab�c�c�c��!�/�.�1�1��&��w��?�?�?�?�	�H�������������
�_�Y�
'�
'�
�
�_�Y�
'�
'�
�
�/�&�
!�
!����{�+�+��
�_�Y�
'�
'�
���{�+�+���?�7�#�#��
�_�Y�5�
9�
9�
9�
���{�u�=�=�=���o�j�)�)���O�H��7�7�7�	���{�+�+�� ���/�/���o�j�)�)��XE�XE�XE�XE�XE�XE�XE�XE�ve
C�e
C�e
C�e
C�e
C�e
C�e
C�e
C�NC4�C4�C4�C4�C4�C4�C4�C4�L@-�@-�@-�@-�@-�@-�@-�@-�F12�12�12�12�12�12�12�12�h $� $� $� $� $� $� $� $�F&�&�&�B+�B+�B+�B+�B+�B+�B+�B+�J%�%�%�3�3�3�3�3�3�3�3�l�����0�0�0�1�1�D�D�2�1�D�Y�Y�Y�
;�;�;�R�R�R�/�/�/�D.�.�.�-�-�-�(�(�(�%�%�%�>	�	�	�L�L�L�,
(�
(�
(�,�,�,�:
?�
?�
?� ���:
�
�
�;�;�;�:����r_

Youez - 2016 - github.com/yon3zu
LinuXploit