§
    rŠtj%  ã                   óÐ  — d dl mZ d dlZd dlZd dlmZmZmZ d dl	m
Z
mZmZ d dlmZ d dlmZ d dlmZ d„ Zd	„ Zd
„ Zej                             dddg¦  «        d„ ¦   «         Zd„ Zej        j        d„ ¦   «         Zej                             d¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             d¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Zd„ Zej                             d¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Z ej                             d¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Z!d„ Z"d„ Z#ej                             dddg¦  «        ej                             d g d!¢¦  «        d"„ ¦   «         ¦   «         Z$dS )#é    )ÚMockN)Úassert_allcloseÚassert_array_almost_equalÚassert_equal)Úload_digitsÚ	load_irisÚ
make_blobs)ÚClassicalMDS)Ú_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/html/CA-Chatbot/venv/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          d¬¦  «        \  } }t          | ¦  «        }t          j                             d¦  «         t          j                             | j        d         df¬¦  «        }t          j        ||dddd¬	¦  «        \  }}t          j        ||ddddd
¬¦  «        \  }}||k    sJ ‚t          j	        |dz  d|dz  z   z  ¦  «        }||k    sJ ‚d S )NT©Ú
return_X_yé*   r   r   )Úsizeéè  r   )r   r   r   r    Únormalized_stressF)r   r   r   r    r4   Úmetric)
r   r   r"   ÚrandomÚseedÚnormalÚshaper$   r%   Úsqrt)r(   r)   r&   r'   Ústress1Ústress2Ústress1_rescaleds          r+   Ú&test_nonmetric_lower_normalized_stressr>      s  € õ  Ð%Ñ%Ô%�D€A€qÝ
˜aÑ
 Ô
 €CÝ„I‡N‚N�2ÑÔÐÝ
Œ	×Ò˜qœw qœz¨1˜oÐÑ.Ô.€Aå”Ø�! !¨d¸1ÐPTðñ ô �J€A€wõ ”ØØØØØØØðñ ô �J€A€wð �WÒÐÐÐõ ”w˜w¨™z¨Q°¸!±©^Ñ<Ñ=Ô=ÐØ˜gÒ%Ð%Ð%Ð%Ð%Ð%r-   c                  ó¦  — t          d¬¦  «        \  } }t          j                             d¬¦  «        }|                     t          | ¦  «        dd¬¦  «        }| |         } t          j        dd	ddd
d¬¦  «                             | ¦  «        }|j	        }t          j        dd	ddd
d¬¦  «                             | ¦  «        }|j	        }||k    sJ ‚d S )NTr/   r1   )r7   éÈ   F)r2   Úreplacer   r   r6   )r   r    r   Ú
metric_mdsr   Úrandom_stater   )
r   r"   r6   Údefault_rngÚchoiceÚlenr$   ÚMDSÚfitÚstress_)r(   r)   ÚrngÚ
ind_subsetÚmds_estÚstress_after_2_iterÚstress_after_3_iters          r+   Útest_nonmetric_mds_optimizationrO   ;   sò   € õ  $Ð'Ñ'Ô'�D€A€qÝ
Œ)×
Ò
 RÐ
Ñ
(Ô
(€CØ—’�C ™FœF¨°e�Ñ<Ô<€JØ	ˆ*Œ€AåŒgØØØØØØðñ ô ÷ 
‚cˆ!�f„fð ð "œ/ÐåŒgØØØØØØðñ ô ÷ 
‚cˆ!�f„fð ð "œ/ÐàÐ!4Ò4Ð4Ð4Ð4Ð4Ð4r-   rB   TFc           	      óÔ   — t          j        ddgddgddgddgg¦  «        }t          j        dddd| dd	¬
¦  «                             |¦  «        }|j        }t          |dd¬¦  «         d S )Nr   r   r   r   r   gVçž¯Ò<r3   r6   r1   )r   r    Úepsr   rB   r   rC   r   g�íµ ÷Æ°>)Úatol)r"   r#   r$   rG   rH   rI   r   )rB   r(   rL   Ústresss       r+   Útest_mds_recovers_true_datarT   Z   s‰   € å
Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝŒgØØØØØØØðñ ô ÷ 
‚cˆ!�f„fð ð Œ_€FÝ�F˜A DÐ)Ñ)Ô)Ð)Ð)Ð)r-   c                  ó¨  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        t          ¦  «        5  t          j        | d¬¦  «         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 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"   r#   ÚpytestÚraisesÚ
ValueErrorr$   r%   )r&   r'   s     r+   Útest_smacof_errorrZ   j   s  € å
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå	Œ•zÑ	"Ô	"ð "ð "ÝŒ
�3˜qÐ!Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ Œ(�L�L�L , , ,°°°Ð=Ñ
>Ô
>€Cå	Œ•zÑ	"Ô	"ð "ð "ÝŒ
�3˜qÐ!Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ Œ(�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!ÂCÃCÃCÄ"EÅEÅEc                  ó¢   — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        ddddd¬	¦  «        }|                     | ¦  «         d S )
Nr   r   r   r   Fr   Úprecomputedr6   )rB   Ún_jobsr    r5   r   )r"   r#   r$   rG   rH   )r&   Úmds_clfs     r+   Útest_MDSr_   �   si   € å
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝŒgØØØØØðñ ô €Gð ‡K‚K�ÑÔÐÐÐr-   zignore::FutureWarningÚ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   )r5   r   rC   gñhãˆµøä>)ÚrtolN)r"   r#   r$   r%   r   )r`   r&   ÚX1r;   ÚX2r<   s         r+   Útest_normed_stressre   �   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-   r5   c                 óÚ  — 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)r5   r4   rC   r   r4   )r"   r6   ÚRandomStateÚrandnr   r   r$   Ú_smacof_singleÚsetattrrG   Úfit_transformÚ	call_argsr%   )r5   ÚmonkeypatchrJ   r(   ÚdistÚmockÚests          r+   Útest_normalized_stress_autors   �   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-   c                  óª   — t          j        g d¢g d¢g d¢g¦  «        } t          j        ddgddgdd	gg¦  «        }t          j        | |d
d¬¦  «         d S )N)ç        ç©LXèz¶û?çªLXèz¶û?)rv   ru   ç      È<)rw   rx   ru   gðúü«E/¶?g8$è¹gé?gž"”œßï?grY‹Ø€-è?g;
ç-ì?gd%�ÌÛ?Fr   )r   r5   r    )r"   r#   r$   r%   )Údisr   s     r+   Útest_isotonic_outofboundsrz   ¯   s‰   € õ Œ(à8Ð8Ð8Ø;Ð;Ð;Ø<Ð<Ð<ð	
ñô €Cõ Œ8à Ð"4Ð5ØÐ!3Ð4ØÐ!3Ð4ð	
ñô €Dõ „Jˆs˜ e°AÐ6Ñ6Ô6Ð6Ð6Ð6r-   r4   c                 ó  — t          j        ddgddgddgddgg¦  «        }t          |¦  «        }t          j        dd| ¬¦  «                             |¦  «        }|j        }|j        }t          |¦  «        }|                     ¦   «         |                     ¦   «         z
  dz   	                    ¦   «         dz  }| rAt          j
        ||                     ¦   «         dz   	                    ¦   «         dz  z  ¦  «        }t          ||¦  «         d S )Nr   r   r   r   r   r1   )r   rC   r4   )r"   r#   r   r$   rG   rH   Ú
embedding_rI   ÚravelÚsumr:   r   )r4   r(   ÚDrL   r'   rS   ÚD_mdsÚstress_Zs           r+   Útest_returned_stressr‚   Ä   s  € õ
 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝ˜AÑÔ€AåŒgØØØ+ðñ ô ÷ 
‚cˆ!�f„fð	 ð 	Ô€AØŒ_€Få Ñ"Ô"€EØ—’‘” §¢¡¤Ñ*¨qÑ0×5Ò5Ñ7Ô7¸!Ñ;€Hàð HÝ”7˜8¨¯ª©¬¸Ñ(:×'?Ò'?Ñ'AÔ'AÀAÑ'EÑFÑGÔGˆå�F˜HÑ%Ô%Ð%Ð%Ð%r-   c                 ó  — t          j        ddgddgddgddgg¦  «        }t          j        dd| ¬¦  «        }|                     |dz  ¦  «         |j        }|                     |dz  ¦  «         |j        }t          ||¦  «         d S )	Nr   r   r   r   r   r1   )r   rC   rB   éd   )r"   r#   r$   rG   rH   Ún_iter_r   )rB   r(   rL   Ún_iter1Ún_iter2s        r+   Ú)test_convergence_does_not_depend_on_scalerˆ   ß   s�   € õ
 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AåŒgØØØðñ ô €Gð ‡K‚K��C‘ÑÔÐØŒo€Gà‡K‚K��C‘ÑÔÐØŒo€Gå�˜'Ñ"Ô"Ð"Ð"Ð"r-   c                  ó*  — t          j        ddgddgddgddgg¦  «        } t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        t          d	¬
¦  «        5  t          j        ddd¬¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  t          j        ddd¬¦  «                             | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  t          j        ddd¬¦  «                             | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  t          j        dd¬¦  «                             | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  t          j        dddd¬¦  «                             | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   r   r   z`dissimilarity` parameter is)Úmatchr\   r6   )Údissimilarityr   r    zUse metric_mdsT)r5   r   r    FzThe default value of `init`Ú	euclidean)r5   r    zprovided both `dissimilarity`Úcosine)r5   r‹   r   r    )
r"   r#   rW   ÚwarnsÚFutureWarningr$   rG   rH   rX   rY   )r(   r&   s     r+   Ú#test_future_warning_init_and_metricr�   ö   sO  € Ý
Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝ
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cõ 
Œ•mÐ+IÐ	JÑ	JÔ	Jð Oð OÝŒ˜m°(À1ÐEÑEÔE×IÒIÈ#ÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ 
Œ•mÐ+;Ð	<Ñ	<Ô	<ð =ð =ÝŒ�t (°1Ð5Ñ5Ô5×9Ò9¸!Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ 
Œ•mÐ+;Ð	<Ñ	<Ô	<ð >ð >ÝŒ�u 8°AÐ6Ñ6Ô6×:Ò:¸1Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >õ 
Œ•mÐ+HÐ	IÑ	IÔ	Ið 5ð 5ÝŒ�{¨1Ð-Ñ-Ô-×1Ò1°!Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ 
Œ•zÐ)HÐ	IÑ	IÔ	Ið ð ÝŒØ¨;¸XÈað	
ñ 	
ô 	
ç
Š#ˆa‰&Œ&ˆ&ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sZ   Á+BÂBÂBÂ9+C0Ã0C4Ã7C4Ä+EÅEÅEÅ3*F)Æ)F-Æ0F-Ç,HÈHÈHc                  ó>  — t          d¬¦  «        \  } }t          ¦   «         }|                     | ¦  «        }t          j        d¬¦  «        }|                     | ¦  «        }t          j        d¬¦  «        }|                     | |¬¦  «        }t          ||¦  «         d S )NTr/   Úclassical_mds)r   r6   )r   r
   rm   r$   rG   r   )r(   r)   ÚcmdsÚZ_classicalÚmds1ÚZ1Úmds2ÚZ2s           r+   Útest_classical_mds_init_to_mdsr™     s—   € Ý Ð%Ñ%Ô%�D€A€qå‰>Œ>€DØ×$Ò$ QÑ'Ô'€KåŒ7˜Ð(Ñ(Ô(€DØ	×	Ò	˜AÑ	Ô	€BåŒ7˜Ð!Ñ!Ô!€DØ	×	Ò	˜A KÐ	Ñ	0Ô	0€Bå�B˜ÑÔÐÐÐr-   r   r6   r’   r   )r   r   r   é
   c                 óª   — t          d¬¦  «        \  }}t          j        | |d¬¦  «        }|                     |¦  «        }|j        d         |k    sJ ‚d S )Nrš   )Ú
n_featuresr   )r   r   r    )r	   r$   rG   rm   r9   )r   r   r(   r)   Úmodelr'   s         r+   Útest_correct_n_componentsrž      s^   € õ  Ð$Ñ$Ô$�D€A€qåŒG˜¨LÀÐCÑCÔC€EØ×Ò˜AÑÔ€AàŒ7�1Œ:˜Ò%Ð%Ð%Ð%Ð%Ð%r-   )%Úunittest.mockr   Únumpyr"   rW   Únumpy.testingr   r   r   Úsklearn.datasetsr   r   r	   Úsklearn.manifoldr
   r   r$   Úsklearn.metricsr   r,   r>   rO   ÚmarkÚparametrizerT   rZ   Úthread_unsafer_   Úfilterwarningsre   rs   rz   r‚   rˆ   r�   r™   rž   © r-   r+   ú<module>rª      sò  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rà ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (Ø /Ð /Ð /Ð /Ð /Ð /ð	4ð 	4ð 	4ð&ð &ð &ðD5ð 5ð 5ð> „×Ò˜¨¨e }Ñ5Ô5ð*ð *ñ 6Ô5ð*ð*ð *ð *ð. „Ôð	ð 	ñ Ôð	ð „×ÒÐ3Ñ4Ô4Ø„×Ò˜˜m˜m˜mÑ,Ô,ð'ð 'ñ -Ô,ñ 5Ô4ð'ð „×ÒÐ3Ñ4Ô4Ø„×Ò˜ D¨% =Ñ1Ô1ð<ð <ñ 2Ô1ñ 5Ô4ð<ð 7ð 7ð 7ð* „×ÒÐ3Ñ4Ô4Ø„×ÒÐ,¨t°U¨mÑ<Ô<ð&ð &ñ =Ô<ñ 5Ô4ð&ð2 „×ÒÐ3Ñ4Ô4Ø„×Ò˜¨¨e }Ñ5Ô5ð#ð #ñ 6Ô5ñ 5Ô4ð#ð*ð ð ð6ð ð ð „×Ò˜ (¨OÐ!<Ñ=Ô=Ø„×Ò˜¨¨¨Ñ7Ô7ð&ð &ñ 8Ô7ñ >Ô=ð&ð &ð &r-   