
    fi~                     Z   d Z ddlZddlZddlmZmZ ddlmZm	Z	m
Z
mZmZmZmZmZ 	 ddlZdZn# e$ r dZY nw xY w G d d          Zd	 Zd
 Zej                            d ej                     ej        dg          f          d             Z G d d          Z G d d          ZdS )z:Generators - Directed Graphs
----------------------------
    N)GraphMultiDiGraph)_random_k_out_graph_numpy_random_k_out_graph_pythongn_graph	gnc_graph	gnr_graphrandom_k_out_graphrandom_uniform_k_out_graphscale_free_graphTFc                        e Zd Zd Zd Zd ZdS )TestGeneratorsDirectedc                 
   t          d           t          dd           t          d           t          d           t          dd           t          ddd           t          dd           t          dd           d S )Nd         ?*   seed)r   r	   r   r   selfs    /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/generators/tests/test_directed.pytest_smoke_test_random_graphsz4TestGeneratorsDirected.test_smoke_test_random_graphs   s    #s#2#s$$$$#B2&&&&&&    c                 n   t          j        t          j        t          dt                                 t          j        t          j        t          ddt                                 t          j        t          j        t          dt                                 t	          dd          }t	          dt                      d          }t          |
                                          t          |
                                          k    sJ t          ddd          }t          ddt                      d          }t          |
                                          t          |
                                          k    sJ t          dd          }t          dt                      d          }t          |
                                          t          |
                                          k    sJ t          dddddd	t          j        d
t                    d          }t          j        t          t          dddd           t          j        t          t          dd           t          j        t          t          dd           t          j        t          t          dd           d S )Nr   )create_usingr      r   )r   r   g333333?g?g?   )alphabetagammadelta_in	delta_outinitial_graphr   g333333ӿ)r   )r   )r    )pytestraisesnxNetworkXErrorr   r   r	   r   r   sortededgesr   cycle_graph
ValueError)r   GMGs      r   #test_create_using_keyword_argumentsz:TestGeneratorsDirected.test_create_using_keyword_arguments(   s%   b&#EGGLLLLb&	3%''RRRRb&	3UWWMMMMSq!!!cQ???aggii  F288::$6$66666c3Q'''sClnn1EEEaggii  F288::$6$66666c"""sa@@@aggii  F288::$6$66666.FFF	
 	
 	
 	j"2Cc3GGGj"2CtDDDDj"2CdCCCCj"2CtDDDDDDr   c                    t          j                    }|                    d           d }t          j        t	          d          |          sJ t          j        t	          d|          |          sJ t          j        t          d          |          sJ t          j        t          dd          |          sJ d S )Nr   c                     | S N )xs    r   kernelz6TestGeneratorsDirected.test_parameters.<locals>.kernelI   s    Hr   r   )r4   r   )r&   DiGraphadd_nodeis_isomorphicr   r   r	   )r   r,   r4   s      r   test_parametersz&TestGeneratorsDirected.test_parametersE   s    JLL	

1	 	 	 Q/////6 : : :A>>>>>	!a00000	!S 1 115555555r   N)__name__
__module____qualname__r   r.   r8   r2   r   r   r   r      sD        	' 	' 	'E E E:
6 
6 
6 
6 
6r   r   c                     t          j        t          d          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nzdelta_in must be >= 0.match
   )r!   zdelta_out must be >= 0.)r"   )r$   r%   r+   r   r2   r   r   $test_scale_free_graph_negative_deltarA   R   s   	z)A	B	B	B * *b))))* * * * * * * * * * * * * * *	z)B	C	C	C + +r****+ + + + + + + + + + + + + + + + + +s   :>> A??BBc                      t          g d          } t          d|           }t          |          dk    sJ t          |j                  dk    sJ d S )N))ab)rD   c)rE   rC      r#   )r   r   lenr)   )r,   ss     r   test_non_numeric_orderingrJ   Y   sZ    999::A!,,,Aq66Q;;;;qw<<1r   ig)r   r   c                     t          j        t          j                  5  t	          d|            d d d            d S # 1 swxY w Y   d S )Nr   rG   )r$   r%   r&   r'   r   )rK   s    r   )test_scale_free_graph_initial_graph_kwargrM   `   s    	r'	(	( 0 0B////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   >AAc                       e Zd ZdZej                            deef          d             Z	ej                            deef          d             Z
d ZdS )TestRandomKOutGraphz_Unit tests for the
    :func:`~networkx.generators.directed.random_k_out_graph` function.

    fc                 R   |t           k    rt          st          j                     d}dd} |||          }t	          fd|                                D                       sJ  |||d          }t	          fd|                                D                       sJ dS )	2Tests that the generated graph is `k`-out-regular.r?   rF   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   .0vdks      r   	<genexpr>z6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>w   +      55da16555555r   r   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   z6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>y   rZ   r   N)r   	has_numpyr$   skipall
out_degree)r   rP   nr   r,   rX   s        @r   test_regularityz#TestRandomKOutGraph.test_regularityl   s    
 ***I*KMMMAaENN5555allnn55555555AaE###5555allnn5555555555r   c                     |t           k    rt          st          j                     d}d}d} ||||d          }t	          j        |          dk    sJ dS ) Tests for forbidding self-loops.r?   rF   r   F
self_loopsr   N)r   r\   r$   r]   r&   number_of_selfloops)r   rP   r`   rX   r   r,   s         r   test_no_self_loopsz&TestRandomKOutGraph.test_no_self_loops{   si    
 ***I*KMMMAaEe,,,%a((A------r   c                     t          j        t          d          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nzalpha must be positiver=   r?   rF   r@   )r$   r%   r+   r
   r   s    r   test_negative_alphaz'TestRandomKOutGraph.test_negative_alpha   s    ]:-EFFF 	* 	*r1b)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   ;??N)r9   r:   r;   __doc__r$   markparametrizer   r   ra   rg   ri   r2   r   r   rO   rO   f   s         
 [')CD 
6 
6 
6 [')CD . . .* * * * *r   rO   c                   *    e Zd ZdZd Zd Zd Zd ZdS )TestUniformRandomKOutGraphzkUnit tests for the
    :func:`~networkx.generators.directed.random_uniform_k_out_graph`
    function.

    c                    d}dt          |          }t          fd|                                D                       sJ t          |d          }t          fd|                                D                       sJ dS )rR   r?   rF   c              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   z=TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>   rZ   r   r   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   z=TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>   rZ   r   N)r   r^   r_   r   r`   r,   rX   s      @r   ra   z*TestUniformRandomKOutGraph.test_regularity   s    &q!,,5555allnn55555555&q!"5555555allnn5555555555r   c                     d}dt          |d          }t          j        |          dk    sJ t          fd|                                D                       sJ dS )rc   r?   rF   Frd   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   z@TestUniformRandomKOutGraph.test_no_self_loops.<locals>.<genexpr>   rZ   r   N)r   r&   rf   r^   r_   rr   s      @r   rg   z-TestUniformRandomKOutGraph.test_no_self_loops   st    &q!>>>%a((A----5555allnn5555555555r   c                 ~   d}dt          |d          }|                                sJ t          fd|                                D                       sJ d}dt          |dd          }t	          j        |          d	k    sJ t          fd
|                                D                       sJ d S )Nr?   rF   Twith_replacementc              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   zCTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>   rZ   r   	   F)rw   re   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   zCTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>   rZ   r   )r   is_multigraphr^   r_   r&   rf   rr   s      @r   test_with_replacementz0TestUniformRandomKOutGraph.test_with_replacement   s    &q!dCCC     5555allnn55555555&q!ePUVVV%a((A----5555allnn5555555555r   c                     d}dt          |d          }|                                rJ t          fd|                                D                       sJ d S )Nr?   rF   Frv   c              3   *   K   | ]\  }}|k    V  d S r1   r2   rT   s      r   rY   zFTestUniformRandomKOutGraph.test_without_replacement.<locals>.<genexpr>   rZ   r   )r   r{   r^   r_   rr   s      @r   test_without_replacementz3TestUniformRandomKOutGraph.test_without_replacement   sn    &q!eDDD??$$$$$5555allnn5555555555r   N)r9   r:   r;   rj   ra   rg   r|   r   r2   r   r   rn   rn      sZ         6 6 66 6 6
6 
6 
66 6 6 6 6r   rn   )rj   r$   networkxr&   networkx.classesr   r   networkx.generators.directedr   r   r   r   r	   r
   r   r   numpynpr\   ImportErrorr   rA   rJ   rk   rl   r5   rM   rO   rn   r2   r   r   <module>r      s         0 0 0 0 0 0 0 0	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	II   III36 36 36 36 36 36 36 36l+ + +   

JBJx,@,@ABB0 0 CB0
$* $* $* $* $* $* $* $*N)6 )6 )6 )6 )6 )6 )6 )6 )6 )6s   / 99