
    Kih&                     d   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  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*                  R2                  S 5       r\R*                  R7                  S5      \R*                  R-                  S/ SQ5      S 5       5       r\R*                  R7                  S5      \R*                  R-                  SSS/5      S 5       5       rS r\R*                  R7                  S5      \R*                  R-                  SSS/5      S 5       5       r\R*                  R7                  S5      \R*                  R-                  SSS/5      S 5       5       r S r!S r"\R*                  R7                  S5      S 5       r#g)    )MockN)assert_allcloseassert_array_almost_equalassert_equal)load_digits	load_iris)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        a/var/www/html/dynamic-report/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   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     %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.   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     $'DA
))

R

(CCFe<J	Agg 
c!f  "//gg 
c!f  "//444r,   rA   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瞯<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    
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_errorrY   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   precomputedr5   )rA   n_jobsr   r4   r   )r!   r"   r#   rF   rG   )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   )r4   r   rB   gh㈵>)rtolN)r!   r"   r#   r$   r   )r_   r%   X1r:   X2r;   s         r*   test_normed_stressrd      s]     ((L,lK
LC**SKKB**QWUQQOKBG40B&r,   r4   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)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
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?)ru   rt         <)rv   rw   rt   gE/?g8$g?g"?grY؀-?g;
-?gd%?Fr   )r   r4   r   )r!   r"   r#   r$   )disr   s     r*   test_isotonic_outofboundsry      sb     ((8;<	
C 88 "45!34!34	
D JJseA6r,   r3   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   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    
 	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   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~    
 	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                  " S	S
9R                  U 5        S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = f)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    
1a&1a&1a&1a&12A
((L,lK
LC	m	$

3 
% 
m	$X""1% 
%	$ 
%	$ 
%	$s   C$C
C
C$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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Nr= f! , (       d  f       GN== f! , (       d  f       G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[   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   
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
 
m+J	K{266q9 
L 
z)H	I;Xa	

#a& 
J	I+ 
K	J 
=	< 
=	< 
J	I
 
L	K 
J	IsH   &G/%&H,&H3%H%9%H6?'I/
G>
H
H"%
H36
I
I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_mdsr   r5   )r   r	   rl   r#   rF   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,   )$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,tUm<& = 5&2 34e}5# 6 5#*&B 34 5r,   