Ë
    D^(hyJ  ã                   óè  — d dl Z d dlZ ej                  d«      Z ej                  d«      Zd dlZd dlmZm	Z	m
Z
 d dlmZ  G d„ d«      Zej                  d„ «       Zej                   j#                  d	ed
fedfedff«      d„ «       Zd„ Zej                   j#                  d ej.                  «       ej1                  d dgdd gge¬«      f ej4                  «       ej1                  d dgd d gge¬«      fg«      d„ «       Zd„ Zej                   j#                  dedfedfedfej:                  dfej<                  dff«      d„ «       Zej                   j#                  d ej.                  «       ddgddggf ej4                  «       ddgddggfg«      d„ «       Z d„ Z!ej                   j#                  dd d!g«      d"„ «       Z"ej                   j#                  d#ej.                  ej4                  f«      ej                   j#                  d$d%d d&d'difd d&d(d)d*œfd d&d+dd,d-œfg«      d.„ «       «       Z#ej                   j#                  d/ ej.                  «        ej4                  «       f«      d0„ «       Z$ej                   j#                  d/ ej.                  «        ej4                  «       f«      d1„ «       Z%d2„ Z&ej                   j#                  d#ejN                  ejP                  f«      d3„ «       Z)d4„ Z*ej                   j#                  d5g d6¢g d7¢g d8¢g d9¢g d:¢f«      d;„ «       Z+ej                   j#                  d5g d6¢g d7¢g d8¢g d9¢g d:¢f«      d<„ «       Z,ej                   j#                  d5g d6¢g d7¢g d8¢g d9¢g d:¢f«      d=„ «       Z-ej                   j#                  d5g d6¢g d7¢g d8¢g d9¢g d:¢f«      ej                   j#                  d>ej\                  ej                  ej^                  f«      d?„ «       «       Z0y)@é    NÚnumpyznumpy.testing)Úbarbell_graphÚcycle_graphÚ
path_graph)Úgraphs_equalc            	       óê   — e 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ej$                  j'                  ddeej-                  ddg«      f«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestConvertNumpyArrayc                 ó  — t        dd«      | _        t        dt        j                  ¬«      | _        | j                  t        j                  «       «      | _        | j                  t        j                  «       «      | _	        y )Né
   é   ©Úcreate_using)
r   ÚG1r   ÚnxÚDiGraphÚG2Úcreate_weightedÚGraphÚG3ÚG4)Úselfs    ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/tests/test_convert_numpy.pyÚsetup_methodz"TestConvertNumpyArray.setup_method   sR   € Ü  AÓ&ˆŒÜ˜b¬r¯z©zÔ:ˆŒØ×&Ñ&¤r§x¡x£zÓ2ˆŒØ×&Ñ&¤r§z¡z£|Ó4ˆ�ó    c                 óŠ   — t        d«      }|j                  |«       |j                  d„ |j                  «       D «       «       |S )Né   c              3   ó2   K  — | ]  \  }}||d |z   f–— Œ y­w)r   N© )Ú.0ÚuÚvs      r   ú	<genexpr>z8TestConvertNumpyArray.create_weighted.<locals>.<genexpr>   s   è ø€ Ò!G±T°Q¸ 1 a¨¨a©¤.Ñ!Gùó   ‚)r   Úadd_nodes_fromÚadd_weighted_edges_fromÚedges)r   ÚGÚgs      r   r   z%TestConvertNumpyArray.create_weighted   s8   € Ü˜‹NˆØ	×Ñ˜ÔØ	×!Ñ!Ñ!G¸Q¿W¹W»YÔ!GÔGØˆr   c                 óØ   — t        |j                  «       «      t        |j                  «       «      k(  sJ ‚t        |j                  «       «      t        |j                  «       «      k(  sJ ‚y )N)ÚsortedÚnodesr&   )r   r   r   s      r   Úassert_equalz"TestConvertNumpyArray.assert_equal   sJ   € Ü�b—h‘h“jÓ!¤V¨B¯H©H«JÓ%7Ò7Ð7Ð7Ü�b—h‘h“jÓ!¤V¨B¯H©H«JÓ%7Ò7Ð7Ñ7r   c                 ó@  — |j                  «       dkD  sJ ‚t        j                  ||¬«      }| j                  ||«       t        j                  ||¬«      }| j                  ||«       t        j
                  d|«      j                  |«      }| j                  ||«       y )Nr   r   )Úsumr   Úfrom_numpy_arrayr,   Úto_networkx_graphÚempty_graphÚ	__class__)r   r'   ÚAr   ÚGGÚGWÚGIs          r   Úidentity_conversionz)TestConvertNumpyArray.identity_conversion   sƒ   € Ø�u‰u‹w˜Š{Ðˆ{Ü× Ñ  °Ô>ˆØ×Ñ˜!˜RÔ Ü×!Ñ! !°,Ô?ˆØ×Ñ˜!˜RÔ Ü�^‰^˜A˜|Ó,×6Ñ6°qÓ9ˆØ×Ñ˜!˜RÕ r   c                 ó    — t         j                  g d¢g d¢g«      }t        j                  t        j
                  t        j                  |«       y)z!Conversion from non-square array.)é   é   r   )r   é   é   N)ÚnpÚarrayÚpytestÚraisesr   ÚNetworkXErrorr/   ©r   r3   s     r   Ú
test_shapez TestConvertNumpyArray.test_shape'   s1   € ä�H‰H’i¢Ð+Ó,ˆÜ�‰”b×&Ñ&¬×(;Ñ(;¸QÕ?r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)z(Conversion from graph to array to graph.N)r   Úto_numpy_arrayr   r7   r   rB   s     r   Útest_identity_graph_arrayz/TestConvertNumpyArray.test_identity_graph_array,   ó2   € ä×Ñ˜dŸg™gÓ&ˆØ× Ñ  §¡¨!¬R¯X©X«ZÕ8r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)z,Conversion from digraph to array to digraph.N)r   rE   r   r7   r   rB   s     r   Útest_identity_digraph_arrayz1TestConvertNumpyArray.test_identity_digraph_array1   ó2   € ä×Ñ˜dŸg™gÓ&ˆØ× Ñ  §¡¨!¬R¯Z©Z«\Õ:r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)z:Conversion from weighted graph to array to weighted graph.N)r   rE   r   r7   r   rB   s     r   Ú"test_identity_weighted_graph_arrayz8TestConvertNumpyArray.test_identity_weighted_graph_array6   rG   r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)z>Conversion from weighted digraph to array to weighted digraph.N)r   rE   r   r7   r   rB   s     r   Ú$test_identity_weighted_digraph_arrayz:TestConvertNumpyArray.test_identity_weighted_digraph_array;   rJ   r   c                 ó
  — t        d«      }t        d«      }t        |«      }t        j                  ||¬«      }t        j                  |«      }| j                  ||«       ||d   gz  }t        j                  t        j                  t        j                  ||¬«       g d¢}t        j                  t        j                  d||j                  z
  › d�¬«      5  t        j                  ||¬«       d	d	d	«       y	# 1 sw Y   y	xY w)
z6Conversion from graph to array to graph with nodelist.r   r   ©Únodelistr   )éÿÿÿÿr   r9   zNodes z in nodelist is not in G©ÚmatchN)
r   Úlistr   rE   r   r,   r?   r@   rA   r+   )r   ÚP4ÚP3rQ   r3   ÚGAs         r   Útest_nodelistz#TestConvertNumpyArray.test_nodelist@   sÖ   € ä˜‹]ˆÜ˜‹]ˆÜ˜“8ˆÜ×Ñ˜b¨8Ô4ˆÜ�X‰X�a‹[ˆØ×Ñ˜"˜bÔ!ð 	�X˜a‘[�MÑ!ˆÜ�‰”b×&Ñ&¬×(9Ñ(9¸2ÈÕQò ˆÜ�]‰]Ü×ÑØ˜8 b§h¡hÑ.Ð/Ð/GÐHô
ñ 	5ô ×Ñ˜b¨8Õ4÷		5÷ 	5ñ 	5ús   ÃC9Ã9Dc                 óô  — t        j                  «       }|j                  d„ t        d«      D «       «       t	        d«      }t        j
                  |«      }t        j                  j                  |t        j
                  |d ¬«      «       t        j                  j                  d|z  t        j
                  |«      «       t        j                  j                  d|z  t        j
                  |d¬«      «       y )Nc              3   ó2   K  — | ]  }||d z   dddœf–— Œ y­w)r9   ç      à?ç333333Ó?)ÚweightÚotherNr   )r   Úns     r   r"   z<TestConvertNumpyArray.test_weight_keyword.<locals>.<genexpr>W   s    è ø€ ÒWÈ˜A˜q 1™u°¸sÑ&CÔDÑWùr#   r   r   ©r^   r\   r]   r_   )	r   r   Úadd_edges_fromÚranger   rE   r=   Útestingr,   )r   ÚWP4rV   r3   s       r   Útest_weight_keywordz)TestConvertNumpyArray.test_weight_keywordU   s¨   € Ü�h‰h‹jˆØ×ÑÑWÌeÐTUËhÔWÔWÜ˜‹]ˆÜ×Ñ˜bÓ!ˆÜ
�
‰
×Ñ ¤2×#4Ñ#4°SÀÔ#FÔGÜ
�
‰
×Ñ  a¡¬×):Ñ):¸3Ó)?Ô@Ü
�
‰
×Ñ  a¡¬×):Ñ):¸3ÀwÔ)OÕPr   c                 ó  — t         j                  dgg«      }t        j                  |«      }t	        |d   d   d   «      t
        k(  sJ ‚t         j                  dgg«      j                  t        «      }t        j                  |«      }t	        |d   d   d   «      t        k(  sJ ‚t         j                  dgg«      j                  t        «      }t        j                  |«      }t	        |d   d   d   «      t        k(  sJ ‚t         j                  dgg«      j                  t        «      }t        j                  |«      }t	        |d   d   d   «      t        k(  sJ ‚t         j                  dgg«      j                  t        «      }t        j                  |«      }t	        |d   d   d   «      t        k(  sJ ‚t         j                  dgg«      j                  t        «      }t        j                  t        t        j                  |«       t         j                  g d¢g d¢gg d¢g d¢gg«      }t        j                  t        j                  d|j                   › �¬«      5  t        j                  |«      }d d d «       y # 1 sw Y   y xY w)Nr9   r   r^   )r9   r9   r9   zInput array must be 2D, not rS   )r=   r>   r   r/   ÚtypeÚintÚastypeÚfloatÚstrÚboolÚcomplexÚobjectr?   r@   Ú	TypeErrorrA   Úndim)r   r3   r'   r(   s       r   Útest_from_numpy_array_typez0TestConvertNumpyArray.test_from_numpy_array_type^   s  € Ü�H‰H�q�c�U‹OˆÜ×Ñ Ó"ˆÜ�A�a‘D˜‘G˜HÑ%Ó&¬#Ò-Ð-Ð-ä�H‰H�q�c�U‹O×"Ñ"¤5Ó)ˆÜ×Ñ Ó"ˆÜ�A�a‘D˜‘G˜HÑ%Ó&¬%Ò/Ð/Ð/ä�H‰H�q�c�U‹O×"Ñ"¤3Ó'ˆÜ×Ñ Ó"ˆÜ�A�a‘D˜‘G˜HÑ%Ó&¬#Ò-Ð-Ð-ä�H‰H�q�c�U‹O×"Ñ"¤4Ó(ˆÜ×Ñ Ó"ˆÜ�A�a‘D˜‘G˜HÑ%Ó&¬$Ò.Ð.Ð.ä�H‰H�q�c�U‹O×"Ñ"¤7Ó+ˆÜ×Ñ Ó"ˆÜ�A�a‘D˜‘G˜HÑ%Ó&¬'Ò1Ð1Ð1ä�H‰H�q�c�U‹O×"Ñ"¤6Ó*ˆÜ�‰”i¤×!4Ñ!4°aÔ8ä�H‰H’y¢)Ð,ªyº)Ð.DÐEÓFˆÜ�]‰]Ü×ÑÐ&BÀ1Ç6Á6À(Ð$Kô
ñ 	'ô ×#Ñ# AÓ&ˆA÷	'÷ 	'ñ 	'ús   É"JÊJ
c                 ó4  — dt         fdt        fg}t        j                  dgg|¬«      }t	        j
                  |«      }t        |d   d   d   «      t         k(  sJ ‚t        |d   d   d   «      t        k(  sJ ‚|d   d   d   dk(  sJ ‚|d   d   d   dk(  sJ ‚y )Nr^   Úcost)ç      ð?r:   ©Údtyper   r:   ru   )rk   ri   r=   r>   r   r/   rh   ©r   Údtr3   r'   s       r   Útest_from_numpy_array_dtypez1TestConvertNumpyArray.test_from_numpy_array_dtype|   s¯   € ØœÐ &¬# Ð/ˆÜ�H‰H�x�j�\¨ˆHÓ,ˆÜ×Ñ Ó"ˆÜ�A�a‘D˜‘G˜HÑ%Ó&¬%Ò/Ð/Ð/Ü�A�a‘D˜‘G˜F‘OÓ$¬Ò+Ð+Ð+Ø�‰t�A‰w�v‰ !Ò#Ð#Ð#Ø�‰t�A‰w�xÑ  CÒ'Ð'Ñ'r   c           	      ó’  — t         j                  ddgddgg«      }t        j                  «       }g d¢}|j	                  |D ��cg c]
  \  }}||df‘Œ c}}«       |j                  ddd¬«       t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚g d¢}t        j                  «       }|j	                  |D ��cg c]
  \  }}||df‘Œ c}}«       t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚t        j                  «       }|j                  t        |«      d¬«       d|d   d   d	   d
<   t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚yc c}}w c c}}w )zªTests that the :func:`networkx.from_numpy_array` function
        interprets integer weights as the number of parallel edges when
        creating a multigraph.

        r9   r:   )©r   r   ©r   r9   ©r9   r   ra   T)Úparallel_edgesr   F)r|   r}   r~   ©r9   r9   r€   r   r^   N)r=   r>   r   r   r%   Úadd_edger/   r   ÚMultiDiGraphrb   Úset)r   r3   Úexpectedr&   r    r!   Úactuals          r   Ú$test_from_numpy_array_parallel_edgesz:TestConvertNumpyArray.test_from_numpy_array_parallel_edges…   s�  € ô �H‰H�q˜!�f˜q !˜fÐ%Ó&ˆô —:‘:“<ˆÚ(ˆØ×(Ñ(À%×)H¹¸¸A¨1¨a°ª)Ó)HÔIØ×Ñ˜!˜Q qÐÔ)Ü×$Ñ$ Q°tÌ"Ï*É*ÔUˆÜ˜F HÔ-Ð-Ð-Ü×$Ñ$ Q°uÌ2Ï:É:ÔVˆÜ˜F HÔ-Ð-Ð-ò 9ˆÜ—?‘?Ó$ˆØ×(Ñ(À%×)H¹¸¸A¨1¨a°ª)Ó)HÔIÜ×$Ñ$Ø˜d´·±ô
ˆô ˜F HÔ-Ð-Ð-Ü—?‘?Ó$ˆØ×Ñ¤ E£
°1ÐÔ5à&'ˆ�‰�A‰�qÑ˜(Ñ#Ü×$Ñ$Ø˜e´"·/±/ô
ˆô ˜F HÔ-Ð-Ñ-ùó/ *Iùó *Is   ÁF=
Ã?G
ry   N)r^   Úf8)ÚcolorÚi1c                 óÌ   — t         j                  ddgddgg|¬«      }t        j                  |d ¬«      }d|j                  d   vsJ ‚t        |j                  d   «      dk(  sJ ‚y )Nr   r9   rv   ©Ú	edge_attrr^   r}   )r=   r>   r   r/   r&   Úlenrx   s       r   Ú"test_from_numpy_array_no_edge_attrz8TestConvertNumpyArray.test_from_numpy_array_no_edge_attr©   sf   € ô �H‰H�q˜!�f˜q !˜fÐ%¨RˆHÓ0ˆÜ×Ñ ¨TÔ2ˆØ˜qŸw™w t™}Ñ,Ð,Ð,Ü�1—7‘7˜4‘=Ó! QÒ&Ð&Ñ&r   c                 ó  — t         j                  ddgddgg«      }t        j                  |t        j                  d ¬«      }t        d„ |d   d   j                  «       D «       «      sJ ‚t        |d   d   d   «      dk(  sJ ‚y )Nr   r:   )r   rŒ   c              3   ó*   K  — | ]  \  }}d |v–— Œ y­w)r^   Nr   )r   Ú_Úes      r   r"   zUTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr.<locals>.<genexpr>¼   s   è ø€ ÒA©¨¨A�8 1Ô$ÑAùs   ‚r9   )r=   r>   r   r/   r‚   ÚallÚitemsr�   ©r   r3   r'   s      r   Ú,test_from_numpy_array_multiedge_no_edge_attrzBTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr¹   su   € Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ×Ñ ´·±È4ÔPˆÜÑA°°1±°a±·±³ÔAÔAÐAÐAÜ�1�Q‘4˜‘7˜1‘:‹ !Ò#Ð#Ñ#r   c                 ó¼   — t         j                  ddgddgg«      }t        j                  |d¬«      }d|j                  d   vsJ ‚|j                  d   d   dk(  sJ ‚y )Nr   r:   r   rt   r‹   r^   r}   )r=   r>   r   r/   r&   r•   s      r   Ú&test_from_numpy_array_custom_edge_attrz<TestConvertNumpyArray.test_from_numpy_array_custom_edge_attr¿   s`   € Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ×Ñ ¨VÔ4ˆØ˜qŸw™w t™}Ñ,Ð,Ð,Ø�w‰w�t‰}˜VÑ$¨Ò)Ð)Ñ)r   c                 óð   — t         j                  ddgddgg«      }t        j                  |t        j                  ¬«      }t        j                  «       }|j                  ddd¬«       t        ||«      sJ ‚y)z’Tests that a symmetric array has edges added only once to an
        undirected multigraph when using :func:`networkx.from_numpy_array`.

        r   r9   r   ra   N)r=   r>   r   r/   Ú
MultiGraphr�   r   )r   r3   r'   r„   s       r   Útest_symmetricz$TestConvertNumpyArray.test_symmetricÅ   se   € ô
 �H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ×Ñ ´·±Ô>ˆÜ—=‘=“?ˆØ×Ñ˜!˜Q qÐÔ)Ü˜A˜xÔ(Ð(Ñ(r   c                 óŽ   — t        j                  d«      }t        j                  |t        ¬«      }|j                  t        k(  sJ ‚y©z„Test that setting dtype int actually gives an integer array.

        For more information, see GitHub pull request #1363.

        r   rv   N)r   Úcomplete_graphrE   ri   rw   ©r   r'   r3   s      r   Útest_dtype_int_graphz*TestConvertNumpyArray.test_dtype_int_graphÐ   s6   € ô ×Ñ˜aÓ ˆÜ×Ñ˜a¤sÔ+ˆØ�w‰wœ#Š~Ð‰~r   c                 ó´   — t        j                  t        j                  d«      «      }t        j                  |t        ¬«      }|j
                  t        k(  sJ ‚yr�   )r   rš   rž   rE   ri   rw   rŸ   s      r   Útest_dtype_int_multigraphz/TestConvertNumpyArray.test_dtype_int_multigraphÚ   s?   € ô �M‰Mœ"×+Ñ+¨AÓ.Ó/ˆÜ×Ñ˜a¤sÔ+ˆØ�w‰wœ#Š~Ð‰~r   )Ú__name__Ú
__module__Ú__qualname__r   r   r,   r7   rC   rF   rI   rL   rN   rY   rf   rr   rz   r†   r?   ÚmarkÚparametrizeri   r=   rw   rŽ   r–   r˜   r›   r    r¢   r   r   r   r	   r	      s©   „ ò5òò8ò!ò@ò
9ò
;ò
9ò
;ò
5ò*Qò'ò<(ò".ðH ‡[�[×ÑØàØØ�H‰HØ! ?Ð3óð	
ó	ñ'ó	ð'ò$ò*ò	)òór   r	   c                  ó~   — t        j                  «       } | j                  ddd¬«       | j                  ddd¬«       | S )Nr9   r:   é   ra   éF   )r   rš   r�   )r'   s    r   Úmultigraph_test_graphr«   å   s6   € ä
�‰‹€AØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq�!˜B€JÔØ€Hr   )Úoperatorr„   éM   r©   rª   c                 óF   — t        j                  | |¬«      }|d   |k(  sJ ‚y )N)Úmultigraph_weightr~   )r   rE   )r«   r¬   r„   r3   s       r   Útest_numpy_multigraphr°   í   s'   € ä
×ÑÐ/À8ÔL€AØˆT‰7�hÒÐÑr   c                 ó˜   — | }|j                  ddd¬«       t        j                  |ddg¬«      }|j                  dk(  sJ ‚|d   d	k(  sJ ‚y )
Nr   r9   r   ra   r:   rP   )r:   r:   r~   r­   )r�   r   rE   Úshape)r«   r'   r3   s      r   Ú'test_to_numpy_array_multigraph_nodelistr³   ó   sQ   € Ø€AØ‡J�Jˆq�!˜A€JÔÜ
×Ñ˜! q¨! fÔ-€AØ�7‰7�fÒÐÐØˆT‰7�bŠ=Ð‰=r   zG, expectedù      ð?       @rv   c                 óŽ   — | j                  ddd¬«       t        j                  | t        ¬«      }t        j                  ||«       y )Nr   r9   r´   ra   rv   )r�   r   rE   rn   ÚnptÚassert_array_equal)r'   r„   r3   s      r   Ú#test_to_numpy_array_complex_weightsr¸   û   s8   € ð ‡J�Jˆq�!˜F€JÔ#Ü
×Ñ˜!¤7Ô+€AÜ×Ñ˜1˜hÕ'r   c                  ó¼  — t        j                  «       } d}| j                  ddd¬«       t        j                  | t        ¬«      }t
        j                  d|gddggt        ¬«      }t        j                  ||«       t        j                  | j                  «       t        ¬«      }t
        j                  d|g|dggt        ¬«      }t        j                  ||«       y )Nl   F}ÿÿÿr   r9   ra   rv   )
r   r   r�   rE   ro   r=   r>   r¶   r·   Úto_undirected)r'   Úwr3   r„   s       r   Ú%test_to_numpy_array_arbitrary_weightsr¼     s°   € Ü
�
‰
‹€AØ€AØ‡J�Jˆq�!Ð1€JÔ2Ü
×Ñ˜!¤6Ô*€AÜ�x‰x˜!˜Q˜ ! Q Ð(´ˆxÓ7€HÜ×Ñ˜1˜hÔ'ô 	×Ñ˜!Ÿ/™/Ó+´6Ô:€AÜ�x‰x˜!˜Q˜ ! Q Ð(´ˆxÓ7€HÜ×Ñ˜1˜hÕ'r   zfunc, expectedrR   r   é   gUUUUUU@r:   c                 ón  — t        j                  «       }g d¢}|D ]  }|j                  dd|¬«       Œ t        j                  || t        ¬«      }t
        j                  |d|gddgg«      sJ ‚t        j                  |j                  «       | t        ¬«      }t
        j                  |d|g|dgg«      sJ ‚y)z6Test various functions for reducing multiedge weights.)rR   r:   g      $@r   r9   ra   )r¯   rw   N)r   r‚   r�   rE   rk   r=   Úallcloserº   )Úfuncr„   r'   Úweightsr»   r3   s         r   Ú)test_to_numpy_array_multiweight_reductionrÂ     s©   € ô 	�‰Ó€AÚ€GØò #ˆØ	�
‰
�1�a ˆ
Õ"ð#ä
×Ñ˜!¨t¼5ÔA€AÜ�;‰;�q˜A˜x˜=¨1¨a¨&Ð1Ô2Ð2Ð2ô 	×Ñ˜!Ÿ/™/Ó+¸tÌ5ÔQ€AÜ�;‰;�q˜A˜x˜=¨8°Q¨-Ð8Ô9Ð9Ñ9r   r|   )r   r;   c                 óþ   — | j                  dddd¬«       t        j                  dt        fdt        fg«      }t	        j
                  | |d¬	«      }t        j                  ||¬
«      }t        j                  ||«       y)zƒWhen `dtype` is structured (i.e. has names) and `weight` is None, use
    the named fields of the dtype to look up edge attributes.r   r9   r   g      @)r^   rt   r^   rt   N©rw   r^   rv   )	r�   r=   rw   ri   r   rE   Úasarrayr¶   r·   )r'   r„   rw   r3   s       r   Ú6test_to_numpy_array_structured_dtype_attrs_from_fieldsrÆ   (  si   € ð ‡J�Jˆq�!˜B S€JÔ)Ü�H‰H�x¤�o¨´ }Ð5Ó6€EÜ
×Ñ˜! 5°Ô6€AÜ�z‰z˜(¨%ˆzÓ0€HÜ×Ñ˜1˜hÕ'r   c                  ó  — t        j                  d«      } t        j                  dt        fg«      }t        j
                  | |d ¬«      }t        j                  g d¢g d¢g d¢gt        ¬«      }t        j                  |d   |«       y )Nr   r^   rÄ   )r   r9   r   )r9   r   r9   rv   )	r   r   r=   rw   rk   rE   r>   r¶   r·   )r'   rw   r3   r„   s       r   Ú8test_to_numpy_array_structured_dtype_single_attr_defaultrÈ   9  sg   € Ü
�‰�aÓ€AÜ�H‰H�x¤Ð'Ð(Ó)€EÜ
×Ñ˜! 5°Ô6€AÜ�x‰xš¢IªyÐ9ÄˆxÓG€HÜ×Ñ˜1˜X™;¨Õ1r   )Ú
field_nameÚexpected_attr_val)r^   r9   )rt   r   c                 ó0  — t        j                  «       }|j                  ddd¬«       t        j	                  | t
        fg«      }t        j                  ||d ¬«      }t        j                  d|g|dggt
        ¬«      }t        j                  ||    |«       y )Nr   r9   r   )rt   rÄ   rv   )
r   r   r�   r=   rw   rk   rE   r>   r¶   r·   )rÉ   rÊ   r'   rw   r3   r„   s         r   Ú0test_to_numpy_array_structured_dtype_single_attrrÌ   A  sƒ   € ô 	�‰‹
€AØ‡J�Jˆq�!˜!€JÔÜ�H‰H�z¤5Ð)Ð*Ó+€EÜ
×Ñ˜! 5°Ô6€AÜ�x‰x˜!Ð.Ð/Ð2CÀQÐ1GÐHÔPUˆxÓV€HÜ×Ñ˜1˜Z™=¨(Õ3r   Ú
graph_typeÚedger}   r9   r^   r;   éüÿÿÿ)r^   Úflowg       @iÓÿÿÿ)r^   rt   rÐ   c                 ó&  —  | |g«      }t         j                  dt        fdt        fdt        fg«      }t        j                  ||d ¬«      }|j
                  D ]7  }t        j                  |t        |¬«      }t        j                  ||   |«       Œ9 y )Nr^   rt   rÐ   rÄ   )r=   rw   rk   r   rE   Únamesr¶   r·   )rÍ   rÎ   r'   rw   r3   Úattrr„   s          r   Ú4test_to_numpy_array_structured_dtype_multiple_fieldsrÔ   Q  s�   € ñ 	�D�6Ó€AÜ�H‰H�x¤Ð'¨&´%¨¸6Ä5¸/ÐJÓK€EÜ
×Ñ˜! 5°Ô6€AØ—‘ò 2ˆÜ×$Ñ$ Q¬e¸DÔAˆÜ×Ñ˜q ™w¨Õ1ñ2r   r'   c                 ój  — | j                  ddd¬«       t        j                  dt        fdt        fg«      }t	        j
                  | |d t        j                  ¬«      }|j                  D ]F  }t	        j
                  | t        |t        j                  ¬«      }t        j                  ||   |«       ŒH y )Nr   r9   r   ra   r^   rt   ©rw   r^   Únonedge)
r�   r=   rw   rk   r   rE   ÚnanrÒ   r¶   r·   )r'   rw   r3   rÓ   r„   s        r   Ú3test_to_numpy_array_structured_dtype_scalar_nonedgerÙ   d  s‹   € à‡J�Jˆq�!˜B€JÔÜ�H‰H�x¤Ð'¨&´%¨Ð9Ó:€EÜ
×Ñ˜! 5°¼r¿v¹vÔF€AØ—‘ò 2ˆÜ×$Ñ$ Q¬e¸DÌ"Ï&É&ÔQˆÜ×Ñ˜q ™w¨Õ1ñ2r   c                 óŒ  — | j                  ddd¬«       t        j                  dt        fdt        fg«      }t        j	                  dt        j
                  fg|¬«      }t        j                  | |d|¬	«      }|j                  D ]=  }||   }t        j                  | t        ||¬	«      }t        j                  ||   |«       Œ? y)
z[Similar to the scalar case, except has a different non-edge value for
    each named field.r   r9   r   ra   r^   rt   rv   NrÖ   )r�   r=   rw   rk   r>   Úinfr   rE   rÒ   r¶   r·   )r'   rw   Únonedgesr3   rÓ   r×   r„   s          r   Ú0test_to_numpy_array_structured_dtype_nonedge_aryrÝ   n  sª   € ð ‡J�Jˆq�!˜B€JÔÜ�H‰H�x¤Ð'¨&´%¨Ð9Ó:€EÜ�x‰x˜!œRŸV™V˜˜¨UˆxÓ3€HÜ
×Ñ˜! 5°¸xÔH€AØ—‘ò 2ˆØ˜4‘.ˆÜ×$Ñ$ Q¬e¸DÈ'ÔRˆÜ×Ñ˜q ™w¨Õ1ñ2r   c                  ó–  — t        j                  d«      } t        j                  dt        fdt        fg«      }d}t        j                  t        |¬«      5  t        j                  | |¬«       ddd«       t        j                  t        |¬«      5  t        j                  | |d¬«       ddd«       y# 1 sw Y   ŒFxY w# 1 sw Y   yxY w)	zgUsing both a structured dtype (with named fields) and specifying a `weight`
    parameter is ambiguous.r   r^   rt   z7Specifying `weight` not supported for structured dtypesrS   rv   NrÄ   )	r   r   r=   rw   ri   r?   r@   Ú
ValueErrorrE   )r'   rw   Úexception_msgs      r   Ú7test_to_numpy_array_structured_dtype_with_weight_raisesrá   |  sŸ   € ô 	�‰�aÓ€AÜ�H‰H�x¤�o¨´ }Ð5Ó6€EØM€MÜ	�‰”z¨Ô	7ñ *Ü
×Ñ˜! 5Õ)÷*ä	�‰”z¨Ô	7ñ 9Ü
×Ñ˜! 5°Õ8÷9ð 9÷*ð *ú÷9ð 9ús   ÁB3ÂB?Â3B<Â?Cc                 ó  — t        j                  d| ¬«      }t        j                  dt        fdt        fg«      }t        j                  t         j                  d¬«      5  t        j                  ||d ¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r^   rt   z#Structured arrays are not supportedrS   rÄ   )	r   r   r=   rw   ri   r?   r@   rA   rE   )rÍ   r'   rw   s      r   Ú0test_to_numpy_array_structured_multigraph_raisesrã   ˆ  si   € ä
�‰�a jÔ1€AÜ�H‰H�x¤�o¨´ }Ð5Ó6€EÜ	�‰”r×'Ñ'Ð/TÔ	Uñ 7Ü
×Ñ˜! 5°Õ6÷7÷ 7ñ 7ús   Á BÂBc                  óº  — d} t         j                  t         j                  | dz
  «      d¬«      }t        j                  | «      }t        t        j                  |d¬«      |«      sJ ‚t        t        | «      «      }t        t        j                  |d|¬«      |«      sJ ‚t        t        | dz   «      «      }t        j                  t        d¬«      5  t        j                  ||¬	«       ddd«       t        t        | dz
  «      «      }t        j                  t        d¬«      5  t        j                  ||¬	«       ddd«       y# 1 sw Y   Œ\xY w# 1 sw Y   yxY w)
z:An exception is raised when `len(nodelist) != A.shape[0]`.r;   r9   ©ÚkNr‹   ©rŒ   rQ   z'nodelist must have the same length as ArS   rP   )r=   ÚdiagÚonesr   r   r   r/   rU   rc   r?   r@   rß   )r`   r3   r„   r+   s       r   Ú'test_from_numpy_array_nodelist_bad_sizerê   �  s  € à	€AÜ
�‰”—‘˜˜A™“ !ˆÓ$€AÜ�}‰}˜QÓ€Häœ×+Ñ+¨A¸Ô>ÀÔIÐIÐIÜ”�q“‹N€EÜÜ
×Ñ˜A¨¸Ô>Àôð ð ô
 ”�q˜1‘u“Ó€EÜ	�‰”zÐ)RÔ	Sñ /Ü
×Ñ˜A¨Õ.÷/ô ”�q˜1‘u“Ó€EÜ	�‰”zÐ)RÔ	Sñ /Ü
×Ñ˜A¨Õ.÷/ð /÷/ð /ú÷
/ð /ús   ÃEÄ$EÅEÅEr+   )r   r   r:   r9   r   )é	   r©   r9   r:   é   )ÚaÚbÚcÚdr’   )r|   r€   ©r:   r   )r   r:   )r   r9   )r3   r:   r©   Úspam)r9   r   c                 ó˜  — t         j                  t         j                  d«      d¬«      }t        j                  t        j
                  d«      t        t        | «      «      d¬«      }t        j                  |d | ¬«      }t        ||«      sJ ‚t        j                  |dd	¬
«       t        j                  || ¬«      }t        ||«      sJ ‚y )Nr   r9   rå   r;   T©ÚmappingÚcopyrç   ru   r^   ©ÚnamerP   )r=   rè   ré   r   Úrelabel_nodesr   ÚdictÚ	enumerater/   r   Úset_edge_attributes)r+   r3   r„   r'   s       r   Útest_from_numpy_array_nodelistrý   §  s¤   € ô 	�‰”—‘˜“
˜aˆÓ €Aä×ÑÜ
�‰�aÓ¤$¤y°Ó'7Ó"8¸tô€Hô 	×Ñ˜A¨¸Ô>€AÜ˜˜8Ô$Ð$Ð$ô ×Ñ˜8 S¨xÕ8Ü
×Ñ˜A¨Ô.€AÜ˜˜8Ô$Ð$Ñ$r   c                 óÜ  — t         j                  t         j                  d«      d¬«      }t        j                  g d¢«      }t        j
                  |t        t        | «      «      d¬«      }t        j                  |t        j                  d | ¬«      }t        ||«      sJ ‚t        j                  |dd	¬
«       t        j                  |t        j                  | ¬«      }t        ||«      sJ ‚y )Nr   r9   rå   ©r}   )r9   r:   rñ   )r   r   Trô   )r   rŒ   rQ   ru   r^   r÷   )r   rQ   )r=   rè   ré   r   r   rù   rú   rû   r/   r   rü   )r+   r3   ÚHr„   r'   s        r   Ú'test_from_numpy_array_nodelist_directedr  À  s²   € ô 	�‰”—‘˜“
˜aˆÓ €Aä
�
‰
Ò3Ó4€AÜ×Ñ ¬4´	¸%Ó0@Ó+AÈÔM€HÜ
×Ñ˜A¬B¯J©JÀ$ÐQVÔW€AÜ˜˜8Ô$Ð$Ð$ô ×Ñ˜8 S¨xÕ8Ü
×Ñ˜A¬B¯J©JÀÔG€AÜ˜˜8Ô$Ð$Ñ$r   c                 óª  — t         j                  g d¢g d¢g d¢g d¢g d¢g«      }t        j                  «       }t	        d«      D ]-  \  }}|j                  t        j                  ||dz   «      «       Œ/ t        j                  |t        t	        | «      «      d¬	«      }t        j                  |dt        j                  d | ¬
«      }t        ||«      sJ ‚y )N)r   r9   r   r   r   )r9   r   r:   r   r   )r   r:   r   r   r   )r   r   r   r   r   )r   r   r   r   r   rÿ   r9   Trô   )r   r   rŒ   rQ   )r=   r>   r   rš   rû   rb   Ú	itertoolsÚrepeatrù   rú   r/   r   )r+   r3   r   ÚirÎ   r„   r'   s          r   Ú)test_from_numpy_array_nodelist_multigraphr  Ø  s¾   € ô 	�‰âÚÚÚÚð	
ó	€Aô 	�‰‹€AÜÐ=Ó>ò 8‰ˆˆ4Ø	×Ñœ×)Ñ)¨$°°A±Ó6Õ7ð8ä×Ñ ¬4´	¸%Ó0@Ó+AÈÔM€Hä
×ÑØ	ØÜ—]‘]ØØô	€Aô ˜˜8Ô$Ð$Ñ$r   Úgraphc           	      óð  —  | d«      }t        j                  |«      }t        j                  |t        t	        |«      «      d¬«      }t        j
                  |d |¬«      }t        ||«      sJ ‚ | d«      }|j                  d«       t        j                  |«      }t        j                  |t        t        |j                  |«      «      d¬«      }t        j
                  |d |¬«      }t        ||«      sJ ‚y )Nr;   Trô   rç   r   Úfoo)
r   rE   rù   rú   rû   r/   r   Úadd_nodeÚzipr+   )r  r+   r'   r3   r„   r   s         r   Ú'test_from_numpy_array_nodelist_rountripr  ü  sÎ   € ñ 	ˆa‹€AÜ
×Ñ˜!Ó€AÜ×Ñ ¬4´	¸%Ó0@Ó+AÈÔM€HÜ
×Ñ˜A¨¸Ô>€AÜ˜˜8Ô$Ð$Ð$ñ 	ˆa‹€AØ‡J�JˆuÔÜ
×Ñ˜!Ó€AÜ×Ñ ¬4´°A·G±G¸UÓ0CÓ+DÈ4ÔP€HÜ
×Ñ˜A¨¸Ô>€AÜ˜˜8Ô$Ð$Ñ$r   )1r  r?   Úimportorskipr=   r¶   Únetworkxr   Únetworkx.generators.classicr   r   r   Únetworkx.utilsr   r	   Úfixturer«   r¦   r§   r.   ÚminÚmaxr°   r³   r   r>   rn   r   r¸   r¼   ÚmeanÚmedianrÂ   rÆ   rÈ   rÌ   rÔ   rÙ   rÝ   rá   rš   r‚   rã   rê   rý   r  r  rž   Úwheel_graphr  r   r   r   ú<module>r     s_  ðÛ ã à€V×Ñ˜Ó!€Ø€f×Ñ˜/Ó*€ã ß NÑ NÝ '÷Uñ Uðp ‡�ñó ðð ‡�×ÑÐ1°S¸"°IÀÀQ¸xÈ#ÈrÈÐ3SÓTñó Uðò
ð ‡�×ÑØà	ˆ�‰‹�R—X‘X  6˜{¨V°Q¨KÐ8À�XÓHÐIØ	ˆ�‰‹�r—x‘x ! V ¨q°!¨fÐ 5¸W�xÓEÐFðóñ(óð(ò(ð ‡�×ÑØØ	ˆ2€Y��b�	˜C ˜9 r§w¡w°Ð&7¸"¿)¹)ÀQ¸ÐHóñ:ó	ð:ð ‡�×ÑØà	ˆ�‰‹�v˜wÐ'¨'°6Ð):Ð;Ð<Ø	ˆ�‰‹˜ Ð)¨F°FÐ+;Ð<Ð=ðóñ(óð(ò2ð ‡�×ÑØ'àØðóñ4óð4ð ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>Ø‡�×ÑØ
àØ	
ˆA�˜"ˆ~ÐØ	
ˆA˜! RÑ(Ð)Ø	
ˆA˜# r°3Ñ7Ð8ð	óñ2óó ?ð2ð ‡�×Ñ˜˜x˜rŸx™x›z¨:¨2¯:©:«<Ð8Ó9ñ2ó :ð2ð ‡�×Ñ˜˜x˜rŸx™x›z¨:¨2¯:©:«<Ð8Ó9ñ
2ó :ð
2ò	9ð ‡�×Ñ˜¨¯©°r·±Ð'GÓHñ7ó Ið7ò/ð. ‡�×ÑØâÚÚ!Ú0Ú#ðó	ñ%ó	ð%ð ‡�×ÑØâÚÚ!Ú0Ú#ðó	ñ%ó	ð%ð ‡�×ÑØâÚÚ!Ú0Ú#ðó	ñ%ó	ð%ð4 ‡�×ÑØâÚÚ!Ú0Ú#ðó	ð ‡�×Ñ˜ 2×#4Ñ#4°b·n±nÀbÇnÁnÐ"UÓVñ%ó Wó	ñ%r   