U
    ½mœdt  ã                   @   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ddddg¡e	j de¡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_warningsZdenseÚarpackc                 C   sÈ   t jddgddgddgg| d�}t|dƒ}t jdddgdddgdddgg| d�}|j| ks^t‚t| ¡ |ƒ t|dƒ}tt j| ¡ dd�t  d	¡ƒ t  	| ¡ |¡}t
 || ¡|jd  dk sÄt‚d S )
Nr   é   g)\�Âõ(ð?g      ð?é   )Údtypeg        )Zaxisé   )ÚnpÚarrayr	   r   ÚAssertionErrorr   ÚtoarrayÚsumÚonesÚdotr   ÚnormÚshape)Úglobal_dtypeÚXÚgraphZexpected_graphÚpred© r   úc/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/manifold/tests/test_locally_linear.pyÚ test_barycenter_kneighbors_graph   s     
 ÿ
r   c                 C   sL  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 s–t‚tD ]j}|j|d� | |¡ |jjd |ksÈt‚t t  ||j¡|j d¡d }||k sôt‚t|j|d
d� qš|j|jŽ j	| dd�d }	| ||	 ¡}
t |
|j ¡|k �sHt‚d S )Né*   é   r   ©Úrepeatç»½×Ùß|Û=©ÚsizeF©Úcopy)Ún_neighborsÚn_componentsÚrandom_stategš™™™™™¹?Úfro©Úeigen_solverr   )Zatoléd   )r   ÚrandomÚRandomStater   Úlistr   ÚrangeÚuniformr   Úastyper   ÚLocallyLinearEmbeddingr	   r)   r   r   r   r   r   Úeigen_solversÚ
set_paramsÚfitÚ
embedding_r   Úreconstruction_error_ZrandnZ	transform)r   Úrngr   r*   ÚclfÚtolÚNÚreconstruction_errorÚsolverÚnoiseZX_reembeddedr   r   r   Útest_lle_simple_grid,   s2      ÿ
ÿrC   ÚmethodÚstandardÚhessianÚmodifiedÚltsarA   c                 C   sT  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r�dnd}t||jƒ ¡ }t t  ||¡| ¡}	|	|k sÆt‚|j|d� | |¡ |jj	d |ksðt‚t t  ||j¡|j d¡d }	d||f }
|	|k �s.t|
ƒ‚t  |j|	 ¡||	 k �sPt|
ƒ‚d S )Nr   é   r   r"   r$   r%   Fr'   é   )r)   r*   rD   r+   rE   g      ø?r   r-   r   r,   zsolver: %s, method: %s)r   r0   r1   r   r2   r   ZarangeZc_r4   r   r5   r   r6   r	   r)   r   r   r   r   r   r8   r9   r:   Úabsr;   )r   rD   rA   r<   r   r*   r=   r>   r?   r@   Údetailsr   r   r   Útest_lle_manifoldT   s:    "   ÿ
ÿÿÿýrM   c                  C   sf   ddl m} m} |jdd�\}}|  dtjdd�fdt ¡ fg¡}| 	||¡ d| 
||¡k sbt‚d S )Nr   )ÚpipelineÚdatasets)r+   Úfilterr=   gÍÌÌÌÌÌì?)ÚsklearnrN   rO   r   ZPipeliner   r6   r   ZKNeighborsClassifierr9   Zscorer   )rN   rO   r   Úyr=   r   r   r   Útest_pipelinev   s    
þÿrS   c               	   C   s@   t  d¡} t}t t¡� |tj| ddddd�ƒ W 5 Q R X d S )N)é
   r   r   r   rE   r   )r)   r*   rD   r.   )r   r   r
   ÚpytestZraisesÚ
ValueErrorr   Zlocally_linear_embedding)ÚMÚfr   r   r   Útest_singular_matrixˆ   s    
ûÿrY   c                  C   sB   t j d¡} | jdddd�}dD ]}tj|dd�}| |¡ q d S )Nr   r/   )é   r   r%   )rE   rF   rG   rH   rT   )rD   r)   )r   r0   r1   Úrandintr   r6   r9   )Zrandr   rD   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   r6   r9   Zget_feature_names_outr   r3   )r   rR   r*   ZisoÚnamesr   r   r   Útest_get_feature_names_out¡   s    
 ÿrb   )Ú	itertoolsr   Únumpyr   Zsklearn.utils._testingr   r   Zscipyr   rU   rQ   r   r   Zsklearn.datasetsr   Z sklearn.manifold._locally_linearr	   r
   r7   r   rC   ÚmarkZparametrizerM   rS   rY   r\   rb   r   r   r   r   Ú<module>   s$   ( 	