Ë
    ©Ó^jÛ  ã                   ó2  — d Z ddlZddlZej                  j                  dd«      d„ «       Zej                  j                  dd«      d„ «       Zej                  j                  dd«      d	„ «       Zej                  j                  dd
«      d„ «       Z	ej                  j                  dg d¢«      d„ «       Z
d„ Zd„ Zej                  j                  dd«      d„ «       Zej                  j                  dg d¢«      d„ «       Zd„ Zej                  j                  dej                   ej"                  ej$                  f«      d„ «       Zej                  j                  dej                   ej"                  ej$                  f«      d„ «       Zd„ Zd„ Zd„ Zd„ Zy)z?Unit tests for the :mod:`networkx.generators.expanders` module.é    NÚn)é   é   é   é   é
   c                 ó  — t        j                  | «      }|j                  «       | | z  k(  sJ ‚|D ]O  }|j                  |«      dk(  sJ ‚t	        |«      dk(  sJ ‚|D ]"  }t        |«      |k(  sJ ‚d|cxk  r| k  rŒJ ‚ J ‚ ŒQ y )Né   r   r   )ÚnxÚmargulis_gabber_galil_graphÚnumber_of_nodesÚdegreeÚlenÚint)r   ÚgÚnodeÚis       ús/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/networkx/generators/tests/test_expanders.pyÚ+test_margulis_gabber_galil_graph_propertiesr      s–   € ä
×&Ñ& qÓ)€AØ×ÑÓ ! a¡%Ò'Ð'Ð'Øò ˆØ�x‰x˜‹~ Ò"Ð"Ð"Ü�4‹y˜AŠ~Ðˆ~Øò 	ˆAÜ�q“6˜Q’;Ð�;Ø˜”:˜A“:Ð‘:Ð�:ñ	ñó    c                 óD  — t        j                  d«      }t        j                  d«      }t        j                  | «      }t	        |j
                  j                  t        j                  |«      j                  «       «      «      }|d   d|j                  d«      z  k  sJ ‚y )NÚnumpyÚscipyéþÿÿÿr   r   )
ÚpytestÚimportorskipr   r   ÚsortedÚlinalgÚeigvalshÚadjacency_matrixÚtoarrayÚsqrt)r   ÚnpÚspr   Úws        r   Ú(test_margulis_gabber_galil_graph_eigvalsr&      s   € ä	×	Ñ	˜WÓ	%€BÜ	×	Ñ	˜WÓ	%€Bä
×&Ñ& qÓ)€Aô 	ˆr�y‰y×!Ñ!¤"×"5Ñ"5°aÓ"8×"@Ñ"@Ó"BÓCÓD€AØˆR‰5�1�r—w‘w˜q“z‘>Ò!Ð!Ñ!r   Úp)r   r   é   é   c                 óN   — t        j                  | «      }t        |«      | k(  sJ ‚y)z;Test for the :func:`networkx.chordal_cycle_graph` function.N)r   Úchordal_cycle_graphr   )r'   ÚGs     r   Útest_chordal_cycle_graphr-       s$   € ô 	×Ñ˜qÓ!€AÜˆq‹6�QŠ;Ð‰;r   )r   r   r(   r)   é   c                 ó  — t        j                  | «      }t        |«      | k(  sJ ‚|j                  D �ch c]  }|j	                  |«      ’Œ }}|j                  D �ch c]  }|j                  |«      ’Œ }}t        |«      dk(  r|j                  «       | dz
  dz  k(  sJ ‚t        |«      dk(  r|j                  «       | dz
  dz  k(  sJ ‚| dz  dk(  r'|j                  D ]  \  }}||f|j                  v rŒJ ‚ yyc c}w c c}w )z3Test for the :func:`networkx.paley_graph` function.é   r   é   N)r   Úpaley_graphr   ÚnodesÚ	in_degreeÚ
out_degreeÚpopÚedges)r'   r,   r   Ú
in_degreesÚout_degreesÚuÚvs          r   Útest_paley_graphr<   -   sú   € ô 	�‰�qÓ€Aäˆq‹6�QŠ;Ðˆ;à01·±Ö8¨�!—+‘+˜dÕ#Ð8€JÐ8Ø23·'±'Ö:¨$�1—<‘< Õ%Ð:€KÐ:Üˆz‹?˜aÒ J§N¡NÓ$4¸¸Q¹À1¹Ò$DÐDÐDÜˆ{Ó˜qÒ  [§_¡_Ó%6¸1¸q¹5ÀQ¹,Ò%FÐFÐFð 	ˆ1�u�‚zØ—G‘Gò 	%‰DˆAˆqØ�q�6˜QŸW™WÒ$Ð$Ð$ñ	%ð ùò 9ùÚ:s   ´C8ÁC=zd, n)©r   r(   ©r1   r   ©r1   é   c                 ó  — t        j                  d«       t        j                  || d¬«      }t	        |«      |k(  sJ d«       ‚t	        |j
                  «      || z  dz  k(  sJ d«       ‚t        j                  || «      sJ d«       ‚y )Nr   éÁ  ©ÚseedúShould have n nodesr   úShould have n*d/2 edgesúShould be d-regular)r   r   r   Úmaybe_regular_expander_graphr   r7   Úis_k_regular©Údr   r,   s      r   Ú!test_maybe_regular_expander_graphrL   @   sx   € ä
×Ñ˜Ô Ü
×'Ñ'¨¨1°4Ô8€Aäˆq‹6�QŠ;Ð-Ð-Ó-ˆ;Üˆq�w‰w‹<˜1˜q™5 1™9Ò$Ð?Ð&?Ó?Ð$Ü�?‰?˜1˜aÔ Ð7Ð"7Ó7Ñ r   c                  ó  — t        j                  d«       d\  } }d}t        j                  t        j                  |¬«      5  t        j
                  || dd¬«       d d d «       t        j
                  || dd¬«       y # 1 sw Y   Œ#xY w)	Nr   r>   z3Too many iterations in maybe_regular_expander_graph©Úmatchéd   i¢  )Ú	max_triesrD   é‚   ©r   r   Úraisesr   ÚNetworkXErrorrH   )rK   r   Úmsgs      r   Ú+test_maybe_regular_expander_graph_max_triesrW   J   su   € Ü
×Ñ˜Ô Ø�D€A€qØ
?€CÜ	�‰”r×'Ñ'¨sÔ	3ñ HÜ
×'Ñ'¨¨1¸À$ÕG÷Hô ×#Ñ# A q°C¸dÖC÷Hð Hús   ÁA>Á>Bc                  óh  — t        j                  d«       d\  } }t        j                  «       5  t        j                  || d¬«      }d d d «       t        «      |k(  sJ d«       ‚t        |j                  «      || z  dz  k(  sJ d«       ‚t        j                  || «      sJ d«       ‚y # 1 sw Y   ŒaxY w)	Nr   r=   rB   rC   rE   r   rF   rG   )r   r   Údeprecated_callr   Úmaybe_regular_expanderr   r7   rI   rJ   s      r   Ú&test_maybe_regular_expander_deprecatedr[   T   s¤   € Ü
×Ñ˜Ô Ø�D€A€qÜ	×	Ñ	Ó	!ñ 7Ü×%Ñ% a¨°Ô6ˆ÷7ô ˆq‹6�QŠ;Ð-Ð-Ó-ˆ;Üˆq�w‰w‹<˜1˜q™5 1™9Ò$Ð?Ð&?Ó?Ð$Ü�?‰?˜1˜aÔ Ð7Ð"7Ó7Ñ ÷7ð 7ús   ¯B(Â(B1)r   r   r   r   c                 óº   — t        j                  d«       t        j                  d«       t        j                  | «      }t        j                  |«      sJ d«       ‚y )Nr   r   úShould be a regular expander)r   r   r   Úcomplete_graphÚis_regular_expander)r   r,   s     r   Útest_is_regular_expanderr`   _   sH   € ä
×Ñ˜Ô Ü
×Ñ˜Ô Ü
×Ñ˜!Ó€Aä×!Ñ! !Ô$ÐDÐ&DÓDÑ$r   )r=   r>   r?   )r1   iÐ  c                 ón  — t        j                  d«       t        j                  d«       t        j                  || d¬«      }t	        |«      |k(  sJ d«       ‚t	        |j
                  «      || z  dz  k(  sJ d«       ‚t        j                  || «      sJ d«       ‚t        j                  |«      sJ d	«       ‚y )
Nr   r   rB   rC   rE   r   rF   rG   r]   )r   r   r   Úrandom_regular_expander_graphr   r7   rI   r_   rJ   s      r   Útest_random_regular_expanderrc   h   s    € ä
×Ñ˜Ô Ü
×Ñ˜Ô Ü
×(Ñ(¨¨A°DÔ9€Aäˆq‹6�QŠ;Ð-Ð-Ó-ˆ;Üˆq�w‰w‹<˜1˜q™5 1™9Ò$Ð?Ð&?Ó?Ð$Ü�?‰?˜1˜aÔ Ð7Ð"7Ó7Ð Ü×!Ñ! !Ô$ÐDÐ&DÓDÑ$r   c                  óâ   — t        j                  d«       t        j                  d«       t        j                  ddd¬«      } t	        | «      dk(  rt	        | j
                  «      dk(  sJ d«       ‚y )	Nr   r   r1   r   rB   )rK   r   rD   r   zShould be a complete graph)r   r   r   rb   r   r7   )r,   s    r   Ú2test_random_regular_expander_explicit_constructionre   t   s[   € Ü
×Ñ˜Ô Ü
×Ñ˜Ô Ü
×(Ñ(¨1°¸Ô=€Aäˆq‹6�QŠ;œ3˜qŸw™w›<¨2Ò-ÐKÐ/KÓKÐ-Ð-r   Ú
graph_typec                 ó¦   — t        j                  t        j                  d¬«      5  t        j                  d| ¬«       d d d «       y # 1 sw Y   y xY w©Nz/`create_using` must be an undirected multigraphrN   r   ©Úcreate_using)r   rT   r   rU   r   ©rf   s    r   Ú)test_margulis_gabber_galil_graph_badinputrl   |   sE   € ä	�‰Ü
×ÑÐ Qô
ñ Cô 	×&Ñ& q°zÕB÷C÷ Cñ Cúó   ¦AÁAc                 ó¦   — t        j                  t        j                  d¬«      5  t        j                  d| ¬«       d d d «       y # 1 sw Y   y xY wrh   )r   rT   r   rU   r+   rk   s    r   Ú!test_chordal_cycle_graph_badinputro   „   sA   € ä	�‰Ü
×ÑÐ Qô
ñ ;ô 	×Ñ˜q¨zÕ:÷;÷ ;ñ ;úrm   c                  óÂ   — t        j                  t        j                  d¬«      5  t        j                  dt        j
                  ¬«       d d d «       y # 1 sw Y   y xY w)Nz&`create_using` cannot be a multigraph.rN   r   ri   )r   rT   r   rU   r2   Ú
MultiGraph© r   r   Útest_paley_graph_badinputrs   Œ   sC   € Ü	�‰Ü
×ÑÐ Hô
ñ 6ô 	�‰�q¤r§}¡}Õ5÷6÷ 6ñ 6ús   ¦&AÁAc                  ó  — t        j                  d«       t        j                  t        j                  d¬«      5  t        j
                  dd¬«       d d d «       t        j                  t        j                  d¬«      5  t        j
                  dd	¬«       d d d «       t        j                  t        j                  d
¬«      5  t        j
                  dd¬«       d d d «       y # 1 sw Y   Œ”xY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)Nr   ún must be a positive integerrN   éÿÿÿÿr   ©r   rK   ú$d must be greater than or equal to 2r   r   úNeed n-1>= d to have roomr   r   rS   rr   r   r   Ú*test_maybe_regular_expander_graph_badinputrz   “   sÇ   € Ü
×Ñ˜Ô ä	�‰”r×'Ñ'Ð/MÔ	Nñ 3Ü
×'Ñ'¨"°Õ2÷3ô 
�‰”r×'Ñ'Ð/UÔ	Vñ 3Ü
×'Ñ'¨"°Õ2÷3ô 
�‰”r×'Ñ'Ð/JÔ	Kñ 2Ü
×'Ñ'¨!¨qÕ1÷2ð 2÷3ð 3ú÷3ð 3ú÷2ð 2ús#   »C&Â C2ÃC>Ã&C/Ã2C;Ã>Dc                  ó  — t        j                  d«       t        j                  d«       t        j                  t        j                  d¬«      5  t        j
                  t        j                  «       d¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   úepsilon must be non negativerN   rv   )Úepsilon)r   r   rT   r   rU   r_   ÚGraphrr   r   r   Ú!test_is_regular_expander_badinputr       s^   € Ü
×Ñ˜Ô Ü
×Ñ˜Ô ä	�‰”r×'Ñ'Ð/MÔ	Nñ 7Ü
×ÑœrŸx™x›z°2Õ6÷7÷ 7ñ 7ús   Á*BÂBc                  óâ  — t        j                  d«       t        j                  d«       t        j                  t        j                  d¬«      5  t        j
                  dd¬«       d d d «       t        j                  t        j                  d¬«      5  t        j
                  d	d
¬«       d d d «       t        j                  t        j                  d¬«      5  t        j
                  dd¬«       d d d «       t        j                  t        j                  d¬«      5  t        j
                  ddd¬«       d d d «       y # 1 sw Y   ŒÚxY w# 1 sw Y   Œ¡xY w# 1 sw Y   ŒhxY w# 1 sw Y   y xY w)Nr   r   ru   rN   rv   r   rw   rx   r   r   ry   r   r   r|   r1   )r   rK   r}   )r   r   rT   r   rU   rb   rr   r   r   Ú%test_random_regular_expander_badinputr�   ¨   s  € Ü
×Ñ˜Ô Ü
×Ñ˜Ô ä	�‰”r×'Ñ'Ð/MÔ	Nñ 4Ü
×(Ñ(¨2°Õ3÷4ô 
�‰”r×'Ñ'Ð/UÔ	Vñ 4Ü
×(Ñ(¨2°Õ3÷4ô 
�‰”r×'Ñ'Ð/JÔ	Kñ 3Ü
×(Ñ(¨1°Õ2÷3ô 
�‰”r×'Ñ'Ð/MÔ	Nñ ?Ü
×(Ñ(¨1°¸2Õ>÷?ð ?÷4ð 4ú÷4ð 4ú÷3ð 3ú÷?ð ?ús0   ÁEÂEÃEÄE%ÅE
ÅEÅE"Å%E.)Ú__doc__r   Únetworkxr   ÚmarkÚparametrizer   r&   r-   r<   rL   rW   r[   r`   rc   re   r~   ÚDiGraphÚMultiDiGraphrl   ro   rs   rz   r   r�   rr   r   r   ú<module>rˆ      s´  ðÙ Eã ã ð ‡�×Ñ˜Ð.Ó/ñó 0ðð ‡�×Ñ˜Ð.Ó/ñ"ó 0ð"ð ‡�×Ñ˜˜mÓ,ñó -ðð ‡�×Ñ˜Ð/Ó0ñ%ó 1ð%ð$ ‡�×Ñ˜Ò!;Ó<ñ8ó =ð8òDò8ð ‡�×Ñ˜˜mÓ,ñEó -ðEð ‡�×Ñ˜Ò!FÓGñEó HðEòLð ‡�×Ñ˜¨¯©°"·*±*¸b¿o¹oÐ'NÓOñCó PðCð ‡�×Ñ˜¨¯©°"·*±*¸b¿o¹oÐ'NÓOñ;ó Pð;ò6ò
2ò7ó?r   