
    h                     T    S r SSKrSSKr " S S5      r " S S5      r " S S5      rg)	z)Unit tests for bridge-finding algorithms.    Nc                   *    \ rS rSrSrS rS rS rSrg)TestBridges   z+Unit tests for the bridge-finding function.c                     / SQn[         R                  " U5      nSn[        [         R                  " X#5      5      nUS/:X  d   eg )N      r
      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        X/var/www/html/env/lib/python3.13/site-packages/networkx/algorithms/tests/test_bridges.pytest_single_bridgeTestBridges.test_single_bridge   s@    
$ HHUOrzz!,-6("""    c                     [         R                  " SS5      nSn[        [         R                  " X5      5      nUS/:X  d   eg )Nr   r   r   )r   barbell_graphr   r   )r   r   r   r   s       r   test_barbell_graphTestBridges.test_barbell_graph#   s<    Q"rzz!,-6("""r    c                     / SQn[         R                  " U5      n[        [         R                  " U5      5      S/:X  d   eg )Nr   r	   r   r
   r   r   r   r   r   r   )r   
MultiGraphr   r   r   r   r   s      r   test_multiedge_bridge!TestBridges.test_multiedge_bridge*   s6    
 MM% BJJqM"vh...r     N)	__name__
__module____qualname____firstlineno____doc__r   r#   r+   __static_attributes__r-   r    r   r   r      s    5#0#/r    r   c                   0    \ rS rSrSrS rS rS rS rSr	g)	TestHasBridges8   z(Unit tests for the has bridges function.c                     / SQn[         R                  " U5      n[         R                  " U5      (       d   e[         R                  " USS9(       d   eg )Nr   r	   root)r   r   has_bridgesr*   s      r   r   !TestHasBridges.test_single_bridge;   sA    
$ HHUO~~a    ~~aa(((r    c                     [         R                  " 5       nUR                  / SQ5        [        R                  " [         R
                  5         [         R                  " USS9  S S S 5        g ! , (       d  f       g = f)N)r	   r
   r   r   r8   )r   r   add_nodes_frompytestraisesNodeNotFoundr:   r   r   s     r   %test_has_bridges_raises_root_not_in_G4TestHasBridges.test_has_bridges_raises_root_not_in_GR   sE    HHJ	#]]2??+NN11% ,++s   A,,
A:c                     / SQn[         R                  " U5      n[         R                  " U5      (       d   eUR                  / SQ5        [         R                  " U5      (       a   eg )Nr&   )r'   r(   r   )r   r)   r:   add_edges_fromr*   s      r   r+   $TestHasBridges.test_multiedge_bridgeX   sU    
 MM% ~~a    	12>>!$$$$$r    c                     [         R                  " 5       n[         R                  " U/ SQ5        [         R                  " U/ SQ5        [        [         R                  " USS95      SS/:X  d   eg )N)r   r	   r
   )r   r   r   r   r8   )r   r   r   )r   r   add_pathr   r   rA   s     r    test_bridges_multiple_components/TestHasBridges.test_bridges_multiple_componentsh   sL    HHJ
Ay!
Ay!BJJqq)*vv.>>>>r    r-   N)
r.   r/   r0   r1   r2   r   rB   r+   rI   r3   r-   r    r   r5   r5   8   s    2).&% ?r    r5   c                   :    \ rS rSrSr\S 5       rS rS rS r	Sr
g)	TestLocalBridgeso   z)Unit tests for the local_bridge function.c                     [         R                  " SS5      U l        [         R                  " S5      U l        [         R                  " S5      U l        g )Nr   r   r   )r   r"   BBcycle_graphsquaretri)clss    r   setup_classTestLocalBridges.setup_classr   s6    !!!Q'^^A&
..#r    c                 H   SS1n[        [        R                  " U R                  SS95      U;   d   e[	        [        R                  " U R
                  SS95      U R
                  R                  :X  d   e[        [        R                  " U R                  SS95      / :X  d   eg )Nr   )r   r   F)	with_span)	nextr   local_bridgesrO   setrQ   r   r   rR   )r   expecteds     r   test_nospan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                    [        S5      nSSU4SSU41n[        [        R                  " U R                  5      5      U;   d   eU R
                  R                   VVs1 s H	  u  p4X4S4iM     nnn[        [        R                  " U R
                  5      5      U:X  d   e[        [        R                  " U R                  5      5      / :X  d   eg s  snnf )Ninfr   r   )
floatrX   r   rY   rO   rQ   r   rZ   r   rR   )r   r_   r[   uvs        r   test_no_weightTestLocalBridges.test_no_weight~   s    El3K!Q-B$$TWW-.(:::*.++*;*;<*;$!Q1I*;<2##DKK01X===B$$TXX./2555 =s   Cc           	         [        S5      nU R                  R                  5       nSUR                  S   S'   UR                  SSS9 VVVs1 s H  u  p4oSUSU-
  4iM     nnnn[	        [
        R                  " USS95      U:X  d   eUR                   VVs1 s H	  u  p4X4S	4iM     nnn[
        R                  " US
 S9n[	        U5      U:X  d   eg s  snnnf s  snnf )Nr_   r
   r   weightr	   )datadefaultr   )rf   r   c                     g)Nr
   r-   )ra   rb   ds      r   <lambda>.TestLocalBridges.test_weight.<locals>.<lambda>   s    r    )r`   rQ   copyr   rZ   r   rY   )r   r_   r   ra   rb   wtr[   lbs           r   test_weightTestLocalBridges.test_weight   s    ElKK"#h3477RS73TU3TxqR1r6N3TU2##Ah78HDDD*+''2'$!Q1I'2a(9:2w(""" V 3s   CCr-   N)r.   r/   r0   r1   r2   classmethodrT   r\   rc   rp   r3   r-   r    r   rL   rL   o   s'    3$ $
G6
#r    rL   )r2   r>   networkxr   r   r5   rL   r-   r    r   <module>rt      s.    /  -/ -/`4? 4?n!# !#r    