o
    3ήc^                     @   s2   d dl Z d dlZd dlmZmZ G dd dZdS )    N)FORWARDREVERSEc                   @   s   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#S )$TestEdgeBFSc                 C   s   g d| _ g d| _d S )N)r            )r   r   r   r   r	   r   r   r   r   r   r   )nodesedges)cls r   W/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/traversal/tests/test_edgebfs.pysetup_class   s   
zTestEdgeBFS.setup_classc                 C   s&   t  }tt |}|g ksJ d S )N)nxGraphlistedge_bfs)selfGr   r   r   r   
test_empty   s   zTestEdgeBFS.test_emptyc                 C   sB   t | j}|dd tt |dg}g d}||ksJ d S )N      r   r   )r   r   r   r   )r   r   )r   r   r   add_edger   r   r   r   xx_r   r   r   test_graph_single_source   s
   z$TestEdgeBFS.test_graph_single_sourcec                 C   6   t | j}tt || j}g d}||ksJ d S )Nr   )r   r   r   r   r   r   r   r   r   r   
test_graph      zTestEdgeBFS.test_graphc                 C   r#   )Nr   r	   r
   r   r   r   DiGraphr   r   r   r   r   r   r   r   test_digraph   r%   zTestEdgeBFS.test_digraphc                 C   s2   t | j}t j|| jdd}tt jt| d S )Nhelloorientation)	r   r(   r   r   r   pytestraisesNetworkXErrorr   )r   r   edge_iteratorr   r   r    test_digraph_orientation_invalid%   s   z,TestEdgeBFS.test_digraph_orientation_invalidc                 C   s:   t | j}tt j|| jd d}g d}||ksJ d S )Nr+   r&   r'   r   r   r   r   test_digraph_orientation_none*   s   z)TestEdgeBFS.test_digraph_orientation_nonec                 C   s^   t | j}tt j|| jdd}ddtfddtfddtfddtfddtfg}||ks-J d S )Noriginalr+   r   r   r   r   )r   r(   r   r   r   r   r   r   r   r   r   !test_digraph_orientation_original0      z-TestEdgeBFS.test_digraph_orientation_originalc                 C   sB   t  }t |td tt |dg}g d}||ksJ d S )Nr   r   )r   r   )r   r   )r   r(   add_pathranger   r   r   r   r   r   test_digraph2<   s
   zTestEdgeBFS.test_digraph2c                 C   s^   t | j}tt j|| jdd}ddtfddtfddtfddtfddtfg}||ks-J d S Nreverser+   r   r   r   r   )r   r(   r   r   r   r   r   r   r   r   r   test_digraph_revC   r5   zTestEdgeBFS.test_digraph_revc                 C   sZ   t  }t |td tt j|dgdd}ddtfddtfddtfg}||ks+J d S )Nr   r   r:   r+   r   r   r   )r   r(   r6   r7   r   r   r   r   r   r   r   test_digraph_rev2O   
   zTestEdgeBFS.test_digraph_rev2c                 C   r#   )N)r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   
MultiGraphr   r   r   r   r   r   r   r   test_multigraphV   s   zTestEdgeBFS.test_multigraphc                 C   r#   )N)r>   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   MultiDiGraphr   r   r   r   r   r   r   r   test_multidigraphb   r%   zTestEdgeBFS.test_multidigraphc              	   C   sr   t | j}tt j|| jdd}dddtfdddtfdddtfdddtfdddtfdddtfg}||ks7J d S r9   )r   rA   r   r   r   r   r   r   r   r   r   test_multidigraph_revh      





z!TestEdgeBFS.test_multidigraph_revc                 C   s^   t | j}tt j|| jdd}ddtfddtfddtfddtfddtfg}||ks-J d S Nignorer+   r   r   r   r   )r   r(   r   r   r   r   r   r   r   r   r   r   test_digraph_ignoreu   r5   zTestEdgeBFS.test_digraph_ignorec                 C   sZ   t  }t |td tt j|dgdd}ddtfddtfddtfg}||ks+J d S )Nr   r   rF   r+   r   r   r   )r   r(   r6   r7   r   r   r   r   r   r   r   test_digraph_ignore2   r=   z TestEdgeBFS.test_digraph_ignore2c              	   C   sr   t | j}tt j|| jdd}dddtfdddtfdddtfdddtfdddtfdddtfg}||ks7J d S rE   )r   rA   r   r   r   r   r   r   r   r   r   r   test_multidigraph_ignore   rD   z$TestEdgeBFS.test_multidigraph_ignoreN)__name__
__module____qualname__classmethodr   r   r"   r$   r)   r1   r2   r4   r8   r;   r<   r@   rB   rC   rG   rH   rI   r   r   r   r   r      s&    
r   )r-   networkxr   %networkx.algorithms.traversal.edgedfsr   r   r   r   r   r   r   <module>   s    