
    wg                     T    d Z ddlZddlZ G d d      Z G d d      Z G d d      Zy)	z)Unit tests for bridge-finding algorithms.    Nc                   "    e Zd ZdZd Zd Zd Zy)TestBridgesz+Unit tests for the bridge-finding function.c                     g d}t        j                  |      }d}t        t        j                  ||            }|dgk(  sJ y )N      r	      r      )r      r      )r      )r      )r   	   )r   
   )r   r   )r   r   )r	   r   )r   r   )r   r   r   r   )nxGraphlistbridges)selfedgesGsourcer   s        k/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_bridges.pytest_single_bridgezTestBridges.test_single_bridge   sB    
$ HHUOrzz!V,-6("""    c                     t        j                  dd      }d}t        t        j                  ||            }|dgk(  sJ y )Nr   r   r
   )r   barbell_graphr   r   )r   r   r   r   s       r   test_barbell_graphzTestBridges.test_barbell_graph#   s>    Q"rzz!V,-6("""r   c                 ~    g d}t        j                  |      }t        t        j                  |            dgk(  sJ y )Nr   r   r   r	   r   r   r
   r   r   r
   )r   
MultiGraphr   r   r   r   r   s      r   test_multiedge_bridgez!TestBridges.test_multiedge_bridge*   s6    
 MM% BJJqM"vh...r   N)__name__
__module____qualname____doc__r   r"   r)    r   r   r   r      s    5#0#/r   r   c                   (    e Zd ZdZd Zd Zd Zd Zy)TestHasBridgesz(Unit tests for the has bridges function.c                     g d}t        j                  |      }t        j                  |      sJ t        j                  |d      sJ y )Nr   r   root)r   r   has_bridgesr(   s      r   r   z!TestHasBridges.test_single_bridge;   s>    
$ HHUO~~a   ~~aa(((r   c                     t        j                         }|j                  g d       t        j                  t         j
                        5  t        j                  |d       d d d        y # 1 sw Y   y xY w)N)r   r	   r   r   r2   )r   r   add_nodes_frompytestraisesNodeNotFoundr4   r   r   s     r   %test_has_bridges_raises_root_not_in_Gz4TestHasBridges.test_has_bridges_raises_root_not_in_GR   sN    HHJ	#]]2??+ 	&NN11%	& 	& 	&s   A,,A5c                     g d}t        j                  |      }t        j                  |      sJ |j                  g d       t        j                  |      rJ y )Nr$   )r%   r&   r
   )r   r'   r4   add_edges_fromr(   s      r   r)   z$TestHasBridges.test_multiedge_bridgeX   sO    
 MM% ~~a   	12>>!$$$$r   c                     t        j                         }t        j                  |g d       t        j                  |g d       t        t        j                  |d            ddgk(  sJ y )N)r   r   r	   )r   r   r   r   r2   )r   r   r   )r   r   add_pathr   r   r:   s     r    test_bridges_multiple_componentsz/TestHasBridges.test_bridges_multiple_componentsh   sL    HHJ
Ay!
Ay!BJJqq)*vv.>>>>r   N)r*   r+   r,   r-   r   r;   r)   r@   r.   r   r   r0   r0   8   s    2).&% ?r   r0   c                   2    e Zd ZdZed        Zd Zd Zd Zy)TestLocalBridgesz)Unit tests for the local_bridge function.c                     t        j                  dd      | _        t        j                  d      | _        t        j                  d      | _        y )Nr   r   r   )r   r!   BBcycle_graphsquaretri)clss    r   setup_classzTestLocalBridges.setup_classr   s6    !!!Q'^^A&
..#r   c                 L   ddh}t        t        j                  | j                  d            |v sJ t	        t        j                  | j
                  d            | j
                  j                  k(  sJ t        t        j                  | j                  d            g k(  sJ y )Nr   )r   r   F)	with_span)	nextr   local_bridgesrD   setrF   r   r   rG   )r   expecteds     r   test_nospanzTestLocalBridges.test_nospanx   s    F#B$$TWW>?8KKK2##DKK5ABdkkFWFWWWWB$$TXX?@BFFFr   c                    t        d      }dd|fdd|fh}t        t        j                  | j                              |v sJ | j
                  j                  D ch c]
  \  }}||df }}}t        t        j                  | j
                              |k(  sJ t        t        j                  | j                              g k(  sJ y c c}}w )Ninfr   r   )
floatrL   r   rM   rD   rF   r   rN   r   rG   )r   rR   rO   uvs        r   test_no_weightzTestLocalBridges.test_no_weight~   s    El3K!Q-B$$TWW-.(:::*.++*;*;<$!QQ1I<<2##DKK01X===B$$TXX./2555 =s   Cc           	         t        d      }| j                  j                         }d|j                  d   d<   |j                  dd      D ch c]  \  }}}||d|z
  f }}}}t	        t        j                  |d            |k(  sJ |j                  D ch c]
  \  }}||d	f }}}t        j                  |d
       }t	        |      |k(  sJ y c c}}}w c c}}w )NrR   r	   r   weightr   )datadefaultr   )rX   r   c                      y)Nr	   r.   )rT   rU   ds      r   <lambda>z.TestLocalBridges.test_weight.<locals>.<lambda>   s    r   )rS   rF   copyr   rN   r   rM   )r   rR   r   rT   rU   wtrO   lbs           r   test_weightzTestLocalBridges.test_weight   s    ElKK"#h3477RS73TUUxq!RQ1r6NUU2##Ah78HDDD*+''2$!QQ1I22a(9:2w(""" V 3s   CCN)	r*   r+   r,   r-   classmethodrI   rP   rV   ra   r.   r   r   rB   rB   o   s'    3$ $
G6
#r   rB   )r-   r7   networkxr   r   r0   rB   r.   r   r   <module>rd      s.    /  -/ -/`4? 4?n!# !#r   