§
    ¨éUgã  ã                   óú   — d dl mZ d dlZd dlZd dlmZmZ d dlm	Z
 d dlmZ d„ Zd„ Zd„ Zej                             d	g d
¢¦  «        d„ ¦   «         Zd„ Zej                             dddg¦  «        d„ ¦   «         ZdS )é    )ÚMockN)Úassert_allcloseÚassert_array_almost_equal)Ú_mds)Úeuclidean_distancesc                  ó"  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        ddgddgd	d
gddgg¦  «        }t          j        | |ddd¬¦  «        \  }}t          j        ddgddgddgddgg¦  «        }t	          ||d¬¦  «         d S )N©r   é   é   é   ©r
   r   é   r   ©r   r   r   é   ©r   r   r   r   ç /Ý$Ñ¿çsh‘í|?á¿gw¾Ÿ/ÝÜ?gTã¥›Ä Ð?çü©ñÒMb�?çX9´ÈvÎ¿çš™™™™™É¿çøSã¥›Äà?r   r   )ÚinitÚn_componentsÚmax_iterÚn_initg¤p=
×£ö¿gøSã¥›ÄÀgTã¥›Ä ú?gƒÀÊ¡E¶ñ?g¬Zd;ßÏ?gôýÔxé&±¿gÁÊ¡E¶óÝ¿gL7‰A`åö?r   )Údecimal)ÚnpÚarrayÚmdsÚsmacofr   )ÚsimÚZÚXÚ_ÚX_trues        ú^/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/manifold/tests/test_mds.pyÚtest_smacofr'      s¾   € õ Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝ
Œ�6˜6Ð" U¨E N°U¸F°OÀfÈeÀ_ÐUÑVÔV€AÝŒ:�c °¸AÀaÐHÑHÔH�D€A€qÝŒXØ
�&Ð	˜E 5˜>¨E°6¨?¸VÀU¸OÐLñô €Fõ ˜a °Ð3Ñ3Ô3Ð3Ð3Ð3ó    c                  ó   — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        t          ¦  «        5  t          j        | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢g d¢g d¢g¦  «        } t          j        t          ¦  «        5  t          j        | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        ddgdd	gd
dgg¦  «        }t          j        t          ¦  «        5  t          j        | |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   r
   é	   r   r   r   r   r	   r   r   r   r   r   r   r   )r   r   ©r   r   ÚpytestÚraisesÚ
ValueErrorr   r    )r!   r"   s     r&   Útest_smacof_errorr/      s
  € å
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå	Œ•zÑ	"Ô	"ð ð ÝŒ
�3‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Œ(�L�L�L , , ,°°°Ð=Ñ
>Ô
>€Cå	Œ•zÑ	"Ô	"ð ð ÝŒ
�3‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå
Œ�6˜6Ð" U¨F O°f¸e°_ÐEÑFÔF€AÝ	Œ•zÑ	"Ô	"ð *ð *ÝŒ
�3˜Q qÐ)Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s5   ºAÁAÁ"AÂB=Â=CÃCÄEÅEÅ
Ec                  óž   — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        ddd¬¦  «        }|                     | ¦  «         d S )	Nr	   r   r   r   Fr   Úprecomputed)ÚmetricÚn_jobsÚdissimilarity)r   r   r   ÚMDSÚfit)r!   Úmds_clfs     r&   Útest_MDSr8   ,   sX   € Ý
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝŒg˜U¨1¸MÐJÑJÔJ€GØ‡K‚K�ÑÔÐÐÐr(   Úk)g      à?g      ø?r   c                 ó   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        |ddd¬¦  «        \  }}t          j        | |z  ddd¬¦  «        \  }}t	          ||d	¬
¦  «         t	          ||d	¬
¦  «         dS )z>Test that non-metric MDS normalized stress is scale-invariant.r	   r   r   r   Fr
   r   )r2   r   Úrandom_stategñhãˆµøä>)ÚrtolN)r   r   r   r    r   )r9   r!   ÚX1Ústress1ÚX2Ústress2s         r&   Útest_normed_stressrA   2   s˜   € õ Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå”*˜S¨¸ÈÐKÑKÔK�K€BˆÝ”*˜Q ™W¨U¸QÈQÐOÑOÔO�K€Bˆå�G˜W¨4Ð0Ñ0Ô0Ð0Ý�B˜ Ð&Ñ&Ô&Ð&Ð&Ð&r(   c                  óà   — d} t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        t          | ¬¦  «        5  t          j        |dd¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z^
    Test that a UserWarning is emitted when using normalized stress with
    metric-MDS.
    z"Normalized stress is not supportedr	   r   r   r   )ÚmatchT)r2   Únormalized_stressNr+   )Úmsgr!   s     r&   Útest_normalize_metric_warningrF   >   sÁ   € ð
 /€CÝ
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð =ð =ÝŒ
�3˜t°tÐ<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ¾A#Á#A'Á*A'r2   TFc                 óÚ  — t           j                             d¦  «        }|                     dd¦  «        }t	          |¦  «        }t          t          j        ¬¦  «        }|                     d|¦  «         t          j	        | d|¬¦  «        }| 
                    |¦  «         |j        d         d	         | k    sJ ‚t          j        || d|¬¦  «         |j        d         d	         | k    sJ ‚d S )
Nr   r   r   )Úside_effectz$sklearn.manifold._mds._smacof_singleÚauto)r2   rD   r;   r   rD   )r   ÚrandomÚRandomStateÚrandnr   r   r   Ú_smacof_singleÚsetattrr5   Úfit_transformÚ	call_argsr    )r2   ÚmonkeypatchÚrngr#   ÚdistÚmockÚests          r&   Útest_normalized_stress_autorV   I   sä   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ€AÝ˜qÑ!Ô!€Då�CÔ.Ð/Ñ/Ô/€DØ×ÒÐ>ÀÑEÔEÐEå
Œ'˜°6ÈÐ
LÑ
LÔ
L€CØ×Ò�aÑÔÐØŒ>˜!ÔÐ0Ô1°VÒ;Ð;Ð;Ð;å„Jˆt˜F°fÈ3ÐOÑOÔOÐOØŒ>˜!ÔÐ0Ô1°VÒ;Ð;Ð;Ð;Ð;Ð;r(   )Úunittest.mockr   Únumpyr   r,   Únumpy.testingr   r   Úsklearn.manifoldr   r   Úsklearn.metricsr   r'   r/   r8   ÚmarkÚparametrizerA   rF   rV   © r(   r&   ú<module>r_      s  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dà (Ð (Ð (Ð (Ð (Ð (Ø /Ð /Ð /Ð /Ð /Ð /ð	4ð 	4ð 	4ð*ð *ð *ð*ð ð ð „×Ò˜˜m˜m˜mÑ,Ô,ð'ð 'ñ -Ô,ð'ð=ð =ð =ð „×Ò˜ D¨% =Ñ1Ô1ð<ð <ñ 2Ô1ð<ð <ð <r(   