o
    ˷e	                     @   s,   d Z ddlZG dd dZG dd dZdS )z)Unit tests for bridge-finding algorithms.    Nc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	TestBridgesz+Unit tests for the bridge-finding function.c                 C   s8   g d}t |}d}tt ||}|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    r   ]/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/algorithms/tests/test_bridges.pytest_single_bridge	   s
   
zTestBridges.test_single_bridgec                 C   s2   t dd}d}tt ||}|dgksJ d S )Nr   r   r   )r   barbell_graphr   r   )r   r   r   r   r   r   r   test_barbell_graph!   s   zTestBridges.test_barbell_graphc                 C   s.   g d}t |}tt |dgksJ d S )N))r   r   )r   r   r   r   r   r   r   r   )r   
MultiGraphr   r   )r   r   r   r   r   r   test_multiedge_bridge(   s   
	z!TestBridges.test_multiedge_bridgeN)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r      s
    r   c                   @   s4   e Zd ZdZedd Zdd Zdd Zdd	 Zd
S )TestLocalBridgesz)Unit tests for the local_bridge function.c                 C   s*   t dd| _t d| _t d| _d S )Nr	   r   r   )r   r   BBcycle_graphsquaretri)clsr   r   r   setup_class9   s   zTestLocalBridges.setup_classc                 C   sd   ddh}t tj| jdd|v sJ ttj| jdd| jjks"J ttj| jddg ks0J d S )Nr   )r	   r   F)	with_span)	nextr   local_bridgesr%   setr'   r   r   r(   )r   expectedr   r   r   test_nospan?   s     zTestLocalBridges.test_nospanc                 C   sz   t d}dd|fdd|fh}tt| j|v sJ dd | jjD }tt| j|ks/J tt| j	g ks;J d S )Ninfr   r	   c                 S      h | ]	\}}||d fqS )r   r   .0uvr   r   r   	<setcomp>I       z2TestLocalBridges.test_no_weight.<locals>.<setcomp>)
floatr,   r   r-   r%   r'   r   r.   r   r(   )r   r1   r/   r   r   r   test_no_weightE   s   zTestLocalBridges.test_no_weightc                 C   s   t d}| j }d|jd d< dd |jdddD }ttj|dd	|ks)J d
d |jD }tj|dd d	}t||ksBJ d S )Nr1   r   r   weightc                 S   s    h | ]\}}}||d | fqS )r
   r   )r4   r5   r6   wtr   r   r   r7   R   s     z/TestLocalBridges.test_weight.<locals>.<setcomp>r   )datadefault)r;   c                 S   r2   )r   r   r3   r   r   r   r7   U   r8   c                 S   s   dS )Nr   r   )r5   r6   dr   r   r   <lambda>V   s    z.TestLocalBridges.test_weight.<locals>.<lambda>)r9   r'   copyr   r.   r   r-   )r   r1   r   r/   lbr   r   r   test_weightM   s   
zTestLocalBridges.test_weightN)	r    r!   r"   r#   classmethodr*   r0   r:   rC   r   r   r   r   r$   6   s    
r$   )r#   networkxr   r   r$   r   r   r   r   <module>   s    0