o
    Ö­jTW ã                   @   sˆ  d dl Z d dlZd dlmZmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZmZmZmZmZmZ d dlZd dlZd dlmZmZmZmZmZmZmZmZm Z  d dlm!Z!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.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8 ej9e dd	�d
d„ ƒZ:g d¢Z;ej<g d¢g d¢g d¢g d¢g d¢g d¢gdd�Z=ee=ƒZ>i Z?dd„ Z@e@ƒ  dd„ ZAd~dd„ZB					ddd„ZCdd „ ZDd!d"„ ZEd~d#d$„ZFeed%d&�ZGeGd'd(„ dfd)d*„ZHd+dd,d(„ d-ddddddddddd.d eGfd/d0„ZIG d1d2„ d2ƒZJdeKfd3d4„ZLeIed5dd6�ZMeIed5ddd7�ZNeIed5dd5d8�ZOeIed5ddd5d9�ZPeIe/ƒZQeIe)dd:� ZRZSeIe5ƒZTeIe'ƒZUeIe$ƒZVeIe#ƒZWeIe&ƒZXeIe%ƒZYeIe,ƒZZeIe*ƒZ[eIe(dd;�Z\eIe4dd;�Z]eIe!ƒZ^eIe"dd;�Z_eIe3ƒZ`eIe2ƒZaeIe0ƒZbG d<d=„ d=ƒZcG d>d?„ d?ƒZdG d@dA„ dAƒZeG dBdC„ dCƒZfG dDdE„ dEƒZgG dFdG„ dGƒZhdHdI„ ZiG dJdK„ dKƒZjdLdM„ ZkG dNdO„ dOƒZlejm ndPg dQ¢¡dRdS„ ƒZodTdU„ ZpdVdW„ ZqdXdY„ ZrdZd[„ Zsd\d]„ Ztd^d_„ Zud`da„ Zvdbdc„ Zwddde„ Zxejmjydfdg„ ƒZzejmjydhdi„ ƒZ{ejmjydjdk„ ƒZ|ejmjydldm„ ƒZ}ejmjydndo„ ƒZ~dpdq„ Zdrds„ Z€dtdu„ Z�dvdw„ Z‚ejmjydxdy„ ƒZƒG dzd{„ d{ƒZ„G d|d}„ d}ƒZ…dS )€é    N)ÚwrapsÚpartial)Únorm)ÚverboseÚassert_Úassert_array_equalÚassert_equalÚassert_almost_equalÚassert_allcloseÚbreak_cyclesÚIS_PYPY)	Ú
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Úkulczynski1ÚmahalanobisÚ	minkowskiÚrogerstanimotoÚ
russellraoÚ
seuclideanÚsokalmichenerÚsokalsneathÚsqeuclideanÚyule)Únp_longÚnp_ulongÚsession)ÚparamsÚscopec                 C   s   | j S )z;
    Fixture for all metrics in scipy.spatial.distance
    )Úparam)Úrequest© r2   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/spatial/tests/test_distance.pyÚmetricD   s   r4   )zcdist-X1.txtzcdist-X2.txtziris.txtzpdist-boolean-inp.txtzpdist-chebyshev-ml-iris.txtzpdist-chebyshev-ml.txtzpdist-cityblock-ml-iris.txtzpdist-cityblock-ml.txtzpdist-correlation-ml-iris.txtzpdist-correlation-ml.txtzpdist-cosine-ml-iris.txtzpdist-cosine-ml.txtzpdist-double-inp.txtzpdist-euclidean-ml-iris.txtzpdist-euclidean-ml.txtzpdist-hamming-ml.txtzpdist-jaccard-ml.txtzpdist-jensenshannon-ml-iris.txtzpdist-jensenshannon-ml.txtzpdist-minkowski-3.2-ml-iris.txtzpdist-minkowski-3.2-ml.txtzpdist-minkowski-5.8-ml-iris.txtzpdist-seuclidean-ml-iris.txtzpdist-seuclidean-ml.txtzpdist-spearman-ml.txtzrandom-bool-data.txtzrandom-double-data.txtzrandom-int-data.txtzrandom-uint-data.txt)r   é–  ém  éÿ   éœ  éä  )r5   r   é'  éÔ  é  é�  )r6   r:   r   éò  é4  éŠ   )r7   r;   r>   r   éÛ   ée  )r8   r<   r?   rA   r   é�  )r9   r=   r@   rB   rC   r   Údouble©Údtypec                  C   s®   t D ]'} |  dd¡ dd¡}tj tj t¡d| ¡}t|ƒ}t 	|¡t
|< | ¡  qt t
d ¡t
d< t t
d ¡t
d< t t
d ¡t
d< tt
d	 ƒt
d	< tt
d
 ƒt
d
< d S )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_Úfloat32r+   r,   )ÚfnÚnameÚfqfnÚfpr2   r2   r3   Úload_testing_files{   s   
ra   c                   C   s   t  d¡jdk S )Nr   é   )rW   ÚintpÚitemsizer2   r2   r2   r3   Ú	_is_32bitŒ   s   re   c                    s|   dd„ ˆ D ƒ‰ |d u rdd„ ˆ D ƒ‰ d}t dd„ ˆ D ƒƒ‰ |dk r9t‡ fdd„ˆ D ƒƒs0tdƒ‚tˆ d jƒ| }ˆ |f S )	Nc                 S   ó   g | ]}t  |¡‘qS r2   )rW   Ú
asanyarray©Ú.0Úar2   r2   r3   Ú
<listcomp>‘   ó    z!_chk_asarrays.<locals>.<listcomp>c                 S   s$   g | ]}|j d krt |¡n|‘qS ©é   )ÚndimrW   Úravelrh   r2   r2   r3   rk   ”   s    ÿr   c                 s   s   � | ]}t  |¡V  qd S ©N)rW   Ú
atleast_1drh   r2   r2   r3   Ú	<genexpr>—   ó   € z _chk_asarrays.<locals>.<genexpr>c                 3   s    � | ]}|j ˆ d  j kV  qdS )r   N)ro   rh   ©Úarraysr2   r3   rs   ™   ó   € z(array ndim must be the same for neg axis)ÚtupleÚallÚ
ValueErrorÚrangero   )rv   Úaxisr2   ru   r3   Ú_chk_asarrays�   s   ÿ
r}   FTc
                    sp  t | ˆ d�}
|
d d… |
d } ‰ |o| }|s#|r#tdd„ | D ƒƒ}|r@dd„ | D ƒ}t|ƒr@d}d}tdd„ t| |ƒD ƒƒ} ˆd urJt ˆ¡‰n|rWt | d	 jˆ  ¡‰n| ˆˆ f S |	rctˆƒ‰|rkt	| ˆˆ ƒ‰t
‡ ‡fd
d„| D ƒƒs{tdƒ‚|r‡ˆd	k  ¡ r‡tdƒ‚|r¨t ˆd	k¡d	 ‰ˆjˆjk r¨t‡ ‡fdd„| D ƒƒ} ˆˆ ‰|r²ˆdk 
¡ r²d ‰| ˆˆ f S )N©r|   éÿÿÿÿc                 s   s$   � | ]}t j |¡t jjuV  qd S rq   )rW   ÚmaÚgetmaskÚnomaskrh   r2   r2   r3   rs   ©   s   €" z_chk_weights.<locals>.<genexpr>c                 S   s   g | ]
}t  t  |¡¡‘qS r2   )rW   ÚisnanÚsumrh   r2   r2   r3   rk   ¬   ó    z _chk_weights.<locals>.<listcomp>Tc                 s   s(   � | ]\}}|rt j |¡n|V  qd S rq   ©rW   r€   Úmasked_invalid)ri   rj   Úhas_nanr2   r2   r3   rs   °   s   € ÿr   c                 3   s"   � | ]}ˆj |j ˆ  fkV  qd S rq   ©Úshaperh   )r|   Úweightsr2   r3   rs   À   s   €  z*weights shape must match arrays along axiszweights cannot be negativec                 3   s    � | ]}t j|ˆˆ d �V  qdS )r~   N)rW   Útakerh   )r|   Úpos_weightsr2   r3   rs   È   rw   rn   )r}   Úanyrx   ÚziprW   rg   ÚonesrŠ   Ú_freq_weightsÚ_weight_maskedry   rz   ÚnonzeroÚsize)rv   r‹   r|   Úforce_weightsÚsimplify_weightsÚpos_onlyÚ	neg_checkÚ
nan_screenÚmask_screenÚddofÚchkedÚhas_nansr2   )r|   r�   r‹   r3   Ú_chk_weightsŸ   sD   
ÿrž   c                 C   s4   | d u r| S |   t¡}| |k ¡ rtd| › �ƒ‚|S )Nz0frequency (integer count-type) weights required )ÚastypeÚintrŽ   rz   )r‹   Úint_weightsr2   r2   r3   r‘   Ï   s   
r‘   c                    s‚   ˆ d u rd‰ t  |¡}| D ]1}t j |¡}|t jju rq|jdkr5t‡ fdd„t|jƒD ƒƒ}|j|d�}|d| 	t
¡ 9 }q|S )Nr   rn   c                 3   s   � | ]	}|ˆ kr|V  qd S rq   r2   ©ri   Úir~   r2   r3   rs   á   s   € z!_weight_masked.<locals>.<genexpr>r~   )rW   rg   r€   r�   r‚   ro   rx   r{   rŽ   rŸ   r    )rv   r‹   r|   rj   Ú	axis_maskÚnot_axesr2   r~   r3   r’   Ø   s   

r’   c           	         sÒ   dd„ | D ƒ} t j|t jd�}t j |¡}dd„ ‰| d jˆ  ‰t‡ ‡fdd„| D ƒƒs0J d	ƒ‚tt|ƒˆ ƒD ],}| 	ˆ| ¡‰|ˆ }| 
¡ }|| |ˆ< t  |d
| | ¡}‡ ‡‡fdd„| D ƒ} q8| |fS )Nc                 S   s,   g | ]}t  |jt j¡r| t j¡n|‘qS r2   )rW   Ú
issubdtyperF   ÚintegerrŸ   Úfloat64)ri   Úarrr2   r2   r3   rk   é   s
    ÿÿz_rand_split.<locals>.<listcomp>rE   c                    s6   t  t jˆ |ˆd�¡}| ‡ ‡fdd„tˆ jƒD ƒ¡S )Nr~   c                    s"   g | ]}|ˆkrˆ j | nd ‘qS rm   r‰   r¢   ©rj   r|   r2   r3   rk   ò   s    ÿz/_rand_split.<locals>.mytake.<locals>.<listcomp>)rW   rg   rŒ   Úreshaper{   ro   )rj   Úixr|   Úrecordr2   rª   r3   Úmytakeð   s   ÿz_rand_split.<locals>.mytaker   c                 3   s   � | ]
}|j ˆ  ˆkV  qd S rq   r‰   rh   )r|   Ún_obsr2   r3   rs   ö   s   € z_rand_split.<locals>.<genexpr>z#data must be aligned on sample axisç      ð?c              	      s&   g | ]}t j|ˆ|ˆˆ d �ˆ d �‘qS ©r~   ©rW   Úappendrh   )r|   r®   Úsplit_ixr2   r3   rk   þ   s
    ÿ
ÿ)rW   Úarrayr¨   ÚrandomÚRandomStaterŠ   ry   r{   r    ÚrandintÚrandr³   )	rv   r‹   r|   Ú	split_perÚseedÚseeded_randr£   Úprev_wÚqr2   )r|   r®   r¯   r´   r3   Ú_rand_splitç   s(   ÿÿÿr¿   çñhãˆµøä>©Úatolc                 C   ó   | S rq   r2   ©Úxr2   r2   r3   Ú<lambda>  ó    rÆ   c           	   	   C   s�   || ƒ}||ƒ}zt  ||k¡ ¡ r|||ƒ W d S W d S  ty+   |||ƒ Y d S  ttfyG   t||ƒD ]\}}t|||d� q8Y d S w )N)Úcompare_assert)rW   rµ   rŽ   ÚAttributeErrorÚ	TypeErrorrz   r�   Ú_rough_check)	rj   ÚbrÈ   ÚkeyÚwÚcheck_aÚcheck_bÚa_iÚb_ir2   r2   r3   rË     s   ÿÿÿrË   é   c                 C   rÃ   rq   r2   rÄ   r2   r2   r3   rÆ     rÇ   rÎ   r°   c                    s8   t ˆƒ‡ ‡‡‡‡‡‡‡‡‡	‡
‡‡‡‡‡‡fdd„ƒ}|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               
      sü  ˆ| i |¤Ž}| d ˆ	… }| ˆ	d … }|  ˆd ¡}|  dˆ¡‰ t||ˆ ddd�}|d d… |d |d }}‰ ˆrAdd„ |D ƒ}�z�t|ƒ| } ˆr[||ˆ< t|ˆ| i |¤Žˆd� ˆrš|d	 |ˆ< t|ˆ| i |¤Žˆd� |d
 |ˆ< zt|ˆ| i |¤Žˆd� W n ty™ } z
t|ƒ|||fƒ|‚d }~ww ˆ�rrt||ˆ ˆˆd�\}}	||	d |j…< d|	|jd …< t|ƒ| }
|	|ˆ< t|ˆ|
i |¤Žˆd� |D ]}td ƒg|j	 }t|jd ƒ|ˆ < t|ƒ}|| d ||< qÎt|ƒ| }
t|ˆ|
i |¤Žˆd� |D ] }td ƒg|j	 }t|jd ƒ|ˆ < t|ƒ}|| t
j ||< �q|  dd ¡dk�r@ˆ
�r@t|ƒ| }
t|ˆ|
i |¤Žˆd� ˆ�rodd„ |D ƒ}t|ƒ| }
t|ˆ|
i |¤Žˆd� ˆ�rod |ˆ< t|ˆ|
i |¤Žˆd� ~~
~	ˆ�rŸ‡ fdd„|D ƒ}t
 ||¡d }t|ƒ| }||ˆ< t|ˆ|i |¤Žˆd� ~~~ˆ�rÍˆdk�rÐt||ˆ ˆˆd�}|\}}t|ƒ| }||ˆ< t|ˆ|i |¤Žˆd� W |S W |S W |S  t�yý } zˆ�sòtjˆj› d|› �dd� W Y d }~|S W Y d }~|S d }~ww )Nr|   T)r‹   r|   r•   rš   éþÿÿÿr   c                 S   s   g | ]	}t  | ¡ ¡‘qS r2   )rW   rr   Úsqueezerh   r2   r2   r3   rk   +  s    z4_weight_checked.<locals>.wrapped.<locals>.<listcomp>)rÍ   g     @Y@gB`åÐ"Û¹?)rº   r»   r   ée   Ú
nan_policyÚomitc                 S   s   g | ]}t j |¡‘qS r2   r†   rh   r2   r2   r3   rk   Y  s    c                    s   g | ]
}t j||ˆ d �‘qS r±   r²   rh   r~   r2   r3   rk   c  r…   ç       @z NotImplemented weights: é   )Ú
stacklevel)Úgetrž   rx   rË   Ú	ExceptionÚtyper¿   r”   Úslicero   rW   Únanr³   ÚNotImplementedErrorÚwarningsÚwarnÚ__name__)ÚargsÚkwargsÚresultrv   Úrestr‹   rœ   ÚeÚ
dud_arraysÚdud_weightsÚdud_argsrj   ÚindexerÚ
dup_arraysÚdup_weightsÚdup_argsÚsplitÚsplit_arraysÚsplit_weightsÚ
split_args©Ú
const_testÚdefault_axisÚdud_testÚdup_testr]   rÍ   Úma_safeÚma_very_safeÚn_argsÚnan_safeÚ	ones_testr»   Úsilentrº   Ú
split_testrÕ   Ú
weight_argr~   r3   Úwrapped  s°   ÿ €ÿ
ÿÿóóúÿ
ý€úz _weight_checked.<locals>.wrapped)r   )r]   rü   r÷   rÍ   r  rÕ   rÿ   rþ   rö   rù   r   rø   rú   rû   rý   rº   r»   rÈ   r  r2   rõ   r3   Ú_weight_checked  s   .Zr  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDummyContextManagerc                 C   ó   d S rq   r2   ©Úselfr2   r2   r3   Ú	__enter__}  ó   zDummyContextManager.__enter__c                 G   r  rq   r2   )r  rå   r2   r2   r3   Ú__exit__  r	  zDummyContextManager.__exit__N)rä   Ú
__module__Ú__qualname__r  r
  r2   r2   r2   r3   r  |  s    r  c                 C   s   | dv rt  ¡ S tƒ S )N)r!   r'   )ÚpytestÚdeprecated_callr  ©r4   r2   r2   r3   Úmaybe_deprecatedƒ  s   r  rn   )r÷   rÕ   )r÷   rÕ   rö   )r÷   rÕ   rü   )r÷   rÕ   rö   rü   )rø   )rö   c                   @   s¾   e Zd Zdd„ Zejjdd„ ƒZdd„ Zdd„ Z	ej 
d	d
ddddddejg¡dd„ ƒZdd„ Zdd„ Zdd„ Zd'dd„Zdd„ Zdd„ Zejjd d!„ ƒZejjd"d#„ ƒZejjd$d%„ ƒZd&S )(Ú	TestCdistc                 C   ó@   g d¢| _ tttjtjgttjtjgtjtjgtjgdœ| _d S ©N)rL   rM   rN   rK   rJ   )ÚboolÚuintr    r\   ©Úrnd_eo_namesr,   r+   rW   r\   r¨   Úvalid_upcastsr  r2   r2   r3   Úsetup_method¥  ó   

ýzTestCdist.setup_methodc              	   C   s^  g d¢g d¢g d¢g}g d¢g d¢g d¢g}dt  d¡d	œ}dgd
 }t t¡�' t|ƒ� t||fd|i|¤Ž W d   ƒ n1 sCw   Y  W d   ƒ n1 sRw   Y  t t¡�) t|ƒ� t||fdt|ƒi|¤Ž W d   ƒ n1 syw   Y  W d   ƒ n1 sˆw   Y  t t¡�) t|ƒ� t||fdd| i|¤Ž W d   ƒ n1 s¯w   Y  W d   ƒ n1 s¾w   Y  t t¡� t||g|¢R d|iŽ W d   ƒ n1 sßw   Y  t t¡� t||g|¢R dt|ƒiŽ W d   ƒ n	1 �sw   Y  t t¡� t||g|¢R dd| iŽ W d   ƒ d S 1 �s(w   Y  d S )N©r°   rÙ   ç      @©ç333333ó?çffffff@ç333333@©çš™™™™™@r  çš™™™™™@©g      @ç      @g       @©g      @ç333333@gÍÌÌÌÌÌ @©g      @r'  r#  ç…ëQ¸	@rÚ   ©ÚN0tV4l1D_p4raMrÎ   éÈ   r4   Útest_)rW   Úaranger  ÚraisesrÊ   r  r   Úeval)r  r4   ÚX1ÚX2ræ   rå   r2   r2   r3   Útest_cdist_extra_args®  s>   

ÿ€ÿ
ÿ€ÿ
ÿ€ÿÿÿ$ÿzTestCdist.test_cdist_extra_argsc              	   C   sÈ  ddd„}g d¢g d¢g d¢g}g d¢g d	¢g d
¢g}dt  d¡dœ}dgd }t t¡� t|||ƒ W d   ƒ n1 s>w   Y  t t¡� t|||g|¢R Ž  W d   ƒ n1 s]w   Y  t t¡� t|||fi |¤Ž W d   ƒ n1 s|w   Y  t t¡� t|||ddd� W d   ƒ n1 sšw   Y  t t¡� t|||dddd� W d   ƒ n1 s¹w   Y  t t¡� t|||dddd� W d   ƒ n1 sØw   Y  t t¡� t|||dddƒ W d   ƒ n1 söw   Y  t t¡� t|||ddƒ W d   ƒ n	1 �sw   Y  t t¡� t|||dƒ W d   ƒ n	1 �s1w   Y  t t¡� t|||dddd� W d   ƒ n	1 �sQw   Y  tt|||ddd�dƒ d S )Nrn   rÓ   c                 S   ó   || | S rq   r2   ©rÅ   ÚyÚargÚkwargÚkwarg2r2   r2   r3   Ú
_my_metricÊ  ó   z:TestCdist.test_cdist_extra_args_custom.<locals>._my_metricr  r  r!  r$  r&  r(  r)  rÚ   r*  r,  r"  çffffff
@©r8  r9  ©r8  çš™™™™™ñ?©r4   r7  r9  çš™™™™™@©rn   rÓ   )rW   r.  r  r/  rÊ   r   r
   )r  r:  r1  r2  ræ   rå   r2   r2   r3   Útest_cdist_extra_args_customÇ  sP   

ÿÿÿÿÿÿÿÿÿÿ
ÿÿz&TestCdist.test_cdist_extra_args_customc                 C   sD   d}t d }t d }t||dƒ}t||dƒ}t|||tdkd� d S )NçVçž¯Ò<úcdist-X1úcdist-X2r   Útest_euclideanrÓ   ©Úrtolr   ©rY   Úwcdist_no_constr
   r   )r  Úepsr1  r2  ÚY1ÚY2r2   r2   r3   Ú#test_cdist_euclidean_random_unicodeë  s   z-TestCdist.test_cdist_euclidean_random_unicodeÚpçš™™™™™¹?ç      Ð?r°   ç®Gáz®ó?rÙ   gffffff@gffffff@c                 C   sN   d}t d }t d }t||d|d�}t||d|d�}t||d|tdkd	� d S )
Nç‚vIhÂ%<=rE  rF  r#   ©rP  Útest_minkowskir   rÓ   )rÂ   rI  r   rJ  )r  rP  rL  r1  r2  rM  rN  r2   r2   r3   Útest_cdist_minkowski_randomó  s   z%TestCdist.test_cdist_minkowski_randomc                 C   sb   d}t d }t d }t||dƒ}dd„ }dt |||ƒ |||ƒ j¡ }t|||tdkd	� d S )
Nç›+¡†›„=rE  rF  r   c                 S   s   t jj| dd� dd¡S )Nrn   r~   r   )rW   Úlinalgr   r«   )ÚXr2   r2   r3   Únorms  ó   z1TestCdist.test_cdist_cosine_random.<locals>.normsrn   rÓ   rH  )rY   ÚwcdistrW   ÚdotÚTr
   r   )r  rL  r1  r2  rM  r[  rN  r2   r2   r3   Útest_cdist_cosine_randomý  s   "z"TestCdist.test_cdist_cosine_randomc                 C   s  t  dgdgg¡}t  dgdgg¡}t||dd�}t|dt  d¡gt  d¡t  d¡ggƒ t  d	d	gd
d	gg¡}t  d	dgdd	gd	dgg¡}t||dd�}t  d¡}t||||gdd| dggƒ t t¡� td	dggddggdd� W d   ƒ d S 1 sw   Y  d S )NrÓ   rÚ   é   r"   r  ç        ç      @ç      à?r   r   rn   rÔ   )rW   rµ   r   r
   Úsqrtr  r/  rz   )r  Úx1Úx2ÚdistÚrt2r2   r2   r3   Útest_cdist_mahalanobis  s   (
"ÿz TestCdist.test_cdist_mahalanobisc                    sV   G dd„ dƒ‰ ‡ fdd„}t jˆ ƒ ggtd�}t|||d�}d}t||tdkd	� d S )
Nc                   @   ó   e Zd ZdS )z6TestCdist.test_cdist_custom_notdouble.<locals>.myclassN©rä   r  r  r2   r2   r2   r3   Úmyclass  ó    rm  c                    ó(   t | d ˆ ƒrt |d ˆ ƒstdƒ‚dS ©Nr   zType has been changedç+‡ÙÎ÷ñ?©Ú
isinstancerz   ©rÅ   r6  ©rm  r2   r3   r:  !  ó   z9TestCdist.test_cdist_custom_notdouble.<locals>._my_metricrE   r  rq  rÓ   ©r   )rW   rµ   Úobjectr   r   r   )r  r:  rH   Úcdist_yÚright_yr2   ru  r3   Útest_cdist_custom_notdouble  s   z%TestCdist.test_cdist_custom_notdoubleçH¯¼šò×z>c                 K   s˜  z't ||fd|i|¤Ž}t ||fdt|ƒi|¤Ž}t ||fdd| i|¤Ž}W nŽ tyµ }	 z‚|	j}
tdkr?t|
jƒ t|	ƒ t |
¡� t ||fd|i|¤Ž W d   ƒ n1 sZw   Y  t |
¡� t ||fdt|ƒi|¤Ž W d   ƒ n1 s|w   Y  t |
¡� t ||fdd| i|¤Ž W d   ƒ n1 sžw   Y  W Y d }	~	d S W Y d }	~	d S d }	~	ww t	|||tdkd� t	|||tdkd� d S ©Nr4   r-  rÓ   rH  )
r   r0  rÝ   Ú	__class__r   Úprinträ   r  r/  r
   )r  r1  r2  r4   rL  ræ   Úy1Úy2Úy3ré   Úe_clsr2   r2   r3   Ú_check_calling_conventions*  s,   
ÿÿ8ÿ€÷z$TestCdist._check_calling_conventionsc                 C   s  | j D ]…}t| d d d…d d d…f }t| dd d…d d d…f }tdkr,td|d|ƒ |dv r5d|vr5q|  |||¡ |d	kr]t ||g¡ tj¡}tj	|d
dd�}| j||||d� q|dkrˆt ||g¡ tj¡}t 
t |j¡¡}t tj |¡j¡}| j||||d� qd S )Nra  rÔ   rn   rÓ   ú	testing: ú with: >   r   r*   r%   r!   r(   r'   r$   r  r&   r   ©r|   r›   ©ÚVr"   ©ÚVI)r  rY   r   r  r„  rW   ÚvstackrŸ   r¨   ÚvarÚ
atleast_2dÚcovr_  rµ   rY  Úinv)r  r4   Úeo_namer1  r2  ÚX12r‰  r‹  r2   r2   r3   Útest_cdist_calling_conventions?  s(   
€çz(TestCdist.test_cdist_calling_conventionsc                 C   st  d}t d | jd ft d | jd ft d | jd ft d | jd	 fg}|D ]‘}|d
 d d d…d d d…f }|d
 dd d…d d d…f }z	t|||d�}W nM tyš } zA|j}	tdkret|	jƒ t|ƒ |d D ]&}
|
|ƒ}|
|ƒ}t 	|	¡� t|||d� W d   ƒ n1 sŠw   Y  qiW Y d }~q&d }~ww |d D ]}
t|
|ƒ|
|ƒ|d�}t
|||tdkd� qŸq&d S )Nr|  rJ   r  rN   r  rM   r    rL   r\   r   ra  rÔ   rn   rÓ   r  rH  )rY   r  r   rÝ   r~  r   r  rä   r  r/  r
   )r  r4   rL  ÚtestsÚtestr1  r2  r€  ré   rƒ  Únew_typeÚX1newÚX2newr�  r2   r2   r3   Útest_cdist_dtype_equivalence^  s>   ý
ÿ€ý€ûþðz&TestCdist.test_cdist_dtype_equivalencec              	   C   s.  d}t d }t d }|jd |jd }}tƒ }|dkr d|d< tj||ftjd�}t|ƒ� t|||fi |¤Ž}	W d   ƒ n1 sCw   Y  t|ƒ� t|||fd	|i|¤Ž}
W d   ƒ n1 scw   Y  t|	|
|t	d
kd� t
|
|u ƒ tj|d |d ftjd�}t t¡�( t|ƒ� t|||fd	|i|¤Ž W d   ƒ n1 s§w   Y  W d   ƒ n1 s¶w   Y  tjd
| d
| ftjd�d d d
…d d d
…f }tj||ftjdd�}t t¡�( t|ƒ� t|||fd	|i|¤Ž W d   ƒ n1 sÿw   Y  W d   ƒ n	1 �sw   Y  t t¡�) t|ƒ� t|||fd	|i|¤Ž W d   ƒ n	1 �s6w   Y  W d   ƒ n	1 �sFw   Y  tj||ftjd�}t t¡�2 t|ƒ� t|||fd	|i|¤Ž W d   ƒ n1 �sww   Y  W d   ƒ d S W d   ƒ d S 1 �s�w   Y  d S )NrD  rE  rF  r   r#   rS  rP  rE   ÚoutrÓ   rH  rn   ÚF)rF   Úorder)rY   rŠ   ÚdictrW   Úemptyr¨   r  r   r
   r   r   r  r/  rz   Úint64)r  r4   rL  r1  r2  Úout_rÚout_cræ   Úout1rM  rN  Úout2Úout3Úout4Úout5r2   r2   r3   Útest_cdist_outy  sb   
ÿ
ÿ
ÿ€ÿÿÿ
ÿ€ÿ
ÿ€ÿ
 ÿÿ$ÿzTestCdist.test_cdist_outc           
      C   s:  d}t d d d d…d d d…f }t d d d d…d d d…f }| ¡ }| ¡ }t||ƒ t||ƒ t|jj ƒ t|jj ƒ t|jjƒ t|jjƒ tƒ }|dkrUd|d< t|ƒ� t|||fi |¤Ž}W d   ƒ n1 snw   Y  t|ƒ� t|||fi |¤Ž}	W d   ƒ n1 sŒw   Y  t	||	|t
dkd� d S )	NrD  rE  rÓ   rF  r#   rS  rP  rH  )rY   Úcopyr   r   ÚflagsÚc_contiguousr�  r  r   r
   r   )
r  r4   rL  r1  r2  ÚX1_copyÚX2_copyræ   rM  rN  r2   r2   r3   Útest_striding§  s*   


ÿ
ÿzTestCdist.test_stridingc                 C   s®   t j dd¡}t j dd¡}tƒ }|dkrd|d< t|ƒ� t||fd|i|¤Ž}W d   ƒ n1 s3w   Y  dd„ |||fD ƒ}~~~trJtƒ  tdd	„ |D ƒƒsUJ ‚d S )
Né
   r#   rS  rP  r4   c                 S   rf   r2   )ÚweakrefÚref)ri   Úvr2   r2   r3   rk   Ò  rl   z1TestCdist.test_cdist_refcount.<locals>.<listcomp>c                 s   s   � | ]}|ƒ d u V  qd S rq   r2   )ri   Úweak_refr2   r2   r3   rs   ×  rt   z0TestCdist.test_cdist_refcount.<locals>.<genexpr>)	rW   r¶   r¹   r�  r  r   r   r   ry   )r  r4   rf  rg  ræ   rš  Ú	weak_refsr2   r2   r3   Útest_cdist_refcountÄ  s   
ÿzTestCdist.test_cdist_refcountN©r|  )rä   r  r  r  r  ÚmarkÚthread_unsafer3  rC  rO  ÚparametrizerW   ÚinfrW  r`  rj  r{  r„  r“  r™  r§  r­  r´  r2   r2   r2   r3   r  £  s,    	
$
ÿ


-
r  c                	   @   sJ  e Zd Zdd„ Zejjdd„ ƒZdd„ Zdd„ Z	d	d
„ Z
dd„ Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zejjd'd(„ ƒZejjd)d*„ ƒZejjd+d,„ ƒZd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z ejjd5d6„ ƒZ!ejjd7d8„ ƒZ"ejjd9d:„ ƒZ#d;d<„ Z$d=d>„ Z%d?d@„ Z&ejjdAdB„ ƒZ'ejjdCdD„ ƒZ(ejjdEdF„ ƒZ)ej *dGdHdIdJdKdLe+j,g¡dMdN„ ƒZ-dOdP„ Z.dQdR„ Z/dSdT„ Z0ejjdUdV„ ƒZ1ejjdWdX„ ƒZ2ejjdYdZ„ ƒZ3ejjd[d\„ ƒZ4ejjd]d^„ ƒZ5ejjd_d`„ ƒZ6dadb„ Z7dcdd„ Z8dedf„ Z9dgdh„ Z:didj„ Z;dkdl„ Z<dmdn„ Z=dodp„ Z>dqdr„ Z?dsdt„ Z@dudv„ ZAdwdx„ ZBdydz„ ZCd{d|„ ZDd}d~„ ZEdd€„ ZFd�d‚„ ZGdƒd„„ ZHd…d†„ ZId‡dˆ„ ZJd‰dŠ„ ZKd‹dŒ„ ZLd�dŽ„ ZMd�d�„ ZNd‘d’„ ZOejjd“d”„ ƒZPd•d–„ ZQd—d˜„ ZRd¥dšd›„ZSdœd�„ ZTdždŸ„ ZUejjd d¡„ ƒZVejjd¢d£„ ƒZWd¤S )¦Ú	TestPdistc                 C   r  r  r  r  r2   r2   r3   r  Ü  r  zTestPdist.setup_methodc              	   C   s:  ddgddgddgg}dt  d¡dœ}dgd	 }t t¡�& t|ƒ� t|fd
|i|¤Ž W d   ƒ n1 s7w   Y  W d   ƒ n1 sFw   Y  t t¡�( t|ƒ� t|fd
t|ƒi|¤Ž W d   ƒ n1 slw   Y  W d   ƒ n1 s{w   Y  t t¡�( t|ƒ� t|fd
d| i|¤Ž W d   ƒ n1 s¡w   Y  W d   ƒ n1 s°w   Y  t t¡� t|g|¢R d
|iŽ W d   ƒ n1 sÐw   Y  t t¡� t|g|¢R d
t|ƒiŽ W d   ƒ n1 sòw   Y  t t¡� t|g|¢R d
d| iŽ W d   ƒ d S 1 �sw   Y  d S )Nr°   rÙ   r  r  r"  r)  rÓ   r*  r,  r4   r-  )rW   r.  r  r/  rÊ   r  r   r0  )r  r4   r1  ræ   rå   r2   r2   r3   Útest_pdist_extra_argså  s<   

ÿ€ÿ
ÿ€ÿ
ÿ€ÿÿÿ$ÿzTestPdist.test_pdist_extra_argsc                 C   sœ  ddd„}ddgddgd	dgg}d
t  d¡dœ}d
gd }t t¡� t||ƒ W d   ƒ n1 s2w   Y  t t¡� t||g|¢R Ž  W d   ƒ n1 sPw   Y  t t¡� t||fi |¤Ž W d   ƒ n1 snw   Y  t t¡� t||d	dd� W d   ƒ n1 s‹w   Y  t t¡� t||ddd	d� W d   ƒ n1 s©w   Y  t t¡� t||ddd	d� W d   ƒ n1 sÇw   Y  t t¡� t||dd	dƒ W d   ƒ n1 säw   Y  t t¡� t||dd	ƒ W d   ƒ n	1 �sw   Y  t t¡� t||dƒ W d   ƒ n	1 �sw   Y  t t¡� t||dd	dd� W d   ƒ n	1 �s<w   Y  tt||ddd�dƒ d S )Nrn   rÓ   c                 S   r4  rq   r2   r5  r2   r2   r3   r:  ÿ  r;  z:TestPdist.test_pdist_extra_args_custom.<locals>._my_metricr°   rÙ   r  r  r"  r)  r*  r,  r<  r=  r>  r?  r@  rA  rB  )rW   r.  r  r/  rÊ   r   r
   )r  r:  r1  ræ   rå   r2   r2   r3   Útest_pdist_extra_args_customü  sN   

ÿÿÿÿÿÿÿÿÿÿÿÿz&TestPdist.test_pdist_extra_args_customc                 C   ó0   d}t d }t d }t|dƒ}t|||d� d S ©Nr|  úpdist-double-inpúpdist-euclideanr   ©rI  ©rY   Úwpdist_no_constr
   ©r  rL  rZ  ÚY_rightÚY_test1r2   r2   r3   Útest_pdist_euclidean_random  ó
   
z%TestPdist.test_pdist_euclidean_randomc                 C   r½  r¾  rÂ  rÄ  r2   r2   r3   Útest_pdist_euclidean_random_u&  rÈ  z'TestPdist.test_pdist_euclidean_random_uc                 C   ó6   d}t  td ¡}td }t|dƒ}t|||d� d S r¾  ©rW   r\   rY   rÃ  r
   rÄ  r2   r2   r3   Ú#test_pdist_euclidean_random_float32-  ó
   
z-TestPdist.test_pdist_euclidean_random_float32c                 C   r½  )Nr|  r¿  rÀ  rG  rÁ  rÂ  ©r  rL  rZ  rÅ  ÚY_test2r2   r2   r3   Ú test_pdist_euclidean_random_nonC4  rÈ  z*TestPdist.test_pdist_euclidean_random_nonCc                 C   r½  )Nr|  Úirisúpdist-euclidean-irisr   rÁ  rÂ  rÄ  r2   r2   r3   Ú test_pdist_euclidean_iris_double;  ó
   
z*TestPdist.test_pdist_euclidean_iris_doublec                 C   ó<   d}t  td ¡}td }t|dƒ}t|||tdkd� d S )NrÀ   rÑ  rÒ  r   rÓ   rH  ©rW   r\   rY   rÃ  r
   r   rÄ  r2   r2   r3   Ú!test_pdist_euclidean_iris_float32C  ó
   
z+TestPdist.test_pdist_euclidean_iris_float32c                 C   r½  )Nr|  rÑ  rÒ  rG  rÁ  rÂ  rÎ  r2   r2   r3   Útest_pdist_euclidean_iris_nonCK  ó
   
z(TestPdist.test_pdist_euclidean_iris_nonCc                 C   r½  )Nr|  r¿  úpdist-seuclideanr&   rÁ  ©rY   r   r
   rÄ  r2   r2   r3   Útest_pdist_seuclidean_randomU  rÈ  z&TestPdist.test_pdist_seuclidean_randomc                 C   sb   d}t  td ¡}td }t|dƒ}t|||d� t j|ddd�}t|d|d	�}t|||d� d S )
Nr|  r¿  rÛ  r&   rÁ  r   rn   r‡  rˆ  )rW   r\   rY   r   r
   r�  )r  rL  rZ  rÅ  rÆ  r‰  rÏ  r2   r2   r3   Ú$test_pdist_seuclidean_random_float32\  s   
z.TestPdist.test_pdist_seuclidean_random_float32c                 C   r½  )Nr|  r¿  rÛ  Útest_seuclideanrÁ  rÜ  rÎ  r2   r2   r3   Ú!test_pdist_seuclidean_random_nonCh  rÔ  z+TestPdist.test_pdist_seuclidean_random_nonCc                 C   r½  )Nr|  rÑ  úpdist-seuclidean-irisr&   rÁ  rÜ  rÄ  r2   r2   r3   Útest_pdist_seuclidean_irisp  rÈ  z$TestPdist.test_pdist_seuclidean_irisc                 C   rÊ  )NrÀ   rÑ  rá  r&   rÁ  )rW   r\   rY   r   r
   rÄ  r2   r2   r3   Ú"test_pdist_seuclidean_iris_float32w  s
   
z,TestPdist.test_pdist_seuclidean_iris_float32c                 C   r½  )Nr|  rÑ  rá  rß  rÁ  rÜ  rÎ  r2   r2   r3   Útest_pdist_seuclidean_iris_nonC  s
   
z)TestPdist.test_pdist_seuclidean_iris_nonCc                 C   r½  ©Nr|  r¿  úpdist-cosiner   rÁ  ©rY   Úwpdistr
   rÄ  r2   r2   r3   Útest_pdist_cosine_randomˆ  rÈ  z"TestPdist.test_pdist_cosine_randomc                 C   rÊ  rå  ©rW   r\   rY   rè  r
   rÄ  r2   r2   r3   Ú test_pdist_cosine_random_float32�  rÍ  z*TestPdist.test_pdist_cosine_random_float32c                 C   r½  )Nr|  r¿  ræ  Útest_cosinerÁ  rç  rÎ  r2   r2   r3   Útest_pdist_cosine_random_nonC–  rÔ  z'TestPdist.test_pdist_cosine_random_nonCc                 C   r½  )NrÀ   rÑ  úpdist-cosine-irisr   rÁ   rç  rÄ  r2   r2   r3   Útest_pdist_cosine_irisž  rÔ  z TestPdist.test_pdist_cosine_irisc                 C   rÕ  )NrÀ   rÑ  rî  r   rÓ   ©rÂ   r   )rW   r\   rY   rè  r
   r   rÄ  r2   r2   r3   Útest_pdist_cosine_iris_float32¦  rØ  z(TestPdist.test_pdist_cosine_iris_float32c                 C   r½  )NrÀ   rÑ  rî  rì  rÁ   rç  rÎ  r2   r2   r3   Útest_pdist_cosine_iris_nonC®  rÔ  z%TestPdist.test_pdist_cosine_iris_nonCc                 C   sD   t  t j d¡ d¡¡}t  ||g¡}tt|dƒd dkdd� d S )Ni9  é[   r   r   z&cosine distance should be non-negative)Úmsg)rW   Úabsr¶   r·   r¹   rŒ  r   rè  )r  rÅ   rZ  r2   r2   r3   Útest_pdist_cosine_bounds¶  s
   
ÿz"TestPdist.test_pdist_cosine_boundsc                 C   r½  ©Nr|  r¿  úpdist-cityblockr   rÁ  rÂ  rÄ  r2   r2   r3   Útest_pdist_cityblock_random¿  rÈ  z%TestPdist.test_pdist_cityblock_randomc                 C   rÊ  r÷  rË  rÄ  r2   r2   r3   Ú#test_pdist_cityblock_random_float32Æ  rÍ  z-TestPdist.test_pdist_cityblock_random_float32c                 C   r½  )Nr|  r¿  rø  Útest_cityblockrÁ  rÂ  rÎ  r2   r2   r3   Ú test_pdist_cityblock_random_nonCÍ  rÈ  z*TestPdist.test_pdist_cityblock_random_nonCc                 C   r½  )NrX  rÑ  úpdist-cityblock-irisr   rÁ  rÂ  rÄ  r2   r2   r3   Útest_pdist_cityblock_irisÔ  rÔ  z#TestPdist.test_pdist_cityblock_irisc                 C   rÕ  )NrÀ   rÑ  rý  r   rÓ   rH  rÖ  rÄ  r2   r2   r3   Ú!test_pdist_cityblock_iris_float32Ü  rØ  z+TestPdist.test_pdist_cityblock_iris_float32c                 C   r½  )NrX  rÑ  rý  rû  rÁ  rÂ  rÎ  r2   r2   r3   Útest_pdist_cityblock_iris_nonCä  rÚ  z(TestPdist.test_pdist_cityblock_iris_nonCc                 C   r½  ©Nr|  r¿  úpdist-correlationr   rÁ  rç  rÄ  r2   r2   r3   Útest_pdist_correlation_randomî  rÈ  z'TestPdist.test_pdist_correlation_randomc                 C   rÊ  r  rê  rÄ  r2   r2   r3   Ú%test_pdist_correlation_random_float32õ  rÍ  z/TestPdist.test_pdist_correlation_random_float32c                 C   r½  )Nr|  r¿  r  Útest_correlationrÁ  rç  rÎ  r2   r2   r3   Ú"test_pdist_correlation_random_nonCü  rÈ  z,TestPdist.test_pdist_correlation_random_nonCc                 C   r½  )Nr|  rÑ  úpdist-correlation-irisr   rÁ  rç  rÄ  r2   r2   r3   Útest_pdist_correlation_iris  rÔ  z%TestPdist.test_pdist_correlation_irisc                 C   s<   d}t d }t t d ¡}t|dƒ}t|||tdkd� d S )Nr|  rÑ  r  r   rÓ   rH  )rY   rW   r\   rè  r
   r   rÄ  r2   r2   r3   Ú#test_pdist_correlation_iris_float32  s
   
z-TestPdist.test_pdist_correlation_iris_float32c                 C   sF   t jdkrd}nt d¡ td }td }t|dƒ}t|||d� d S )Nl        r|  zsee gh-16456rÑ  r  r  rÁ  )ÚsysÚmaxsizer  ÚskiprY   rè  r
   rÎ  r2   r2   r3   Ú test_pdist_correlation_iris_nonC  s   


z*TestPdist.test_pdist_correlation_iris_nonCrP  rQ  rR  r°   rÙ   çš™™™™™	@c                 C   s<   d}t d }t|d|d�}t|d|d�}t||d|d� d S )NrT  r¿  r#   rU  rV  r   )rÂ   rI  rÂ  )r  rP  rL  rZ  rM  rN  r2   r2   r3   Útest_pdist_minkowski_random_p  s
   z'TestPdist.test_pdist_minkowski_random_pc                 C   ó4   d}t d }t d }t|ddd�}t|||d� d S ©Nr|  r¿  úpdist-minkowski-3.2r#   r  rU  rÁ  rÂ  rÄ  r2   r2   r3   Útest_pdist_minkowski_random&  ó
   z%TestPdist.test_pdist_minkowski_randomc                 C   ó:   d}t  td ¡}td }t|ddd�}t|||d� d S r  rË  rÄ  r2   r2   r3   Ú#test_pdist_minkowski_random_float32-  s
   z-TestPdist.test_pdist_minkowski_random_float32c                 C   r  )Nr|  r¿  r  rV  r  rU  rÁ  rÂ  rÎ  r2   r2   r3   Ú test_pdist_minkowski_random_nonC4  r  z*TestPdist.test_pdist_minkowski_random_nonCc                 C   r  )Nr|  rÑ  úpdist-minkowski-3.2-irisr#   r  rU  rÁ  rÂ  rÄ  r2   r2   r3   Útest_pdist_minkowski_3_2_iris;  ó
   z'TestPdist.test_pdist_minkowski_3_2_irisc                 C   r  )NrÀ   rÑ  r  r#   r  rU  rÁ  rË  rÄ  r2   r2   r3   Ú%test_pdist_minkowski_3_2_iris_float32C  s
   z/TestPdist.test_pdist_minkowski_3_2_iris_float32c                 C   r  )Nr|  rÑ  r  rV  r  rU  rÁ  rÂ  rÎ  r2   r2   r3   Ú"test_pdist_minkowski_3_2_iris_nonCK  r  z,TestPdist.test_pdist_minkowski_3_2_iris_nonCc                 C   r  )Nr|  rÑ  úpdist-minkowski-5.8-irisr#   r'  rU  rÁ  rÂ  rÄ  r2   r2   r3   Útest_pdist_minkowski_5_8_irisS  r  z'TestPdist.test_pdist_minkowski_5_8_irisc                 C   s@   d}t  td ¡}td }t|ddd�}t|||tdkd� d S )	NrÀ   rÑ  r  r#   r'  rU  rÓ   rH  rÖ  rÄ  r2   r2   r3   Ú%test_pdist_minkowski_5_8_iris_float32[  s
   z/TestPdist.test_pdist_minkowski_5_8_iris_float32c                 C   r  )Nr|  rÑ  r  rV  r'  rU  rÁ  rÂ  rÎ  r2   r2   r3   Ú"test_pdist_minkowski_5_8_iris_nonCc  r  z,TestPdist.test_pdist_minkowski_5_8_iris_nonCc                 C   s  t  g d¢¡ dd¡}t|dd�}t|dt  d¡t  d¡t  d¡t  d¡t  d	¡gƒ t  d
d
gdd
gd
dgdd
gd
dgg¡}t|dd�}t  d¡}t|||||dd| ddd| dg
ƒ t t¡� t	d
dgddggdd� W d   ƒ d S 1 szw   Y  d S )N)rÙ   rÙ   r  r%  r   rn   r"   r  rb  rd  rc  rÙ   r   rÓ   rÔ   rÚ   )
rW   rµ   r«   r   r
   re  r  r/  rz   rè  )r  rÅ   rh  ri  r2   r2   r3   Útest_pdist_mahalanobisk  s   ÿ(
&"ÿz TestPdist.test_pdist_mahalanobisc                 C   r½  ©NrD  rI   úpdist-hammingr   rÁ  rç  rÄ  r2   r2   r3   Útest_pdist_hamming_random|  rÈ  z#TestPdist.test_pdist_hamming_randomc                 C   rÊ  r"  rê  rÄ  r2   r2   r3   Ú!test_pdist_hamming_random_float32ƒ  rÍ  z+TestPdist.test_pdist_hamming_random_float32c                 C   r½  ©NrD  rI   r#  Útest_hammingrÁ  rç  rÎ  r2   r2   r3   Útest_pdist_hamming_random_nonCŠ  rÈ  z(TestPdist.test_pdist_hamming_random_nonCc                 C   rÊ  r"  ©rW   r¨   rY   rè  r
   rÄ  r2   r2   r3   Útest_pdist_dhamming_random‘  rÍ  z$TestPdist.test_pdist_dhamming_randomc                 C   rÊ  r"  rê  rÄ  r2   r2   r3   Ú"test_pdist_dhamming_random_float32˜  rÍ  z,TestPdist.test_pdist_dhamming_random_float32c                 C   rÊ  r&  r)  rÎ  r2   r2   r3   Útest_pdist_dhamming_random_nonCŸ  rÍ  z)TestPdist.test_pdist_dhamming_random_nonCc                 C   r½  )Nç•dyáý¥=r¿  úpdist-jensenshannonr    rÁ  rÜ  rÄ  r2   r2   r3   Útest_pdist_jensenshannon_random¦  rÈ  z)TestPdist.test_pdist_jensenshannon_randomc                 C   rÕ  )Nç:Œ0âŽyE>r¿  r.  r    rÓ   rH  ©rW   r\   rY   r   r
   r   rÄ  r2   r2   r3   Ú'test_pdist_jensenshannon_random_float32­  ó
   
z1TestPdist.test_pdist_jensenshannon_random_float32c                 C   r½  )Nr-  r¿  r.  Útest_jensenshannonrÁ  rÜ  rÎ  r2   r2   r3   Ú$test_pdist_jensenshannon_random_nonC´  rÈ  z.TestPdist.test_pdist_jensenshannon_random_nonCc                 C   s<   t ƒ rd}nd}td }td }t|dƒ}t|||d� d S )Ng•Ö&è.ñ=gê-�™—q=rÑ  úpdist-jensenshannon-irisr    rÁ   )re   rY   r   r
   rÄ  r2   r2   r3   Útest_pdist_jensenshannon_iris»  s   
z'TestPdist.test_pdist_jensenshannon_irisc                 C   rÕ  )Ng�íµ ÷Æ°>rÑ  r6  r    rÓ   rð  r1  rÄ  r2   r2   r3   Ú%test_pdist_jensenshannon_iris_float32Ç  r3  z/TestPdist.test_pdist_jensenshannon_iris_float32c                 C   r½  )Ng-Cëâ6
?rÑ  r6  r4  rÁ  rÜ  rÎ  r2   r2   r3   Ú"test_pdist_jensenshannon_iris_nonCÎ  rÈ  z,TestPdist.test_pdist_jensenshannon_iris_nonCc                 C   óh   t t g d¢¡t g d¢¡ƒ}t tjg d¢td�tjg d¢td�ƒ}t|dddd� t|dddd� d S ©N©rn   r   rn   rn   r   ©rn   rn   r   rn   rn   rE   ç333333ã?r   ç»½×Ùß|Û=©rI  rÂ   ©Ú	wmatchingrW   rµ   r  r
   ©r  ÚmÚm2r2   r2   r3   Útest_pdist_matching_mtica1Õ  ó   ÿÿz$TestPdist.test_pdist_matching_mtica1c                 C   r:  ©N©rn   r   rn   ©rn   rn   r   rE   çUUUUUUå?r   r?  r@  rA  rC  r2   r2   r3   Útest_pdist_matching_mtica2Þ  rG  z$TestPdist.test_pdist_matching_mtica2c                 C   óx   t t g d¢¡t g d¢¡ƒ}t tjg d¢td�tjg d¢td�ƒ}tdkr*t|ƒ t|dddd� t|dddd� d S )Nr<  r=  rE   rÓ   r   r?  r@  ©ÚwyulerW   rµ   r  r   r  r
   rC  r2   r2   r3   Útest_pdist_yule_mtica1ç  ó   ÿÿz TestPdist.test_pdist_yule_mtica1c                 C   rM  )NrI  rJ  rE   rÓ   r   r?  r@  rN  rC  r2   r2   r3   Útest_pdist_yule_mtica2ñ  rQ  z TestPdist.test_pdist_yule_mtica2c                 C   óx   t t g d¢¡t g d¢¡ƒ}t tjg d¢td�tjg d¢td�ƒ}tdkr*t|ƒ t|dddd� t|dddd� d S )	Nr<  r=  rE   rÓ   gÛ¶mÛ¶mÛ?r   r?  r@  ©ÚwdicerW   rµ   r  r   r  r
   rC  r2   r2   r3   Útest_pdist_dice_mtica1û  rQ  z TestPdist.test_pdist_dice_mtica1c                 C   rS  )	NrI  rJ  rE   rÓ   rd  r   r?  r@  rT  rC  r2   r2   r3   Útest_pdist_dice_mtica2  rQ  z TestPdist.test_pdist_dice_mtica2c                 C   rS  ©	Nr<  r=  rE   rÓ   g      è?r   r?  r@  )r(   rW   rµ   r  r   r  r
   rC  r2   r2   r3   Útest_pdist_sokalsneath_mtica1  rQ  z'TestPdist.test_pdist_sokalsneath_mtica1c                 C   rS  ©	NrI  rJ  rE   rÓ   gš™™™™™é?r   r?  r@  )ÚwsokalsneathrW   rµ   r  r   r  r
   rC  r2   r2   r3   Útest_pdist_sokalsneath_mtica2  rQ  z'TestPdist.test_pdist_sokalsneath_mtica2c                 C   rS  rX  ©ÚwrogerstanimotorW   rµ   r  r   r  r
   rC  r2   r2   r3   Ú test_pdist_rogerstanimoto_mtica1#  rQ  z*TestPdist.test_pdist_rogerstanimoto_mtica1c                 C   rS  rZ  r]  rC  r2   r2   r3   Ú test_pdist_rogerstanimoto_mtica2-  rQ  z*TestPdist.test_pdist_rogerstanimoto_mtica2c                 C   rS  )	Nr<  r=  rE   rÓ   r>  r   r?  r@  ©ÚwrussellraorW   rµ   r  r   r  r
   rC  r2   r2   r3   Útest_pdist_russellrao_mtica17  rQ  z&TestPdist.test_pdist_russellrao_mtica1c                 C   rS  )	NrI  rJ  rE   rÓ   rK  r   r?  r@  ra  rC  r2   r2   r3   Útest_pdist_russellrao_mtica2A  rQ  z&TestPdist.test_pdist_russellrao_mtica2c                 C   sN   t d }tdkrt|j|jƒ d}t|dƒ}t|dƒ}t|||tdkd� d S )NrÑ  rÓ   rD  r   Útest_canberrarH  )rY   r   r  rŠ   rF   rÃ  r
   )r  ÚDrL  r€  r�  r2   r2   r3   Útest_pdist_canberra_matchK  s   

z#TestPdist.test_pdist_canberra_matchc                 C   s2   d}t dgdgfdƒ}d}t|||tdkd� d S )Nr0  r<  r   r   gdß>@1‘Ž?rÓ   rð  )rÃ  r
   r   )r  rL  Úpdist_yrz  r2   r2   r3   Útest_pdist_canberra_ticket_711U  s   z(TestPdist.test_pdist_canberra_ticket_711c                    sZ   G dd„ dƒ‰ ‡ fdd„}t jˆ ƒ gˆ ƒ ggtd�}t||d�}d}t||tdkd	� d S )
Nc                   @   rk  )z6TestPdist.test_pdist_custom_notdouble.<locals>.myclassNrl  r2   r2   r2   r3   rm  _  rn  rm  c                    ro  rp  rr  rt  ru  r2   r3   r:  b  rv  z9TestPdist.test_pdist_custom_notdouble.<locals>._my_metricrE   r  rq  rÓ   rw  )rW   rµ   rx  r   r   r   )r  r:  rH   rh  rz  r2   ru  r3   Útest_pdist_custom_notdouble]  s   z%TestPdist.test_pdist_custom_notdoubler|  c           
      K   sŒ  z$t |fd|i|¤Ž}t |fdt|ƒi|¤Ž}t |fdd| i|¤Ž}W n‹ ty¯ } z|j}	tdkr<t|	jƒ t|ƒ t |	¡� t |fd|i|¤Ž W d   ƒ n1 sVw   Y  t |	¡� t |fdt|ƒi|¤Ž W d   ƒ n1 sww   Y  t |	¡� t |fdd| i|¤Ž W d   ƒ n1 s˜w   Y  W Y d }~d S W Y d }~d S d }~ww t	|||tdkd� t	|||tdkd� d S r}  )
r   r0  rÝ   r~  r   r  rä   r  r/  r
   )
r  rZ  r4   rL  ræ   r€  r�  r‚  ré   rƒ  r2   r2   r3   r„  k  s,   
ÿÿ8ÿ€÷z$TestPdist._check_calling_conventionsc                 C   sØ   | j D ]f}t| d d d…d d d…f }tdkrtd|d|ƒ |dv r'd|vr'q|  ||¡ |dkrFtj| tj¡dd	d
�}| j|||d� q|dkrit 	t 
| tj¡j¡¡}t tj |¡j¡}| j|||d� qd S )Nra  rÓ   r…  r†  >   r   r*   Úmatchingr%   r!   r(   r'   r$   r  r&   r   rn   r‡  rˆ  r"   rŠ  )r  rY   r   r  r„  rW   r�  rŸ   r¨   rŽ  r�  r_  rµ   rY  r�  )r  r4   r‘  rZ  r‰  r‹  r2   r2   r3   Útest_pdist_calling_conventions€  s"   
€ëz(TestPdist.test_pdist_calling_conventionsc                 C   sF  d}t d | jd ft d | jd ft d | jd ft d | jd	 fg}|D ]z}|d
 d d d…d d d…f }zt||d�}W nH ty† } z<|j}tdkrVt|jƒ t|ƒ |d D ]!}	|	|ƒ}
t 	|¡� t|
|d� W d   ƒ n1 svw   Y  qZW Y d }~q&d }~ww |d D ]}	t|	|ƒ|d�}t
|||tdkd� q‹q&d S )Nr|  rJ   r  rN   r  rM   r    rL   r\   r   ra  rÓ   r  rn   rH  )rY   r  r   rÝ   r~  r   r  rä   r  r/  r
   )r  r4   rL  r”  r•  r1  r€  ré   rƒ  r–  r2  r�  r2   r2   r3   Útest_pdist_dtype_equivalenceœ  s:   ý
ÿ€þ€û
þòz&TestPdist.test_pdist_dtype_equivalencec              	   C   sŒ  d}t d d d d…d d d…f }t|jd |jd d  d ƒ}tƒ }|dkr+d|d	< tj|tjd
�}t|ƒ� t||fi |¤Ž}W d   ƒ n1 sKw   Y  t|ƒ� t||fd|i|¤Ž}W d   ƒ n1 sjw   Y  t	|||d� t
||u ƒ tj|d tjd
�}	t t¡�' t|ƒ� t||fd|	i|¤Ž W d   ƒ n1 s¦w   Y  W d   ƒ n1 sµw   Y  tjd| tjd
�d d d… }
t t¡�' t|ƒ� t||fd|
i|¤Ž W d   ƒ n1 séw   Y  W d   ƒ n1 søw   Y  tj|tjd
�}t t¡�1 t|ƒ� t||fd|i|¤Ž W d   ƒ n1 �s&w   Y  W d   ƒ d S W d   ƒ d S 1 �s?w   Y  d S )NrD  rL   ra  rÓ   r   rn   r#   rS  rP  rE   rš  rÁ  rÚ   )rY   r    rŠ   r�  rW   rž  r¨   r  r   r
   r   r  r/  rz   rŸ  )r  r4   rL  rZ  Úout_sizeræ   r¢  rÅ  rÆ  r£  r¤  r¦  r2   r2   r3   Útest_pdist_outµ  sJ    
ÿ
ÿ
ÿ€ÿ
ÿ€ÿ
 ÿÿ$ÿzTestPdist.test_pdist_outc                 C   sä   d}t d d d d…d d d…f }| ¡ }t|jj ƒ t|jjƒ tƒ }|dkr,d|d< t|ƒ� t||fi |¤Ž}W d   ƒ n1 sDw   Y  t|ƒ� t||fi |¤Ž}W d   ƒ n1 saw   Y  t|||t	dkd� d S )	NrD  rL   ra  rÓ   r#   rS  rP  rH  )
rY   r¨  r   r©  rª  r�  r  r   r
   r   )r  r4   rL  rZ  ÚX_copyræ   rM  rN  r2   r2   r3   r­  Ý  s   
ÿ
ÿzTestPdist.test_stridingNrµ  )Xrä   r  r  r  r  r¶  r·  r»  r¼  rÇ  rÉ  rÌ  rÐ  ÚslowrÓ  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¸  rW   r¹  r  r  r  r  r  r  r  r  r  r   r!  r$  r%  r(  r*  r+  r,  r/  r2  r5  r7  r8  r9  rF  rL  rP  rR  rV  rW  rY  r\  r_  r`  rc  rd  rg  ri  rj  r„  rl  rm  ro  r­  r2   r2   r2   r3   rº  Ú  sÌ    	
#


		


	


	










		










	

'rº  c                   @   s‚   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
ejjej d¡ej deeg¡dd„ ƒƒƒZdd„ ZdS )ÚTestSomeDistanceFunctionsc                 C   s,   t  g d¢¡}t  g d¢¡}||fg| _d S )Nr  ©r°   r°   r%  )rW   rµ   Úcases)r  rÅ   r6  r2   r2   r3   r  õ  s   z&TestSomeDistanceFunctions.setup_methodc           	      C   s²   | j D ]4\}}t||dd�}t|dƒ t||dd�}t|dƒ t||dd�}t|dƒ t||dd�}t|d	ƒ qt d
dg¡}t ddg¡}tt||ƒt| d¡| d¡ƒƒ d S )Nrn   rU  r  ç      ø?gqÎazý“@rÓ   g¨ô—›wã@rR  gÙRÏ"ø6@i`  i”  i^  i”  Úuint16)rt  r#   r	   rW   rµ   r   rŸ   )	r  rÅ   r6  Údist1Údist1p5Údist2Údist0p25rj   rÌ   r2   r2   r3   rV  ü  s   



ÿz(TestSomeDistanceFunctions.test_minkowskic                 C   s.   | j D ]\}}t||ƒ}t|t d¡ƒ qd S )Nra  )rt  Ú
weuclideanr	   rW   re  ©r  rÅ   r6  rh  r2   r2   r3   rG    s   
þz(TestSomeDistanceFunctions.test_euclideanc                 C   s(   | j D ]\}}t||ƒ}t|dƒ qd S )Nr%  )rt  Úwsqeuclideanr	   r|  r2   r2   r3   Útest_sqeuclidean  s   
þz*TestSomeDistanceFunctions.test_sqeuclideanc              	   C   s@   | j D ]\}}t||ƒ}t|ddt d¡t d¡   ƒ qd S )Nr°   g      2@é   é   )rt  Úwcosiner	   rW   re  r|  r2   r2   r3   rì    s   
$þz%TestSomeDistanceFunctions.test_cosinec                 C   s@   t tddgddgdd�tƒsJ ‚t tddgddgƒtƒsJ ‚d S )Nrn   F)Úcentered)rs  ÚwcorrelationÚfloatr�  r  r2   r2   r3   Útest_cosine_output_dtype  s     z2TestSomeDistanceFunctions.test_cosine_output_dtypec                 C   s`   t  g d¢¡}t  g d¢¡}| jD ]\}}t||ƒ}t|dt  ||¡t|ƒt|ƒ   ƒ qd S )N)ç      ð¿r   r°   )çUUUUUUõ¿r‡  gUUUUUU@r°   )rW   rµ   rt  rƒ  r	   r^  r   )r  ÚxmÚymrÅ   r6  rh  r2   r2   r3   r  #  s   
(þz*TestSomeDistanceFunctions.test_correlationc                 C   sT   t  g d¢¡}t  g d¢¡}t||ƒ}d|  kr%dt  t j¡j ks(J ‚ J ‚d S )N)%rb  rb  rb  rb  rb  rb  ç       Àrb  rb  rb  rŠ  rŠ  rŠ  rb  rŠ  rb  rŠ  rb  rb  r†  rŠ  rb  r°   rb  rb  rŠ  rb  rb  rŠ  rb  rŠ  rŠ  rŠ  rŠ  rŠ  rŠ  rb  )%r°   r°   r°   r°   r°   r°   r†  r°   r°   r°   r†  r†  r†  r°   r†  r°   r†  r°   r°   rb  r†  r°   rÙ   r°   r°   r†  r°   r°   r†  r°   r†  r†  r†  r†  r†  r†  r°   r   r®  )rW   rµ   r   Úfinfor¨   rL  r|  r2   r2   r3   Útest_correlation_positive*  s   
.z3TestSomeDistanceFunctions.test_correlation_positivezignore:Casting complexÚfuncc                 C   sL   ddg}ddg}t jdd�� |||ƒ W d   ƒ d S 1 sw   Y  d S )Ny      ð?        y       @        y      @        y      @        z"Complex `u` and `v` are deprecated©Úmatch)r  r  )r  r�  rÅ   r6  r2   r2   r3   Útest_corr_dep_complex5  s
   "ÿz/TestSomeDistanceFunctions.test_corr_dep_complexc                 C   sh   t  g d¢¡}t  g d¢¡}t  g d¢g d¢g d¢g¡}| jD ]\}}t|||ƒ}t|t  d¡ƒ qd S )Nr  rs  )rÙ   r°   rb  )r°   rÙ   r°   )rb  r°   rÙ   g      @)rW   rµ   rt  r"   r	   re  )r  rÅ   r6  Úvirh  r2   r2   r3   Útest_mahalanobis>  s   þz*TestSomeDistanceFunctions.test_mahalanobisN)rä   r  r  r  rV  rG  r~  rì  r…  r  rŒ  r  r¶  r·  Úfilterwarningsr¸  r   r   r�  r’  r2   r2   r2   r3   rr  ó  s    
rr  c                   @   sR   e Zd ZejejejejegZ	dd„ Z
dd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestSquareFormc                 C   ó   | j D ]}|  |¡ qd S rq   )Úchecked_dtypesÚcheck_squareform_matrix©r  rF   r2   r2   r3   Útest_squareform_matrixJ  ó   
ÿz%TestSquareForm.test_squareform_matrixc                 C   r•  rq   )r–  Úcheck_squareform_vectorr˜  r2   r2   r3   Útest_squareform_vectorN  rš  z%TestSquareForm.test_squareform_vectorc                 C   s°   t jd|d�}t|ƒ}t|jdƒ t|j|ƒ t jd|d�}t|ƒ}t|jdƒ t|j|ƒ t jddgddgg|d�}t|ƒ}t|jdƒ t|j|ƒ t|t jdg|d�ƒ d S )N)r   r   rE   ©r   ©rn   rn   r   gÍÌÌÌÌÌ@rm   )rW   Úzerosr   r   rŠ   rF   rµ   r   )r  rF   ÚAÚrAr2   r2   r3   r—  R  s   z&TestSquareForm.check_squareform_matrixc                 C   s�   t jd|d�}t|ƒ}t|jdƒ t|j|ƒ t|dggƒ t jdg|d�}t|ƒ}t|jdƒ t|j|ƒ t|t jddgddgg|d�ƒ d S )Nr�  rE   rž  r   gš™™™™™ @)rÓ   rÓ   )rW   rŸ  r   r   rŠ   rF   r   rµ   )r  rF   r±  Úrvr2   r2   r3   r›  c  s   $z&TestSquareForm.check_squareform_vectorc                 C   ó   t ddƒD ]}|  |¡ qd S )NrÓ   ra  )r{   Úcheck_squareform_multi_matrix©r  Únr2   r2   r3   Útest_squareform_multi_matrixp  ó   ÿz+TestSquareForm.test_squareform_multi_matrixc           
      C   sô   t j |d¡}t|ƒ}tt|jƒdƒ t|ƒ}t|ƒ}|j}d}tdkr-t	|j|j|jƒ tt|ƒdƒ tt|jƒdƒ t|d |d ƒ t
d|d ƒD ]+}t
|d |d ƒD ]}	||	krmt|||	f || ƒ |d7 }qWt|||	f dƒ qWqLd S )Né   rn   r   rÚ   rÓ   )rW   r¶   r¹   rÃ  r   ÚlenrŠ   r   r   r  r{   )
r  r¦  rZ  ÚYr   ÚYrÚsÚkr£   Újr2   r2   r3   r¤  t  s(   
ûÿz,TestSquareForm.check_squareform_multi_matrixN)rä   r  r  rW   r¨   r\   Úint32Úint8r  r–  r™  rœ  r—  r›  r§  r¤  r2   r2   r2   r3   r”  G  s    r”  c                   @   ód   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestNumObsYc                 C   s8   t ddƒD ]}tj |d¡}t|ƒ}tt|ƒ|ƒ qd S )NrÓ   r®  r©  )r{   rW   r¶   r¹   rÃ  r   r   )r  r¦  rZ  r«  r2   r2   r3   Útest_num_obs_y_multi_matrixŒ  s
   ýz'TestNumObsY.test_num_obs_y_multi_matrixc                 C   s:   t  t¡� |  d¡ W d   ƒ d S 1 sw   Y  d S ©Nrn   )r  r/  rz   Úcheck_yr  r2   r2   r3   Útest_num_obs_y_1’  s   "ÿzTestNumObsY.test_num_obs_y_1c                 C   ó   t |  d¡ƒ d S ©NrÓ   ©r   r¶  r  r2   r2   r3   Útest_num_obs_y_2˜  s   zTestNumObsY.test_num_obs_y_2c                 C   r¸  )NrÚ   rº  r  r2   r2   r3   Útest_num_obs_y_3�  ó   zTestNumObsY.test_num_obs_y_3c                 C   r¸  ©Nr©  rº  r  r2   r2   r3   Útest_num_obs_y_4   r½  zTestNumObsY.test_num_obs_y_4c                 C   r£  )Nra  é   )r{   Úminit)r  r£   r2   r2   r3   Útest_num_obs_y_5_10£  r¨  zTestNumObsY.test_num_obs_y_5_10c              	   C   ó|   t ƒ }tddƒD ]}| ||d  d ¡ qtddƒD ] }||vr;t t¡� |  |¡ W d   ƒ n1 s6w   Y  qd S ©NrÓ   rÀ  rn   ra  éi   ©Úsetr{   Úaddr  r/  rz   Úbad_y©r  rj   r¦  r£   r2   r2   r3   Útest_num_obs_y_2_100§  s   ÿ€þz TestNumObsY.test_num_obs_y_2_100c                 C   s   t |  |¡ƒ d S rq   rº  r¥  r2   r2   r3   rÁ  ²  r½  zTestNumObsY.minitc                 C   s   t j |¡}t|ƒS rq   )rW   r¶   r¹   r   ©r  r¦  r6  r2   r2   r3   rÉ  µ  s   zTestNumObsY.bad_yc                 C   ó   t |  |¡ƒ|kS rq   )r   Úmake_yr¥  r2   r2   r3   r¶  ¹  r½  zTestNumObsY.check_yc                 C   s   t j ||d  d ¡S ©Nrn   rÓ   ©rW   r¶   r¹   r¥  r2   r2   r3   rÎ  ¼  r\  zTestNumObsY.make_yN)rä   r  r  r´  r·  r»  r¼  r¿  rÂ  rË  rÁ  rÉ  r¶  rÎ  r2   r2   r2   r3   r³  Š  s    r³  c                   @   óL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestNumObsDMc                 C   sV   t ddƒD ]#}tj |d¡}t|ƒ}t|ƒ}tdkr!t|j|jƒ t	t
|ƒ|ƒ qd S )Nrn   r®  r©  rÚ   )r{   rW   r¶   r¹   rÃ  r   r   r  rŠ   r   r   )r  r¦  rZ  r«  r   r2   r2   r3   Útest_num_obs_dm_multi_matrixÂ  s   úz)TestNumObsDM.test_num_obs_dm_multi_matrixc                 C   r¸  )Nr   ©r   Úcheck_Dr  r2   r2   r3   Útest_num_obs_dm_0Ë  ó   zTestNumObsDM.test_num_obs_dm_0c                 C   r¸  rµ  rÔ  r  r2   r2   r3   Útest_num_obs_dm_1Ï  r×  zTestNumObsDM.test_num_obs_dm_1c                 C   r¸  r¹  rÔ  r  r2   r2   r3   Útest_num_obs_dm_2Ó  r½  zTestNumObsDM.test_num_obs_dm_2c                 C   r¸  r¹  rÔ  r  r2   r2   r3   Útest_num_obs_dm_3Ö  r½  zTestNumObsDM.test_num_obs_dm_3c                 C   r¸  r¾  rÔ  r  r2   r2   r3   Útest_num_obs_dm_4Ù  r½  zTestNumObsDM.test_num_obs_dm_4c                 C   rÍ  rq   )r   Úmake_Dr¥  r2   r2   r3   rÕ  Ü  r½  zTestNumObsDM.check_Dc                 C   s   t j ||¡S rq   rÐ  r¥  r2   r2   r3   rÜ  ß  s   zTestNumObsDM.make_DN)rä   r  r  rÓ  rÖ  rØ  rÙ  rÚ  rÛ  rÕ  rÜ  r2   r2   r2   r3   rÒ  À  s    	rÒ  c                 C   ó   t | dd�S ©NT)Úthrow)r   )rf  r2   r2   r3   Úis_valid_dm_throwã  r;  rà  c                   @   st   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestIsValidDMc                 C   óH   t jdt jd�}t t¡� t|ƒ W d   ƒ d S 1 sw   Y  d S )N©ra  rE   ©rW   rŸ  r¨   r  r/  rz   rà  ©r  rf  r2   r2   r3   Ú$test_is_valid_dm_improper_shape_1D_Eé  ó   
"ÿz2TestIsValidDM.test_is_valid_dm_improper_shape_1D_Ec                 C   ó"   t jdt jd�}tt|ƒdƒ d S )Nrã  rE   F©rW   rŸ  r¨   r   r   rå  r2   r2   r3   Ú$test_is_valid_dm_improper_shape_1D_Fî  ó   z2TestIsValidDM.test_is_valid_dm_improper_shape_1D_Fc                 C   râ  ©N©rÚ   rÚ   rÚ   rE   rä  rå  r2   r2   r3   Ú$test_is_valid_dm_improper_shape_3D_Eò  rç  z2TestIsValidDM.test_is_valid_dm_improper_shape_3D_Ec                 C   rè  ©Nrí  rE   Fré  rå  r2   r2   r3   Ú$test_is_valid_dm_improper_shape_3D_F÷  rë  z2TestIsValidDM.test_is_valid_dm_improper_shape_3D_Fc                 C   sh   t j d¡}t|ƒ}tddƒD ]}d|||f< qt t¡� t|ƒ W d   ƒ d S 1 s-w   Y  d S )Nr®  r   ra  rÙ   )	rW   r¶   r¹   r   r{   r  r/  rz   rà  ©r  r6  rf  r£   r2   r2   r3   Ú#test_is_valid_dm_nonzero_diagonal_Eû  s   
"ÿz1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_Ec                 C   sB   t j d¡}t|ƒ}tddƒD ]}d|||f< qtt|ƒdƒ d S )Nr®  r   ra  rÙ   F)rW   r¶   r¹   r   r{   r   r   rñ  r2   r2   r3   Ú#test_is_valid_dm_nonzero_diagonal_F  s
   z1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_Fc                 C   s\   t j d¡}t|ƒ}|d d |d< t t¡� t|ƒ W d   ƒ d S 1 s'w   Y  d S )Nr®  ©rÚ   rn   rn   ©rn   rÚ   )rW   r¶   r¹   r   r  r/  rz   rà  ©r  r6  rf  r2   r2   r3   Útest_is_valid_dm_asymmetric_E
  s   
"ÿz+TestIsValidDM.test_is_valid_dm_asymmetric_Ec                 C   s6   t j d¡}t|ƒ}|d d |d< tt|ƒdƒ d S )Nr®  rô  rn   rõ  F©rW   r¶   r¹   r   r   r   rö  r2   r2   r3   Útest_is_valid_dm_asymmetric_F  s   z+TestIsValidDM.test_is_valid_dm_asymmetric_Fc                 C   rè  )Nrž  rE   Tré  rå  r2   r2   r3   Útest_is_valid_dm_correct_1_by_1  rë  z-TestIsValidDM.test_is_valid_dm_correct_1_by_1c                 C   ó&   t j d¡}t|ƒ}tt|ƒdƒ d S )Nrn   Trø  rö  r2   r2   r3   Útest_is_valid_dm_correct_2_by_2  ó   z-TestIsValidDM.test_is_valid_dm_correct_2_by_2c                 C   rû  ©NrÚ   Trø  rö  r2   r2   r3   Útest_is_valid_dm_correct_3_by_3   rý  z-TestIsValidDM.test_is_valid_dm_correct_3_by_3c                 C   rû  )Né   Trø  rö  r2   r2   r3   Útest_is_valid_dm_correct_4_by_4%  rý  z-TestIsValidDM.test_is_valid_dm_correct_4_by_4c                 C   rû  )Nr®  Trø  rö  r2   r2   r3   Útest_is_valid_dm_correct_5_by_5*  rý  z-TestIsValidDM.test_is_valid_dm_correct_5_by_5N)rä   r  r  ræ  rê  rî  rð  rò  ró  r÷  rù  rú  rü  rÿ  r  r  r2   r2   r2   r3   rá  ç  s    rá  c                 C   rÝ  rÞ  )r   )r6  r2   r2   r3   Úis_valid_y_throw0  r;  r  c                   @   r²  )ÚTestIsValidYc                 C   râ  )N©rÚ   rÚ   rE   ©rW   rŸ  r¨   r  r/  rz   r  ©r  r6  r2   r2   r3   Ú#test_is_valid_y_improper_shape_2D_E9  rç  z0TestIsValidY.test_is_valid_y_improper_shape_2D_Ec                 C   rè  )Nr  rE   F©rW   rŸ  r¨   r   r   r  r2   r2   r3   Ú#test_is_valid_y_improper_shape_2D_F>  rë  z0TestIsValidY.test_is_valid_y_improper_shape_2D_Fc                 C   râ  rì  r  r  r2   r2   r3   Ú#test_is_valid_y_improper_shape_3D_EB  rç  z0TestIsValidY.test_is_valid_y_improper_shape_3D_Ec                 C   rè  rï  r	  r  r2   r2   r3   Ú#test_is_valid_y_improper_shape_3D_FG  rë  z0TestIsValidY.test_is_valid_y_improper_shape_3D_Fc                 C   ó   |   d¡}tt|ƒdƒ d S )NrÓ   T©Úcorrect_n_by_nr   r   r  r2   r2   r3   Útest_is_valid_y_correct_2_by_2K  ó   
z+TestIsValidY.test_is_valid_y_correct_2_by_2c                 C   r  rþ  r  r  r2   r2   r3   Útest_is_valid_y_correct_3_by_3O  r  z+TestIsValidY.test_is_valid_y_correct_3_by_3c                 C   r  )Nr©  Tr  r  r2   r2   r3   Útest_is_valid_y_correct_4_by_4S  r  z+TestIsValidY.test_is_valid_y_correct_4_by_4c                 C   r  )Nra  Tr  r  r2   r2   r3   Útest_is_valid_y_correct_5_by_5W  r  z+TestIsValidY.test_is_valid_y_correct_5_by_5c              	   C   rÃ  rÄ  rÆ  rÊ  r2   r2   r3   Útest_is_valid_y_2_100[  s   ÿ€þz"TestIsValidY.test_is_valid_y_2_100c                 C   s   t j |¡}t|dd�S rÞ  )rW   r¶   r¹   r   rÌ  r2   r2   r3   rÉ  d  s   zTestIsValidY.bad_yc                 C   s   t j ||d  d ¡}|S rÏ  rÐ  rÌ  r2   r2   r3   r  h  s   zTestIsValidY.correct_n_by_nN)rä   r  r  r  r
  r  r  r  r  r  r  r  rÉ  r  r2   r2   r2   r3   r  4  s    	r  rP  )g      $Àg      à¿rb  c                 C   sˆ   t  t¡� tddgddg| ƒ W d   ƒ n1 sw   Y  t  t¡� tddgddg| ddgƒ W d   ƒ d S 1 s=w   Y  d S )Nrn   rÓ   rÚ   r©  )r  r/  rz   r#   rU  r2   r2   r3   Ú
test_bad_pm  s   ÿ"ÿr  c                   C   sB   t  t¡� tg d¢g d¢ƒ W d   ƒ d S 1 sw   Y  d S )N)FFF)r  r/  rz   r(   r2   r2   r2   r3   Útest_sokalsneath_all_falsev  s   "ÿr  c                   C   s4   t tg d¢g d¢ƒdƒ t tg d¢g d¢ƒdƒ d S )N©rn   rÓ   rÚ   ©rÓ   r©  r   rn   ©rn   rn   r   r   ©rn   r   rn   r   rÓ   )r   Ú	wcanberrar2   r2   r2   r3   re  |  s   re  c                   C   s<   t tg d¢g d¢ƒddd� t tg d¢g d¢ƒddd� d S )	Nr  r  çUUUUUUÕ?é   ©Údecimalr  r  rd  )r	   Úwbraycurtisr2   r2   r2   r3   Útest_braycurtis‚  s    r"  c                  C   s  t  g d¢¡} t  g d¢¡}tt| |ƒddd� tt| |ƒt  d¡dd� tjtdd��  t| t j	d d …f |t j	d d …f ƒt  d¡f W d   ƒ n1 sOw   Y  tjtdd�� t| t j	d d …f |t j	d d …f ƒ W d   ƒ n1 syw   Y  tjtdd�� t| d d …t j	f |d d …t j	f ƒ W d   ƒ n1 s£w   Y  t  
d	¡ d
d
¡}t t¡� t||ƒ W d   ƒ n1 sÆw   Y  t t¡� t||ƒ W d   ƒ n1 sàw   Y  t j d¡}| d¡}| d¡}t||ƒ}t||ƒ}t|d
 |dd� d S )N)rn   rn   rn   ©r   r   r   r  r  r  rÚ   úInput vector should be 1-DrŽ  r©  rÓ   iÒ–Ir®  )rW   rµ   r	   r}  r{  re  r  r/  rz   Únewaxisr.  r«   r¶   r·   r¹   )rf  rg  rÅ   Úrsr6  Úd1Úd2r2   r2   r3   Útest_euclideansˆ  s4   2ÿ(ÿ(ÿÿÿ



r)  c                  C   sJ   g d¢} g d¢}t  t¡� t| |ƒ W d   ƒ d S 1 sw   Y  d S )N©r   r   rn   r  ©r  r/  rz   Úwhammingrt  r2   r2   r3   Útest_hamming_unequal_length©  s
   "ÿr-  c                  C   s\   g d¢} g d¢}g d¢}d}t jt|d�� t| ||ƒ W d   ƒ d S 1 s'w   Y  d S )Nr*  r  z/'w' should have the same length as 'u' and 'v'.rŽ  r+  )Úur±  rÎ   rô  r2   r2   r3   Ú"test_hamming_unequal_length_with_w²  s   "ÿr/  c                  C   s<   t jg d¢dd�} t jg d¢dd�}d}tt| |ƒ|ƒ d S )N)ÚeggsÚspamr1  r0  r1  r1  r1  r1  r1  r1  r1  r0  r0  r1  r0  r0  r0  r0  r0  r1  z|S4rE   )r0  r1  r1  r0  r0  r1  r1  r1  r1  r0  r1  r0  r1  r0  r1  r1  r0  r1  r1  r0  gÍÌÌÌÌÌÜ?)rW   rµ   r
   r,  )rj   rÌ   Údesiredr2   r2   r3   Útest_hamming_string_array»  s   
ý
ýr3  c                  C   sv   t  g d¢g d¢g¡} t| ddd d�}t| | ddd d�}t| ddd�}t| | ddd�}t||dd� t||dd� d S )N)
çÁQUUÕT@ç      Y@r4  r5  g      B@g      N@g     €V@g     Àb@g      8@g      H@r#   rn   )r4   rP  rÎ   )r4   rP  rD  rÁ  )rW   rµ   r   r   r
   )Úarr_inÚp0Úc0Úp1Úc1r2   r2   r3   Útest_minkowski_wÉ  s   
þr;  c                  C   s@  g d¢} g d¢}t jt jt jt jfD ]}tt j| |d�t j||d�ƒ}tt  |j	t j
¡ƒ qt jt jt jt jfD ]/}t  |¡j}tdgt j|g|d�ƒ}tt j|g|d�dgƒ}t||ƒ t|t  |¡d ƒ q8t jt jt jt jg}dD ]}tt |ƒrƒ| tt |ƒ¡ qt|D ]}tt j| |d�t j||d�ƒ}t|j	|ƒ q†d S )Nr  )r©  ra  r   rE   r   rÓ   )Úfloat16Úfloat128)rW   r±  Úint16r°  rŸ  r}  Úasarrayr   r¦   rF   ÚfloatingÚuint8rv  Úuint32Úuint64ÚiinfoÚmaxr   r¨   r\   Ú	complex64Ú
complex128Úhasattrr³   Úgetattr)rÅ   r6  rF   ÚdÚumaxr'  r(  Údtypesr2   r2   r3   Útest_sqeuclidean_dtypesØ  s(   

€þrM  c                  C   sž   g d¢} g d¢}dd„ | D ƒ}dd„ |D ƒ}t  ¡ � t| |ƒ}W d   ƒ n1 s*w   Y  t  ¡ � t||ƒ}W d   ƒ n1 sCw   Y  t||ƒ d S )N)TTF)TFTc                 S   ó   g | ]}t |ƒ‘qS r2   ©r    ©ri   rÌ   r2   r2   r3   rk   ü  ó    z&test_sokalmichener.<locals>.<listcomp>c                 S   rN  r2   rO  rP  r2   r2   r3   rk   ý  rQ  )r  r  r'   r   )rP  r¾   rÅ   r6  rw  ry  r2   r2   r3   Útest_sokalmichener÷  s   
ÿ
ÿrR  c            	   	   C   sà   d} d}d}d}d||   || d||     }t |dƒ t ¡ � tddgddgddgd�}W d   ƒ n1 s9w   Y  t ||ƒ g d	¢}g d
¢}dD ] }t ¡ � t t|||gƒdƒ W d   ƒ n1 shw   Y  qMd S )Nrb  gš™™™™™É?r°   rÓ   gXøŸ¡$IÒ?rn   r   ©rÎ   )FFTTTFFTTTTTTFTFFFTT)TTTFFTTTFTTTTTFFFTTT)gš™™™™™©?rQ  r°   g      4@rK  )r	   r  r  r'   )	ÚntfÚnftÚnttÚnffÚexpectedÚactualÚa1Úa2rÎ   r2   r2   r3   Útest_sokalmichener_with_weight  s$    

ÿ

ÿ€ÿr\  c                 C   sž   t  g d¢g d¢g d¢g d¢g¡}| ¡ }t| ƒ� t||| ƒ W d   ƒ n1 s*w   Y  t| ƒ� t|| ƒ W d   ƒ n1 sCw   Y  t||ƒ d S )Nr  r  r!  ©g3333336@gÍÌÌÌÌL7@g333333F@)rW   r?  r¨  r  r   r   r   )r4   r1  r«  r2   r2   r3   Útest_modifies_input  s   
ý
ÿ
ÿr^  c              
   C   s¢  t  g d¢g d¢g d¢g d¢g¡}t t¡� t||| dƒ W d   ƒ n1 s(w   Y  t t¡� t|| dƒ W d   ƒ n1 sCw   Y  dD ]„}|di}|dkrX| d	ksh|d
kr`| dksh|dkri| dkriqJt t¡�& t| ƒ� t||| fi |¤Ž W d   ƒ n1 sˆw   Y  W d   ƒ n1 s—w   Y  t t¡�% t| ƒ� t|| fi |¤Ž W d   ƒ n1 sºw   Y  W d   ƒ n1 sÉw   Y  qJd S )Nr  r  r!  r]  rÙ   )rP  r‰  r‹  Úfoor‰  r&   r‹  r"   rP  r#   )rW   r?  r  r/  rÊ   r   r   r  )r4   r1  r7  ræ   r2   r2   r3   Útest_Xdist_deprecated_args.  s>   
ýÿÿ
ÿ€ÿ
ÿ€ÿ€ôr`  c              
   C   s6  t d d d d…d d d…f }t |jd ¡}|d d d…  |d d d…< | dv r,t d¡ | t| ƒd|  fD ]c}t t¡�# t	| ƒ� t
|||d� W d   ƒ n1 sSw   Y  W d   ƒ n1 sbw   Y  t t¡�$ t	| ƒ� t||||d� W d   ƒ n1 s„w   Y  W d   ƒ n1 s“w   Y  q5d S )	NrL   ra  rÓ   rn   )r&   r"   r    únot applicabler-  rS  )rY   rW   r�   rŠ   r  r  r0  r/  rz   r  r   r   )r4   rZ  rÎ   rD  r2   r2   r3   Útest_Xdist_non_negative_weightsM  s(   

ÿ€ÿ
ÿ€ÿ€ürb  c                  C   s4  g d¢} t | ƒ}t|| ƒ t | tjd�}t|| ƒ t|jtjƒ dg} t | ƒ}t|jdƒ t|| ƒ d} tjt	dd�� t | ƒ W d   ƒ n1 sJw   Y  t 
d¡ ddd¡} tjt	dd�� t | ƒ W d   ƒ n1 sow   Y  ddgd	d
gg} tjt	dd�� t | ƒ W d   ƒ d S 1 s“w   Y  d S )Nr  rE   rn   r$  rŽ  ra  r   rÓ   rÚ   r©  )r   r   rW   r¨   r   rF   ro   r  r/  rz   r.  r«   rt  r2   r2   r3   Útest__validate_vector_  s,   



ÿ
ÿ
"ÿrc  c                  C   sp   t jdtd�} t| d | d ƒ}|dksJ ‚t| dƒ}t|dgƒ t| d d… | d d… dƒ}t|dggƒ d S )N)rÓ   r   rE   r   rb  r*   rn   )rW   r�   r  rO  r   r   r   )rÅ   rJ  r2   r2   r3   Útest_yule_all_samey  s   
rd  c                  C   sJ  t tg d¢g d¢dƒdƒ t tddgddgƒdƒ t tg d¢g d¢ƒdƒ t tddggddggd	d
�ddgƒ t tddggddggdd
�dgƒ t tddggddggd	dd�ddggƒ t tddggddggddd�dggƒ t g d¢g d¢g d¢g¡} t g d¢g d¢g d¢g¡}t t| |d	d
�g d¢ƒ t t| |dd
�g d¢ƒ d S )N)r°   rb  rb  )rb  r°   rb  rÙ   r°   rb  rd  g)>ÎdºÝ?ru  r   r~   rn   gÆüÜÐ”�°?T)r|   Úkeepdims)rn   rÓ   rÚ   r©  )ra  r   é   rb   )é	   r®  é   é   )é   r  r  rÀ  )é   é   é   é   )é   é   é   é   )gº'Y˜ÏÉ?gTÒyCÐ‡Â?g¥F�®w$½?gœ\BôZ¿·?)g;0%7/óÁ?g�‡ƒ)o¤?gkØï‰uª”?)r	   r    rW   rµ   )rj   rÌ   r2   r2   r3   r4  †  sJ   ÿÿÿÿÿÿÿÿ
þ
þÿÿr4  c                  C   sh   t  g d¢¡} t  g d¢¡}t| |ƒ}t| |gdd�}t||ƒ tt  | ¡t  |¡dd�}t||ƒ d S )N)rn   r   r   )rÓ   r   r   r   r  )rW   rµ   r   r   r
   r   rŽ  )Úarr_1Úarr_2rX  rY  r2   r2   r3   Útest_gh_17703£  s   



ÿru  c                 C   st   | dv r	t  d¡ tjdtjd�}|jdd� t| ƒ� ttj	j
| ƒ|||d� W d   ƒ d S 1 s3w   Y  d S )N)r    r"   r&   ra  r®  rE   F)ÚwriterS  )r  r  rW   r.  r¨   Úsetflagsr  rI  ÚscipyÚspatialÚdistance)r4   rÅ   r2   r2   r3   Útest_immutable_input®  s   

"ÿr{  c                   @   r²  )ÚTestJaccardc                 C   r½  ©Nr0  rI   úpdist-jaccardr   rÁ  rç  rÄ  r2   r2   r3   Útest_pdist_jaccard_randomº  rÈ  z%TestJaccard.test_pdist_jaccard_randomc                 C   rÊ  r}  rê  rÄ  r2   r2   r3   Ú!test_pdist_jaccard_random_float32Á  rÍ  z-TestJaccard.test_pdist_jaccard_random_float32c                 C   r½  ©Nr0  rI   r~  Útest_jaccardrÁ  rç  rÎ  r2   r2   r3   Útest_pdist_jaccard_random_nonCÈ  rÈ  z*TestJaccard.test_pdist_jaccard_random_nonCc                 C   rÊ  r}  r)  rÄ  r2   r2   r3   Útest_pdist_djaccard_randomÏ  rÍ  z&TestJaccard.test_pdist_djaccard_randomc                 C   rÊ  r}  rê  rÄ  r2   r2   r3   Ú"test_pdist_djaccard_random_float32Ö  rÍ  z.TestJaccard.test_pdist_djaccard_random_float32c                 C   ó,   d}t t d¡dƒ}tt d¡||d� d S )NrD  ©ra  rÚ   r   r®  rÁ  ©r   rW   rŸ  r
   ©r  rL  r«  r2   r2   r3   Útest_pdist_djaccard_allzerosÝ  ó   z(TestJaccard.test_pdist_djaccard_allzerosc                 C   rÊ  r�  r)  rÎ  r2   r2   r3   Útest_pdist_djaccard_random_nonCâ  rÍ  z+TestJaccard.test_pdist_djaccard_random_nonCc                 C   r†  )NrD  r‡  r‚  r®  rÁ  rˆ  r‰  r2   r2   r3   Ú!test_pdist_djaccard_allzeros_nonCé  r‹  z-TestJaccard.test_pdist_djaccard_allzeros_nonCc                 C   r:  r;  ©ÚwjaccardrW   rµ   r  r
   rC  r2   r2   r3   Útest_pdist_jaccard_mtica1î  ó   ÿÿz%TestJaccard.test_pdist_jaccard_mtica1c                 C   r:  rH  rŽ  rC  r2   r2   r3   Útest_pdist_jaccard_mtica2ö  r‘  z%TestJaccard.test_pdist_jaccard_mtica2c                 C   sp   t  g d¢¡}t  g d¢¡}t  t¡j}tt||ƒd|d� tt|g|gdƒdggƒ tt||gdƒdgƒ d S )N)iöÿÿÿg      @r   )rÓ   éûÿÿÿrÓ   r  rÁ  r   )	rW   rµ   r‹  r„  rL  r
   r   r   r   )r  rÅ   r6  rL  r2   r2   r3   Útest_non_01_inputþ  s   zTestJaccard.test_non_01_inputN)rä   r  r  r  r€  rƒ  r„  r…  rŠ  rŒ  r�  r�  r’  r”  r2   r2   r2   r3   r|  ¸  s    r|  c                   @   rÑ  )ÚTestChebyshevc                 C   r½  )Nr0  r¿  úpdist-chebyshevr   rÁ  rÜ  rÄ  r2   r2   r3   Útest_pdist_chebyshev_random	  rÈ  z)TestChebyshev.test_pdist_chebyshev_randomc                 C   rÕ  )Nr|  r¿  r–  r   rÓ   rH  r1  rÄ  r2   r2   r3   Ú#test_pdist_chebyshev_random_float32	  r3  z1TestChebyshev.test_pdist_chebyshev_random_float32c                 C   r½  )Nr0  r¿  r–  Útest_chebyshevrÁ  rÜ  rÎ  r2   r2   r3   Ú test_pdist_chebyshev_random_nonC	  rÈ  z.TestChebyshev.test_pdist_chebyshev_random_nonCc                 C   r½  )NrX  rÑ  úpdist-chebyshev-irisr   rÁ  rÜ  rÄ  r2   r2   r3   Útest_pdist_chebyshev_iris 	  rÈ  z'TestChebyshev.test_pdist_chebyshev_irisc                 C   rÕ  )NrÀ   rÑ  r›  r   rÓ   rH  r1  rÄ  r2   r2   r3   Ú!test_pdist_chebyshev_iris_float32'	  r3  z/TestChebyshev.test_pdist_chebyshev_iris_float32c                 C   r½  )NrX  rÑ  r›  r™  rÁ  rÜ  rÎ  r2   r2   r3   Útest_pdist_chebyshev_iris_nonC.	  rÈ  z,TestChebyshev.test_pdist_chebyshev_iris_nonCc                 C   óf   g d¢}g d¢}g d¢}t t|||ƒdƒ t t||gd|d�dgƒ t t|g|gd|d�dggƒ d S )Nr  ©r   ra  r©  )r   rn   ra  rÚ   r   rS  ©r   r   r   r   ©r  rÅ   r6  rÎ   r2   r2   r3   Útest_weighted5	  s   "zTestChebyshev.test_weightedc                 C   rŸ  )Nr  r   r#  r   r   rS  r¡  r¢  r2   r2   r3   Útest_zero_weight?	  s   "zTestChebyshev.test_zero_weightN)rä   r  r  r—  r˜  rš  rœ  r�  rž  r£  r¤  r2   r2   r2   r3   r•  		  s    
r•  rq   )	NNFTFFFFN)†r
  Úos.pathrQ   Ú	functoolsr   r   r¯  ÚnumpyrW   râ   Únumpy.linalgr   Únumpy.testingr   r   r   r   r	   r
   r   r   r  Úscipy.spatial.distancerx  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*   Úscipy._lib._utilr+   r,   Úfixturer4   rO   rµ   Ú_tdistÚ_ytdistrY   ra   re   r}   rž   r‘   r’   r¿   Úassert_allclose_forgivingrË   r  r  Ústrr  r]  rK  rè  rÃ  r^  rB  r,  rO  rU  Ú
wcityblockÚ
wchebyshevr�  rƒ  Úwkulczynski1r�  r{  r}  r!  r  r[  Úwsokalmichenerrb  r  rº  rr  r”  r³  rÒ  rà  rá  r  r  r¶  r¸  r  r  re  r"  r)  r-  r/  r3  r;  rM  r·  rR  r\  r^  r`  rb  rc  rd  r4  ru  r{  r|  r•  r2   r2   r2   r3   Ú<module>   sú   "(,\

 ûû

ü0	

ÿ
ûfÿÿ  9      TC6#I9
!		





	Q