Ë
    D^(hâ  ã                   ó&  — 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
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       úf/var/www/skyplay_api_hub/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                  || «      }t	        |«      |k(  sJ d«       ‚t	        |j
                  «      || z  dz  k(  sJ d«       ‚t        j                  || «      sJ d«       ‚y )Nr   úShould have n nodesr   úShould have n*d/2 edgesúShould be d-regular)r   r   r   Úmaybe_regular_expanderr   r7   Úis_k_regular©Údr   r,   s      r   Útest_maybe_regular_expanderrF   @   sv   € ä
×Ñ˜Ô Ü
×!Ñ! ! QÓ'€Aäˆq‹6�QŠ;Ð-Ð-Ó-ˆ;Üˆq�w‰w‹<˜1˜q™5 1™9Ò$Ð?Ð&?Ó?Ð$Ü�?‰?˜1˜aÔ Ð7Ð"7Ó7Ñ r   )r   r   r   r   c                 óÀ   — t        j                  d«       t        j                  d«       t        j                  | «      }t        j                  |«      dk(  sJ d«       ‚y )Nr   r   TúShould be a regular expander)r   r   r   Úcomplete_graphÚis_regular_expander)r   r,   s     r   Útest_is_regular_expanderrK   J   sM   € ä
×Ñ˜Ô Ü
×Ñ˜Ô Ü
×Ñ˜!Ó€Aä×!Ñ! !Ó$¨Ò,ÐLÐ.LÓLÑ,r   c                 óp  — t        j                  d«       t        j                  d«       t        j                  || «      }t	        |«      |k(  sJ d«       ‚t	        |j
                  «      || z  dz  k(  sJ d«       ‚t        j                  || «      sJ d«       ‚t        j                  |«      dk(  sJ d«       ‚y )	Nr   r   r?   r   r@   rA   TrH   )r   r   r   Úrandom_regular_expander_graphr   r7   rC   rJ   rD   s      r   Útest_random_regular_expanderrN   S   s£   € ä
×Ñ˜Ô Ü
×Ñ˜Ô Ü
×(Ñ(¨¨AÓ.€Aäˆq‹6�QŠ;Ð-Ð-Ó-ˆ;Üˆq�w‰w‹<˜1˜q™5 1™9Ò$Ð?Ð&?Ó?Ð$Ü�?‰?˜1˜aÔ Ð7Ð"7Ó7Ð Ü×!Ñ! !Ó$¨Ò,ÐLÐ.LÓLÑ,r   c                  óà   — t        j                  d«       t        j                  d«       t        j                  dd¬«      } t	        | «      dk(  rt	        | j
                  «      dk(  sJ d«       ‚y )Nr   r   r1   r   )rE   r   r   zShould be a complete graph)r   r   r   rM   r   r7   )r,   s    r   Ú2test_random_regular_expander_explicit_constructionrP   _   sY   € Ü
×Ñ˜Ô Ü
×Ñ˜Ô Ü
×(Ñ(¨1°Ô2€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 multigraph©Úmatchr   ©Úcreate_using)r   Úraisesr   ÚNetworkXErrorr   ©rQ   s    r   Ú)test_margulis_gabber_galil_graph_badinputr[   g   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rS   )r   rX   r   rY   r+   rZ   s    r   Ú!test_chordal_cycle_graph_badinputr^   o   sA   € ä	�‰Ü
×ÑÐ Qô
ñ ;ô 	×Ñ˜q¨zÕ:÷;÷ ;ñ ;úr\   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.rT   r   rV   )r   rX   r   rY   r2   Ú
MultiGraph© r   r   Útest_paley_graph_badinputrb   w   sC   € Ü	�‰Ü
×ÑÐ Hô
ñ 6ô 	�‰�q¤r§}¡}Õ5÷6÷ 6ñ 6ús   ¦&AÁA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 «       y # 1 sw Y   Œ”xY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)Nr   r   ún must be a positive integerrT   éÿÿÿÿr   ©r   rE   ú$d must be greater than or equal to 2r   r   úNeed n-1>= d to have roomr   r   )r   r   rX   r   rY   rB   ra   r   r   Ú$test_maybe_regular_expander_badinputri   ~   sÕ   € Ü
×Ñ˜Ô Ü
×Ñ˜Ô ä	�‰”r×'Ñ'Ð/MÔ	Nñ -Ü
×!Ñ! B¨!Õ,÷-ô 
�‰”r×'Ñ'Ð/UÔ	Vñ -Ü
×!Ñ! B¨!Õ,÷-ô 
�‰”r×'Ñ'Ð/JÔ	Kñ ,Ü
×!Ñ! A¨Õ+÷,ð ,÷-ð -ú÷-ð -ú÷,ð ,ús$   ÁC;ÂDÃDÃ;DÄDÄ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 negativerT   re   )Úepsilon)r   r   rX   r   rY   rJ   ÚGraphra   r   r   Ú!test_is_regular_expander_badinputrn   Œ   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   rd   rT   re   r   rf   rg   r   r   rh   r   r   rk   r1   )r   rE   rl   )r   r   rX   r   rY   rM   ra   r   r   Ú%test_random_regular_expander_badinputrp   ”   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<   rF   rK   rN   rP   rm   ÚDiGraphÚMultiDiGraphr[   r^   rb   ri   rn   rp   ra   r   r   ú<module>rw      s¨  ðÙ Eã ã ð ‡�×Ñ˜Ð.Ó/ñó 0ðð ‡�×Ñ˜Ð.Ó/ñ"ó 0ð"ð ‡�×Ñ˜˜mÓ,ñó -ðð ‡�×Ñ˜Ð/Ó0ñ%ó 1ð%ð$ ‡�×Ñ˜Ò!;Ó<ñ8ó =ð8ð ‡�×Ñ˜˜mÓ,ñMó -ðMð ‡�×Ñ˜Ò!;Ó<ñMó =ðMòLð ‡�×Ñ˜¨¯©°"·*±*¸b¿o¹oÐ'NÓOñCó PðCð ‡�×Ñ˜¨¯©°"·*±*¸b¿o¹oÐ'NÓOñ;ó Pð;ò6ò,ò7ó?r   