Ë
    D^(h   ã            	       ó~  — d dl Z d dlZ ej                  dej                  ¬«      Z ej                  «       Zej                   ej                  dd¬«      j                  «        ej                  dej                  ¬«      Z ej                  dej                  ¬«      Z ej                  g d¢g d	¢«      Z ej                   d
dej                  ¬«      Ze j"                  j%                  deeeeeeg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d „ Z'd!„ Z(y)"é    Né   ©Úcreate_usingé
   é*   ©Úseedé   )é   é   r   r   r   r   )r
   r   r   r   r   r
   r   ÚGc                 ó˜  ‡— t        | j                  «      }t        | j                  «      }t        | j                  «      Št	        j
                  | ddd¬«       |t        | j                  «      k(  sJ ‚|t        | j                  «      k(  sJ ‚‰t        | j                  «      k7  sJ ‚dt        ˆfd„| j                  D «       «      k(  sJ ‚y )Nr   éd   ©ÚnswapÚ	max_triesr	   r
   c              3   ó&   •K  — | ]  }|‰v–— Œ
 y ­w©N© )Ú.0ÚeÚedgess     €úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_swap.pyú	<genexpr>z*test_directed_edge_swap.<locals>.<genexpr>   s   øè ø€ Ò4 q�A˜U”NÑ4ù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                  óÆ  — t        j                  t        j                  d«      j                  «      } t	        | j                  «      }t        j
                  | dd¬«       |t	        | j                  «      k(  sJ ‚t        j
                  | ddd¬«       h d£t	        | j                  «      k(  sJ ‚t        j
                  | ddd¬«       |t	        | j                  «      k(  sJ ‚y )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                  óÜ   — d} t        j                  g d¢«      }t        j                  t         j                  | ¬«      5  t        j
                  |ddd¬«       d d d «       y # 1 sw Y   y xY w)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_swapr5   &   s^   € ð	3ð ô �J‰JÒ?Ó@€EÜ	�‰”r×0Ñ0¸Ô	:ñ DÜ
×Ñ˜e¨1¸ÀÕC÷D÷ Dñ Dús   ¿A"Á"A+c                  óæ   — t        j                  dd«      } t        d„ | j                  «       D «       «      }t        j                  | d«      }|t        d„ | j                  «       D «       «      k(  sJ ‚y )NéÈ   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   ©r   ÚnÚds      r   r   z(test_double_edge_swap.<locals>.<genexpr>4   ó   è ø€ Ò2™4˜1˜a”QÑ2ùó   ‚é(   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z(test_double_edge_swap.<locals>.<genexpr>6   ó   è ø€ Ò:¡4 1 aœQÑ:ùr=   ©r   Úbarabasi_albert_graphÚsortedÚdegreeÚdouble_edge_swap©r4   Údegreesr   s      r   Útest_double_edge_swaprH   2   s[   € Ü×$Ñ$ S¨!Ó,€EÜÑ2 5§<¡<£>Ô2Ó2€GÜ
×Ñ˜E 2Ó&€AØ”fÑ:¨5¯<©<«>Ô:Ó:Ò:Ð:Ñ:r"   c                  óê   — t        j                  dd«      } t        d„ | j                  «       D «       «      }t        j                  | dd¬«      }|t        d„ | j                  «       D «       «      k(  sJ ‚y )Nr7   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z-test_double_edge_swap_seed.<locals>.<genexpr>;   r<   r=   r>   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z-test_double_edge_swap_seed.<locals>.<genexpr>=   r@   r=   rA   rF   s      r   Útest_double_edge_swap_seedrL   9   s]   € Ü×$Ñ$ S¨!Ó,€EÜÑ2 5§<¡<£>Ô2Ó2€GÜ
×Ñ˜E 2¨AÔ.€AØ”fÑ:¨5¯<©<«>Ô:Ó:Ò:Ð:Ñ:r"   c                  ó  — t        j                  dd«      } t        d„ | j                  «       D «       «      }t        j                  | dd¬«      }t        j
                  | «      sJ ‚|t        d„ | j                  «       D «       «      k(  sJ ‚y )Nr7   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z2test_connected_double_edge_swap.<locals>.<genexpr>B   r<   r=   r>   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z2test_connected_double_edge_swap.<locals>.<genexpr>E   r@   r=   ©r   rB   rC   rD   Úconnected_double_edge_swapÚis_connectedrF   s      r   Útest_connected_double_edge_swaprS   @   so   € Ü×$Ñ$ S¨!Ó,€EÜÑ2 5§<¡<£>Ô2Ó2€GÜ
×%Ñ% e¨R°aÔ8€AÜ�?‰?˜5Ô!Ð!Ð!Ø”fÑ:¨5¯<©<«>Ô:Ó:Ò:Ð:Ñ:r"   c                  ó  — t        j                  dd«      } t        d„ | j                  «       D «       «      }t        j                  | ddd¬«      }t        j
                  | «      sJ ‚|t        d„ | j                  «       D «       «      k(  sJ ‚y )Nr7   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   zGtest_connected_double_edge_swap_low_window_threshold.<locals>.<genexpr>J   r<   r=   r>   r   ©Ú_window_thresholdr	   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   zGtest_connected_double_edge_swap_low_window_threshold.<locals>.<genexpr>M   r@   r=   rP   rF   s      r   Ú4test_connected_double_edge_swap_low_window_thresholdrY   H   sq   € Ü×$Ñ$ S¨!Ó,€EÜÑ2 5§<¡<£>Ô2Ó2€GÜ
×%Ñ% e¨RÀ1È1ÔM€AÜ�?‰?˜5Ô!Ð!Ð!Ø”fÑ:¨5¯<©<«>Ô:Ó:Ò:Ð:Ñ:r"   c                  ó  — t        j                  d«      } t        d„ | j                  «       D «       «      }t        j                  | dd¬«      }t        j
                  | «      sJ ‚|t        d„ | j                  «       D «       «      k(  sJ ‚y )Nr>   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z7test_connected_double_edge_swap_star.<locals>.<genexpr>S   r<   r=   r   r$   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z7test_connected_double_edge_swap_star.<locals>.<genexpr>V   r@   r=   ©r   Ú
star_graphrC   rD   rQ   rR   rF   s      r   Ú$test_connected_double_edge_swap_starr_   P   sk   € ä�M‰M˜"Ó€EÜÑ2 5§<¡<£>Ô2Ó2€GÜ
×%Ñ% e¨Q°QÔ7€AÜ�?‰?˜5Ô!Ð!Ð!Ø”fÑ:¨5¯<©<«>Ô:Ó:Ò:Ð:Ñ:r"   c                  ó  — t        j                  d«      } t        d„ | j                  «       D «       «      }t        j                  | ddd¬«      }t        j
                  | «      sJ ‚|t        d„ | j                  «       D «       «      k(  sJ ‚y )Nr>   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   zLtest_connected_double_edge_swap_star_low_window_threshold.<locals>.<genexpr>\   r<   r=   r   r   r$   rV   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   zLtest_connected_double_edge_swap_star_low_window_threshold.<locals>.<genexpr>_   r@   r=   r]   rF   s      r   Ú9test_connected_double_edge_swap_star_low_window_thresholdrc   Y   sm   € ä�M‰M˜"Ó€EÜÑ2 5§<¡<£>Ô2Ó2€GÜ
×%Ñ% e¨QÀ!È!ÔL€AÜ�?‰?˜5Ô!Ð!Ð!Ø”fÑ:¨5¯<©<«>Ô:Ó:Ò:Ð:Ñ:r"   c                  óä   — t        j                  t        j                  «      5  t        j                  t        j
                  dt        j                  ¬«      «      } d d d «       y # 1 sw Y   y xY w)Nr
   r   ©r1   r2   r   ÚNetworkXErrorr   r*   r)   ©r   s    r   Útest_directed_edge_swap_smallrh   b   sL   € Ü	�‰”r×'Ñ'Ó	(ñ MÜ×!Ñ!¤"§-¡-°ÄÇ
Á
Ô"KÓLˆ÷M÷ Mñ Mús   ¤9A&Á&A/c                  óê   — t        j                  t        j                  «      5  t        j                  t        j
                  dt        j                  ¬«      dd¬«      } d d d «       y # 1 sw Y   y xY w)Nr
   r   r   r   r%   re   rg   s    r   Útest_directed_edge_swap_triesrj   g   sO   € Ü	�‰”r×'Ñ'Ó	(ñ 
Ü×!Ñ!Ü�M‰M˜!¬"¯*©*Ô5¸QÈ!ô
ˆ÷
÷ 
ñ 
ús   ¤<A)Á)A2c                  óÌ   — t        j                  ddg«      } t        j                  t         j                  «      5  t        j
                  | «      }d d d «       y # 1 sw Y   y xY w)Nr-   r.   )r   ÚGraphr1   r2   ÚNetworkXNotImplementedr   ©r4   r   s     r   Ú"test_directed_exception_undirectedro   n   sL   € Ü�H‰H�f˜fÐ%Ó&€EÜ	�‰”r×0Ñ0Ó	1ñ )Ü×!Ñ! %Ó(ˆ÷)÷ )ñ )ús   »AÁA#c                  óð   — t        j                  t        j                  «      5  t        j                  t        j
                  dt        j                  «       «      dd¬«      } d d d «       y # 1 sw Y   y xY w©Nr$   r   r   r%   )r1   r2   r   r3   r   Úcomplete_graphr)   rg   s    r   Útest_directed_edge_max_triesrs   t   sS   € Ü	�‰”r×0Ñ0Ó	1ñ 
Ü×!Ñ!Ü×Ñ˜a¤§¡£Ó.°aÀ1ô
ˆ÷
÷ 
ñ 
ús   ¤?A,Á,A5c                  óÄ   — t        j                  t        j                  «      5  t        j                  t        j
                  d«      «      } d d d «       y # 1 sw Y   y xY w©Nr
   ©r1   r2   r   rf   rE   r*   rg   s    r   Útest_double_edge_swap_smallrw   {   sB   € Ü	�‰”r×'Ñ'Ó	(ñ 2Ü×Ñ¤§¡¨aÓ 0Ó1ˆ÷2÷ 2ñ 2úó   ¤)AÁAc                  óÊ   — t        j                  t        j                  «      5  t        j                  t        j
                  d«      dd¬«      } d d d «       y # 1 sw Y   y xY w)Nr   r   r   r%   rv   rg   s    r   Útest_double_edge_swap_triesrz   €   sJ   € Ü	�‰”r×'Ñ'Ó	(ñ IÜ×Ñ¤§¡¨bÓ 1¸ÀaÔHˆ÷I÷ Iñ Iúó   ¤,AÁA"c                  óÐ   — t        j                  ddg«      } t        j                  t         j                  d¬«      5  t        j
                  | «      }d d d «       y # 1 sw Y   y xY w)Nr-   r.   z not defined for directed graphs.r/   )r   r)   r1   r2   rf   rE   rn   s     r   Útest_double_edge_directedr}   …   sO   € Ü�J‰J˜ Ð'Ó(€EÜ	�‰”r×'Ñ'Ð/QÔ	Rñ 'Ü×Ñ Ó&ˆ÷'÷ 'ñ 'ús   ½AÁA%c                  óÊ   — t        j                  t        j                  «      5  t        j                  t        j
                  d«      dd¬«      } d d d «       y # 1 sw Y   y xY wrq   )r1   r2   r   r3   rE   rr   rg   s    r   Útest_double_edge_max_triesr   ‹   sL   € Ü	�‰”r×0Ñ0Ó	1ñ LÜ×Ñ¤× 1Ñ 1°!Ó 4¸AÈÔKˆ÷L÷ Lñ Lúr{   c                  óÄ   — t        j                  t        j                  «      5  t        j                  t        j
                  d«      «      } d d d «       y # 1 sw Y   y xY wru   )r1   r2   r   rf   rQ   r*   rg   s    r   Ú%test_connected_double_edge_swap_smallr�   �   sB   € Ü	�‰”r×'Ñ'Ó	(ñ <Ü×)Ñ)¬"¯-©-¸Ó*:Ó;ˆ÷<÷ <ñ <úrx   c                  óø   — t        j                  t        j                  «      5  t        j                  d«      } t        j
                  | g d¢«       t        j                  | «      } d d d «       y # 1 sw Y   y xY w)Nr
   )r   é   é   )r1   r2   r   rf   r*   Úadd_pathrQ   rg   s    r   Ú-test_connected_double_edge_swap_not_connectedr†   •   sU   € Ü	�‰”r×'Ñ'Ó	(ñ -Ü�M‰M˜!ÓˆÜ
�‰�A’|Ô$Ü×)Ñ)¨!Ó,ˆ÷-÷ -ñ -ús   ¤AA0Á0A9c                  óæ   — t        j                  d«      } t        d„ | j                  «       D «       «      }t        j                  | dd«      } |t        d„ | j                  «       D «       «      k(  sJ ‚y )Nr$   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z%test_degree_seq_c4.<locals>.<genexpr>ž   s   è ø€ Ò.™4˜1˜a”QÑ.ùr=   r   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   r9   s      r   r   z%test_degree_seq_c4.<locals>.<genexpr>    s   è ø€ Ò6¡4 1 aœQÑ6ùr=   )r   Úcycle_graphrC   rD   rE   )r   rG   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                  óð   — t        j                  «       } | j                  g d¢«       t        j                  t         j
                  d¬«      5  t        j                  | «       d d d «       y # 1 sw Y   y xY w)N)r   r   r   z.*fewer than four nodes.r/   )r   r)   Úadd_nodes_fromr1   r2   rf   r   rg   s    r   Útest_fewer_than_4_nodesrŽ   £   sS   € Ü
�
‰
‹€AØ×Ñ’YÔÜ	�‰”r×'Ñ'Ð/IÔ	Jñ !Ü
×Ñ˜aÔ ÷!÷ !ñ !ús   ÁA,Á,A5c                  óâ  — t        j                  ddg«      } | j                  ddg«       t        j                  t         j
                  d¬«      5  t        j                  | «       d d d «       t        j                  «       } | j                  g d¢«       t        j                  t         j
                  d¬«      5  t        j                  | «       d d d «       y # 1 sw Y   ŒtxY w# 1 sw Y   y xY w)	Nr-   )r   r   r
   r$   z.*fewer than 3 edgesr/   )r   r   r   r
   z.*fewer than 2 edges)	r   r)   r�   r1   r2   rf   r   rl   rE   rg   s    r   Útest_less_than_3_edgesr�   ª   s·   € Ü
�
‰
�F˜FÐ#Ó$€AØ×Ñ�a˜�VÔÜ	�‰”r×'Ñ'Ð/EÔ	Fñ !Ü
×Ñ˜aÔ ÷!ô 	�‰‹
€AØ×Ñ’\Ô"Ü	�‰”r×'Ñ'Ð/EÔ	Fñ Ü
×Ñ˜AÔ÷ð ÷!ð !ú÷
ð ús   ÁCÂ:C%ÃC"Ã%C.))r1   Ú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+   r5   rH   rL   rS   rY   r_   rc   rh   rj   ro   rs   rw   rz   r}   r   r�   r†   r‹   rŽ   r�   r   r"   r   ú<module>rž      sP  ðÛ ã àˆ�‰�q r§z¡zÔ2€Ø€r‡z�zƒ|€Ø × Ñ Ð*�B×*Ñ*¨2°BÔ7×=Ñ=Ô >Ø€r‡}�}�Q R§Z¡ZÔ0€Øˆ2×Ñ˜A¨B¯J©JÔ7€Ø#€R×#Ñ#Ò$6Ò8JÓK€Ø �× Ñ   A°B·J±JÔ?€ð ‡�×Ñ˜˜t X¨r°5¸$ÀÐNÓOñ5ó Pð5ò	!ò	Dò;ò;ò;ò;ò;ò;òMò

ò)ò
ò2ò
Iò
'òLò
<ò
-ò7ò!ó	r"   