
    Vh                      4    d dl mZ d dlZd dlZ G d d      Zy)    )chainNc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestIsSemiconnectedc                    t        j                  t        j                  t        j                  t        j
                                t        j                  t        j                  t        j                  t        j                                y N)pytestraisesnxNetworkXNotImplementedis_semiconnectedGraph
MultiGraphselfs    g/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_semiconnected.pytest_undirectedz#TestIsSemiconnected.test_undirected	   sF    b//1D1DbhhjQb//1D1DbmmoV    c                    t        j                  t        j                  t        j                  t        j
                                t        j                  t        j                  t        j                  t        j                                y r   )r   r	   r
   NetworkXPointlessConceptr   DiGraphMultiDiGraphr   s    r   
test_emptyzTestIsSemiconnected.test_empty   sJ    b1123F3F

U'')<)<boo>O	
r   c                 |    t        j                         }|j                  d       t        j                  |      sJ y )Nr   )r
   r   add_noder   r   Gs     r   test_single_node_graphz*TestIsSemiconnected.test_single_node_graph   s,    JJL	

1""1%%%r   c                     t        j                  dt        j                               }t        j                  |      sJ |j	                  dd       t        j                  |      rJ y )Nd   create_usingc   )r
   
path_graphr   r   add_edger   s     r   	test_pathzTestIsSemiconnected.test_path   sQ    MM#BJJL9""1%%%	

3&&q))))r   c                 (   t        j                  dt        j                               }t        j                  |      sJ t        j                  dt        j                               }|j                  dd       t        j                  |      sJ y )Nr   r    r   r"   )r
   cycle_graphr   r   r#   r$   r   s     r   
test_cyclezTestIsSemiconnected.test_cycle   sd    NN3RZZ\:""1%%%MM#BJJL9	

1b""1%%%r   c                     t        j                         }|j                  t        j                  d t        d      D                     t        j                  |      rJ y )Nc              3   D   K   | ]  }|d |z  dz   f|d |z  d z   fg  yw)      N .0is     r   	<genexpr>z0TestIsSemiconnected.test_tree.<locals>.<genexpr>(   s-     UQ!QUQY!QUQY @Us    r   )r
   r   add_edges_fromr   from_iterableranger   r   s     r   	test_treezTestIsSemiconnected.test_tree%   sM    JJL	U%PS*UU	
 &&q))))r   c                    t        j                  dt        j                               }|j                  d t	        d      D               t        j
                  |      rJ |j                  dd       t        j
                  |      sJ y )Nr   r    c              3   <   K   | ]  }|d z   |dz   d z  d z   f  yw)r   r,   Nr-   r.   s     r   r1   z4TestIsSemiconnected.test_dumbbell.<locals>.<genexpr>.   s&     LA!c'AES=3#67Ls   r"   )r
   r'   r   r2   r4   r   r$   r   s     r   test_dumbbellz!TestIsSemiconnected.test_dumbbell,   sf    NN3RZZ\:	LsLL&&q)))	

3""1%%%r   c           
          t        j                  t        j                  d t	        ddd      D                    }t        j
                  |      rJ y )Nc              3   8   K   | ]  }||d z
  f||d z   fg  yw)r,   Nr-   r.   s     r   r1   z<TestIsSemiconnected.test_alternating_path.<locals>.<genexpr>5   s%     SQ!QUaQZ 8Ss   r   r   r+   )r
   r   r   r3   r4   r   r   s     r   test_alternating_pathz)TestIsSemiconnected.test_alternating_path3   sG    JJS%3PQBRSS
 &&q))))r   N)__name__
__module____qualname__r   r   r   r%   r(   r5   r8   r;   r-   r   r   r   r      s+    W
&
*&*&*r   r   )	itertoolsr   r   networkxr
   r   r-   r   r   <module>rA      s      /* /*r   