U
    3d                     @   sl   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 dd Zdd	 Zd
d Zdd Zdd ZdS )    N)connected_components)kneighbors_graph)_fix_connected_components)pairwise_distancesc                  C   sr   t ddddddgd d d f } t| ddd}t|\}}|dksHtt| |||}t|\}}|dksntd S )	Nr                  distanceZn_neighborsmode)nparrayr   r   AssertionErrorr   Xgraphn_connected_componentslabels r   B/tmp/pip-unpacked-wheel-zrfo1fqw/sklearn/utils/tests/test_graph.pytest_fix_connected_components
   s    "r   c               	   C   s   t ddddddgd d d f } t| ddd}t|\}}|dksHtt| }t||||d	d
}t|\}}|dkszttjt	dd t||||d	d
 W 5 Q R X d S )Nr   r   r   r   r	   r
   r   r   Zprecomputed)Zmetriczdoes not work with a sparsematch)
r   r   r   r   r   r   r   pytestraisesRuntimeError)r   r   r   r   Z	distancesr   r   r   )test_fix_connected_components_precomputed   s,    "        r   c               	   C   sl   t ddddddgd d d f } t| ddd}t|\}}tjtd	d
 t| |||dd}W 5 Q R X d S )Nr   r   r   r   r	   r
   r   r   zUnknown moder   Zfoor   )r   r   r   r   r   r   
ValueErrorr   r   r   r   r   (test_fix_connected_components_wrong_mode/   s    "    r!   c                  C   sb   t ddddgd d d f } t| ddd}t|\}}t| |||dd}t |jdks^td S )Nr   r   r	   r
   Zconnectivityr   r   )r   r   r   r   r   alldatar   r   r   r   r   /test_fix_connected_components_connectivity_mode;   s        r$   c                  C   sv   t ddddgd d d f } t| ddd}t |jdks@tt|\}}t| |||dd}t |jdkrrtd S )Nr   r   r	   r
   r   r   r   )r   r   r   r"   r#   r   r   r   r   r   r   r   +test_fix_connected_components_distance_modeF   s        r%   )r   Znumpyr   Zscipy.sparse.csgraphr   Zsklearn.neighborsr   Zsklearn.utils.graphr   Zsklearn.metrics.pairwiser   r   r   r!   r$   r%   r   r   r   r   <module>   s   