ó
    ™“,j   ã            	       ó`  • S SK r S SKr\R                  " S\R                  S9r\R                  " 5       r\R                  \R                  " SSS9R                  5        \R                  " S\R                  S9r\R                  " S\R                  S9r\R                  " / SQ/ S	Q5      r\R                   " S
S\R                  S9r\ R"                  R%                  S\\\\\\/5      S 5       rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S  r'S! r(g)"é    Né   ©Úcreate_usingé
   é*   ©Úseedé   )é   é   r   r   r   r   )r
   r   r   r   r   r
   r   ÚGc                 óž  ^• [        U R                  5      n[        U R                  5      n[        U R                  5      m[        R
                  " U SSSS9  U[        U R                  5      :X  d   eU[        U R                  5      :X  d   eT[        U R                  5      :w  d   eS[        U4S jU R                   5       5      :X  d   eg )Nr   éd   ©ÚnswapÚ	max_triesr	   r
   c              3   ó,   >#   • U  H	  oT;  v •  M     g 7f©N© )Ú.0ÚeÚedgess     €Ú±C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\networkx/algorithms/tests/test_swap.pyÚ	<genexpr>Ú*test_directed_edge_swap.<locals>.<genexpr>   s   øé € Ð4ªG q˜U–NªGùs   ƒ)ÚsetÚ	in_degreeÚ
out_degreer   ÚnxÚdirected_edge_swapÚsum)r   r   r   r   s      @r   Útest_directed_edge_swapr"      s¡   ø€ ä�A—K‘KÓ €IÜ�Q—\‘\Ó"€JÜ�—‘‹L€EÜ×Ò˜! 1°¸!Ò<Øœ˜AŸK™KÓ(Ó(Ð(Ð(Øœ˜QŸ\™\Ó*Ó*Ð*Ð*Ø”C˜Ÿ™“LÓ Ð Ð Ø”Ô4¨A¯GªGÓ4Ó4Ó4Ð4Ñ4ó    c                  óÄ  • [         R                  " [         R                  " S5      R                  5      n [	        U R                  5      n[         R
                  " U SSS9  U[	        U R                  5      :X  d   e[         R
                  " U SSSS9  1 Sk[	        U R                  5      :X  d   e[         R
                  " U SSSS9  U[	        U R                  5      :X  d   eg )Né   r   r   ©r   r   r   r   >   ©r   r   ©r   r
   ©r   r   )r   ÚDiGraphÚ
path_graphr   r   r    )r   r   s     r   Ú*test_directed_edge_swap_undo_previous_swapr,      s¨   € Ü
�
Š
”2—=’= Ó#×)Ñ)Ó*€AÜ�—‘‹L€EÜ×Ò˜! 1°Ò4Ø”C˜Ÿ™“LÓ Ð Ð ä×Ò˜! 1°¸!Ò<Ú#¤s¨1¯7©7£|Ó3Ð3Ð3Ü×Ò˜! 1°¸!Ò<Ø”C˜Ÿ™“LÓ Ð Ñ r#   c                  óà   • Sn [         R                  " / SQ5      n[        R                  " [         R                  U S9   [         R
                  " USSSS9  S S S 5        g ! , (       d  f       g = f)NzUMaximum number of swap attempts \(11\) exceeded before desired swaps achieved \(\d\).))r   r   ©r   r   )r   r   ©r   r
   )r
   r   ©Úmatchr   r   r   )r   r*   ÚpytestÚraisesÚNetworkXAlgorithmErrorr    )r   Úgraphs     r   Ú"test_edge_cases_directed_edge_swapr6   &   sQ   € ð	3ð ô �JŠJÒ?Ó@€EÜ	�Š”r×0Ñ0¸Ó	:Ü
×Ò˜e¨1¸ÀÒC÷ 
;×	:Ö	:ús   ¾AÁ
A-c                  óì   • [         R                  " SS5      n [        S U R                  5        5       5      n[         R                  " U S5      nU[        S U R                  5        5       5      :X  d   eg )NéÈ   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   ©r   ÚnÚds      r   r   Ú(test_double_edge_swap.<locals>.<genexpr>4   ó   é € Ð2¢>™4˜1•Q¢>ùó   ‚é(   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   r=   6   ó   é € Ð:ª>¡4 1�Qª>ùr?   ©r   Úbarabasi_albert_graphÚsortedÚdegreeÚdouble_edge_swap©r5   Údegreesr   s      r   Útest_double_edge_swaprJ   2   s[   € Ü×$Ò$ S¨!Ó,€EÜÑ2 5§<¡<¤>Ó2Ó2€GÜ
×Ò˜E 2Ó&€AØ”fÑ:¨5¯<©<¬>Ó:Ó:Ó:Ð:Ñ:r#   c                  óê   • [         R                  " SS5      n [        S U R                  5        5       5      n[         R                  " U SSS9nU[        S U R                  5        5       5      :X  d   eg )Nr8   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   Ú-test_double_edge_swap_seed.<locals>.<genexpr>;   r>   r?   r@   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   rM   =   rB   r?   rC   rH   s      r   Útest_double_edge_swap_seedrO   9   s]   € Ü×$Ò$ S¨!Ó,€EÜÑ2 5§<¡<¤>Ó2Ó2€GÜ
×Ò˜E 2¨AÑ.€AØ”fÑ:¨5¯<©<¬>Ó:Ó:Ó:Ð:Ñ:r#   c                  ó$  • [         R                  " SS5      n [        S U R                  5        5       5      n[         R                  " U SSS9n[         R
                  " U 5      (       d   eU[        S U R                  5        5       5      :X  d   eg )Nr8   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   Ú2test_connected_double_edge_swap.<locals>.<genexpr>B   r>   r?   r@   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   rR   E   rB   r?   ©r   rD   rE   rF   Úconnected_double_edge_swapÚis_connectedrH   s      r   Útest_connected_double_edge_swaprW   @   sr   € Ü×$Ò$ S¨!Ó,€EÜÑ2 5§<¡<¤>Ó2Ó2€GÜ
×%Ò% e¨R°aÑ8€AÜ�?Š?˜5×!Ñ!Ð!Ð!Ø”fÑ:¨5¯<©<¬>Ó:Ó:Ó:Ð:Ñ:r#   c                  ó&  • [         R                  " SS5      n [        S U R                  5        5       5      n[         R                  " U SSSS9n[         R
                  " U 5      (       d   eU[        S U R                  5        5       5      :X  d   eg )Nr8   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   ÚGtest_connected_double_edge_swap_low_window_threshold.<locals>.<genexpr>J   r>   r?   r@   r   ©Ú_window_thresholdr	   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   rZ   M   rB   r?   rT   rH   s      r   Ú4test_connected_double_edge_swap_low_window_thresholdr^   H   st   € Ü×$Ò$ S¨!Ó,€EÜÑ2 5§<¡<¤>Ó2Ó2€GÜ
×%Ò% e¨RÀ1È1ÑM€AÜ�?Š?˜5×!Ñ!Ð!Ð!Ø”fÑ:¨5¯<©<¬>Ó:Ó:Ó:Ð:Ñ:r#   c                  ó"  • [         R                  " S5      n [        S U R                  5        5       5      n[         R                  " U SSS9n[         R
                  " U 5      (       d   eU[        S U R                  5        5       5      :X  d   eg )Nr@   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   Ú7test_connected_double_edge_swap_star.<locals>.<genexpr>S   r>   r?   r   r%   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   ra   V   rB   r?   ©r   Ú
star_graphrE   rF   rU   rV   rH   s      r   Ú$test_connected_double_edge_swap_starre   P   sn   € ä�MŠM˜"Ó€EÜÑ2 5§<¡<¤>Ó2Ó2€GÜ
×%Ò% e¨Q°QÑ7€AÜ�?Š?˜5×!Ñ!Ð!Ð!Ø”fÑ:¨5¯<©<¬>Ó:Ó:Ó:Ð:Ñ:r#   c                  ó$  • [         R                  " S5      n [        S U R                  5        5       5      n[         R                  " U SSSS9n[         R
                  " U 5      (       d   eU[        S U R                  5        5       5      :X  d   eg )Nr@   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   ÚLtest_connected_double_edge_swap_star_low_window_threshold.<locals>.<genexpr>\   r>   r?   r   r   r%   r[   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   rh   _   rB   r?   rc   rH   s      r   Ú9test_connected_double_edge_swap_star_low_window_thresholdrj   Y   sp   € ä�MŠM˜"Ó€EÜÑ2 5§<¡<¤>Ó2Ó2€GÜ
×%Ò% e¨QÀ!È!ÑL€AÜ�?Š?˜5×!Ñ!Ð!Ð!Ø”fÑ:¨5¯<©<¬>Ó:Ó:Ó:Ð:Ñ:r#   c                  óî   • [         R                  " [        R                  5         [        R                  " [        R
                  " S[        R                  S95      n S S S 5        g ! , (       d  f       g = f)Nr
   r   ©r2   r3   r   ÚNetworkXErrorr    r+   r*   ©r   s    r   Útest_directed_edge_swap_smallro   b   s?   € Ü	�Š”r×'Ñ'Õ	(Ü×!Ò!¤"§-¢-°ÄÇ
Á
Ñ"KÓLˆ÷ 
)×	(Ö	(úó   ¥8A&Á&
A4c                  óî   • [         R                  " [        R                  5         [        R                  " [        R
                  " S[        R                  S9SSS9n S S S 5        g ! , (       d  f       g = f)Nr
   r   r   r   r&   rl   rn   s    r   Útest_directed_edge_swap_triesrr   g   sF   € Ü	�Š”r×'Ñ'Õ	(Ü×!Ò!Ü�MŠM˜!¬"¯*©*Ñ5¸QÈ!ñ
ˆ÷ 
)×	(Ö	(úrp   c                  óÜ   • [         R                  " SS/5      n [        R                  " [         R                  5         [         R
                  " U 5      nS S S 5        g ! , (       d  f       g = f)Nr.   r/   )r   ÚGraphr2   r3   ÚNetworkXNotImplementedr    ©r5   r   s     r   Ú"test_directed_exception_undirectedrw   n   sC   € Ü�HŠH�f˜fÐ%Ó&€EÜ	�Š”r×0Ñ0Õ	1Ü×!Ò! %Ó(ˆ÷ 
2×	1Ö	1ús   ½AÁ
A+c                  óü   • [         R                  " [        R                  5         [        R                  " [        R
                  " S[        R                  " 5       5      SSS9n S S S 5        g ! , (       d  f       g = f©Nr%   r   r   r&   )r2   r3   r   r4   r    Úcomplete_graphr*   rn   s    r   Útest_directed_edge_max_triesr{   t   sJ   € Ü	�Š”r×0Ñ0Õ	1Ü×!Ò!Ü×Ò˜a¤§¢£Ó.°aÀ1ñ
ˆ÷ 
2×	1Ö	1ús   ¥?A-Á-
A;c                  óÔ   • [         R                  " [        R                  5         [        R                  " [        R
                  " S5      5      n S S S 5        g ! , (       d  f       g = f©Nr
   ©r2   r3   r   rm   rG   r+   rn   s    r   Útest_double_edge_swap_smallr   {   s9   € Ü	�Š”r×'Ñ'Õ	(Ü×Ò¤§¢¨aÓ 0Ó1ˆ÷ 
)×	(Ö	(úó   ¥+AÁ
A'c                  óÔ   • [         R                  " [        R                  5         [        R                  " [        R
                  " S5      SSS9n S S S 5        g ! , (       d  f       g = f)Nr   r   r   r&   r~   rn   s    r   Útest_double_edge_swap_triesr‚   €   s=   € Ü	�Š”r×'Ñ'Õ	(Ü×Ò¤§¢¨bÓ 1¸ÀaÑHˆ÷ 
)×	(Ö	(úr€   c                  óÚ   • [         R                  " SS/5      n [        R                  " [         R                  SS9   [         R
                  " U 5      nS S S 5        g ! , (       d  f       g = f)Nr.   r/   z not defined for directed graphs.r0   )r   r*   r2   r3   rm   rG   rv   s     r   Útest_double_edge_directedr„   …   sG   € Ü�JŠJ˜ Ð'Ó(€EÜ	�Š”r×'Ñ'Ð/QÓ	RÜ×Ò Ó&ˆ÷ 
S×	RÖ	Rús   ¼AÁ
A*c                  óÔ   • [         R                  " [        R                  5         [        R                  " [        R
                  " S5      SSS9n S S S 5        g ! , (       d  f       g = fry   )r2   r3   r   r4   rG   rz   rn   s    r   Útest_double_edge_max_triesr†   ‹   s?   € Ü	�Š”r×0Ñ0Õ	1Ü×Ò¤× 1Ò 1°!Ó 4¸AÈÑKˆ÷ 
2×	1Ö	1úr€   c                  óÔ   • [         R                  " [        R                  5         [        R                  " [        R
                  " S5      5      n S S S 5        g ! , (       d  f       g = fr}   )r2   r3   r   rm   rU   r+   rn   s    r   Ú%test_connected_double_edge_swap_smallrˆ   �   s9   € Ü	�Š”r×'Ñ'Õ	(Ü×)Ò)¬"¯-ª-¸Ó*:Ó;ˆ÷ 
)×	(Ö	(úr€   c                  ó
  • [         R                  " [        R                  5         [        R                  " S5      n [        R
                  " U / SQ5        [        R                  " U 5      n S S S 5        g ! , (       d  f       g = f)Nr
   )r   é   é   )r2   r3   r   rm   r+   Úadd_pathrU   rn   s    r   Ú-test_connected_double_edge_swap_not_connectedr�   •   sL   € Ü	�Š”r×'Ñ'Õ	(Ü�MŠM˜!ÓˆÜ
�Š�A’|Ô$Ü×)Ò)¨!Ó,ˆ÷ 
)×	(Ö	(ús   ¥AA4Á4
Bc                  óì   • [         R                  " S5      n [        S U R                  5        5       5      n[         R                  " U SS5      n U[        S U R                  5        5       5      :X  d   eg )Nr%   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   Ú%test_degree_seq_c4.<locals>.<genexpr>ž   s   é € Ð.¢:™4˜1•Q¢:ùr?   r   r   c              3   ó*   #   • U  H	  u  pUv •  M     g 7fr   r   r:   s      r   r   r�       s   é € Ð6ª:¡4 1�Qª:ùr?   )r   Úcycle_graphrE   rF   rG   )r   rI   s     r   Útest_degree_seq_c4r“   œ   sY   € Ü
�Š�qÓ€AÜÑ. 1§8¡8¤:Ó.Ó.€GÜ
×Ò˜A˜q #Ó&€AØ”fÑ6¨1¯8©8¬:Ó6Ó6Ó6Ð6Ñ6r#   c                  óú   • [         R                  " 5       n U R                  / SQ5        [        R                  " [         R
                  SS9   [         R                  " U 5        S S S 5        g ! , (       d  f       g = f)N)r   r   r   z.*fewer than four nodes.r0   )r   r*   Úadd_nodes_fromr2   r3   rm   r    rn   s    r   Útest_fewer_than_4_nodesr–   £   sK   € Ü
�
Š
‹€AØ×Ñ’YÔÜ	�Š”r×'Ñ'Ð/IÓ	JÜ
×Ò˜aÔ ÷ 
K×	JÖ	Jús   ÁA,Á,
A:c                  óö  • [         R                  " SS/5      n U R                  SS/5        [        R                  " [         R
                  SS9   [         R                  " U 5        S S S 5        [         R                  " 5       n U R                  / SQ5        [        R                  " [         R
                  SS9   [         R                  " U 5        S S S 5        g ! , (       d  f       Ny= f! , (       d  f       g = f)	Nr.   )r   r   r
   r%   z.*fewer than 3 edgesr0   )r   r   r   r
   z.*fewer than 2 edges)	r   r*   r•   r2   r3   rm   r    rt   rG   rn   s    r   Útest_less_than_3_edgesr˜   ª   s«   € Ü
�
Š
�F˜FÐ#Ó$€AØ×Ñ�a˜�VÔÜ	�Š”r×'Ñ'Ð/EÓ	FÜ
×Ò˜aÔ ÷ 
Gô 	�Š‹
€AØ×Ñ’\Ô"Ü	�Š”r×'Ñ'Ð/EÓ	FÜ
×Ò˜AÔ÷ 
GÐ	F÷ 
GÕ	Fú÷
 
GÕ	Fús   ÁCÂ9C*Ã
C'Ã*
C8))r2   Únetworkxr   r’   r*   ÚcycleÚtreeÚadd_edges_fromÚrandom_labeled_treer   r+   ÚpathÚbinomial_treeÚbinomialÚdirected_havel_hakimi_graphÚHHÚbalanced_treeÚmarkÚparametrizer"   r,   r6   rJ   rO   rW   r^   re   rj   ro   rr   rw   r{   r   r‚   r„   r†   rˆ   r�   r“   r–   r˜   r   r#   r   Ú<module>r¦      sA  ðÛ ã à
�Š�q r§z¡zÑ2€Ø	‡z‚zƒ|€Ø × Ñ �B×*Ò*¨2°BÑ7×=Ñ=Ô >Ø	‡}‚}�Q R§Z¡ZÑ0€Ø×Ò˜A¨B¯J©JÑ7€Ø×#Ò#Ò$6Ò8JÓK€Ø× Ò   A°B·J±JÑ?€ð ‡�×Ñ˜˜t X¨r°5¸$ÀÐNÓOñ5ó Pð5ò	!ò	Dò;ò;ò;ò;ò;ò;òMò

ò)ò
ò2ò
Iò
'òLò
<ò
-ò7ò!ó	r#   