
    Mpj%                        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
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\R,                  R4                  S 5       r\R,                  R9                  S5      \R,                  R/                  S/ SQ5      S 5       5       r\R,                  R9                  S5      \R,                  R/                  SSS/5      S 5       5       rS r\R,                  R9                  S5      \R,                  R/                  SSS/5      S 5       5       r \R,                  R9                  S5      \R,                  R/                  SSS/5      S 5       5       r!S r"S r#\R,                  R/                  SSS/5      \R,                  R/                  S / S!Q5      S" 5       5       r$g)#    )MockN)assert_allcloseassert_array_almost_equalassert_equal)load_digits	load_iris
make_blobs)ClassicalMDS)_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|?gw/?gT㥛 ?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        [/var/www/html/pdf-tiff/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            
         [        SS9u  p[        U 5      n[        R                  R	                  S5        [        R                  R                  U R                  S   S4S9n[        R                  " X#SSSSS	9u  p[        R                  " UUSSSSS
S9u  pXE:  d   e[        R                  " US-  SUS-  -   -  5      nXe:  d   eg )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     %DA
a
 CIINN2
		qwwqz1o.A!d1PTJA JA  wwwzQ!^<=%%%r-   c            	      n   [        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S9R                  U 5      nUR                  n[        R                  " SS	SSS
SS9R                  U 5      nUR                  nXV:  d   eg )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     $'DA
))

R

(CCFe<J	Agg 
c!f  "//gg 
c!f  "//444r-   rB   TFc           
          [         R                  " SS/SS/SS/SS//5      n[        R                  " SSSSU SS	S
9R	                  U5      nUR
                  n[        USSS9  g )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   sq    
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_errorrZ   j   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S	9nUR	                  U 5        g )
Nr   r   r   r   Fr   precomputedr6   )rB   n_jobsr    r5   r   )r"   r#   r$   rG   rH   )r&   mds_clfs     r+   test_MDSr_      sD    
((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   )r5   r   rC   gh㈵>)rtolN)r"   r#   r$   r%   r   )r`   r&   X1r;   X2r<   s         r+   test_normed_stressre      s]     ((L,lK
LC**SKKB**QWUQQOKBG40B&r-   r5   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)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
''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?)rv   ru         <)rw   rx   ru   gE/?g8$g?g"?grY؀-?g;
-?gd%?Fr   )r   r5   r    )r"   r#   r$   r%   )disr   s     r+   test_isotonic_outofboundsrz      sb     ((8;<	
C 88 "45!34!34	
D JJseA6r-   r4   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   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    
 	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   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~    
 	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                  " [        S	S
9   [
        R                  " SSSS9R                  U5        S S S 5        [        R                  " [        SS
9   [
        R                  " SSSS9R                  U 5        S S S 5        [        R                  " [        SS
9   [
        R                  " SSSS9R                  U 5        S S S 5        [        R                  " [        SS
9   [
        R                  " SSS9R                  U 5        S S S 5        [        R                  " [        SS
9   [
        R                  " SSSSS9R                  U 5        S S S 5        g ! , (       d  f       GN,= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)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      sl   
1a&1a&1a&1a&12A
((L,lK
LC 
m+I	Jm(1EII#N 
K 
m+;	<t(1599!< 
= 
m+;	<u8A6::1= 
= 
m+H	I{1-11!4 
J 
z)H	I;Xa	

#a& 
J	I! 
K	J 
=	< 
=	< 
J	I 
J	Is<   &F)%&F;,&G3%G9'G.)
F8;
G	
G
G+.
G<c                      [        SS9u  p[        5       nUR                  U 5      n[        R                  " SS9nUR                  U 5      n[        R                  " SS9nUR                  XS9n[        XW5        g )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     sl    %DA>D$$Q'K77(D			A	B77!D			A		0BBr-   r   r6   r   r   )r   r   r   
   c                     [        SS9u  p#[        R                  " XSS9nUR                  U5      nUR                  S   U:X  d   eg )Nr   )
n_featuresr   )r   r   r    )r	   r$   rG   rm   r9   )r   r   r(   r)   modelr'   s         r+   test_correct_n_componentsr      sF     $DAGGCEAA771:%%%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 ? ? ) ( /	4&D5> e}5* 6**. 	 	 34m,' - 5' 34D%=1< 2 5< 7* 34,tUm<& = 5&2 34e}5# 6 5#*6 (O!<=7& 8 >&r-   