Ë
    D^(h‹  ã                   ó  — 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  G d„ d«      Zd„ Zd„ Zej"                  j%                  d	 ej
                  «        ej&                  d
g«      f«      d„ «       Z G d„ d«      Z G d„ d«      Zy)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                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestGeneratorsDirectedc                 óÈ   — t        d«       t        dd«       t        d«       t        d«       t        dd¬«       t        ddd¬«       t        dd¬«       t        dd¬«       y )Néd   ç      à?é*   ©Úseed)r   r   r   r
   ©Úselfs    úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/generators/tests/test_directed.pyÚtest_smoke_test_random_graphsz4TestGeneratorsDirected.test_smoke_test_random_graphs   sL   € Ü�ŒÜ�#�sÔÜ�#ŒÜ˜Ôä�˜2ÕÜ�#�s Õ$Ü�#˜BÕÜ˜ 2Ö&ó    c                 ó®  — 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        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        ddd¬«      }t        ddt        «       d¬«      }t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        dd¬«      }t        dt        «       d¬«      }t        |j                  «       «      t        |j                  «       «      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¬«       y )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×&Ñ&¬°#ÄEÃGÕLÜ�‰”b×&Ñ&¬	°3¸Ì%Ë'ÕRÜ�‰”b×&Ñ&¬	°3ÄUÃWÕMÜ�S˜qÔ!ˆÜ�c¬«¸QÔ?ˆÜ�a—g‘g“iÓ ¤F¨2¯8©8«:Ó$6Ò6Ð6Ð6Ü�c˜3 QÔ'ˆÜ�s˜C¬l«nÀ1ÔEˆÜ�a—g‘g“iÓ ¤F¨2¯8©8«:Ó$6Ò6Ð6Ð6Ü�c Ô"ˆÜ�s¬«¸aÔ@ˆÜ�a—g‘g“iÓ ¤F¨2¯8©8«:Ó$6Ò6Ð6Ð6äØØØØØØÜŸ.™.¨¼ÔFØô	
ˆô 	�‰”jÔ"2°C¸¸cÀ3ÔGÜ�‰”jÔ"2°C¸tÕDÜ�‰”jÔ"2°C¸dÕCÜ�‰”jÔ"2°C¸tÖDr   c                 ób  — t        j                  «       }|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 ‚y )Nr   c                 ó   — | S ©N© )Úxs    r   Úkernelz6TestGeneratorsDirected.test_parameters.<locals>.kernel@   s   € ØˆHr   r   )r2   r   )r$   ÚDiGraphÚadd_nodeÚis_isomorphicr   r   r   )r   r*   r2   s      r   Útest_parametersz&TestGeneratorsDirected.test_parameters<   s�   € Ü�J‰J‹LˆØ	�
‰
�1Œò	ô ×Ñ¤¨£¨QÔ/Ð/Ð/Ü×Ñ¤¨°6Ô :¸AÔ>Ð>Ð>Ü×Ñ¤	¨!£¨aÔ0Ð0Ð0Ü×Ñ¤	¨!¨SÓ 1°1Ô5Ð5Ñ5r   N)Ú__name__Ú
__module__Ú__qualname__r   r,   r6   r0   r   r   r   r      s   „ ò	'òEó:
6r   r   c                  óø   — t        j                  t        d¬«      5  t        dd¬«       d d d «       t        j                  t        d¬«      5  t        dd¬«       d d d «       y # 1 sw Y   Œ;xY w# 1 sw Y   y xY w)Nzdelta_in must be >= 0.©Úmatché
   éÿÿÿÿ)r   zdelta_out must be >= 0.)r    )r"   r#   r)   r
   r0   r   r   Ú$test_scale_free_graph_negative_deltar?   I   sc   € Ü	�‰”zÐ)AÔ	Bñ *Ü˜ bÕ)÷*ä	�‰”zÐ)BÔ	Cñ +Ü˜ rÕ*÷+ð +÷*ð *ú÷+ð +ús   œA$ÁA0Á$A-Á0A9c                  óŒ   — t        g d¢«      } t        d| ¬«      }t        |«      dk(  sJ ‚t        |j                  «      dk(  sJ ‚y )N))ÚaÚb)rB   Úc)rC   rA   é   ©r!   )r   r
   Úlenr'   )r*   Úss     r   Útest_non_numeric_orderingrH   P   s?   € ÜÒ9Ó:€AÜ˜¨!Ô,€AÜˆq‹6�QŠ;Ðˆ;Üˆq�w‰w‹<˜1ÒÐÑr   Úig)r   r   c                 óŽ   — t        j                  t        j                  «      5  t	        d| ¬«       d d d «       y # 1 sw Y   y xY w)Nr   rE   )r"   r#   r$   r%   r
   )rI   s    r   Ú)test_scale_free_graph_initial_graph_kwargrK   W   s3   € ä	�‰”r×'Ñ'Ó	(ñ 0Ü˜¨BÕ/÷0÷ 0ñ 0ús	   ¤;»Ac                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTestRandomKOutGraphz_Unit tests for the
    :func:`~networkx.generators.directed.random_k_out_graph` function.

    c                 óÚ   ‡— d}dŠd}t        |‰|«      }t        ˆfd„|j                  «       D «       «      sJ ‚t        |‰|d¬«      }t        ˆfd„|j                  «       D «       «      sJ ‚y)	ú2Tests that the generated graph is `k`-out-regular.r=   rD   r   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   ©Ú.0ÚvÚdÚks      €r   ú	<genexpr>z6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>i   ó   øè ø€ Ò5™d˜a �1˜•6Ñ5ùó   ƒr   r   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   z6TestRandomKOutGraph.test_regularity.<locals>.<genexpr>k   rW   rX   N)r   ÚallÚ
out_degree)r   Únr   r*   rU   s       @r   Útest_regularityz#TestRandomKOutGraph.test_regularityc   sd   ø€ àˆØˆØˆÜ˜q ! UÓ+ˆÜÓ5 a§l¡l£nÔ5Ô5Ð5Ð5Ü˜q ! U°Ô4ˆÜÓ5 a§l¡l£nÔ5Ô5Ð5Ñ5r   c                 ób   — d}d}d}t        |||d¬«      }t        j                  |«      dk(  sJ ‚y)ú Tests for forbidding self-loops.r=   rD   r   F©Ú
self_loopsr   N)r   r$   Únumber_of_selfloops)r   r\   rU   r   r*   s        r   Útest_no_self_loopsz&TestRandomKOutGraph.test_no_self_loopsm   s:   € àˆØˆØˆÜ˜q ! U°uÔ=ˆÜ×%Ñ% aÓ(¨AÒ-Ð-Ñ-r   c                 ó~   — t        j                  t        d¬«      5  t        ddd«       d d d «       y # 1 sw Y   y xY w)Nzalpha must be positiver;   r=   rD   r>   )r"   r#   r)   r   r   s    r   Útest_negative_alphaz'TestRandomKOutGraph.test_negative_alphau   s2   € Ü�]‰]œ:Ð-EÔFñ 	*Ü˜r 1 bÔ)÷	*÷ 	*ñ 	*ús   œ3³<N)r7   r8   r9   Ú__doc__r]   rc   re   r0   r   r   rM   rM   ]   s   „ ñò
6ò.ó*r   rM   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestUniformRandomKOutGraphzkUnit tests for the
    :func:`~networkx.generators.directed.random_uniform_k_out_graph`
    function.

    c                 óÒ   ‡— d}dŠt        |‰«      }t        ˆfd„|j                  «       D «       «      sJ ‚t        |‰d¬«      }t        ˆfd„|j                  «       D «       «      sJ ‚y)rO   r=   rD   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   z=TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>†   rW   rX   r   r   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   z=TestUniformRandomKOutGraph.test_regularity.<locals>.<genexpr>ˆ   rW   rX   N)r	   rZ   r[   ©r   r\   r*   rU   s      @r   r]   z*TestUniformRandomKOutGraph.test_regularity�   s[   ø€ àˆØˆÜ& q¨!Ó,ˆÜÓ5 a§l¡l£nÔ5Ô5Ð5Ð5Ü& q¨!°"Ô5ˆÜÓ5 a§l¡l£nÔ5Ô5Ð5Ñ5r   c                 ó¦   ‡— d}dŠt        |‰d¬«      }t        j                  |«      dk(  sJ ‚t        ˆfd„|j	                  «       D «       «      sJ ‚y)r_   r=   rD   Fr`   r   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   z@TestUniformRandomKOutGraph.test_no_self_loops.<locals>.<genexpr>�   rW   rX   N)r	   r$   rb   rZ   r[   rl   s      @r   rc   z-TestUniformRandomKOutGraph.test_no_self_loopsŠ   sN   ø€ àˆØˆÜ& q¨!¸Ô>ˆÜ×%Ñ% aÓ(¨AÒ-Ð-Ð-ÜÓ5 a§l¡l£nÔ5Ô5Ð5Ñ5r   c                 ó8  ‡— d}dŠt        |‰d¬«      }|j                  «       sJ ‚t        ˆfd„|j                  «       D «       «      sJ ‚d}dŠt        |‰dd¬«      }t	        j
                  |«      d	k(  sJ ‚t        ˆfd
„|j                  «       D «       «      sJ ‚y )Nr=   rD   T©Úwith_replacementc              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   zCTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>—   rW   rX   é	   F)rq   ra   r   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   zCTestUniformRandomKOutGraph.test_with_replacement.<locals>.<genexpr>œ   rW   rX   )r	   Úis_multigraphrZ   r[   r$   rb   rl   s      @r   Útest_with_replacementz0TestUniformRandomKOutGraph.test_with_replacement’   s“   ø€ ØˆØˆÜ& q¨!¸dÔCˆØ�‰Ô Ð Ð ÜÓ5 a§l¡l£nÔ5Ô5Ð5Ð5ØˆØˆÜ& q¨!¸eÐPUÔVˆÜ×%Ñ% aÓ(¨AÒ-Ð-Ð-ÜÓ5 a§l¡l£nÔ5Ô5Ð5Ñ5r   c                 ó–   ‡— d}dŠt        |‰d¬«      }|j                  «       rJ ‚t        ˆfd„|j                  «       D «       «      sJ ‚y )Nr=   rD   Frp   c              3   ó.   •K  — | ]  \  }}|‰k(  –— Œ y ­wr/   r0   rQ   s      €r   rV   zFTestUniformRandomKOutGraph.test_without_replacement.<locals>.<genexpr>£   rW   rX   )r	   ru   rZ   r[   rl   s      @r   Útest_without_replacementz3TestUniformRandomKOutGraph.test_without_replacementž   sE   ø€ ØˆØˆÜ& q¨!¸eÔDˆØ—?‘?Ô$Ð$Ð$ÜÓ5 a§l¡l£nÔ5Ô5Ð5Ñ5r   N)r7   r8   r9   rf   r]   rc   rv   ry   r0   r   r   rh   rh   z   s   „ ñò6ò6ò
6ó6r   rh   )rf   r"   Únetworkxr$   Únetworkx.classesr   r   Únetworkx.generators.directedr   r   r   r   r	   r
   r   r?   rH   ÚmarkÚparametrizer3   rK   rM   rh   r0   r   r   ú<module>r      sˆ   ðñó ã ß 0÷÷ ÷36ñ 36òl+òð ‡�×Ñ˜  §¡£
¨J¨B¯J©J¸°xÓ,@ÐAÓBñ0ó Cð0÷
*ñ *÷:)6ò )6r   