o
    i                     @   s   d dl mZ d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZ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S )    )productN)linalg)manifold	neighbors)
make_blobs)barycenter_kneighbors_graph)assert_allcloseassert_array_equalignore_warningsZ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   )Zaxis   )nparrayr   r   r   toarraysumonesdotr   normshape)global_dtypeXgraphZexpected_graphpred r   d/home/kim/smarthome/.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   )Zatold   )r   randomRandomStater   listr   rangeuniformr   astyper   LocallyLinearEmbeddingr   r*   r   r   r   r   eigen_solvers
set_paramsfit
embedding_r   reconstruction_error_Zrandn	transform)r   rngr   r+   clftolNreconstruction_errorsolvernoiseZX_reembeddedr   r   r   test_lle_simple_grid,   s.   
rE   methodstandardZhessianmodifiedZltsarC   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+   rF   r,   rH   g      ?r   r.   r   r-   zsolver: %s, method: %s)r   r1   r2   r   r3   r   ZarangeZc_r5   r   r6   r   r7   r   r*   r   r   r   r   r9   r:   r;   absr<   )r   rF   rC   r>   r   r+   r?   r@   rA   rB   detailsr   r   r   test_lle_manifoldT   s2   "
rN   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   )datasetspipeline)r,   filterr?   g?)sklearnrO   rP   r   ZPipeliner   r7   r   ZKNeighborsClassifierr:   Zscore)rO   rP   r   yr?   r   r   r   test_pipelinev   s   
rT   c               	   C   sZ   t d} t}tjtdd |tj| ddddd W d    d S 1 s&w   Y  d S )	N)   r   z+Error in determining null-space with ARPACK)matchr   r   rH   r   )r*   r+   rF   r/   )r   r   r
   pytestZraises
ValueErrorr   Zlocally_linear_embedding)Mfr   r   r   test_singular_matrix   s   
"r[   c                  C   sB   t jd} | jdddd}dD ]}tj|dd}|| qd S )Nr   r0   )   r   r&   rG   
   )rF   r*   )r   r1   r2   randintr   r7   r:   )Zrandr   rF   r?   r   r   r   test_integer_input   s   r_   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,   Z
n_featuresr   )r+   c                 S   s   g | ]}d | qS )Zlocallylinearembeddingr   ).0ir   r   r   
<listcomp>   s    z.test_get_feature_names_out.<locals>.<listcomp>N)r   r   r7   r:   Zget_feature_names_outr	   r4   )r   rS   r+   Zisonamesr   r   r   test_get_feature_names_out   s   
re   )	itertoolsr   numpyr   rW   Zscipyr   rR   r   r   Zsklearn.datasetsr   Z sklearn.manifold._locally_linearr   Zsklearn.utils._testingr   r	   r
   r8   r    rE   markZparametrizerN   rT   r[   r_   re   r   r   r   r   <module>   s$    ( 	