
    -i                        S SK Jr  S SKrS SKrS SKJrJrJr  S SK	J
r
  S SKJr  S SKJr  S rS rS	 r\R&                  R)                  S
SS/5      S 5       rS rS r\R&                  R1                  S5      \R&                  R)                  S/ SQ5      S 5       5       r\R&                  R1                  S5      \R&                  R)                  S
SS/5      S 5       5       rS r\R&                  R1                  S5      \R&                  R)                  SSS/5      S 5       5       r\R&                  R1                  S5      \R&                  R)                  S
SS/5      S 5       5       rS rg)    )MockN)assert_allcloseassert_array_almost_equalassert_equal)load_digits)_mds)euclidean_distancesc                     [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [         R                  " SS/SS/S	S
/SS//5      n[        R                  " XSSSS9u  p#[         R                  " SS/SS/SS/SS//5      n[	        X$SS9  g )Nr            r   r      r   r   r   r      r   r   r   r   /$ѿsh|?w/?T㥛 ?Mb?X9vο皙ɿS㥛?r   r   )initn_componentsmax_itern_initgp=
ףgS㥛gT㥛 ?gʡE?gZd;?gx&gʡEݿgL7A`?r   )decimal)nparraymdssmacofr   )simZX_X_trues        R/var/www/html/venv/lib/python3.13/site-packages/sklearn/manifold/tests/test_mds.pytest_smacofr+      s     ((L,lK
LC
66"UENUFOfe_UVA::cAaHDAXX
&	E5>E6?VUOLF a3    c            
         [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [         R                  " SS/SS/S	S
/SS//5      n[        R                  " XSSSSS9u  p#[        R                  " U USSSSSS9u  p$X4:  d   eg )Nr   r   r   r   r   r   r   r   r   r   r   r   r     r   T)r   r   r   r   normalized_stressF)r   r   r   r   r/   metricr!   r"   r#   r$   )r%   r&   r(   stress1stress2s        r*   &test_nonmetric_lower_normalized_stressr4      s     ((L,lK
LC
66"UENUFOfe_UVA!d1PTJA JA r,   c                  j   [        SS9u  p[        R                  R                  SS9nUR	                  [        U 5      SSS9nX   n [        R                  " SS	SSSS
9R                  U 5      nUR                  n[        R                  " SS	SSSS
9R                  U 5      nUR                  nXV:  d   eg )NT)
return_X_y*   )seed   F)sizereplacer   r   )r   r   r   r0   random_stater   )
r   r!   random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_optimizationrI   .   s     $'DA
))

R

(CCFe<J	Agg 
c!f  "//gg 
c!f  "//444r,   r0   TFc           	          [         R                  " SS/SS/SS/SS//5      n[        R                  " SSSSU SS	9R	                  U5      nUR
                  n[        US
SS9  g )Nr   r   r   r   r   gV瞯<r.   r7   )r   r   epsr   r0   r<   r   gư>)atol)r!   r"   r#   rA   rB   rC   r   )r0   r'   rF   stresss       r*   test_mds_recovers_true_datarN   K   sn    
1a&1a&1a&1a&12Agg 
c!f  __FFAD)r,   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [        R                  " [        5         [
        R                  " U SS9  S S S 5        [         R                  " / SQ/ SQ/ SQ/5      n [        R                  " [        5         [
        R                  " U SS9  S S S 5        [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [         R                  " SS	/S
S/SS//5      n[        R                  " [        5         [
        R                  " XSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)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_errorrT   Z   s    
((L,lK
LC	z	"

3q! 
# ((L,=
>C	z	"

3q! 
# ((L,lK
LC
66"UFOfe_EFA	z	"

3q) 
#	" 
#	" 
#	" 
#	"s#   D,D=E,
D:=
E
Ec                      [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [        R                  " SSSSS9nUR	                  U 5        g )	Nr   r   r   r   Fr   precomputed)r0   n_jobsr   dissimilarity)r!   r"   r#   rA   rB   )r%   mds_clfs     r*   test_MDSrZ   o   sA    
((L,lK
LCgg#	G KKr,   zignore::FutureWarningk)g      ?g      ?r   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/5      n[        R                  " USSSS9u  p#[        R                  " X-  SSSS9u  pE[	        X5S	S
9  [	        X$S	S
9  g)z>Test that non-metric MDS normalized stress is scale-invariant.r   r   r   r   Fr   r   )r0   r   r<   gh㈵>)rtolN)r!   r"   r#   r$   r   )r[   r%   X1r2   X2r3   s         r*   test_normed_stressr`   {   s]     ((L,lK
LC**SKKB**QWUQQOKBG40B&r,   c                    [         R                  R                  S5      nUR                  SS5      n[	        U5      n[        [        R                  S9nUR                  SU5        [        R                  " U SUS9nUR                  U5        UR                  S   S	   U :w  d   e[        R                  " X@SUS9  UR                  S   S	   U :w  d   eg )
Nr   r   r   )side_effectz$sklearn.manifold._mds._smacof_singleauto)r0   r/   r<   r   r/   )r!   r=   RandomStaterandnr	   r   r#   _smacof_singlesetattrrA   fit_transform	call_argsr$   )r0   monkeypatchrD   r'   distmockests          r*   test_normalized_stress_autorn      s     ))


"C		!QAq!DC../D>E
''6
LCa>>!01V;;;JJtf3O>>!01V;;;r,   c                      [         R                  " / SQ/ SQ/ SQ/5      n [         R                  " SS/SS/SS	//5      n[        R                  " XS
SS9  g )N)        LXz?LXz?)rq   rp         <)rr   rs   rp   gE/?g8$g?g"?grY؀-?g;
-?gd%?Fr   )r   r0   r   r1   )disr   s     r*   test_isotonic_outofboundsru      sb     ((8;<	
C 88 "45!34!34	
D JJseA6r,   r/   c                    [         R                  " SS/SS/SS/SS//5      n[        U5      n[        R                  " SSU S9R                  U5      nUR                  nUR                  n[        U5      nUR                  5       UR                  5       -
  S-  R                  5       S-  nU (       a:  [         R                  " XvR                  5       S-  R                  5       S-  -  5      n[        XW5        g )Nr   r   r   r   r   r7   )r   r<   r/   )r!   r"   r	   r#   rA   rB   
embedding_rC   ravelsumsqrtr   )r/   r'   DrF   r&   rM   D_mdsstress_Zs           r*   test_returned_stressr~      s    
 	1a&1a&1a&1a&12AAAgg+ 
c!f	  	A__F"E*q0557!;H778(:'?'?'AA'EFGF%r,   c                 
   [         R                  " SS/SS/SS/SS//5      n[        R                  " SSU S9nUR	                  US-  5        UR
                  nUR	                  US-  5        UR
                  n[        X45        g )	Nr   r   r   r   r   r7   )r   r<   r0   d   )r!   r"   r#   rA   rB   n_iter_r   )r0   r'   rF   n_iter1n_iter2s        r*   )test_convergence_does_not_depend_on_scaler      s~    
 	1a&1a&1a&1a&12AggG KKCooGKKCooG"r,   c                     [         R                  " SS/SS/SS/SS//5      n [         R                  " / SQ/ SQ/ SQ/ SQ/5      n[        R                  " [        5         [
        R                  " U5        S S S 5        [        R                  " [        5         [
        R                  " 5       R                  U 5        S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)	Nr   r   r   r   r   r   r   r   )	r!   r"   rQ   warnsFutureWarningr#   r$   rA   rB   )r'   r%   s     r*   test_future_warning_n_initr      s    
1a&1a&1a&1a&12A
((L,lK
LC	m	$

3 
% 
m	$	a 
%	$ 
%	$ 
%	$s   C%C
C
C%)unittest.mockr   numpyr!   rQ   numpy.testingr   r   r   sklearn.datasetsr   sklearn.manifoldr   r#   sklearn.metricsr	   r+   r4   rI   markparametrizerN   rT   rZ   filterwarningsr`   rn   ru   r~   r   r    r,   r*   <module>r      sj      R R ( ( /	4,5: D%=1* 2*** 34m,' - 5' 34D%=1< 2 5< 7* 34,tUm<& = 5&2 34D%=1# 2 5#*r,   