o
    3ήc[                     @   s:   d dl Z d dlZd dlmZ d dlmZ G dd dZdS )    N)NetworkXNotImplemented)convert_node_labels_to_integersc                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )TestConnectedc              
   C   s  t tddddd}t tddddd}t t ddd}t||| _t| j|| _tg d| _t tddd	d
| _	g | _
t }|g d g dg ddgg}| j
||f t }|g d g dd	gg}| j
||f t }|g d g dg}| j
||f td	gddgddgddgdgg g d}dgd	gdgdgdgdgdgg}| j
||f td	gg dddgdgdgd}g dddgg}| j
||f t }g }| j
||f d S )N   r   sorted)first_labelordering      
   )   r   r   r	   r   r	   r   )r   )r   r   )r      r	   r
   )r	      )r
      )r   r	   )r      )r   r
   )r   r   )r   r   )r   r   )r	   r
   r   r   )r   r   r   r   )r   r   )r   r
   )r
   r   r   r   )r   r	   r
   )r   r   )r	   r   )r   r   )r   r   r	   r   )r   r   r   r	   r
   r   r   )r   r   r   r	   r
   )r   r   r   )cnltinxgrid_2d_graphlollipop_graphhouse_graphunionGDiGraphDGgridgcadd_edges_fromappend)clsG1G2G3r   C r'   Z/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/components/tests/test_connected.pysetup_class	   s>   
* $zTestConnected.setup_classc                 C   sL   t j}| j}tg dtg dtg dh}dd ||D |ks$J d S )N)r   r   r   r	   )r
   r   r   r   r   	   )r               c                 S      h | ]}t |qS r'   	frozenset.0gr'   r'   r(   	<setcomp>G       z:TestConnected.test_connected_components.<locals>.<setcomp>)r   connected_componentsr   r1   selfccr   r&   r'   r'   r(   test_connected_components?   s   


z'TestConnected.test_connected_componentsc                 C      t j}|| jdksJ d S )Nr	   )r   number_connected_componentsr   r9   nccr'   r'   r(    test_number_connected_componentsI      z.TestConnected.test_number_connected_componentsc                 C   r<   Nr   )r   r=   r   r>   r'   r'   r(   !test_number_connected_components2M   rA   z/TestConnected.test_number_connected_components2c                 C   s8   t j}| j}tg dh}dd ||D |ksJ d S )N)r   r   r	   r
   r   r   r   r   r*   r   r+   r,   r-   r.         c                 S   r/   r'   r0   r2   r'   r'   r(   r5   U   r6   z;TestConnected.test_connected_components2.<locals>.<setcomp>)r   r7   r   r1   r8   r'   r'   r(   test_connected_components2Q   s   z(TestConnected.test_connected_components2c                 C   s*   t j}| j}h d}||d|ksJ d S )N>   r   r   r	   r
   r   r   r   r   r*   r   r+   r,   r-   r.   rD   rE   r   )r   node_connected_componentr   )r9   r?   r   r&   r'   r'   r(   test_node_connected_componentsW   s   z,TestConnected.test_node_connected_componentsc                 C   s8   t | jsJ t  }|ddg t |rJ d S )Nr   r   )r   is_connectedr   Graphadd_nodes_from)r9   r   r'   r'   r(   test_is_connected]   s   zTestConnected.test_is_connectedc                 C   s   t t tt| j W d    n1 sw   Y  t ttj| j t ttj| jd t ttj	| j t tj
tj	t  d S rB   )pytestraisesr   nextr   r7   r   r=   rG   rI   NetworkXPointlessConceptrJ   )r9   r'   r'   r(   test_connected_raisec   s   z"TestConnected.test_connected_raisec                 C   sF   | j }t }t|D ]}t||@ dksJ || |  qd S )Nr   )r   setr   r7   lenupdateclear)r9   r   seen	componentr'   r'   r(   test_connected_mutabilityk   s   

z'TestConnected.test_connected_mutabilityN)__name__
__module____qualname__classmethodr)   r;   r@   rC   rF   rH   rL   rQ   rX   r'   r'   r'   r(   r      s    
5
r   )rM   networkxr   r   r   r   r   r'   r'   r'   r(   <module>   s
    