
    sh~                     J   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JrJr   SSKrSr " S S5      rS	 rS
 r\R.                  R1                  S\R
                  " 5       \R2                  " S/5      45      S 5       r " S S5      r " S S5      rg! \ a    Sr Nsf = f)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                   &    \ 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    {/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/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>.kernelI   s    Hr   r   )r7   r   )r(   DiGraphadd_nodeis_isomorphicr   r   r	   )r   r.   r7   s      r   test_parameters&TestGeneratorsDirected.test_parametersE   s    JJL	

1	 Q////6 :A>>>>	!a0000	!S 115555r   r5   N)__name__
__module____qualname____firstlineno__r   r0   r<   __static_attributes__r5   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   r5   r   r   $test_scale_free_graph_negative_deltarH   R   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)rK   c)rL   rJ      r%   )r   r   lenr+   )r.   ss     r   test_non_numeric_orderingrQ   Y   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   rN   )r&   r'   r(   r)   r   )rR   s    r   )test_scale_free_graph_initial_graph_kwargrT   `   s*    	r''	(B/ 
)	(	(s	   9
Ac                       \ rS rSrSr\R                  R                  S\\	45      S 5       r
\R                  R                  S\\	45      S 5       rS rSrg)	TestRandomKOutGraphf   zWUnit tests for the
:func:`~networkx.generators.directed.random_k_out_graph` function.

fc                 4  ^ U[         :X  a   [        (       d  [        R                  " 5         SnSmSnU" UTU5      n[	        U4S jUR                  5        5       5      (       d   eU" 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.rF   rM   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   .0vdks      r   	<genexpr>6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>w        5nda16n   r   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   rb   y   rc   rd   N)r   	has_numpyr&   skipall
out_degree)r   rX   nr    r.   r`   s        @r   test_regularity#TestRandomKOutGraph.test_regularityl   s    
 **IIKKMaEN5alln55555aE#5alln55555r   c                     U[         :X  a   [        (       d  [        R                  " 5         SnSnSnU" X#USS9n[        R
                  " U5      S:X  d   eg) Tests for forbidding self-loops.rF   rM   r   F
self_loopsr   N)r   rf   r&   rg   r(   number_of_selfloops)r   rX   rj   r`   r    r.   s         r   test_no_self_loops&TestRandomKOutGraph.test_no_self_loops{   sP    
 **IIKKMaEe,%%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 positiverD   rF   rM   rG   )r&   r'   r-   r
   r   s    r   test_negative_alpha'TestRandomKOutGraph.test_negative_alpha   s*    ]]:-EFr1b) GFFs   1
?r5   N)r>   r?   r@   rA   __doc__r&   markparametrizer   r   rk   rr   ru   rB   r5   r   r   rV   rV   f   sj    
 [[')CD
6
6 [[')CD..*r   rV   c                   0    \ rS rSrSrS rS rS rS rSr	g)	TestUniformRandomKOutGraph   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)rZ   rF   rM   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   =TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>   rc   rd   r   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   r      rc   rd   N)r   rh   ri   r   rj   r.   r`   s      @r   rk   *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)rn   rF   rM   Fro   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   @TestUniformRandomKOutGraph.test_no_self_loops.<locals>.<genexpr>   rc   rd   N)r   r(   rq   rh   ri   r   s      @r   rr   -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 )NrF   rM   Twith_replacementc              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   CTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>   rc   rd   	   F)r   rp   r   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   r      rc   rd   )r   is_multigraphrh   ri   r(   rq   r   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 )NrF   rM   Fr   c              3   2   >#    U  H  u  pUT:H  v   M     g 7fr4   r5   r\   s      r   ra   FTestUniformRandomKOutGraph.test_without_replacement.<locals>.<genexpr>   rc   rd   )r   r   rh   ri   r   s      @r   test_without_replacement3TestUniformRandomKOutGraph.test_without_replacement   sK    &q!eD??$$$$5alln55555r   r5   N)
r>   r?   r@   rA   rw   rk   rr   r   r   rB   r5   r   r   r{   r{      s    66
66r   r{   )rw   r&   networkxr(   networkx.classesr   r   networkx.generators.directedr   r   r   r   r	   r
   r   r   numpynprf   ImportErrorr   rH   rQ   rx   ry   r9   rT   rV   r{   r5   r   r   <module>r      s      0	 	 	I
36 36l+ 
BJJx,@AB0 C0
$* $*N)6 )6k  Is   B B"!B"