Ë
    uwjh&  ã                   ód  — 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 d dlmZ d dlmZ d dlmZ d„ Zd	„ Zd
„ Zej*                  j-                  dddg«      d„ «       Zd„ Zej*                  j2                  d„ «       Zej*                  j7                  d«      ej*                  j-                  dg d¢«      d„ «       «       Zej*                  j7                  d«      ej*                  j-                  dddg«      d„ «       «       Zd„ Zej*                  j7                  d«      ej*                  j-                  dddg«      d„ «       «       Zej*                  j7                  d«      ej*                  j-                  dddg«      d„ «       «       Z d„ Z!d„ Z"ej*                  j7                  d«      d„ «       Z#y)é    )ÚMockN)Úassert_allcloseÚassert_array_almost_equalÚassert_equal)Úload_digitsÚ	load_iris)Ú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¬«       y )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        úd/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/sklearn/manifold/tests/test_mds.pyÚtest_smacofr+      s–   € ô �(‰(’L¢,²ºlÐKÓ
L€CÜ
�‰�6˜6Ð" U¨E N°U¸F°OÀfÈeÀ_ÐUÓV€AÜ�:‰:�c °¸AÀaÔH�D€A€qÜ�X‰XØ
�&Ð	˜E 5˜>¨E°6¨?¸VÀU¸OÐLó€Fô ˜a °Ö3ó    c            	      ó¬  — t        d¬«      \  } }t        | «      }t        j                  j	                  d«       t        j                  j                  | j                  d   df¬«      }t        j                  ||dddd¬	«      \  }}t        j                  ||ddddd
¬«      \  }}||kD  sJ ‚t        j                  |dz  d|dz  z   z  «      }||kD  sJ ‚y )NT©Ú
return_X_yé*   r   r   )Úsizeéè  r   )r   r   r   r   Únormalized_stressF)r   r   r   r   r3   Ú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�I‡N�N�2ÔÜ
�	‰	×Ñ˜qŸw™w q™z¨1˜oÐÓ.€Aä—‘Ø�! !¨d¸1ÐPTô�J€A€wô —‘ØØØØØØØô�J€A€wð �WÒÐÐô —w‘w˜w¨™z¨Q°¸!±©^Ñ<Ó=ÐØ˜gÒ%Ð%Ñ%r,   c                  óŒ  — t        d¬«      \  } }t        j                  j                  d¬«      }|j	                  t        | «      dd¬«      }| |   } t        j                  dd	ddd
d¬«      j                  | «      }|j                  }t        j                  dd	ddd
d¬«      j                  | «      }|j                  }||kD  sJ ‚y )NTr.   r0   )r6   éÈ   F)r1   Úreplacer   r   r5   )r   r   r   Ú
metric_mdsr   Úrandom_stater   )
r   r!   r5   Ú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_optimizationrN   ;   sÍ   € ô  $Ô'�D€A€qÜ
�)‰)×
Ñ
 RÐ
Ó
(€CØ—‘œC ›F¨°e�Ó<€JØ	ˆ*‰€Aä�g‰gØØØØØØô÷ 
�cˆ!ƒfð ð "Ÿ/™/Ðä�g‰gØØØØØØô÷ 
�cˆ!ƒfð ð "Ÿ/™/ÐàÐ!4Ò4Ð4Ñ4r,   rA   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	                  |«      }|j
                  }t        |dd¬«       y )Nr   r   r   r   r   gVçž¯Ò<r2   r5   r0   )r   r   Úepsr   rA   r   rB   r   g�íµ ÷Æ°>)Úatol)r!   r"   r#   rF   rG   rH   r   )rA   r'   rK   Ústresss       r*   Útest_mds_recovers_true_datarS   Z   sq   € ä
�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ó2€AÜ�g‰gØØØØØØØô÷ 
�cˆ!ƒ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 «       t        j                  g d¢g d¢g d¢g«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       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 «       y # 1 sw Y   ŒÚxY w# 1 sw Y   Œ�xY w# 1 sw Y   y xY w)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_errorrY   j   sè   € ä
�(‰(’L¢,²ºlÐKÓ
L€Cä	�‰”zÕ	"Ü�
‰
�3˜qÕ!÷ 
#ô �(‰(’L¢,²Ð=Ó
>€Cä	�‰”zÕ	"Ü�
‰
�3˜qÕ!÷ 
#ô �(‰(’L¢,²ºlÐKÓ
L€Cä
�‰�6˜6Ð" U¨F O°f¸e°_ÐEÓF€AÜ	�‰”zÕ	"Ü�
‰
�3˜Q qÕ)÷ 
#Ð	"÷ 
#Ð	"ú÷ 
#Ð	"ú÷ 
#Ð	"ús#   »D,ÂD8Ä
EÄ,D5Ä8EÅEc                  óœ   — t        j                  g d¢g d¢g d¢g d¢g«      } t        j                  ddddd¬	«      }|j	                  | «       y )
Nr   r   r   r   Fr   Úprecomputedr5   )rA   Ún_jobsr   r4   r   )r!   r"   r#   rF   rG   )r%   Úmds_clfs     r*   Útest_MDSr^   �   sD   € ä
�(‰(’L¢,²ºlÐKÓ
L€CÜ�g‰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	¬
«       y)z>Test that non-metric MDS normalized stress is scale-invariant.r   r   r   r   Fr   r   )r4   r   rB   gñhãˆµøä>)ÚrtolN)r!   r"   r#   r$   r   )r_   r%   ÚX1r:   ÚX2r;   s         r*   Útest_normed_stressrd   �   sg   € ô �(‰(’L¢,²ºlÐKÓ
L€Cä—*‘*˜S¨¸ÈÔK�K€BˆÜ—*‘*˜Q ™W¨U¸QÈQÔO�K€Bˆä�G˜W¨4Õ0Ü�B˜ Ö&r,   r4   c                 ó´  — t         j                  j                  d«      }|j                  dd«      }t	        |«      }t        t        j                  ¬«      }|j                  d|«       t        j                  | d|¬«      }|j                  |«       |j                  d   d	   | k7  sJ ‚t        j                  || d|¬«       |j                  d   d	   | k7  sJ ‚y )
Nr   r   r   )Úside_effectz$sklearn.manifold._mds._smacof_singleÚauto)r4   r3   rB   r   r3   )r!   r5   ÚRandomStateÚrandnr   r   r#   Ú_smacof_singleÚsetattrrF   Úfit_transformÚ	call_argsr$   )r4   ÚmonkeypatchrI   r'   ÚdistÚmockÚests          r*   Útest_normalized_stress_autorr   �   s¾   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�!�Q‹€AÜ˜qÓ!€DäœC×.Ñ.Ô/€DØ×ÑÐ>ÀÔEä
�'‰'˜°6ÈÔ
L€CØ×Ñ�aÔØ�>‰>˜!ÑÐ0Ñ1°VÒ;Ð;Ð;ä‡J�Jˆt˜F°fÈ3Õ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¬«       y )N)ç        ç©LXèz¶û?çªLXèz¶û?)ru   rt   ç      È<)rv   rw   rt   gðúü«E/¶?g8$è¹gé?gž"”œßï?grY‹Ø€-è?g;
ç-ì?gd%�ÌÛ?Fr   )r   r4   r   )r!   r"   r#   r$   )Údisr   s     r*   Útest_isotonic_outofboundsry   ¯   sd   € ô �(‰(â8Ú;Ú<ð	
ó€Cô �8‰8à Ð"4Ð5ØÐ!3Ð4ØÐ!3Ð4ð	
ó€Dô ‡J�Jˆs˜ e°AÖ6r,   r3   c                 óê  — t        j                  ddgddgddgddgg«      }t        |«      }t        j                  dd| ¬«      j                  |«      }|j                  }|j                  }t        |«      }|j                  «       |j                  «       z
  dz  j                  «       dz  }| r:t        j                  ||j                  «       dz  j                  «       dz  z  «      }t        ||«       y )Nr   r   r   r   r   r0   )r   rB   r3   )r!   r"   r   r#   rF   rG   Ú
embedding_rH   ÚravelÚsumr9   r   )r3   r'   ÚDrK   r&   rR   ÚD_mdsÚstress_Zs           r*   Útest_returned_stressr�   Ä   sÜ   € ô
 	�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ó2€AÜ˜AÓ€Aä�g‰gØØØ+ô÷ 
�cˆ!ƒfð	 ð 	×Ñ€AØ�_‰_€Fä Ó"€EØ—‘“ §¡£Ñ*¨qÑ0×5Ñ5Ó7¸!Ñ;€HáÜ—7‘7˜8¨¯©«¸Ñ(:×'?Ñ'?Ó'AÀAÑ'EÑFÓGˆä�F˜HÕ%r,   c                 ó  — t        j                  ddgddgddgddgg«      }t        j                  dd| ¬«      }|j	                  |dz  «       |j
                  }|j	                  |dz  «       |j
                  }t        ||«       y )	Nr   r   r   r   r   r0   )r   rB   rA   éd   )r!   r"   r#   rF   rG   Ún_iter_r   )rA   r'   rK   Ún_iter1Ún_iter2s        r*   Ú)test_convergence_does_not_depend_on_scaler‡   ß   s€   € ô
 	�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ó2€Aä�g‰gØØØô€Gð ‡K�K��C‘ÔØ�o‰o€Gà‡K�K��C‘ÔØ�o‰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        «      5  t        j                  |«       d d d «       t        j                  t        «      5  t        j                  d	¬
«      j                  | «       d d d «       y # 1 sw Y   ŒQxY w# 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   r5   ©r   )	r!   r"   rV   ÚwarnsÚFutureWarningr#   r$   rF   rG   ©r'   r%   s     r*   Útest_future_warning_n_initr�   ö   s›   € Ü
�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ó2€AÜ
�(‰(’L¢,²ºlÐKÓ
L€Cä	�‰”mÕ	$Ü�
‰
�3Œ÷ 
%ô 
�‰”mÕ	$Ü�‰�XÔ×"Ñ" 1Ô%÷ 
%Ð	$÷ 
%Ð	$ú÷ 
%Ð	$ús   ÁCÂ&CÃCÃC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¬«      j                  |«       d d d «       t        j                  t        d¬
«      5  t        j                  ddd¬«      j                  | «       d d d «       t        j                  t        d¬
«      5  t        j                  ddd¬«      j                  | «       d d d «       t        j                  t        d¬
«      5  t        j                  dd¬«      j                  | «       d d d «       t        j                  t        d¬
«      5  t        j                  dd¬«      j                  | «       d d d «       t        j                  t        d¬
«      5  t        j                  dddd¬«      j                  | «       d d d «       y # 1 sw Y   �Œ�xY w# 1 sw Y   �ŒCxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÇxY w# 1 sw Y   Œ‰xY w# 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   z`dissimilarity` parameter is)Úmatchr[   r5   )Údissimilarityr   r   zUse metric_mdsT)r4   r   r   FzThe default value of `init`Ú	euclidean)r4   r   zThe default value of `n_init`)r4   r   zprovided both `dissimilarity`Úcosine)r4   r�   r   r   )
r!   r"   rV   rŠ   r‹   r#   rF   rG   rW   rX   rŒ   s     r*   Ú#test_future_warning_init_and_metricr“     s¦  € Ü
�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ó2€AÜ
�(‰(’L¢,²ºlÐKÓ
L€Cô 
�‰”mÐ+IÖ	JÜ�‰˜m°(À1ÔE×IÑIÈ#ÔN÷ 
Kô 
�‰”mÐ+;Ö	<Ü�‰�t (°1Ô5×9Ñ9¸!Ô<÷ 
=ô 
�‰”mÐ+;Ö	<Ü�‰�u 8°AÔ6×:Ñ:¸1Ô=÷ 
=ô 
�‰”mÐ+HÖ	IÜ�‰�{¨1Ô-×1Ñ1°!Ô4÷ 
Jô
 
�‰”mÐ+JÖ	KÜ�‰�{¨Ô2×6Ñ6°qÔ9÷ 
Lô 
�‰”zÐ)HÖ	IÜ�‰Ø¨;¸XÈaô	
ç
‰#ˆaŒ&÷ 
JÐ	I÷+ 
KÑ	Jú÷ 
=Ñ	<ú÷ 
=Ñ	<ú÷ 
JÐ	Iú÷
 
LÐ	Kú÷ 
JÐ	IúsH   Á(HÂ)(HÃ4(HÄ?'H,Æ	'H8Ç)IÈHÈHÈH)È,H5È8IÉIc                  ó  — t        d¬«      \  } }t        «       }|j                  | «      }t        j                  d¬«      }|j                  | «      }t        j                  d¬«      }|j                  | |¬«      }t        ||«       y )NTr.   Úclassical_mdsr‰   r5   )r   r	   rl   r#   rF   r   )r'   r(   ÚcmdsÚZ_classicalÚmds1ÚZ1Úmds2ÚZ2s           r*   Útest_classical_mds_init_to_mdsrœ   $  sr   € ä Ô%�D€A€qä‹>€DØ×$Ñ$ QÓ'€Kä�7‰7˜Ô(€DØ	×	Ñ	˜AÓ	€Bä�7‰7˜Ô!€DØ	×	Ñ	˜A KÐ	Ó	0€Bä�B˜Õr,   )$Úunittest.mockr   Únumpyr!   rV   Únumpy.testingr   r   r   Úsklearn.datasetsr   r   Úsklearn.manifoldr	   r
   r#   Úsklearn.metricsr   r+   r=   rN   ÚmarkÚparametrizerS   rY   Úthread_unsafer^   Úfilterwarningsrd   rr   ry   r�   r‡   r�   r“   rœ   © r,   r*   Ú<module>r¨      s±  ðÝ ã Û ß RÑ Rç 3Ý )Ý (Ý /ò	4ò&òD5ð> ‡�×Ñ˜¨¨e }Ó5ñ*ó 6ð*ò*ð. ‡�×Ññ	ó ð	ð ‡�×ÑÐ3Ó4Ø‡�×Ñ˜šmÓ,ñ'ó -ó 5ð'ð ‡�×ÑÐ3Ó4Ø‡�×Ñ˜ D¨% =Ó1ñ<ó 2ó 5ð<ò 7ð* ‡�×ÑÐ3Ó4Ø‡�×ÑÐ,¨t°U¨mÓ<ñ&ó =ó 5ð&ð2 ‡�×ÑÐ3Ó4Ø‡�×Ñ˜¨¨e }Ó5ñ#ó 6ó 5ð#ò*&òðB ‡�×ÑÐ3Ó4ñó 5ñr,   