
    Vh                     L    d dl Z d dlZd dlmZ d dlmZ d dlmZ  G d d      Zy)    N)NetworkXNotImplemented)convert_node_labels_to_integers)dispatch_interfacec                   R    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zy)TestConnectedc           
      :   t        t        j                  dd      dd      }t        t        j                  dd      dd      }t        t        j                         dd      }t        j
                  ||      | _        t        j
                  | j                  |      | _        t        j                  g d      | _        t        t        j                  dd      d	
      | _	        g | _
        t        j                         }|j                  g d       g dg ddgg}| j                  j                  ||f       t        j                         }|j                  g d       g dd	gg}| j                  j                  ||f       t        j                         }|j                  g d       g dg}| j                  j                  ||f       t        j                  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                  j                  ||f       t        j                  d	gg dddgdgdgd      }g dddgg}| j                  j                  ||f       t        j                         }g }| j                  j                  ||f       y )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   Cs         c/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_connected.pysetup_classzTestConnected.setup_class
   s(   2##Aq)q8L2$$Q*HM2>>#hGR #45))!Q/Q?JJL		
  9qc*q!fJJL	IJq!fJJL	9:Kq!f JJA3Aq6q!f!QQCBSUVWS1#sQC!qcA3/q!fJJA39!QQCQCHIAq!fJJLq!f    c                     t         j                  }| j                  }t        g d      t        g d      t        g d      h} ||      D ch c]  }t        |       c}|k(  sJ y c c}w )Nr   r   r	   r   r   r   r   r   r   	   r               )r   connected_componentsr   	frozensetselfccr   r*   gs        r+   test_connected_componentsz'TestConnected.test_connected_components@   s]    $$FFl#()*+

 ')e,	!,111,s   A(c                    t         j                  }t        j                  | j                        }t        g d      t        g d      t        g d      h}dt         j                  j                  v st         j                  j                  s% ||      D ch c]  }t        |       c}|k(  sJ y t        j                  t        d      5   ||       d d d        y c c}w # 1 sw Y   y xY w)Nr/   r0   r2   nx_loopbackz&'nx_loopback' backend is not installed)match)r   r7   r   convertr   r8   configbackendspytestraisesImportErrorr9   s        r+   %test_connected_components_nx_loopbackz3TestConnected.test_connected_components_nx_loopbackK   s     $$&&tvv.l#()*+

 BII...bii6H6H +-Q%0QIaL0A555 #K  1  1 s   C	C##C,c                 R    t         j                  } || j                        dk(  sJ y )Nr   )r   number_connected_componentsr   r:   nccs     r+    test_number_connected_componentsz.TestConnected.test_number_connected_componentsb   s#    ,,466{ar-   c                 R    t         j                  } || j                        dk(  sJ y Nr   )r   rI   r"   rJ   s     r+   !test_number_connected_components2z/TestConnected.test_number_connected_components2f   s#    ,,499~"""r-   c                     t         j                  }| j                  }t        g d      h} ||      D ch c]  }t        |       c}|k(  sJ y c c}w )N)r   r	   r   r   r   r   r   r   r1   r   r3   r4   r5   r6         )r   r7   r"   r8   r9   s        r+   test_connected_components2z(TestConnected.test_connected_components2j   sH    $$IINOP&(e,	!,111,s   Ac                 `    t         j                  }| j                  }h d} ||d      |k(  sJ y )N>   r   r	   r   r   r   r   r   r   r1   r   r3   r4   r5   r6   rQ   rR   r   )r   node_connected_componentr"   )r:   rK   r   r*   s       r+   test_node_connected_componentsz,TestConnected.test_node_connected_componentsp   s-    ))IIC1ayA~~r-   c                     t        j                  | j                        sJ t        j                         }|j	                  ddg       t        j                  |      rJ y )Nr   r	   )r   is_connectedr"   Graphadd_nodes_from)r:   r   s     r+   test_is_connectedzTestConnected.test_is_connectedv   sJ    tyy)))HHJ	!Q ??1%%%%r-   c                 n   t        j                  t              5  t        t	        j
                  | j                               d d d        t        j                  t        t        j                  | j                         t        j                  t        t        j                  | j                  d       t        j                  t        t        j                  | j                         t        j                  t        j                  t        j                  t	        j                                y # 1 sw Y   xY wrN   )rD   rE   r   nextr   r7   r!   rI   rU   rX   NetworkXPointlessConceptrY   )r:   s    r+   test_connected_raisez"TestConnected.test_connected_raise|   s    ]]12 	3((12	3,b.L.LdggV,b.I.I477TUV,bootwwGb112??BHHJO	3 	3s   )D++D4c                     | j                   }t               }t        j                  |      D ]6  }t	        ||z        dk(  sJ |j                  |       |j                          8 y )Nr   )r"   setr   r7   lenupdateclear)r:   r   seen	components       r+   test_connected_mutabilityz'TestConnected.test_connected_mutability   sZ    IIu003 	Iti'(A---KK	"OO	r-   N)__name__
__module____qualname__classmethodr,   r=   rG   rL   rO   rS   rV   r[   r_   rg    r-   r+   r   r   	   sC    3 3j	2. #2&Pr-   r   )	rD   networkxr   r   r   r   networkx.classes.testsr   r   rl   r-   r+   <module>ro      s       + = 5A Ar-   