
    >[g                         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                   j#                  d	g d
      d        Zd Zej                   j#                  dddg      d        Zy)    )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       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        Z/var/www/html/bid-api/venv/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        j                  g dg dg dg dg      } t        j                  t              5  t        j                  |        d d d        t        j                  g dg dg dg      } t        j                  t              5  t        j                  |        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   pytestraises
ValueErrorr   r    )r!   r"   s     r&   test_smacof_errorr/      s    
((L,lK
LC	z	"

3 
# ((L,=
>C	z	"

3 
# ((L,lK
LC
66"UFOfe_EFA	z	"

3Qq) 
#	" 
#	" 
#	" 
#	"s#   D(D4E (D14D= E	c                      t        j                  g dg dg dg dg      } t        j                  ddd      }|j	                  |        y )	Nr	   r   r   r   Fr   precomputed)metricn_jobsdissimilarity)r   r   r   MDSfit)r!   mds_clfs     r&   test_MDSr8   ,   s7    
((L,lK
LCggU1M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	
       y)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   sg     ((L,lK
LC**SKKB**QWUQQOKBGW4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	       y	# 1 sw Y   y	xY w)
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   >   sJ    
 /C
((L,lK
LC	z	-

3tt< 
.	-	-s   A!!A*r2   TFc                    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)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
''6
LCa>>!01V;;;JJtFf3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_      sy       D ( /	4** m,' -'= D%=1< 2<r(   