
    fi                     h    d Z ddlZddlZ G d d          Z G d d          Z G d d          ZdS )	z)Unit tests for bridge-finding algorithms.    Nc                   $    e Zd ZdZd Zd Zd ZdS )TestBridgesz+Unit tests for the bridge-finding function.c                     g d}t          j        |          }d}t          t          j        ||                    }|dgk    sJ d S )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        ~/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/algorithms/tests/test_bridges.pytest_single_bridgezTestBridges.test_single_bridge   sY    
 
 
$ HUOOrz!V,,--6(""""""    c                     t          j        dd          }d}t          t          j        ||                    }|dgk    sJ d S )Nr   r   r
   )r   barbell_graphr   r   )r   r   r   r   s       r   test_barbell_graphzTestBridges.test_barbell_graph#   sK    Q""rz!V,,--6(""""""r   c                     g d}t          j        |          }t          t          j        |                    dgk    sJ d S )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*   sM    
 
 
 M%  BJqMM""vh......r   N)__name__
__module____qualname____doc__r   r"   r)    r   r   r   r      sG        55# # #0# # #/ / / / /r   r   c                   *    e Zd ZdZd Zd Zd Zd ZdS )TestHasBridgesz(Unit tests for the has bridges function.c                     g d}t          j        |          }t          j        |          sJ t          j        |d          sJ d S )Nr   r   root)r   r   has_bridgesr(   s      r   r   z!TestHasBridges.test_single_bridge;   sY    
 
 
$ HUOO~a     ~aa((((((((r   c                     t          j                    }|                    g d           t          j        t           j                  5  t          j        |d           d d d            d S # 1 swxY w Y   d S )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   s    HJJ	###]2?++ 	& 	&N11%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   	A--A14A1c                     g d}t          j        |          }t          j        |          sJ |                    g d           t          j        |          rJ d S )Nr$   )r%   r&   r
   )r   r'   r4   add_edges_fromr(   s      r   r)   z$TestHasBridges.test_multiedge_bridgeX   sq    
 
 
 M%  ~a     	111222>!$$$$$$$r   c                     t          j                    }t          j        |g d           t          j        |g d           t          t          j        |d                    ddgk    sJ d S )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    HJJ
Ayyy!!!
Ayyy!!!BJqq)))**vv.>>>>>>>r   N)r*   r+   r,   r-   r   r;   r)   r@   r.   r   r   r0   r0   8   sV        22) ) ).& & &% % % ? ? ? ? ?r   r0   c                   :    e Zd ZdZed             Zd Zd Zd ZdS )TestLocalBridgesz)Unit tests for the local_bridge function.c                     t          j        dd          | _        t          j        d          | _        t          j        d          | _        d S )Nr   r   r   )r   r!   BBcycle_graphsquaretri)clss    r   setup_classzTestLocalBridges.setup_classr   s<    !!Q''^A&&
.##r   c                 2   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 d S )Nr   )r   r   F)	with_span)	nextr   local_bridgesrD   setrF   r   r   rG   )r   expecteds     r   test_nospanzTestLocalBridges.test_nospanx   s    F#B$TW>>>??8KKKK2#DK5AAABBdkFWWWWWB$TX???@@BFFFFFFr   c                 h   t          d          }dd|fdd|fh}t          t          j        | j                            |v sJ d | j        j        D             }t          t          j        | j                            |k    sJ t          t          j        | j	                            g k    sJ d S )Ninfr   r   c                     h | ]
\  }}||d fS )r   r.   .0uvs      r   	<setcomp>z2TestLocalBridges.test_no_weight.<locals>.<setcomp>   s"    <<<$!QQ1I<<<r   )
floatrL   r   rM   rD   rF   r   rN   r   rG   )r   rR   rO   s      r   test_no_weightzTestLocalBridges.test_no_weight~   s    Ell3K!Q-B$TW--..(::::<<$+*;<<<2#DK0011X====B$TX..//2555555r   c                    t          d          }| j                                        }d|j        d         d<   d |                    dd          D             }t	          t          j        |d                    |k    sJ d	 |j        D             }t          j        |d
           }t	          |          |k    sJ d S )NrR   r	   r   weightc                 &    h | ]\  }}}||d |z
  fS )r   r.   )rU   rV   rW   wts       r   rX   z/TestLocalBridges.test_weight.<locals>.<setcomp>   s(    UUUxq!RQ1r6NUUUr   r   )datadefault)r\   c                     h | ]
\  }}||d fS )r   r.   rT   s      r   rX   z/TestLocalBridges.test_weight.<locals>.<setcomp>   s"    222$!QQ1I222r   c                     dS )Nr	   r.   )rV   rW   ds      r   <lambda>z.TestLocalBridges.test_weight.<locals>.<lambda>   s     r   )rY   rF   copyr   rN   r   rM   )r   rR   r   rO   lbs        r   test_weightzTestLocalBridges.test_weight   s    EllK"#hUU177RS73T3TUUU2#Ah77788HDDDD22!'222a(9(9:::2ww(""""""r   N)	r*   r+   r,   r-   classmethodrI   rP   rZ   rg   r.   r   r   rB   rB   o   sc        33$ $ [$
G G G6 6 6
# 
# 
# 
# 
#r   rB   )r-   r7   networkxr   r   r0   rB   r.   r   r   <module>rj      s    / /     -/ -/ -/ -/ -/ -/ -/ -/`4? 4? 4? 4? 4? 4? 4? 4?n!# !# !# !# !# !# !# !# !# !#r   