§
    ¥˜ºh…  ã                   óF  — 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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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   Úauto)ÚinitÚn_componentsÚmax_iterÚn_initÚnormalized_stressg¤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        úg/var/www/html/services/rag-service/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ÝŒ:Ø�! !¨a¸ÈVðñ ô �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 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 ¦  «         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   ©r   r    ÚpytestÚraisesÚ
ValueErrorr!   r"   )r#   r$   s     r(   Útest_smacof_errorr1      s0  € å
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå	Œ•zÑ	"Ô	"ð 2ð 2ÝŒ
�3¨&Ð1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ Œ(�L�L�L , , ,°°°Ð=Ñ
>Ô
>€Cå	Œ•zÑ	"Ô	"ð 2ð 2ÝŒ
�3¨&Ð1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå
Œ�6˜6Ð" U¨F O°f¸e°_ÐEÑFÔF€AÝ	Œ•zÑ	"Ô	"ð Dð DÝŒ
�3˜Q q¸FÐCÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð D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 S )
Nr	   r   r   r   Fr   Úprecomputedr   )ÚmetricÚn_jobsÚdissimilarityr   )r   r    r!   ÚMDSÚfit)r#   Úmds_clfs     r(   Útest_MDSr:   .   sc   € Ý
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝŒgØ˜Q¨mÈvðñ ô €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d¬	¦  «        \  }}t          j        | |z  d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
   r   )r4   r   r   Úrandom_stategñhãˆµøä>)ÚrtolN)r   r    r!   r"   r   )r;   r#   ÚX1Ústress1ÚX2Ústress2s         r(   Útest_normed_stressrC   6   s¯   € õ Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€Cå”*Ø�E¨V¸aÈaðñ ô �K€Bˆõ ”*Ø	ˆC‰˜°À!ÐRSðñ ô �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)r4   r   Nr-   )Úmsgr#   s     r(   Útest_normalize_metric_warningrH   F   sÁ   € ð
 /€CÝ
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð =ð =ÝŒ
�3˜t°tÐ<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ¾A#Á#A'Á*A'r4   TFc                 ó˜  — d}t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        | ¬¦  «        }t	          j        t          |¬¦  «        5  t          j        || ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz4The default value of `normalized_stress` will changer	   r   r   r   )r4   rE   )	r   r    r!   r7   r.   ÚwarnsÚFutureWarningr"   r8   )r4   rG   r#   Úests       r(   Ú%test_normalized_stress_default_changerM   Q   sH  € à
@€CÝ
Œ(�L�L�L , , ,°°°¸l¸l¸lÐKÑ
LÔ
L€CÝ
Œ'˜Ð
 Ñ
 Ô
 €CÝ	Œ•m¨3Ð	/Ñ	/Ô	/ð 'ð 'ÝŒ
�3˜vÐ&Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'å	Œ•m¨3Ð	/Ñ	/Ô	/ð ð Ø�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA6Á6A:Á=A:ÂB?Â?CÃC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_singler   )r4   r   r=   r   r   )r   ÚrandomÚRandomStateÚrandnr   r   r!   Ú_smacof_singleÚsetattrr7   Úfit_transformÚ	call_argsr"   )r4   ÚmonkeypatchÚrngr%   ÚdistÚmockrL   s          r(   Útest_normalized_stress_autor[   \   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)   r1   r:   ÚmarkÚparametrizerC   rH   rM   r[   © r*   r(   ú<module>rd      sG  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dà (Ð (Ð (Ð (Ð (Ð (Ø /Ð /Ð /Ð /Ð /Ð /ð4ð 4ð 4ðDð Dð Dð*ð ð ð „×Ò˜˜m˜m˜mÑ,Ô,ð'ð 'ñ -Ô,ð'ð=ð =ð =ð „×Ò˜ D¨% =Ñ1Ô1ðð ñ 2Ô1ðð „×Ò˜ D¨% =Ñ1Ô1ð<ð <ñ 2Ô1ð<ð <ð <r*   