
    Pi                     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    {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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         ej        eej        	                    e
 d                    eg          d             Z ej        g d          d             Zd	 Zd
 Zd Zd ZdS )TestRandomKOutGraphz_Unit tests for the
    :func:`~networkx.generators.directed.random_k_out_graph` function.

    znumpy not installed)reason)marks)paramsc              #      K   |j         V  d S r1   paramr   requests     r   fzTestRandomKOutGraph.fl   s       mr   ))r?   rF   r   )      r   )   r   r?   c              #      K   |j         V  d S r1   rT   rV   s     r   nkalphazTestRandomKOutGraph.nkalphax   s      mr   c                 v    |\  }} |||d          }t          fd|j        D                       sJ dS )z1Test that the generated graph is `k`-out-regular.r   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   .0_dks      r   	<genexpr>z6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>   +      33da16333333r   N)all
out_degree)r   rX   r]   nr   r,   rd   s         @r   test_regularityz#TestRandomKOutGraph.test_regularity|   sW    1eAaE###3333al3333333333r   c                 f    |\  }}} ||||dd          }t          j        |          dk    sJ dS )zTest for forbidding self-loops.Fr   )
self_loopsr   r   N)r&   number_of_selfloops)r   rX   r]   ri   rd   r   r,   s          r   test_no_self_loopsz&TestRandomKOutGraph.test_no_self_loops   sI    1eAaEe"555%a((A------r   c                     |\  }}t          ||d          }t          |          |k    sJ t          fd|j        D                       sJ dS )zFTest that the interface function `random_k_out_graph` works correctly.r   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   r`   s      r   re   z>TestRandomKOutGraph.test_random_k_out_graph.<locals>.<genexpr>   rf   r   N)r
   rH   rg   rh   )r   r]   ri   r   r,   rd   s        @r   test_random_k_out_graphz+TestRandomKOutGraph.test_random_k_out_graph   sh    1eq!U4441vv{{{{3333al3333333333r   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$   fixturerU   r   markskipif	has_numpyr   rX   r]   rj   rn   rq   rs   r2   r   r   rO   rO   f   s         
 V^FL)k((Y?T(UU   '
     V^???@@@  A@4 4 4. . .4 4 4* * * * *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 )z2Tests that the generated graph is `k`-out-regular.r?   rF   c              3   *   K   | ]\  }}|k    V  d S r1   r2   ra   vrc   rd   s      r   re   z=TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>   +      55da16555555r   r   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   r}   s      r   re   z=TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>   r   r   N)r   rg   rh   r   ri   r,   rd   s      @r   rj   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 )z Tests for forbidding self-loops.r?   rF   F)rl   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   r}   s      r   re   z@TestUniformRandomKOutGraph.test_no_self_loops.<locals>.<genexpr>   r   r   N)r   r&   rm   rg   rh   r   s      @r   rn   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   r}   s      r   re   zCTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>   r   r   	   F)r   rl   r   c              3   *   K   | ]\  }}|k    V  d S r1   r2   r}   s      r   re   zCTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>   r   r   )r   is_multigraphrg   rh   r&   rm   r   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   Fr   c              3   *   K   | ]\  }}|k    V  d S r1   r2   r}   s      r   re   zFTestUniformRandomKOutGraph.test_without_replacement.<locals>.<genexpr>   r   r   )r   r   rg   rh   r   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;   rt   rj   rn   r   r   r2   r   r   rz   rz      sZ         6 6 66 6 6
6 
6 
66 6 6 6 6r   rz   )rt   r$   networkxr&   networkx.classesr   r   networkx.generators.directedr   r   r   r   r	   r
   r   r   numpynprx   ImportErrorr   rA   rJ   rv   parametrizer5   rM   rO   rz   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
+* +* +* +* +* +* +* +*\)6 )6 )6 )6 )6 )6 )6 )6 )6 )6s   / 99