o
    tBhI                     @   s   d dl mZ d dlZd dlmZmZ d dlmZ d dl	Z	d dl
mZmZ d dlmZ d dlmZ d dlmZ d	d
gZdd Zdd Ze	jdg de	jdedd Zdd Zdd Zdd Zdd Zdd ZdS )    )productN)assert_allcloseassert_array_equal)linalg)	neighborsmanifold)
make_blobs)barycenter_kneighbors_graph)ignore_warningsdensearpackc                 C   s   t jddgddgddgg| d}t|d}t jg dg dg dg| d}|j| ks,J t| | t|d}tt j| dd	t d
 t | |}t	
|| |jd  dk s_J d S )Nr      g)\(?      ?   )dtype)        r   r   )r   r   r   )axis   )nparrayr	   r   r   toarraysumonesdotr   normshape)global_dtypeXgraphexpected_graphpred r!   /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/manifold/tests/test_locally_linear.py test_barycenter_kneighbors_graph   s    

$r#   c                 C   sJ  t jd}t tttddd}|d|j|jd  }|j	| dd}d}t
jd||d	}d
}t||j }tt ||| d}||k sKJ tD ]5}|j|d || |jjd |ksdJ tt ||j|j dd }||k szJ t|j|d
d qM|j|j j	| ddd }	|||	 }
t|
|j |k sJ d S )N*      r   repeat绽|=sizeFcopy)n_neighborsn_componentsrandom_stateg?froeigen_solverr   )atold   )r   randomRandomStater   listr   rangeuniformr   astyper   LocallyLinearEmbeddingr	   r-   r   r   r   r   eigen_solvers
set_paramsfit
embedding_r   reconstruction_error_randn	transform)r   rngr   r.   clftolNreconstruction_errorsolvernoiseX_reembeddedr!   r!   r"   test_lle_simple_grid,   s.   
rK   methodstandardhessianmodifiedltsarH   c                 C   sP  t jd}t ttt ddd}t j||d d df d d f }|d|j|j	d  }|j
| dd}d}tjd	||dd
}|dkrHdnd}t||j }tt ||| }	|	|k scJ |j|d || |jj	d |ksxJ tt ||j|j dd }	d||f }
|	|k sJ |
t |j|	 ||	 k sJ |
d S )Nr      r   r&   r(   r)   Fr+      )r-   r.   rL   r/   rN   g      ?r   r1   r   r0   zsolver: %s, method: %s)r   r5   r6   r   r7   r   arangec_r9   r   r:   r   r;   r	   r-   r   r   r   r   r=   r>   r?   absr@   )r   rL   rH   rC   r   r.   rD   rE   rF   rG   detailsr!   r!   r"   test_lle_manifoldT   s2   "
rX   c                  C   s   t jdd} tjdd}d}tjt|d ||  W d    n1 s&w   Y  tjdd}d}tjt|d ||  W d    d S 1 sKw   Y  d S )	Nr%   r   errorr1   z!unrecognized eigen_solver 'error')match)rL   zunrecognized method 'error')	r   r5   randr   r;   pytestraises
ValueErrorr>   )r   rD   msgr!   r!   r"   test_lle_init_parametersw   s   "r`   c                  C   sf   ddl m} m} |jdd\}}| dtjddfdt fg}|	|| d|
||k s1J d S )Nr   )pipelinedatasets)r/   filterrD   g?)sklearnra   rb   r   Pipeliner   r;   r   KNeighborsClassifierr>   score)ra   rb   r   yrD   r!   r!   r"   test_pipeline   s   
ri   c               	   C   sV   t d} t}tt |tj| ddddd W d    d S 1 s$w   Y  d S )N)
   r   r   r   rN   r   )r-   r.   rL   r2   )r   r   r
   r\   r]   r^   r   locally_linear_embedding)Mfr!   r!   r"   test_singular_matrix   s   
"rn   c                  C   sB   t jd} | jdddd}dD ]}tj|dd}|| qd S )Nr   r4   )   r   r)   rM   rj   )rL   r-   )r   r5   r6   randintr   r;   r>   )r[   r   rL   rD   r!   r!   r"   test_integer_input   s   rq   c                  C   sN   t ddd\} }d}tj|d}||  | }tdd t|D | dS )	z7Check get_feature_names_out for LocallyLinearEmbedding.r      )r/   
n_featuresr   )r.   c                 S   s   g | ]}d | qS )locallylinearembeddingr!   ).0ir!   r!   r"   
<listcomp>   s    z.test_get_feature_names_out.<locals>.<listcomp>N)r   r   r;   r>   get_feature_names_outr   r8   )r   rh   r.   isonamesr!   r!   r"   test_get_feature_names_out   s   
r{   )	itertoolsr   numpyr   sklearn.utils._testingr   r   scipyr   r\   rd   r   r   sklearn.datasetsr    sklearn.manifold._locally_linearr	   r
   r<   r#   rK   markparametrizerX   r`   ri   rn   rq   r{   r!   r!   r!   r"   <module>   s(    (!	