o
    3ήc                     @   s>   d dl Z d dlZd dlmZ d dlmZmZ G dd dZdS )    N)edge_dfs)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!S )"TestEdgeDFSc                 C   s   g d| _ g d| _d S )N)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_edgedfs.pysetup_class   s   
zTestEdgeDFS.setup_classc                 C   s$   t  }tt|}|g ksJ d S )N)nxGraphlistr   )selfGr   r   r   r   
test_empty   s   zTestEdgeDFS.test_emptyc                 C   4   t | j}tt|| j}g d}||ksJ d S )N)r	   r   r   )r   r   )r   r   r   r   r   r   r   r   xx_r   r   r   
test_graph      zTestEdgeDFS.test_graphc                 C   r   )Nr	   r
   r   r   r   DiGraphr   r   r   r   r   r   r   r   test_digraph#   r   zTestEdgeDFS.test_digraphc                 C   s0   t | j}t|| 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,TestEdgeDFS.test_digraph_orientation_invalidc                 C   s8   t | j}tt|| jd d}g d}||ksJ d S )Nr%   r    r!   r   r   r   r   test_digraph_orientation_none.   s   z)TestEdgeDFS.test_digraph_orientation_nonec                 C   sT   t | j}tt|| jdd}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_original4      $z-TestEdgeDFS.test_digraph_orientation_originalc                 C   s@   t  }t |td tt|dg}g d}||ksJ d S )N   r   )r	   r   )r   r   )r   r"   add_pathranger   r   r   r   r   r   test_digraph2:   s
   zTestEdgeDFS.test_digraph2c                 C   sT   t | j}tt|| jdd}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_revA   r/   zTestEdgeDFS.test_digraph_revc                 C   sX   t  }t |td tt|dgdd}ddtfddtfddtfg}||ks*J d S )Nr0   r   r5   r%   r   r   r   )r   r"   r1   r2   r   r   r   r   r   r   r   test_digraph_rev2G   
   zTestEdgeDFS.test_digraph_rev2c                 C   r   )N)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_multigraphN   s   zTestEdgeDFS.test_multigraphc                 C   r   )N)r9   )r   r   r   r:   )r   r   r   )r   r   r   )r   MultiDiGraphr   r   r   r   r   r   r   r   test_multidigraphZ   r   zTestEdgeDFS.test_multidigraphc                 C   sf   t | j}tt|| 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g}||ks1J d S r4   )r   r=   r   r   r   r   r   r   r   r   r   test_multidigraph_rev`      




z!TestEdgeDFS.test_multidigraph_revc                 C   sT   t | j}tt|| jdd}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_ignorel   r/   zTestEdgeDFS.test_digraph_ignorec                 C   sX   t  }t |td tt|dgdd}ddtfddtfddtfg}||ks*J d S )Nr0   r   rB   r%   r   r   r   )r   r"   r1   r2   r   r   r   r   r   r   r   test_digraph_ignore2r   r8   z TestEdgeDFS.test_digraph_ignore2c                 C   sf   t | j}tt|| 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g}||ks1J d S rA   )r   r=   r   r   r   r   r   r   r   r   r   r   test_multidigraph_ignorey   r@   z$TestEdgeDFS.test_multidigraph_ignoreN)__name__
__module____qualname__classmethodr   r   r   r#   r+   r,   r.   r3   r6   r7   r<   r>   r?   rC   rD   rE   r   r   r   r   r      s$    
r   )	r'   networkxr   networkx.algorithmsr   %networkx.algorithms.traversal.edgedfsr   r   r   r   r   r   r   <module>   s
    