
    h                        S r SSKrSSKrSSKJrJr  SSKJrJ	r	J
r
JrJrJr   " S S5      rS rS r\R"                  R%                  S	\R
                  " 5       \R&                  " S
/5      45      S 5       r " S S5      r " S S5      rg)z:Generators - Directed Graphs
----------------------------
    N)GraphMultiDiGraph)gn_graph	gnc_graph	gnr_graphrandom_k_out_graphrandom_uniform_k_out_graphscale_free_graphc                   &    \ rS rSrS rS rS rSrg)TestGeneratorsDirected   c                     [        S5        [        SS5        [        S5        [        S5        [        SSS9  [        SSSS9  [        SSS9  [        SSS9  g )Nd         ?*   seed)r   r   r   r
   selfs    Y/var/www/html/env/lib/python3.13/site-packages/networkx/generators/tests/test_directed.pytest_smoke_test_random_graphs4TestGeneratorsDirected.test_smoke_test_random_graphs   sL    #s#2#s$#B2&    c                 p   [         R                  " [        R                  [        S[        5       S9  [         R                  " [        R                  [        SS[        5       S9  [         R                  " [        R                  [        S[        5       S9  [	        SSS9n[	        S[        5       SS9n[        UR                  5       5      [        UR                  5       5      :X  d   e[        SSSS9n[        SS[        5       SS9n[        UR                  5       5      [        UR                  5       5      :X  d   e[        SSS9n[        S[        5       SS9n[        UR                  5       5      [        UR                  5       5      :X  d   e[        SSSSSS	[        R                  " S
[        S9SS9n[         R                  " [        [        SSSS5        [         R                  " [        [        SSS9  [         R                  " [        [        SSS9  [         R                  " [        [        SSS9  g )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_arguments:TestGeneratorsDirected.test_create_using_keyword_arguments   s   b&&#EGLb&&	3%'Rb&&	3UWMSq!cQ?aggi F288:$6666c3Q'sCln1Eaggi F288:$6666c"sa@aggi F288:$6666..F	
 	j"2Cc3Gj"2CtDj"2CdCj"2CtDr   c                    [         R                  " 5       nUR                  S5        S n[         R                  " [	        S5      U5      (       d   e[         R                  " [	        SUS9U5      (       d   e[         R                  " [        S5      U5      (       d   e[         R                  " [        SS5      U5      (       d   eg )Nr   c                     U $ N )xs    r   kernel6TestGeneratorsDirected.test_parameters.<locals>.kernel@   s    Hr   r   )r5   r   )r&   DiGraphadd_nodeis_isomorphicr   r   r   )r   r,   r5   s      r   test_parameters&TestGeneratorsDirected.test_parameters<   s    JJL	

1	 Q////6 :A>>>>	!a0000	!S 115555r   r3   N)__name__
__module____qualname____firstlineno__r   r.   r:   __static_attributes__r3   r   r   r   r      s    	'E:
6r   r   c                      [         R                  " [        SS9   [        SSS9  S S S 5        [         R                  " [        SS9   [        SSS9  S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)Nzdelta_in must be >= 0.match
   )r!   zdelta_out must be >= 0.)r"   )r$   r%   r+   r
   r3   r   r   $test_scale_free_graph_negative_deltarF   I   sT    	z)A	Bb) 
C	z)B	Cr* 
D	C 
C	B	C	Cs   AA+
A(+
A9c                      [        / SQ5      n [        SU S9n[        U5      S:X  d   e[        UR                  5      S:X  d   eg )N))ab)rI   c)rJ   rH      r#   )r   r
   lenr)   )r,   ss     r   test_non_numeric_orderingrO   P   s?    9:A!,Aq6Q;;qww<1r   ig)r   r   c                     [         R                  " [        R                  5         [	        SU S9  S S S 5        g ! , (       d  f       g = f)Nr   rL   )r$   r%   r&   r'   r
   )rP   s    r   )test_scale_free_graph_initial_graph_kwargrR   W   s*    	r''	(B/ 
)	(	(s	   9
Ac                   *    \ rS rSrSrS rS rS rSrg)TestRandomKOutGraph]   zWUnit tests for the
:func:`~networkx.generators.directed.random_k_out_graph` function.

c                    ^ SnSmSn[        UTU5      n[        U4S jUR                  5        5       5      (       d   e[        UTUSS9n[        U4S jUR                  5        5       5      (       d   eg)	2Tests that the generated graph is `k`-out-regular.rD   rK   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   .0vdks      r   	<genexpr>6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>i        5nda16n   r   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   r_   k   r`   ra   N)r   all
out_degree)r   nr   r,   r]   s       @r   test_regularity#TestRandomKOutGraph.test_regularityc   sj    q!U+5alln55555q!U45alln55555r   c                 ^    SnSnSn[        XUSS9n[        R                  " U5      S:X  d   eg) Tests for forbidding self-loops.rD   rK   r   F
self_loopsr   N)r   r&   number_of_selfloops)r   re   r]   r   r,   s        r   test_no_self_loops&TestRandomKOutGraph.test_no_self_loopsm   s8    qUu=%%a(A---r   c                     [         R                  " [        SS9   [        SSS5        S S S 5        g ! , (       d  f       g = f)Nzalpha must be positiverB   rD   rK   rE   )r$   r%   r+   r   r   s    r   test_negative_alpha'TestRandomKOutGraph.test_negative_alphau   s*    ]]:-EFr1b) GFFs   1
?r3   N)	r<   r=   r>   r?   __doc__rf   rm   rp   r@   r3   r   r   rT   rT   ]   s    
6.*r   rT   c                   0    \ rS rSrSrS rS rS rS rSr	g)	TestUniformRandomKOutGraphz   z_Unit tests for the
:func:`~networkx.generators.directed.random_uniform_k_out_graph`
function.

c                    ^ SnSm[        UT5      n[        U4S jUR                  5        5       5      (       d   e[        UTSS9n[        U4S jUR                  5        5       5      (       d   eg)rW   rD   rK   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   =TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>   r`   ra   r   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   rx      r`   ra   N)r	   rc   rd   r   re   r,   r]   s      @r   rf   *TestUniformRandomKOutGraph.test_regularity   sa    &q!,5alln55555&q!"55alln55555r   c                    ^ SnSm[        UTSS9n[        R                  " U5      S:X  d   e[        U4S jUR	                  5        5       5      (       d   eg)ri   rD   rK   Frj   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   @TestUniformRandomKOutGraph.test_no_self_loops.<locals>.<genexpr>   r`   ra   N)r	   r&   rl   rc   rd   rz   s      @r   rm   -TestUniformRandomKOutGraph.test_no_self_loops   sQ    &q!>%%a(A---5alln55555r   c                 R  ^ SnSm[        UTSS9nUR                  5       (       d   e[        U4S jUR                  5        5       5      (       d   eSnSm[        UTSSS9n[        R
                  " U5      S	:X  d   e[        U4S
 jUR                  5        5       5      (       d   eg )NrD   rK   Twith_replacementc              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   CTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>   r`   ra   	   F)r   rk   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   r      r`   ra   )r	   is_multigraphrc   rd   r&   rl   rz   s      @r   test_with_replacement0TestUniformRandomKOutGraph.test_with_replacement   s    &q!dC    5alln55555&q!ePUV%%a(A---5alln55555r   c                    ^ SnSm[        UTSS9nUR                  5       (       a   e[        U4S jUR                  5        5       5      (       d   eg )NrD   rK   Fr   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr2   r3   rY   s      r   r^   FTestUniformRandomKOutGraph.test_without_replacement.<locals>.<genexpr>   r`   ra   )r	   r   rc   rd   rz   s      @r   test_without_replacement3TestUniformRandomKOutGraph.test_without_replacement   sK    &q!eD??$$$$5alln55555r   r3   N)
r<   r=   r>   r?   rr   rf   rm   r   r   r@   r3   r   r   rt   rt   z   s    66
66r   rt   )rr   r$   networkxr&   networkx.classesr   r   networkx.generators.directedr   r   r   r   r	   r
   r   rF   rO   markparametrizer7   rR   rT   rt   r3   r   r   <module>r      s      0 36 36l+ 
BJJx,@AB0 C0
* *:)6 )6r   