
    /Цi                     h    S SK rS SKrS SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S rS rS	 rS
 rg)    N)assert_allclose)	load_iris)PCA)ClassicalMDS)euclidean_distancesc                  |   [        SS9u  p[        SSS9n[        SS9nUR                  U 5      nUR                  U 5      n[	        S5       H.  nUSU4   S:  d  M  USU4   S:  d  M  US S 2U4==   S-  ss'   M0     [        XE5        [        [        R                  " UR                  5      UR                  5        g )	NT
return_X_y   	euclideann_componentsmetric)r   r   )
r   r   r   fit_transformranger   npsqrteigenvalues_singular_values_)X_cmdspcaZ1Z2comps          h/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sklearn/manifold/tests/test_classical_mds.py$test_classical_mds_equivalent_to_pcar      s    %DAQ{;D
1
C			A	B			1	B aag;?r!T'{Qq$wK2K  BBGGD--.0D0DE    c                      [        SS9u  p[        SSS9nUR                  U 5      n[        SSS9nUR                  [        U 5      5      n[	        X45        g )NTr	   r   r   r   precomputed)r   r   r   r   r   )r   r   r   r   r   s        r   3test_classical_mds_equivalent_on_data_and_distancesr#      sT    %DAQ{;D			A	BQ}=D			/2	3BBr    c                     [         R                  " / SQ/ SQ/ SQ/5      n [        R                  " [        SS9   [        SS9R                  U 5        S S S 5        [         R                  " / SQ/ SQ/5      n [        R                  " [        SS9   [        SS9R                  U 5        S S S 5        g ! , (       d  f       Ne= f! , (       d  f       g = f)	N)r      r   )         )         zArray must be symmetric)matchr"   )r   z&array must be 2-dimensional and square)r   arraypytestraises
ValueErrorr   fit)dissims    r   test_classical_mds_wrong_inputsr3   *   s    XXy)Y78F	z)B	CM*..v6 
D XXy),-F	z)Q	RM*..v6 
S	R 
D	C
 
S	Rs   B1C1
B?
Cc                     [        SS9u  p[        SSS9nUR                  U 5      n[        SSSS0S9nUR                  U 5      n[        X45        [        SSSS	0S9nUR                  U 5      n[        R
                  " X55      (       a   eg )
NTr	   r   r   r   	minkowskip)r   r   metric_paramsr%   )r   r   r   r   r   allclose)r   r   r   r   r   Z3s         r    test_classical_mds_metric_paramsr:   6   s    %DAQ{;D			A	BQ{3PQ(SD			A	BBQ{3PQ(SD			A	B{{2"""""r    )numpyr   r.   numpy.testingr   sklearn.datasetsr   sklearn.decompositionr   sklearn.manifoldr   sklearn.metricsr   r   r#   r3   r:    r    r   <module>rB      s/      ) & % ) /F&		7#r    