
    0Ph                         d dl mZ d dlZd dlZd dlmZmZ d dlm	Z
 d dlmZ d Zd Zd Zej                            d	g d
          d             Zd Zej                            dddg          d             ZdS )    )MockN)assert_allcloseassert_array_almost_equal)_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           d S )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/test/jupyter/venv/lib/python3.11/site-packages/sklearn/manifold/tests/test_mds.pytest_smacofr'      s     (LLL,,,lllK
L
LC
66"UENUFOfe_UVVA:cAaHHHDAqX
&	E5>E6?VUOL F a333333    c                     t          j        g dg dg dg dg          } t          j        t                    5  t          j        |            d d d            n# 1 swxY w Y   t          j        g dg dg dg          } t          j        t                    5  t          j        |            d d d            n# 1 swxY w Y   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            d S # 1 swxY w Y   d S )N)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_errorr/      s
   
(LLL,,,lllK
L
LC	z	"	"  
3               (LLL,,,=
>
>C	z	"	"  
3               (LLL,,,lllK
L
LC
66"UFOfe_EFFA	z	"	" * *
3Qq))))* * * * * * * * * * * * * * * * * *s5   AA"AB==CCEE
Ec                      t          j        g dg dg dg dg          } t          j        ddd          }|                    |            d S )	Nr	   r   r   r   Fr   precomputed)metricn_jobsdissimilarity)r   r   r   MDSfit)r!   mds_clfs     r&   test_MDSr8   ,   sX    
(LLL,,,lllK
L
LCgU1MJJJGKKr(   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	
           dS )z>Test that non-metric MDS normalized stress is scale-invariant.r	   r   r   r   Fr
   r   )r2   r   random_stategh㈵>)rtolN)r   r   r   r    r   )r9   r!   X1stress1X2stress2s         r&   test_normed_stressrA   2   s     (LLL,,,lllK
L
LC*SKKKKB*QWUQQOOOKBGW40000B&&&&&&r(   c                      d} t          j        g dg dg dg dg          }t          j        t          |           5  t          j        |dd           d	d	d	           d	S # 1 swxY w Y   d	S )
z^
    Test that a UserWarning is emitted when using normalized stress with
    metric-MDS.
    z"Normalized stress is not supportedr	   r   r   r   )matchT)r2   normalized_stressNr+   )msgr!   s     r&   test_normalize_metric_warningrF   >   s    
 /C
(LLL,,,lllK
L
LC	z	-	-	- = =
3tt<<<<= = = = = = = = = = = = = = = = = =s   A##A'*A'r2   TFc                    t           j                            d          }|                    dd          }t	          |          }t          t          j                  }|                    d|           t          j	        | d|          }|
                    |           |j        d         d	         | k    sJ t          j        || d|           |j        d         d	         | k    sJ d S )
Nr   r   r   )side_effectz$sklearn.manifold._mds._smacof_singleauto)r2   rD   r;   r   rD   )r   randomRandomStaterandnr   r   r   _smacof_singlesetattrr5   fit_transform	call_argsr    )r2   monkeypatchrngr#   distmockests          r&   test_normalized_stress_autorV   I   s    
)


"
"C		!QAq!!DC.///D>EEE
'6
L
L
LCa>!01V;;;;JtFf3OOOO>!01V;;;;;;r(   )unittest.mockr   numpyr   r,   numpy.testingr   r   sklearn.manifoldr   r   sklearn.metricsr   r'   r/   r8   markparametrizerA   rF   rV    r(   r&   <module>r_      s              D D D D D D D D ( ( ( ( ( ( / / / / / /	4 	4 	4* * **   mmm,,' ' -,'= = = D%=11< < 21< < <r(   