
    rih&                     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?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/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/manifold/tests/test_mds.pytest_smacofr+      s     ((L,lK
LC
66"UENUFOfe_UVA::cAaHDAqXX
&	E5>E6?VUO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     %DAq
a
 CIINN2
		qwwqz1o.A!!d1PTJAw JAw W wwwzQ!^<=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     $'DAq
))

R

(CCFe<J	*Agg 
c!f  "//gg 
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    
1a&1a&1a&1a&12Agg 
c!f  __FFAD)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
LC	z	" "

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

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

3Qq)* *" "" "* *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
LCggG KK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   gh㈵>)rtolN)r!   r"   r#   r$   r   )r_   r%   X1r:   X2r;   s         r*   test_normed_stressrd      sg     ((L,lK
LC**SKKB**QWUQQOKBGW4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
LCa>>!01V;;;JJtFf3O>>!01V;;;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)        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      sd     ((8;<	
C 88 "45!34!34	
D JJseA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    
 	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FH%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    
 	1a&1a&1a&1a&12AggG KKCooGKKCooG'"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    
1a&1a&1a&1a&12A
((L,lK
LC	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   
1a&1a&1a&1a&12A
((L,lK
LC 
m+I	J Om(1EII#NO 
m+;	< =t(1599!<= 
m+;	< >u8A6::1=> 
m+H	I 5{1-11!45
 
m+J	K :{266q9: 
z)H	I ;Xa	

#a& +O O= => >5 5
: : 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    %DAq>D$$Q'K77(D			A	B77!D			AK		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,   