o
    3ήc                     @   s2   d Z ddlZddlZddlmZ G dd dZdS )zVUnit tests for the :mod:`networkx.algorithms.approximation.distance_measures` module.
    N)diameterc                   @   sP   e Zd Z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 )TestDiameterzUnit tests for the approximate diameter function
    :func:`~networkx.algorithms.approximation.distance_measures.diameter`.
    c                 C   sF   t  }tjt jdd t| W d   dS 1 sw   Y  dS )zTest empty graph.z"Expected non-empty NetworkX graph!matchN)nx
null_graphpytestraisesNetworkXErrorr   )selfG r   e/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/approximation/tests/test_distance_measures.pytest_null_graph   s   
"zTestDiameter.test_null_graphc                 C   sT   t d}|dd tjt jdd t| W d   dS 1 s#w   Y  dS )z&Test an undirected disconnected graph.
         zGraph not connected.r   N)r   
path_graphremove_edger   r	   r
   r   r   graphr   r   r   test_undirected_non_connected   s
   

"z*TestDiameter.test_undirected_non_connectedc                 C   sP   t jdt  d}tjt jdd t| W d   dS 1 s!w   Y  dS )z-Test a directed non strongly connected graph.r   create_usingzDiGraph not strongly connected.r   N)r   r   DiGraphr   r	   r
   r   r   r   r   r   $test_directed_non_strongly_connected   s   
"z1TestDiameter.test_directed_non_strongly_connectedc                 C      t d}t|dksJ dS )z!Test a complete undirected graph.r      N)r   complete_graphr   r   r   r   r   test_complete_undirected_graph$      
z+TestDiameter.test_complete_undirected_graphc                 C   s&   t jdt  d}t|dksJ dS )zTest a complete directed graph.r   r   r   N)r   r   r   r   r   r   r   r   test_complete_directed_graph)   s   z)TestDiameter.test_complete_directed_graphc                 C   r   )z,Test an undirected path graph with 10 nodes.r   	   N)r   r   r   r   r   r   r   test_undirected_path_graph.   r    z'TestDiameter.test_undirected_path_graphc                 C   s"   t d }t|dksJ dS )z)Test a directed path graph with 10 nodes.r   r"   N)r   r   to_directedr   r   r   r   r   test_directed_path_graph3   s   z%TestDiameter.test_directed_path_graphc                 C   s&   t  }|d t|dksJ dS )z(Test a graph which contains just a node.r   r   N)r   Graphadd_noder   r   r   r   r   test_single_node8   s   
zTestDiameter.test_single_nodeN)__name__
__module____qualname____doc__r   r   r   r   r!   r#   r%   r(   r   r   r   r   r   
   s    r   )r,   r   networkxr   !networkx.algorithms.approximationr   r   r   r   r   r   <module>   s
    