§
    ¢éUgvG  ã                   ó°  — d dl Z d dlZd dlmZ d dlZd dlmZmZm	Z	m
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 d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZm Z  eej!         "                    d
¦  «        gZ#ej!        j$        Z$ ej%        g d¢¦  «         &                    d¦  «        Z' ej%        ddgddgddgddgddgddgddgddgddgddgddgg¦  «        Z( ej%        ddgddgddgg¦  «        Z) ej%        ddgddgddgg¦  «        Z* ej%        g d ¢¦  «        Z+ G d!„ d"¦  «        Z, G d#„ d$¦  «        Z- e$d%¬&¦  «         G d'„ d(¦  «        ¦   «         Z.dS ))é    N)Údeepcopy)Úassert_array_equalÚassert_equalÚassert_Úsuppress_warnings)Úraises)ÚkmeansÚkmeans2Úpy_vqÚvqÚwhitenÚClusterErrorÚ
_krandinit)Ú_vq)Úarray_api_compatible)Úmatrix)ÚSCIPY_ARRAY_APIÚcopyÚcovÚxp_assert_closeÚxp_assert_equalÚskip_xp_backends(�  gš™™™™™Àg¸…ëQ¸ò?ç®Gázú¿ç
×£p=
û?gR¸…ëQ Àg…ëQ¸…@g¸…ëQ¸Àgffffffî?ç333333û¿g)\�Âõ(@çáz®Gáú¿çÃõ(\�Âå?g®GázÀg¸…ëQ¸
@çR¸…ëQÀgffffff@g…ëQ¸…û¿g
×£p=
ç¿ç×£p=
×ÿ¿g¸…ëQ¸@g      Àçq=
×£p@çš™™™™™ÀgHáz®G@g
×£p=
Àg333333@g…ëQ¸ù¿gìQ¸…ëý?ç\�Âõ(\ÿ¿g…ëQ¸@g®GázÀçáz®Gá@g=
×£p=Àç{®Gázô?g      Àçš™™™™™@gìQ¸…ëù¿g      ô?ç\�Âõ(\Àg\�Âõ(\	@ç¸…ëQ¸ò¿g¸…ëQ¸¾?ç=
×£p=ÀgHáz®GÑ¿ç�Âõ(\� Àgš™™™™™á¿r'   gq=
×£põ?g�Âõ(\�Àg¤p=
×£@ç…ëQ¸…Àg¸…ëQ¸Î?g\�Âõ(\û¿ç×£p=
×@gìQ¸…ëÀg)\�Âõ(@g¤p=
×£ Àç…ëQ¸…@g=
×£p=þ¿gö(\�Âõ@g¸…ëQ¸ Àg¤p=
×£Ð?gq=
×£pí¿g…ëQ¸ñ?ç      Àç)\�Âõ(ì?r-   g)\�Âõ( @g=
×£p=Àr#   ç=
×£p= Àg\�Âõ(\@g®GázÀg333333Ó?ç×£p=
×Àg�Âõ(\�Ò¿r&   g®Gáz®	@gffffffÀg®Gáz®û?g¸…ëQ¸Àg®Gázæ?çö(\�Âõü¿r+   gö(\�ÂõÀg®Gáz@gffffffÀçö(\�Âõô?g¸…ëQ¸ú¿ç¸…ëQ¸Àgáz®Gáò¿ç\�Âõ(\@ç\�Âõ(\Àg�Âõ(\�@çš™™™™™ý¿g      @r!   çÃõ(\�Âý?g)\�Âõ(Àg…ëQ¸…@g¤p=
×£Àg=
×£p=þ?çÍÌÌÌÌÌø¿g¤p=
×£ @gÃõ(\�Âõ¿gÃõ(\�Âí?ç®GázÀgìQ¸…ë@g…ëQ¸Àg\�Âõ(\@g¤p=
×£
ÀçìQ¸…ë@ç{®Gáz ÀgÍÌÌÌÌÌì¿ç¤p=
×£ÀgÍÌÌÌÌÌ
@ç¸…ëQ¸Àgffffff@çáz®GáÀgš™™™™™ý?ç
×£p=
û¿çÍÌÌÌÌÌü?g=
×£p=ö¿ç…ëQ¸å?r;   gR¸…ëQØ?ç…ëQ¸…÷¿g)\�Âõ(Ü?g¸…ëQ¸Àg)\�Âõ(@gR¸…ëQÀg…ëQ¸…@r   gìQ¸…ë@ç¤p=
×£ð¿gR¸…ëQØ¿r6   gìQ¸…ë@ç
×£p=
Àg\�Âõ(\ç?r=   g=
×£p=ö?çq=
×£põ¿ç      ü?ç333333ÿ¿çÍÌÌÌÌÌô?r!   ç¸…ëQ¸@r   gHáz®G@g333333Àg×£p=
×@g®Gáz®û¿g)\�Âõ(@r5   g333333ë?r;   g\�Âõ(\ß?gR¸…ëQÀg�Âõ(\� @r/   rH   g×£p=
×	ÀrI   r8   g
×£p=
÷?gìQ¸…ëé¿gš™™™™™ñ?çìQ¸…ëÀg\�Âõ(\@çq=
×£pù¿gq=
×£p@r!   g\�Âõ(\ç¿gö(\�ÂõÀçÍÌÌÌÌÌô¿r<   gš™™™™™É?g)\�Âõ(ÀgìQ¸…ë	@g®Gáz®ÿ¿gš™™™™™ù?g\�Âõ(\Àg…ëQ¸@çffffffÀç      @r-   ç\�Âõ(\û?g=
×£p=
Àg
×£p=
@ç×£p=
×û¿r.   çHáz®GÀg¸…ëQ¸þ?çìQ¸…ëÀg
×£p=
ó?r0   gö(\�Âõð?r   g×£p=
×ã¿rL   çö(\�ÂõØ?g{®Gázü¿gÍÌÌÌÌÌ@gR¸…ëQÀg…ëQ¸…@g…ëQ¸õ¿rA   g
×£p=
Àç®Gáz@gÍÌÌÌÌÌÀr%   gÃõ(\�Âý¿gHáz®G@g®Gáz Àg®Gáz®ó¿ç¤p=
×£ü¿rT   g
×£p=
Àg¤p=
×£À¿g      Àg¸…ëQ¸@rR   gq=
×£pù?rM   g®Gáz®@rQ   g{®Gáz„?g…ëQ¸…Û¿g¤p=
×£À?g\�Âõ(\ÀgHáz®G@g      ü¿gö(\�Âõà¿r?   r   gq=
×£pñ¿g333333Ã?gáz®Gá Àr4   ç{®Gázø¿ç…ëQ¸…ó?çÍÌÌÌÌÌ Àg…ëQ¸…ë¿ç{®GázÀç=
×£p=@g)\�Âõ(Àg¤p=
×£
@gìQ¸…ëñ¿r#   gq=
×£pÀg
×£p=
ó¿r(   gHáz®Gé?ç�Âõ(\�ê¿g
×£p=
ï?g…ëQ¸…	Àg333333÷?rE   r$   g)\�Âõ(Àgáz®Gá@g…ëQ¸ÀgÃõ(\�Â	@ç…ëQ¸…ÿ¿rF   r>   g…ëQ¸…	@r[   g{®Gázø?rK   r7   r5   gffffff@r   g®Gáz®@r/   rN   g�Âõ(\�Àg333333ã¿rB   gHáz®Gõ?rG   gffffffæ?gffffffú¿gR¸…ëQô?g¸…ëQ¸ö¿gq=
×£pñ?ç      Àgö(\�Âõ@r9   g{®Gáz@gÍÌÌÌÌÌÀg®Gáz®ç?gHáz®Gñ¿g¸…ëQ¸ž¿r*   r2   g333333Àr:   gq=
×£pý¿gffffffú?g
×£p=
ÀrN   r)   g×£p=
×@g333333Àg\�Âõ(\@g®Gáz®Àg×£p=
×÷?g\�Âõ(\ó¿rW   g)\�Âõ(Àg
×£p=
@gÍÌÌÌÌÌÀrZ   gffffffÀç=
×£p=@gš™™™™™Àgš™™™™™é?r1   g      @g      Àg®Gáz®@ç¤p=
×£ô¿r:   g®Gáz®Àr    gHáz®Gý¿g®Gáz®ó?g×£p=
×ó¿rC   rY   gö(\�Âõ@g®Gáz
ÀrS   g…ëQ¸…Àg®Gáz@g®GázÀgR¸…ëQ@r   g
×£p=
×?ç�Âõ(\�ö¿g{®Gáz¤?rX   ç      ð?çìQ¸…ëý¿r^   gHáz®GÀg¸…ëQ¸@rR   g®Gázö?r   g)\�Âõ(Ì¿rb   g333333ÿ?gáz®Gáê¿r4   g…ëQ¸…Àg{®Gáz@çR¸…ëQô¿g333333@rU   ç{®Gáz
@gáz®GáÀgÍÌÌÌÌÌ@g
×£p=
÷¿r,   g)\�Âõ( Àg®Gáz®×?r_   g…ëQ¸Õ?r3   g{®Gáz@rP   rc   r\   rW   r9   g{®GázÄ¿g=
×£p=ú¿g¸…ëQ¸î¿rJ   gffffffö?rV   rd   rR   gÍÌÌÌÌÌÜ?g®Gáz®ÀrO   rD   gö(\�Âõø?r   g\�Âõ(\÷?r`   r   r"   rT   gÃõ(\�Âù¿gáz®Gá @©éÈ   é   g      @é   é   rg   é	   é   é   é   é   gÍÌÌÌÌÌ@ç      @g333333@r@   gUUUUUU@gUUUUUU@g      @g      @g      @rF   )r   rl   rg   rg   rg   rg   rl   rg   rl   rl   rl   c                   ó’   — e Zd Zd„ Z eddg¬¦  «        d„ ¦   «         Zd„ Zej         	                    e
d¬¦  «        d	„ ¦   «         Zd
S )Ú
TestWhitenc                 óÔ   — |                      ddgddgddgddgd	d
gg¦  «        }|                      ddgddgddgddgddgg¦  «        }t          t          |¦  «        |d¬¦  «         d S )Ng&cJ^|Y@g´`¹qÄ@g™¹Õ½—	@g}†&?˜Jæ?gU…H~«
@g¨›?gæK=EíŠ@gÞÜF Mpî?g|ÉH“@gH¦à|ú?çìcw&™ï?gb†ÆA|ê?çúÙD=¯Þã?çýâk2×È?ç'µB¿ì?çÅ)Æ;¸"~?çß|¸d=ë?çºÉûz¶õÐ?ç|æºß×Ü?çRêyÔëÝ?çñhãˆµøä>©Úrtol)Úasarrayr   r   )ÚselfÚxpÚdesiredÚobss       úZ/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/cluster/tests/test_vq.pyÚtest_whitenzTestWhiten.test_whitenS   s¥   € Ø—*’*˜z¨:Ð6Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4ð	6ñ 7ô 7ˆð �jŠj˜: zÐ2Ø% zÐ2Ø% zÐ2Ø% zÐ2Ø% zÐ2ð	4ñ 5ô 5ˆõ
 	�˜s™œ W°4Ð8Ñ8Ô8Ð8Ð8Ð8ó    ú	jax.numpyú)jax arrays do not support item assignment)Úreasonsc                 óÔ  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g d¢g¦  «        }t          j        d¬¦  «        5 }t          j        d	¦  «         t	          t          |¦  «        |d
¬¦  «         t          t          |¦  «        d¦  «         t          t          |d         j
        t          ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)ç        ra   gÓüJJîî@)r‹   ra   g° I �1õ?)r‹   ra   gÁ¢KÍXó@)r‹   ra   g¾/²�·ç?)r‹   ra   gˆ@ý€êÕ?)r‹   ra   gÂÀµ´øî?T)ÚrecordÚalwaysr|   r}   rl   éÿÿÿÿ)r   ÚwarningsÚcatch_warningsÚsimplefilterr   r   r   Úlenr   Ú
issubclassÚcategoryÚRuntimeWarning)r€   r�   r‚   rƒ   Úws        r„   Útest_whiten_zero_stdzTestWhiten.test_whiten_zero_stda   sV  € ð —*’*Ð3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ñ 6ô 6ˆð �jŠjÐ.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.ð0ñ 1ô 1ˆõ Ô$¨DÐ1Ñ1Ô1ð 	@°QÝÔ! (Ñ+Ô+Ð+å�F 3™KœK¨°tÐ<Ñ<Ô<Ð<å�˜Q™œ Ñ#Ô#Ð#Ý•J˜q œuœ~­~Ñ>Ô>Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   ÁA>CÃC!Ã$C!c           	      ó´   — |j         |j        |j         fD ]A}|                     d|gddgddgddgdd	gg¦  «        }t          t          t
          |¦  «         ŒBd S ©
Nrs   rt   ru   rv   rw   rx   ry   rz   r{   )ÚnanÚinfr   Úassert_raisesÚ
ValueErrorr   ©r€   r�   Ú	bad_valuerƒ   s       r„   Útest_whiten_not_finitez!TestWhiten.test_whiten_not_finites   s€   € Øœ ¤¨"¬&¨Ð0ð 	3ð 	3ˆIØ—*’*˜z¨9Ð5Ø)¨:Ð6Ø)¨:Ð6Ø)¨:Ð6Ø)¨:Ð6ð	8ñ 9ô 9ˆCõ
 �*¥f¨cÑ2Ô2Ð2Ð2ð	3ð 	3r†   ú)`np.matrix` unsupported in array API mode©Úreasonc           	      óÆ   — t           j        t           j        t           j         fD ];}t          d|gddgddgddgdd	gg¦  «        }t	          t
          t          |¦  «         Œ<d S r™   )Únprš   r›   r   rœ   r�   r   rž   s       r„   Útest_whiten_not_finite_matrixz(TestWhiten.test_whiten_not_finite_matrix|   s~   € õ œ¥¤­"¬&¨Ð0ð 	3ð 	3ˆIÝ˜: yÐ1Ø% zÐ2Ø% zÐ2Ø% zÐ2Ø% zÐ2ð	4ñ 5ô 5ˆCõ
 �*¥f¨cÑ2Ô2Ð2Ð2ð	3ð 	3r†   N)Ú__name__Ú
__module__Ú__qualname__r…   r   r—   r    ÚpytestÚmarkÚskipifr   r¦   © r†   r„   rq   rq   Q   s°   € € € € € ð9ð 9ð 9ð Ð�kØJÐKðMñ Mô Mð@ð @ñMô Mð@ð 3ð 3ð 3ð „[×Ò˜ØJð ñ Lô Lð3ð 3ñLô Lð3ð 3ð 3r†   rq   c                   óÔ  — e Zd Z ed¬¦  «        d„ ¦   «         Zej                             ed¬¦  «        d„ ¦   «         Z	 eddg¬¦  «        d	„ ¦   «         Z
ej                             ed¬¦  «        d
„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z eddg¬¦  «        d„ ¦   «         Z eddg¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         ZdS )ÚTestVqT©Úcpu_onlyc                 ó`  — t          j        t          d         gt          d         gt          d         gg¦  «        }t          |                     t          ¦  «        |                     |¦  «        ¦  «        d         }t          ||                     t          |j        ¬¦  «        d¬¦  «         d S )Nr   rl   rg   ©ÚdtypeF©Úcheck_dtype)r¥   ÚconcatenateÚXr   r   r   ÚLABEL1Úint64©r€   r�   ÚinitcÚlabel1s       r„   Ú
test_py_vqzTestVq.test_py_vqŠ   sŽ   € å”¥ 1¤ ­¨1¬¨µ°1´°Ð7Ñ8Ô8ˆå�r—z’z¥!‘}”} b§j¢j°Ñ&7Ô&7Ñ8Ô8¸Ô;ˆÝ˜ §
¢
­6¸¼ 
Ñ BÔ BØ$)ð	+ñ 	+ô 	+ð 	+ð 	+ð 	+r†   r¡   r¢   c                 ó  — t          j        t          d         gt          d         gt          d         gg¦  «        }t          t	          t          ¦  «        t	          |¦  «        ¦  «        d         }t          |t          ¦  «         d S ©Nr   rl   rg   )r¥   r·   r¸   r   r   r   r¹   r»   s       r„   Útest_py_vq_matrixzTestVq.test_py_vq_matrix’   sb   € õ ”¥ 1¤ ­¨1¬¨µ°1´°Ð7Ñ8Ô8ˆå•v�a‘y”y¥&¨¡-¤-Ñ0Ô0°Ô3ˆÝ˜6¥6Ñ*Ô*Ð*Ð*Ð*r†   z!`_vq` only supports NumPy backend)Únp_onlyr‰   c                 ó¨  — t          j        t          d         gt          d         gt          d         gg¦  «        }t          j        |                     t          ¦  «        |                     |¦  «        ¦  «        \  }}t          |t          ¦  «         t	          |                     t          ¦  «        |                     |¦  «        ¦  «        \  }}d S rÀ   )r¥   r·   r¸   r   r   r   r   r¹   ©r€   r�   r¼   r½   Ú_s        r„   Útest_vqzTestVq.test_vqš   s’   € å”¥ 1¤ ­¨1¬¨µ°1´°Ð7Ñ8Ô8ˆÝ”F˜2Ÿ:š:¥a™=œ=¨"¯*ª*°UÑ*;Ô*;Ñ<Ô<‰	ˆ�Ý˜6¥6Ñ*Ô*Ð*Ý�"—*’*�Q‘-”- §¢¨EÑ!2Ô!2Ñ3Ô3‰ˆˆ1ˆ1ˆ1r†   c                 óx  — t          j        t          d         gt          d         gt          d         gg¦  «        }t          j        t          t          ¦  «        t          |¦  «        ¦  «        \  }}t          |t          ¦  «         t	          t          t          ¦  «        t          |¦  «        ¦  «        \  }}d S rÀ   )r¥   r·   r¸   r   r   r   r   r¹   rÄ   s        r„   Útest_vq_matrixzTestVq.test_vq_matrix¡   s€   € õ ”¥ 1¤ ­¨1¬¨µ°1´°Ð7Ñ8Ô8ˆÝ”F�6¥!™9œ9¥f¨U¡m¤mÑ4Ô4‰	ˆ�Ý˜6¥6Ñ*Ô*Ð*Ý•&�‘)”)�V E™]œ]Ñ+Ô+‰ˆˆ1ˆ1ˆ1r†   c                 óÔ  — t           d d …df         }|d d…         }t          j        ||¦  «        \  }}|                     |¦  «        }|                     |¦  «        }t	          |d d …t
          j        f         |d d …t
          j        f         ¦  «        \  }}t          ||                     ||j        ¬¦  «        d¬¦  «         t          ||                     |¦  «        ¦  «         d S )Nr   rh   r³   Frµ   )	r¸   r   r   r   r   r¥   Únewaxisr   rº   )r€   r�   Údatar¼   ÚaÚbÚtaÚtbs           r„   Ú
test_vq_1dzTestVq.test_vq_1d©   sÑ   € õ ����A�ŒwˆØ�R�a�R”ˆÝŒv�d˜EÑ"Ô"‰ˆˆ1Ø�zŠz˜$ÑÔˆØ—
’
˜5Ñ!Ô!ˆÝ�t˜A˜A˜A�rœz˜MÔ*¨E°!°!°!µR´Z°-Ô,@ÑAÔA‰ˆˆBå˜˜BŸJšJ q°´˜JÑ9Ô9ÀuÐMÑMÔMÐMÝ˜˜BŸJšJ q™MœMÑ*Ô*Ð*Ð*Ð*r†   c                 ó¸   — |                      ddg|j        ¬¦  «        }|                     |j        ¦  «        }t	          t
          t          j        ||¦  «         d S )Nra   g       @r³   )r   Úfloat64ÚastypeÚfloat32rœ   Ú	TypeErrorr   r   )r€   r�   rÌ   rÍ   s       r„   Útest__vq_sametypezTestVq.test__vq_sametype¶   sL   € à�JŠJ˜˜S�z¨¬ˆJÑ4Ô4ˆØ�HŠH�R”ZÑ Ô ˆÝ•i¥¤¨¨AÑ.Ô.Ð.Ð.Ð.r†   c                 ó„   — |                      ddgt          ¬¦  «        }t          t          t          j        ||¦  «         d S )Nrl   rg   r³   )r   Úintrœ   rÕ   r   r   )r€   r�   rÌ   s      r„   Útest__vq_invalid_typezTestVq.test__vq_invalid_type¼   s7   € à�JŠJ˜˜1�v¥SˆJÑ)Ô)ˆÝ•i¥¤¨¨AÑ.Ô.Ð.Ð.Ð.r†   c                 ó˜  — t           j                             dd¦  «        }t           j                             dd¦  «        }t          j        ||¦  «        \  }}t          |                     |¦  «        |                     |¦  «        ¦  «        \  }}t          ||                     |¦  «        d¬¦  «         t          ||                     ||j	        ¬¦  «        d¬¦  «         | 
                    t           j        ¦  «        }| 
                    t           j        ¦  «        }t          j        ||¦  «        \  }}t          |                     |¦  «        |                     |¦  «        ¦  «        \  }}t          ||                     ||j        ¬¦  «        d¬¦  «         t          ||                     ||j	        ¬¦  «        d¬¦  «         d S )Né   rh   r|   r}   r³   Frµ   )r¥   ÚrandomÚrandr   r   r   r   r   r   rº   rÓ   rÔ   rÒ   ©r€   r�   r¸   Ú	code_bookÚcodes0Údis0Úcodes1Údis1s           r„   Útest_vq_large_nfeatzTestVq.test_vq_large_nfeatÁ   s|  € åŒI�NŠN˜2˜rÑ"Ô"ˆÝ”I—N’N 1 bÑ)Ô)ˆ	å”v˜a Ñ+Ô+‰ˆ�ÝØ�JŠJ�q‰MŒM˜2Ÿ:š: iÑ0Ô0ñ
ô 
‰ˆ�õ 	˜˜bŸjšj¨Ñ.Ô.°TÐ:Ñ:Ô:Ð:å˜ §
¢
¨6¸¼ 
Ñ BÔ BÐPUÐVÑVÔVÐVà�HŠH•R”ZÑ Ô ˆØ×$Ò$¥R¤ZÑ0Ô0ˆ	å”v˜a Ñ+Ô+‰ˆ�ÝØ�JŠJ�q‰MŒM˜2Ÿ:š: iÑ0Ô0ñ
ô 
‰ˆ�õ 	˜˜bŸjšj¨°R´Z˜jÑ@Ô@ÀtÐLÑLÔLÐLå˜ §
¢
¨6¸¼ 
Ñ BÔ BÐPUÐVÑVÔVÐVÐVÐVr†   c                 óÖ  — t           j                             dd¦  «        dz  }t           j                             dd¦  «        dz  }t          j        ||¦  «        \  }}t          |                     |¦  «        |                     |¦  «        ¦  «        \  }}t          ||                     |¦  «        d¬¦  «         t          ||                     ||j	        ¬¦  «        d¬	¦  «         d S )
Né
   rk   i@B rg   r|   r}   r³   Frµ   )
r¥   rÜ   rÝ   r   r   r   r   r   r   rº   rÞ   s           r„   Útest_vq_large_featureszTestVq.test_vq_large_featuresÙ   sÊ   € åŒI�NŠN˜2˜qÑ!Ô! GÑ+ˆÝ”I—N’N 1 aÑ(Ô(¨7Ñ2ˆ	å”v˜a Ñ+Ô+‰ˆ�ÝØ�JŠJ�q‰MŒM˜2Ÿ:š: iÑ0Ô0ñ
ô 
‰ˆ�õ 	˜˜bŸjšj¨Ñ.Ô.°TÐ:Ñ:Ô:Ð:å˜ §
¢
¨6¸¼ 
Ñ BÔ BÐPUÐVÑVÔVÐVÐVÐVr†   N)r§   r¨   r©   r   r¾   rª   r«   r¬   r   rÁ   rÆ   rÈ   rÐ   rÖ   rÙ   rä   rç   r­   r†   r„   r¯   r¯   ˆ   sÑ  € € € € € àÐ˜tÐ$Ñ$Ô$ð+ð +ñ %Ô$ð+ð „[×Ò˜ØJð ñ Lô Lð+ð +ñLô Lð+ð Ð˜dÐ-PÐ,QÐRÑRÔRð4ð 4ñ SÔRð4ð „[×Ò˜ØJð ñ Lô Lð,ð ,ñLô Lð,ð Ð˜tÐ$Ñ$Ô$ð
+ð 
+ñ %Ô$ð
+ð Ð˜dÐ-PÐ,QÐRÑRÔRð/ð /ñ SÔRð/ð
 Ð˜dÐ-PÐ,QÐRÑRÔRð/ð /ñ SÔRð/ð Ð˜tÐ$Ñ$Ô$ðWð Wñ %Ô$ðWð. Ð˜tÐ$Ñ$Ô$ð
Wð 
Wñ %Ô$ð
Wð 
Wð 
Wr†   r¯   Tr°   c                   ó   — e Zd Zd„ Zd„ Zej                             ed¬¦  «        d„ ¦   «         Z	d„ Z
d„ Zej                             ed¬¦  «        d„ ¦   «         Zd	„ Zd
„ Zd„ Z eddgd¬¦  «        d„ ¦   «         Zej                             ej        dk    d¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Z eddgd¬¦  «        d„ ¦   «         Z eddgd¬¦  «        d„ ¦   «         Zd„ Z eddgd¬¦  «        d„ ¦   «         ZdS )Ú	TestKMeanc                 ó0  — d}d}t           j                             |¦  «        }t           j                             |¦  «        }dt           j                             ||¦  «        z  d|z  z
  }dt           j                             ||¦  «        z  d|z  z   }t          j        |j        d         |j        d         z   |ft           j        ¦  «        }||d |j        d         …<   |||j        d         d …<   t          |                     |¦  «        d¦  «         d S )Ni,  éd   i'  i N  r   rg   )r¥   rÜ   ÚrandnÚemptyÚshaperÒ   r	   r   )	r€   r�   ÚdÚnÚm1Úm2ÚxÚyrË   s	            r„   Útest_large_featureszTestKMean.test_large_featuresì   sí   € ð ˆØˆåŒY�_Š_˜QÑÔˆÝŒY�_Š_˜QÑÔˆØ•B”I—O’O A qÑ)Ô)Ñ)¨E°B©JÑ6ˆØ•B”I—O’O A qÑ)Ô)Ñ)¨E°B©JÑ6ˆåŒx˜œ œ a¤g¨a¤jÑ0°!Ð4µb´jÑAÔAˆØˆˆ[ˆaŒg�aŒjˆ[ÑØˆˆQŒW�QŒZˆ[ˆ[Ñåˆr�zŠz˜$ÑÔ Ñ#Ô#Ð#Ð#Ð#r†   c                 ó�  — t           j                             d¦  «         t          j        t          d         gt          d         gt          d         gg¦  «        }t          |                     t          ¦  «        |                     |¦  «        d¬¦  «        d         }t          ||                     t          ¦  «        ¦  «         d S ©Ni1Ô  r   rl   rg   ©Úiter)	r¥   rÜ   Úseedr·   r¸   r	   r   r   ÚCODET2©r€   r�   r¼   Úcode1s       r„   Útest_kmeans_simplezTestKMean.test_kmeans_simpleý   s�   € Ý
Œ	�Š�uÑÔÐÝ”¥ 1¤ ­¨1¬¨µ°1´°Ð7Ñ8Ô8ˆÝ�r—z’z¥!‘}”} b§j¢j°Ñ&7Ô&7¸aÐ@Ñ@Ô@ÀÔCˆÝ˜˜rŸzšz­&Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r†   r¡   r¢   c                 óR  — t           j                             d¦  «         t          j        t          d         gt          d         gt          d         gg¦  «        }t          t          t          ¦  «        t          |¦  «        d¬¦  «        d         }t          |t          ¦  «         d S r÷   )	r¥   rÜ   rú   r·   r¸   r	   r   r   rû   rü   s       r„   Útest_kmeans_simple_matrixz#TestKMean.test_kmeans_simple_matrix  s{   € õ 	Œ	�Š�uÑÔÐÝ”¥ 1¤ ­¨1¬¨µ°1´°Ð7Ñ8Ô8ˆÝ•v�a‘y”y¥&¨¡-¤-°aÐ8Ñ8Ô8¸Ô;ˆÝ˜�vÑ&Ô&Ð&Ð&Ð&r†   c                 óx  — |                      t          ¦  «        }|                      ddgddgddgg¦  «        }t          ||¦  «         t          ¦   «         5 }|                     t
          d¦  «         t          ||d¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          t          ||d
¬	¦  «         d S )Ng5âü ý¿g´§ì!{å¿gLÜ¦^ @gÍ›ý`dò²?g€8Ýìî}Àg?�½îkª¿zKOne of the clusters is empty. Re-run kmeans with a different initializationÚwarn)ÚmissingÚraise)	r   ÚTESTDATA_2Dr	   r   ÚfilterÚUserWarningr
   rœ   r   )r€   r�   rË   ÚinitkÚsups        r„   Útest_kmeans_lost_clusterz"TestKMean.test_kmeans_lost_cluster  s  € à�zŠz�+Ñ&Ô&ˆØ—
’
˜Z¨Ð5Ø'¨Ð4Ø(¨+Ð6ð8ñ 9ô 9ˆõ 	ˆt�UÑÔÐÝÑ Ô ð 	1 CØ�JŠJ•{ð2ñ3ô 3ð 3õ �D˜%¨Ð0Ñ0Ô0Ð0ð		1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1õ 	•l¥G¨T°5À'ÐJÑJÔJÐJÐJÐJs   Á.BÂBÂBc                 óŠ  — t           j                             d¦  «         |                     t          j        t
          d         gt
          d         gt
          d         gg¦  «        ¦  «        }t          r|j        gnt           j        t          g}|D ]°}t           |t
          ¦  «         ||¦  «        d¬¦  «        d         }t           |t
          ¦  «         ||¦  «        d¬¦  «        d         }t          ||                     t          ¦  «        ¦  «         t          ||                     t          ¦  «        ¦  «         Œ±d S ©NiNa¼ r   rl   rg   rø   )r¥   rÜ   rú   r   r·   r¸   r   r   r
   r   ÚCODET1rû   )r€   r�   r¼   ÚarraysÚtprý   Úcode2s          r„   Útest_kmeans2_simplezTestKMean.test_kmeans2_simple  s	  € Ý
Œ	�Š�xÑ Ô Ð Ø—
’
�2œ>­A¨a¬D¨6µA°a´D°6½A¸a¼D¸6Ð*BÑCÔCÑDÔDˆÝ!0ÐJ�"”*��µr´zÅ6Ð6JˆØð 	7ð 	7ˆBÝ˜B˜B�q™EœE 2 2 e¡9¤9°1Ð5Ñ5Ô5°aÔ8ˆEÝ˜B˜B�q™EœE 2 2 e¡9¤9°1Ð5Ñ5Ô5°aÔ8ˆEå˜E 2§:¢:­fÑ#5Ô#5Ñ6Ô6Ð6Ý˜E 2§:¢:­fÑ#5Ô#5Ñ6Ô6Ð6Ð6ð	7ð 	7r†   c                 ó  — t           j                             d¦  «         |                     t          j        t
          d         gt
          d         gt
          d         gg¦  «        ¦  «        }t          t          t
          ¦  «        t          |¦  «        d¬¦  «        d         }t          t          t
          ¦  «        t          |¦  «        d¬¦  «        d         }t          |t          ¦  «         t          |t          ¦  «         d S r  )r¥   rÜ   rú   r   r·   r¸   r
   r   r   r  rû   )r€   r�   r¼   rý   r  s        r„   Útest_kmeans2_simple_matrixz$TestKMean.test_kmeans2_simple_matrix&  s¼   € õ 	Œ	�Š�xÑ Ô Ð Ø—
’
�2œ>­A¨a¬D¨6µA°a´D°6½A¸a¼D¸6Ð*BÑCÔCÑDÔDˆÝ��q™	œ	¥6¨%¡=¤=°qÐ9Ñ9Ô9¸!Ô<ˆÝ��q™	œ	¥6¨%¡=¤=°qÐ9Ñ9Ô9¸!Ô<ˆå˜�vÑ&Ô&Ð&Ý˜�vÑ&Ô&Ð&Ð&Ð&r†   c                 óè   — |                      t          ¦  «        }|d d …df         }|d d…         }t          ||¬¦  «        }t          ||d¬¦  «        d          t          ||d¬¦  «        d          d S )Nr   rh   )r�   rl   rø   rg   )r   r  r   r
   )r€   r�   rË   Údata1r¼   Úcodes         r„   Útest_kmeans2_rank1zTestKMean.test_kmeans2_rank11  s}   € Ø�zŠz�+Ñ&Ô&ˆØ�Q�Q�Q˜�T”
ˆà�b�q�b”	ˆÝ�E˜bÐ!Ñ!Ô!ˆÝ��t !Ð$Ñ$Ô$ QÔ'Ð'Ý��t !Ð$Ñ$Ô$ QÔ'Ð'Ð'Ð'r†   c                 óv   — |                      t          ¦  «        }|d d …df         }t          |dd¬¦  «         d S )Nr   rg   rl   rø   )r   r  r
   )r€   r�   rË   r  s       r„   Útest_kmeans2_rank1_2zTestKMean.test_kmeans2_rank1_2:  s?   € Ø�zŠz�+Ñ&Ô&ˆØ�Q�Q�Q˜�T”
ˆÝ��q˜qÐ!Ñ!Ô!Ð!Ð!Ð!r†   c                 óž   — |                      t          ¦  «        }|                     |d¦  «        d d…d d …f         }t          |d¦  «         d S )N©rÛ   rÛ   ræ   rg   )r   r  Úreshaper
   )r€   r�   rË   s      r„   Útest_kmeans2_high_dimzTestKMean.test_kmeans2_high_dim?  sO   € ð �zŠz�+Ñ&Ô&ˆØ�zŠz˜$ Ñ)Ô)¨#¨2¨#¨q¨q¨q¨&Ô1ˆÝ��aÑÔÐÐÐr†   r‡   rˆ   T)r‰   r±   c                 ó
  — t           j                             d¦  «         |                     t          ¦  «        }d}t          ||d¬¦  «         t          |d d …df         |d¬¦  «         t          ||d¬¦  «         t          |d d …df         |d¬¦  «         t          ¦   «         5 }|                     d¬¦  «         t          ||d	¬¦  «         t          |d d …df         |d	¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Ni90  rh   Úpoints©Úminitrl   ú++z%One of the clusters is empty. Re-run.)ÚmessagerÜ   )r¥   rÜ   rú   r   r  r
   r   r  )r€   r�   rË   Úkr	  s        r„   Útest_kmeans2_initzTestKMean.test_kmeans2_initF  sT  € õ 	Œ	�Š�uÑÔÐØ�zŠz�+Ñ&Ô&ˆØˆå��a˜xÐ(Ñ(Ô(Ð(Ý��Q�Q�Q˜�T”
˜A XÐ.Ñ.Ô.Ð.å��a˜tÐ$Ñ$Ô$Ð$Ý��Q�Q�Q˜�T”
˜A TÐ*Ñ*Ô*Ð*õ Ñ Ô ð 	3 CØ�JŠJÐFˆJÑGÔGÐGÝ�D˜! 8Ð,Ñ,Ô,Ð,Ý�D˜˜˜˜A˜”J ¨Ð2Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3s   Â&AC8Ã8C<Ã?C<Úwin32zFails with MemoryError in Wine.c                 ó¨  — |                      t          ¦  «        }|                     |d¦  «        |                     |d¦  «        d d…d d …f         g}t          d¦  «        }|D ]m}t          j                             d¦  «        }t          ||||¦  «        }t          |j	        ¦  «        }t          |j	        ¦  «        }t          ||d¬¦  «         Œnd S )Nre   r  ræ   g    €„.AéÒ  gºI+‡†?)Úatol)r   r  r  rØ   r¥   rÜ   Údefault_rngr   r   ÚTr   )	r€   r�   rË   Údatasr$  ÚrngÚinitÚorig_covÚinit_covs	            r„   Útest_krandinitzTestKMean.test_krandinitZ  sÍ   € ð �zŠz�+Ñ&Ô&ˆØ—’˜D (Ñ+Ô+Ø—’˜D (Ñ+Ô+¨C¨R¨C°°°¨FÔ3ð5ˆå�‰HŒHˆØð 	=ð 	=ˆDÝ”)×'Ò'¨Ñ-Ô-ˆCÝ˜d A s¨BÑ/Ô/ˆDÝ˜4œ6‘{”{ˆHÝ˜4œ6‘{”{ˆHÝ˜H h°VÐ<Ñ<Ô<Ð<Ð<ð	=ð 	=r†   c                 ód   — t          t          t          |                     g ¦  «        d¦  «         d S )Nrg   )rœ   r�   r
   r   ©r€   r�   s     r„   Útest_kmeans2_emptyzTestKMean.test_kmeans2_emptyh  s&   € å•j¥'¨2¯:ª:°b©>¬>¸1Ñ=Ô=Ð=Ð=Ð=r†   c                 ód  — t          t          t          |                     t          ¦  «        d¦  «         t          t          t
          |                     t          ¦  «        d¦  «         t          t          t
          |                     t          ¦  «        |                     g ¦  «        ¦  «         d S )Nr   )rœ   r�   r	   r   r¸   r
   r3  s     r„   Útest_kmeans_0kzTestKMean.test_kmeans_0kl  sl   € å•j¥&¨"¯*ª*µQ©-¬-¸Ñ;Ô;Ð;Ý•j¥'¨2¯:ª:µa©=¬=¸!Ñ<Ô<Ð<Ý•j¥'¨2¯:ª:µa©=¬=¸"¿*º*ÀR¹.¼.ÑIÔIÐIÐIÐIr†   c                 ó4  — |                      g d¢|j        ¬¦  «        }t          |dd¬¦  «        }t          |d         |                      dg|j        ¬¦  «        ¦  «         t          |d         |                      d|j        ¬¦  «        d	         ¦  «         d S )
N)rl   rg   rh   ri   ræ   r³   rl   g €à7yÃAC)Úthreshr   ro   g333333@r­   ©r   rÒ   r	   r   )r€   r�   ró   Úress       r„   Útest_kmeans_large_thresz!TestKMean.test_kmeans_large_thresr  s�   € à�JŠJÐ'Ð'Ð'¨r¬zˆJÑ:Ô:ˆÝ�Q˜ $Ð'Ñ'Ô'ˆÝ˜˜Aœ §
¢
¨B¨4°r´z 
Ñ BÔ BÑCÔCÐCÝ˜˜Aœ §
¢
Ð+=ÀRÄZ 
Ñ PÔ PÐQSÔ TÑUÔUÐUÐUÐUr†   c                 ó  — |                      ddgddgg|j        ¬¦  «        }t          j                             d¦  «         t          |                      t          ¦  «        dd¬	¦  «        \  }}t          ||¦  «         d S )
NgC:úg>ÿ¿g#Ûù~j¼ì?g'1¬:	Àg-²�ï'@r³   é*   rg   r"  r   )r   rÒ   r¥   rÜ   rú   r
   r  r   )r€   r�   Úprev_resr:  rÅ   s        r„   Útest_kmeans2_kpp_low_dimz"TestKMean.test_kmeans2_kpp_low_dimy  s…   € ð
 —:’: ¨UÐ3Ø )¨6Ð2ð4Ø;=¼:ð ñ Gô Gˆå
Œ	�Š�rÑÔÐÝ˜Ÿš¥KÑ0Ô0°!¸4Ð@Ñ@Ô@‰ˆˆQÝ˜˜XÑ&Ô&Ð&Ð&Ð&r†   c           	      ó¾  — d}d}t          j        dt          j        |¦  «        z  dt          j        |¦  «        z  g¦  «        }t           j                             d¦  «         t          j        t           j                             |d         t          j        |¦  «        |¬¦  «        t           j                             |d         t          j        |¦  «        |¬¦  «        g¦  «        }|                     |¦  «        }t          |d	d
¬¦  «        \  }}t          | 
                    |¦  «        | 
                    |                     |¦  «        ¦  «        ¦  «         d S )Nrë   ræ   rk   éûÿÿÿr=  r   )Úsizerl   rg   r"  r   )r¥   ÚvstackÚonesrÜ   rú   Úmultivariate_normalÚeyer   r
   r   Úsign)r€   r�   Ún_dimrB  ÚcentersrË   r:  rÅ   s           r„   Útest_kmeans2_kpp_high_dimz#TestKMean.test_kmeans2_kpp_high_dim„  s  € ð
 ˆØˆÝ”)˜Q¥¤¨¡¤Ñ/Ø¥"¤'¨%¡.¤.Ñ0ð2ñ 3ô 3ˆå
Œ	�Š�rÑÔÐÝŒyÝŒI×)Ò)¨'°!¬*µb´f¸U±m´mÈ$Ð)ÑOÔOÝŒI×)Ò)¨'°!¬*µb´f¸U±m´mÈ$Ð)ÑOÔOð
ñ ô ˆð
 �zŠz˜$ÑÔˆÝ˜˜q¨Ð-Ñ-Ô-‰ˆˆQÝ˜Ÿš ™œ b§g¢g¨b¯jªj¸Ñ.AÔ.AÑ&BÔ&BÑCÔCÐCÐCÐCr†   c                 ó\  — |                      g d¢|j        ¬¦  «        }t          ||                      ddg¦  «        ¦  «        }t          |d         |                      ddg|j        ¬¦  «        ¦  «         t          |d         |                      d	|j        ¬¦  «        d
         ¦  «         d S )N)éýÿÿÿrŽ   r   rl   rl   é   r³   r]   g®Gáz®ï?r   gš™™™™™Ù¿g       @rl   gñ?r­   r9  )r€   r�   rƒ   r:  s       r„   Útest_kmeans_diff_convergencez&TestKMean.test_kmeans_diff_convergence—  sœ   € à�jŠjÐ-Ð-Ð-°R´ZˆjÑ@Ô@ˆÝ�S˜"Ÿ*š* c¨4 [Ñ1Ô1Ñ2Ô2ˆÝ˜˜Aœ §
¢
¨D°2¨;¸b¼j 
Ñ IÔ IÑJÔJÐJÝ˜˜Aœ §
¢
Ð+=ÀRÄZ 
Ñ PÔ PÐQSÔ TÑUÔUÐUÐUÐUr†   c                 óô  — dt           j                             d¦  «        t           j                             d¦  «        g}|D ]µ}t	          |¦  «        }t	          |¦  «        }|                     t          ¦  «        }t          |d|¬¦  «        \  }}t          |d|¬¦  «        \  }	}t          ||	¦  «         dD ]>}
t          |d|
|¬¦  «        \  }}t          |d|
|¬¦  «        \  }	}t          ||	¦  «         Œ?Œ¶d S )Nr(  rg   )rú   )rÜ   r  r"  )r!  rú   )
r¥   rÜ   ÚRandomStater*  r   r   r  r	   r   r
   )r€   r�   Ú	seed_listrú   Úseed1Úseed2rË   Úres1rÅ   Úres2r!  s              r„   Ú#test_kmeans_and_kmeans2_random_seedz-TestKMean.test_kmeans_and_kmeans2_random_seedž  s  € ð •"”)×'Ò'¨Ñ-Ô-­r¬y×/DÒ/DÀTÑ/JÔ/Jð
ˆ	ð ð 	,ð 	,ˆDÝ˜T‘N”NˆEÝ˜T‘N”NˆEØ—:’:�kÑ*Ô*ˆDå˜T 1¨5Ð1Ñ1Ô1‰GˆD�!Ý˜T 1¨5Ð1Ñ1Ô1‰GˆD�!Ý˜D $Ñ'Ô'Ð'à3ð ,ð ,�Ý! $¨°¸UÐCÑCÔC‘��aÝ! $¨°¸UÐCÑCÔC‘��aÝ  dÑ+Ô+Ð+Ð+ð,ð	,ð 	,r†   N)r§   r¨   r©   rõ   rþ   rª   r«   r¬   r   r   r
  r  r  r  r  r  r   r%  ÚsysÚplatformr1  r4  r6  r;  r?  rJ  rN  rV  r­   r†   r„   ré   ré   é   su  € € € € € ð$ð $ð $ð"3ð 3ð 3ð „[×Ò˜ØJð ñ Lô Lð'ð 'ñLô Lð'ðKð Kð Kð 	7ð 	7ð 	7ð „[×Ò˜ØJð ñ Lô Lð'ð 'ñLô Lð'ð(ð (ð (ð"ð "ð "ð
ð ð ð Ð�kØJÐKØ#ð%ñ %ô %ð3ð 3ñ%ô %ð3ð" „[×Ò˜œ¨Ò/Ø@ð ñ Bô Bð
=ð 
=ñBô Bð
=ð>ð >ð >ðJð Jð JðVð Vð Vð Ð�kØJÐKØ#ð%ñ %ô %ð'ð 'ñ%ô %ð'ð Ð�kØJÐKØ#ð%ñ %ô %ðDð Dñ%ô %ðDð Vð Vð Vð Ð�kØJÐKØ#ð%ñ %ô %ð,ð ,ñ%ô %ð,ð ,ð ,r†   ré   )/r�   rW  r   r   Únumpyr¥   Únumpy.testingr   r   r   r   rª   r   rœ   Úscipy.cluster.vqr	   r
   r   r   r   r   r   Úscipy.clusterr   Úscipy.conftestr   Úscipy.sparse._sputilsr   Úscipy._lib._array_apir   r   r   r   r«   ÚusefixturesÚ
pytestmarkr   Úarrayr  r  r¸   r  rû   r¹   rq   r¯   ré   r­   r†   r„   ú<module>rc     sU  ðØ €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð €€€Ø *Ð *Ð *Ð *Ð *Ð *ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8à Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð # F¤K×$;Ò$;Ð<NÑ$OÔ$OÐP€
Ø”;Ô/Ð àˆbŒhð %
ð %
ð %
ñ %ô %÷J Š7�8ÑÔðK ðR €B„Hˆs�Aˆh˜˜A˜  A Ø�!ˆf�q˜!�f˜q !˜f q¨! fØ�!ˆf�q˜!�f˜q !˜f q¨! fð.ñ /ô /€ð 
ˆŒ�F˜FÐ#Ø˜FÐ#Ø˜FÐ#ð%ñ 
&ô 
&€ð 
ˆŒ�F˜E�?Ø˜FÐ#Ø˜FÐ#ð%ñ 
&ô 
&€ð 
ˆŒÐ3Ð3Ð3Ñ	4Ô	4€ð43ð 43ð 43ð 43ð 43ñ 43ô 43ð 43ðn\Wð \Wð \Wð \Wð \Wñ \Wô \Wð \WðB Ð˜4Ð Ñ Ô ðI,ð I,ð I,ð I,ð I,ñ I,ô I,ñ !Ô ðI,ð I,ð I,r†   