o
    ]Zh                     @   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J t|jddddddifddddifgks5J d S )Nr         Tdataweight      ?)nxDiGraphadd_edgestochastic_graphZis_isomorphicsortededgesselfGS r   X/var/www/auris/lib/python3.10/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s3J 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   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s1J d S )	Nr   r   r   r   Tr   r   r   r   r   r   r   r   test_arbitrary_weights!   s   
z*TestStochasticGraph.test_arbitrary_weightsc                 C   sd   t  }|g d t |}ddi}t|jdddd|fdd|fdd|fdd|fgks0J d S )	N)r   r   r   r   r   r   r   g      ?Tr   r   r   r   )r	   ZMultiDiGraphZadd_edges_fromr   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s1J dS )	z3Smoke test: ensure ZeroDivisionError is not raised.r   r   r   r   Tr   r   Nr   r   r   r   r   test_zero_weights7   s   
z%TestStochasticGraph.test_zero_weightsc                 C   @   t tj tt  W d    d S 1 sw   Y  d S N)pytestraisesr	   NetworkXNotImplementedr   ZGraphr   r   r   r   test_graph_disallowedB      "z)TestStochasticGraph.test_graph_disallowedc                 C   r    r!   )r"   r#   r	   r$   r   Z
MultiGraphr%   r   r   r   test_multigraph_disallowedF   r'   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    