U
    ?h                     @   s&   d Z ddlZddlZG dd dZdS )z@Unit tests for the :mod:`networkx.generators.stochastic` module.    Nc                   @   sH   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S )TestStochasticGraphz?Unit tests for the :func:`~networkx.stochastic_graph` function.c                 C   sn   t  }|dd |dd t |}t ||s:tt|jddddddifddddifgksjtd S )Nr         Tdataweight      ?)nxDiGraphadd_edgestochastic_graphZis_isomorphicAssertionErrorsortededgesselfGS r   [/var/www/html/venv/lib/python3.8/site-packages/networkx/generators/tests/test_stochastic.pytest_default_weights
   s    
z(TestStochasticGraph.test_default_weightsc                 C   sj   t  }|jdddd |jdddd t j|dd t|jddddd	d
ifddd	d
ifgksftdS )z<Tests for an in-place reweighting of the edges of the graph.r   r   r   r   F)copyTr   r   r   Nr	   r
   r   r   r   r   r   )r   r   r   r   r   test_in_place   s    z!TestStochasticGraph.test_in_placec                 C   sf   t  }|jdddd |jdddd t |}t|jddddddifddddifgksbtd S )	Nr   r   r   r   Tr   r   r   r   r   r   r   r   test_arbitrary_weights    s    
z*TestStochasticGraph.test_arbitrary_weightsc                 C   sh   t  }|ddddg t |}ddi}t|jdddd|fdd|fdd	|fdd	|fgksdtd S )
N)r   r   )r   r   r   g      ?Tr   r   r   r   )r	   ZMultiDiGraphZadd_edges_fromr   r   r   r   )r   r   r   dr   r   r   test_multidigraph*   s    
z%TestStochasticGraph.test_multidigraphc                 C   sf   t  }|jdddd |jdddd t |}t|jddddddifddddifgksbtdS )	z3Smoke test: ensure ZeroDivisionError is not raised.r   r   r   r   Tr   r   Nr   r   r   r   r   test_zero_weights6   s    
z%TestStochasticGraph.test_zero_weightsc              	   C   s*   t tj tt  W 5 Q R X d S N)pytestraisesr	   NetworkXNotImplementedr   ZGraphr   r   r   r   test_graph_disallowedA   s    z)TestStochasticGraph.test_graph_disallowedc              	   C   s*   t tj tt  W 5 Q R X d S r   )r    r!   r	   r"   r   Z
MultiGraphr#   r   r   r   test_multigraph_disallowedE   s    z.TestStochasticGraph.test_multigraph_disallowedN)__name__
__module____qualname____doc__r   r   r   r   r   r$   r%   r   r   r   r   r      s   
r   )r)   r    Znetworkxr	   r   r   r   r   r   <module>   s   