+
    �°³j½M  ã                   ó°  € ^ RI t ^ RIt^ RIt^ RIHt ]P                  ! R4      t]P                  ! R4      t ! R R4      t	]P                  R 4       t]P                  P                  R*]^M3]^3]^F334      R 4       tR	 t]P                  P                  R
]P&                  ! 4       ]P)                  ^ R+.R+^ ..]R7      3]P,                  ! 4       ]P)                  ^ R+.^ ^ ..]R7      3.4      R 4       tR t]P                  P                  R]R,3]^
3]^3]P2                  R-3]P4                  ^334      R 4       t]P                  P                  R
]P&                  ! 4       R.R/.R/R...3]P,                  ! 4       R.R/.R.R...3.4      R 4       tR t]P                  P                  R0R1R2.4      R 4       t]P                  P                  R]P&                  ]P,                  34      ]P                  P                  RR3^ ^R^
/3^ ^R^RR4/3^ ^RRR^
RR5/3.4      R 4       4       t]P                  P                  R]P&                  ! 4       ]P,                  ! 4       34      R 4       t ]P                  P                  R]P&                  ! 4       ]P,                  ! 4       34      R 4       t!R t"]P                  P                  R]PF                  ]PH                  34      R 4       t%R t&]P                  P                  R . R6O. R7O. R8O. R9O. R:O34      R! 4       t']P                  P                  R . R6O. R7O. R8O. R9O. R:O34      R" 4       t(]P                  P                  R . R6O. R7O. R8O. R9O. R:O34      R# 4       t)]P                  P                  R . R6O. R7O. R8O. R9O. R:O34      ]P                  P                  R$]PT                  ]PV                  ]PX                  34      R% 4       4       t-]P                  P                  R&].! R'4      ]P^                  R;34      R( 4       t0]P                  P                  R&].! R'4      ]P^                  R;34      R) 4       t1R# )<é    N)Úgraphs_equalÚnumpyznumpy.testingc            	       óþ   a € ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR t]P&                  P)                  RR]]P/                  RR.4      34      R 4       tR tR tR tR tR tRtV tR# )ÚTestConvertNumpyArrayc                ó8  € \         P                  ! ^
^4      V n        \         P                  ! ^
\         P                  R7      V n        V P                  \         P                  ! 4       4      V n        V P                  \         P                  ! 4       4      V n	        R# )é
   ©Úcreate_usingN)
ÚnxÚbarbell_graphÚG1Úcycle_graphÚDiGraphÚG2Úcreate_weightedÚGraphÚG3ÚG4)Úselfs   &Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/networkx/tests/test_convert_numpy.pyÚsetup_methodÚ"TestConvertNumpyArray.setup_method   s\   € Ü×"Ò" 2 qÓ)ˆŒÜ—.’. ´"·*±*Ô=ˆŒØ×&Ñ&¤r§x¢x£zÓ2ˆŒØ×&Ñ&¤r§z¢z£|Ó4ˆŽó    c                ó    € \         P                  ! ^4      pVP                  V4       VP                  R VP	                  4        4       4       V# )é   c              3   ó<   "  € T F  w  rW^
V,           3x € K  	  R# 5i)r   N© )Ú.0ÚuÚvs   &  r   Ú	<genexpr>Ú8TestConvertNumpyArray.create_weighted.<locals>.<genexpr>   s   é € Ð!G¹Y±T°Q 1¨¨a­¥.»Yùs   ‚)r   r   Úadd_nodes_fromÚadd_weighted_edges_fromÚedges)r   ÚGÚgs   && r   r   Ú%TestConvertNumpyArray.create_weighted   s=   € Ü�NŠN˜1ÓˆØ	×Ñ˜ÔØ	×!Ñ!Ñ!G¸Q¿W¹W¼YÓ!GÔGØˆr   c                óâ   € \        VP                  4       4      \        VP                  4       4      8X  g   Q h\        VP                  4       4      \        VP                  4       4      8X  g   Q hR # )N)ÚsortedÚnodesr%   )r   r   r   s   &&&r   Úassert_equalÚ"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                óB  € VP                  4       ^ 8”  g   Q h\        P                  ! W#R7      pV P                  W4       \        P                  ! W#R7      pV P                  W4       \        P
                  ! ^ V4      P                  V4      pV P                  W4       R# )r   r	   N)Úsumr   Úfrom_numpy_arrayr,   Úto_networkx_graphÚempty_graphÚ	__class__)r   r&   ÚAr
   ÚGGÚGWÚGIs   &&&&   r   Úidentity_conversionÚ)TestConvertNumpyArray.identity_conversion   sy   € Ø�u‰u‹w˜Œ{Ðˆ{Ü× Ò  Ô>ˆØ×Ñ˜!Ô Ü×!Ò! !Ô?ˆØ×Ñ˜!Ô Ü�^Š^˜A˜|Ó,×6Ñ6°qÓ9ˆØ×Ñ˜!Ö r   c                ó¤   € \         P                  . RO. RO.4      p\        P                  ! \        P
                  \        P                  V4       R# )z!Conversion from non-square array.N)é   é   é   )r   é   é   )ÚnpÚarrayÚpytestÚraisesr   ÚNetworkXErrorr0   ©r   r4   s   & r   Ú
test_shapeÚ TestConvertNumpyArray.test_shape&   s1   € ä�H‰H’i¢Ð+Ó,ˆÜ�Š”b×&Ñ&¬×(;Ñ(;¸QÖ?r   c                ó¦   € \         P                  ! V P                  4      pV P                  V P                  V\         P                  ! 4       4       R# )z(Conversion from graph to array to graph.N)r   Úto_numpy_arrayr   r8   r   rE   s   & r   Útest_identity_graph_arrayÚ/TestConvertNumpyArray.test_identity_graph_array+   ó2   € ä×Ò˜dŸg™gÓ&ˆØ× Ñ  §¡¨!¬R¯XªX«ZÖ8r   c                ó¦   € \         P                  ! V P                  4      pV P                  V P                  V\         P                  ! 4       4       R# )z,Conversion from digraph to array to digraph.N)r   rI   r   r8   r   rE   s   & r   Útest_identity_digraph_arrayÚ1TestConvertNumpyArray.test_identity_digraph_array0   ó2   € ä×Ò˜dŸg™gÓ&ˆØ× Ñ  §¡¨!¬R¯ZªZ«\Ö:r   c                ó¦   € \         P                  ! V P                  4      pV P                  V P                  V\         P                  ! 4       4       R# )z:Conversion from weighted graph to array to weighted graph.N)r   rI   r   r8   r   rE   s   & r   Ú"test_identity_weighted_graph_arrayÚ8TestConvertNumpyArray.test_identity_weighted_graph_array5   rL   r   c                ó¦   € \         P                  ! V P                  4      pV P                  V P                  V\         P                  ! 4       4       R# )z>Conversion from weighted digraph to array to weighted digraph.N)r   rI   r   r8   r   rE   s   & r   Ú$test_identity_weighted_digraph_arrayÚ:TestConvertNumpyArray.test_identity_weighted_digraph_array:   rP   r   c                ón  € \         P                  ! ^4      p\         P                  ! ^4      p\        V4      p\         P                  ! WR7      p\         P                  ! V4      pV P                  WR4       W3^ ,          .,          p\        P                  ! \         P                  \         P                  W#R7       . ROp\        P                  ! \         P                  RW2P                  ,
           R2R7      ;_uu_ 4        \         P                  ! W#R7       RRR4       R#   + '       g   i     R# ; i)z6Conversion from graph to array to graph with nodelist.©ÚnodelistzNodes z in nodelist is not in G©ÚmatchN)éÿÿÿÿr   r;   )
r   Ú
path_graphÚlistrI   r   r,   rB   rC   rD   r+   )r   ÚP4ÚP3rY   r4   ÚGAs   &     r   Útest_nodelistÚ#TestConvertNumpyArray.test_nodelist?   sÙ   € ä�]Š]˜1ÓˆÜ�]Š]˜1ÓˆÜ˜“8ˆÜ×Ò˜bÔ4ˆÜ�XŠX�a‹[ˆØ×Ñ˜"Ô!ð 	˜a•[�MÕ!ˆÜ�Š”b×&Ñ&¬×(9Ñ(9¸2ÕQò ˆÜ�]Š]Ü×ÑØ˜8§h¡hÕ.Ð/Ð/GÐH÷
ö 
ô ×Ò˜bÕ4÷	
÷ 
÷ 
ò 
ús   ÄD#Ä#D4	c                ó&  € \         P                  ! 4       pVP                  R  \        ^4       4       4       \         P                  ! ^4      p\         P
                  ! V4      p\        P                  P                  V\         P
                  ! VRR7      4       \        P                  P                  RV,          \         P
                  ! V4      4       \        P                  P                  RV,          \         P
                  ! VRR7      4       R# )c              3   ó@   "  € T F  qV^,           RRRR/3x € K  	  R# 5i)r;   Úweightç      à?Úotherç333333Ó?Nr   )r   Úns   & r   r!   Ú<TestConvertNumpyArray.test_weight_keyword.<locals>.<genexpr>V   s"   é € ÐWÉhÈ˜q 1�u x°°g¸sÐ&CÕDËhùs   ‚N©rf   rg   ri   rh   )	r   r   Úadd_edges_fromÚranger]   rI   r@   Útestingr,   )r   ÚWP4r_   r4   s   &   r   Útest_weight_keywordÚ)TestConvertNumpyArray.test_weight_keywordT   s­   € Ü�hŠh‹jˆØ×ÑÑWÌeÐTUÌhÓWÔWÜ�]Š]˜1ÓˆÜ×Ò˜bÓ!ˆÜ
�
‰
×Ñ ¤2×#4Ò#4°SÀÔ#FÔGÜ
�
‰
×Ñ  a¥¬×):Ò):¸3Ó)?Ô@Ü
�
‰
×Ñ  a¥¬×):Ò):¸3ÀwÔ)OÖPr   c                óì  € \         P                  ^..4      p\        P                  ! V4      p\	        V^ ,          ^ ,          R,          \
        4      '       g   Q h\         P                  ^..4      P                  \        4      p\        P                  ! V4      p\	        V^ ,          ^ ,          R,          \        4      '       g   Q h\         P                  ^..4      P                  \        4      p\        P                  ! V4      p\	        V^ ,          ^ ,          R,          \        4      '       g   Q h\         P                  ^..4      P                  \        4      p\        P                  ! V4      p\	        V^ ,          ^ ,          R,          \        4      '       g   Q h\         P                  ^..4      P                  \        4      p\        P                  ! V4      p\	        V^ ,          ^ ,          R,          \        4      '       g   Q h\         P                  ^..4      P                  \        4      p\        P                  ! \        \        P                  V4       \         P                  . RO. RO.. RO. RO..4      p\        P                  ! \        P                  RVP                    2R7      ;_uu_ 4        \        P                  ! V4      pRRR4       R#   + '       g   i     R# ; i)r;   rf   zInput array must be 2D, not rZ   N)r;   r;   r;   )r@   rA   r   r0   Ú
isinstanceÚintÚastypeÚfloatÚstrÚboolÚcomplexÚobjectrB   rC   Ú	TypeErrorrD   Úndim)r   r4   r&   r'   s   &   r   Útest_from_numpy_array_typeÚ0TestConvertNumpyArray.test_from_numpy_array_type]   s  € Ü�H‰H�q�c�U‹OˆÜ×Ò Ó"ˆÜ˜!˜A�$˜q�' (Õ+¬S×1Ò1Ð1Ð1ä�H‰H�q�c�U‹O×"Ñ"¤5Ó)ˆÜ×Ò Ó"ˆÜ˜!˜A�$˜q�' (Õ+¬U×3Ò3Ð3Ð3ä�H‰H�q�c�U‹O×"Ñ"¤3Ó'ˆÜ×Ò Ó"ˆÜ˜!˜A�$˜q�' (Õ+¬S×1Ò1Ð1Ð1ä�H‰H�q�c�U‹O×"Ñ"¤4Ó(ˆÜ×Ò Ó"ˆÜ˜!˜A�$˜q�' (Õ+¬T×2Ò2Ð2Ð2ä�H‰H�q�c�U‹O×"Ñ"¤7Ó+ˆÜ×Ò Ó"ˆÜ˜!˜A�$˜q�' (Õ+¬W×5Ò5Ð5Ð5ä�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   ËK"Ë"K3	c                ó°  € R \         3R\        3.p\        P                  R..VR7      p\        P
                  ! V4      p\        V^ ,          ^ ,          R ,          \         4      '       g   Q h\        V^ ,          ^ ,          R,          \        4      '       g   Q hV^ ,          ^ ,          R,          ^8X  g   Q hV^ ,          ^ ,          R ,          R8X  g   Q hR# )rf   Úcostç      ð?©ÚdtypeN)r‚   r<   )rw   ru   r@   rA   r   r0   rt   ©r   Údtr4   r&   s   &   r   Útest_from_numpy_array_dtypeÚ1TestConvertNumpyArray.test_from_numpy_array_dtype{   s¯   € ØœÐ &¬# Ð/ˆÜ�H‰H�x�j�\¨ˆHÓ,ˆÜ×Ò Ó"ˆÜ˜!˜A�$˜q�' (Õ+¬U×3Ò3Ð3Ð3Ü˜!˜A�$˜q�' &�/¬3×/Ò/Ð/Ð/Ø��t�A�w�v� !Ô#Ð#Ð#Ø��t�A�w�xÕ  CÔ'Ð'Ò'r   c           	     óâ  € \         P                  ^^.^^..4      p\        P                  ! 4       p. ROpTP	                  V UUu. uF	  w  rEWE^3NK  	  upp4       VP                  ^^^R7       \        P                  ! VR\        P                  R7      p\        Wb4      '       g   Q h\        P                  ! VR\        P                  R7      p\        Wb4      '       g   Q h. ROp\        P                  ! 4       pTP	                  V UUu. uF	  w  rEWE^3NK  	  upp4       \        P                  ! VR\        P                  R7      p\        Wb4      '       g   Q h\        P                  ! 4       pVP                  \        V4      ^R7       ^V^,          ^,          ^ ,          R&   \        P                  ! VR\        P                  R7      p\        Wb4      '       g   Q hR# u uppi u uppi )	z’Tests that the :func:`networkx.from_numpy_array` function
interprets integer weights as the number of parallel edges when
creating a multigraph.

rl   T)Úparallel_edgesr
   Frf   N)©r   r   ©r   r;   ©r;   r   )r‹   rŒ   r�   ©r;   r;   rŽ   )r@   rA   r   r   r$   Úadd_edger0   r   ÚMultiDiGraphrm   Úset)r   r4   Úexpectedr%   r   r    Úactuals   &      r   Ú$test_from_numpy_array_parallel_edgesÚ:TestConvertNumpyArray.test_from_numpy_array_parallel_edges„   s“  € ô �H‰H�q˜!�f˜q !˜fÐ%Ó&ˆô —:’:“<ˆÚ(ˆØ×(Ñ(Á%Ô)HÁ%¹¸¨1°«)Á%Ò)HÔIØ×Ñ˜!˜Q qÐÔ)Ü×$Ò$ Q°tÌ"Ï*É*ÔUˆÜ˜F×-Ò-Ð-Ð-Ü×$Ò$ Q°uÌ2Ï:É:ÔVˆÜ˜F×-Ò-Ð-Ð-ò 9ˆÜ—?’?Ó$ˆØ×(Ñ(Á%Ô)HÁ%¹¸¨1°«)Á%Ò)HÔIÜ×$Ò$Ø˜d´·±ô
ˆô ˜F×-Ò-Ð-Ð-Ü—?’?Ó$ˆØ×Ñ¤ E£
°1ÐÔ5à&'ˆ���A��qÕ˜(Ñ#Ü×$Ò$Ø˜e´"·/±/ô
ˆô ˜F×-Ò-Ð-Ò-ùó/ *Iùó *Is   ÁG%
ÄG+
r†   Nc                óê   € \         P                  ^ ^.^^ ..VR7      p\        P                  ! VRR7      pRVP                  R,          9  g   Q h\        VP                  R,          4      ^ 8X  g   Q hR# )r   rƒ   N©Ú	edge_attrrf   rŒ   )r@   rA   r   r0   r%   Úlenr…   s   &&  r   Ú"test_from_numpy_array_no_edge_attrÚ8TestConvertNumpyArray.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                óÀ  € \         P                  ^ ^.^^ ..4      p\        P                  ! V\        P                  RR7      p\
        ;QJ d8    R V^ ,          ^,          P                  4        4       F  '       d   K   RM-	  RM)! R V^ ,          ^,          P                  4        4       4      '       g   Q h\        V^ ,          ^,          ^ ,          4      ^ 8X  g   Q hR# )r   N)r
   r˜   c              3   ó0   "  € T F  w  rR V9  x € K  	  R# 5i)rf   Nr   )r   Ú_Úes   &  r   r!   ÚUTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr.<locals>.<genexpr>»   s   é € ÐA±©¨�8 1Ö$³ùs   ‚FT)r@   rA   r   r0   r�   ÚallÚitemsr™   ©r   r4   r&   s   &  r   Ú,test_from_numpy_array_multiedge_no_edge_attrÚBTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr¸   s–   € Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ×Ò ´·±È4ÔPˆß‹sÑA°°1µ°aµ·±´ÓA�s�sŠsÑA°°1µ°aµ·±´ÓA×AÒAÐAÐAÜ�1�Q•4˜•7˜1•:‹ !Ô#Ð#Ò#r   c                óâ   € \         P                  ^ ^.^^ ..4      p\        P                  ! VRR7      pRVP                  R,          9  g   Q hVP                  R,          R,          ^8X  g   Q hR# )r   r�   r—   rf   NrŒ   )r@   rA   r   r0   r%   r£   s   &  r   Ú&test_from_numpy_array_custom_edge_attrÚ<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                ó   € \         P                  ^ ^.^^ ..4      p\        P                  ! V\        P                  R7      p\        P                  ! 4       pVP                  ^ ^^R7       \        W#4      '       g   Q hR# )z‚Tests that a symmetric array has edges added only once to an
undirected multigraph when using :func:`networkx.from_numpy_array`.

r	   rl   N)r@   rA   r   r0   Ú
MultiGraphr�   r   )r   r4   r&   r’   s   &   r   Útest_symmetricÚ$TestConvertNumpyArray.test_symmetricÄ   sf   € ô
 �H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ×Ò ´·±Ô>ˆÜ—=’=“?ˆØ×Ñ˜!˜Q qÐÔ)Ü˜A×(Ò(Ð(Ò(r   c                ó˜   € \         P                  ! ^4      p\         P                  ! V\        R7      pVP                  \        8X  g   Q hR# ©ztTest that setting dtype int actually gives an integer array.

For more information, see GitHub pull request #1363.

rƒ   N)r   Úcomplete_graphrI   ru   r„   ©r   r&   r4   s   &  r   Útest_dtype_int_graphÚ*TestConvertNumpyArray.test_dtype_int_graphÏ   s6   € ô ×Ò˜aÓ ˆÜ×Ò˜a¤sÔ+ˆØ�w‰wœ#Œ~ÐŠ~r   c                óÀ   € \         P                  ! \         P                  ! ^4      4      p\         P                  ! V\        R7      pVP
                  \        8X  g   Q hR# r®   )r   rª   r¯   rI   ru   r„   r°   s   &  r   Útest_dtype_int_multigraphÚ/TestConvertNumpyArray.test_dtype_int_multigraphÙ   s?   € ô �MŠMœ"×+Ò+¨AÓ.Ó/ˆÜ×Ò˜a¤sÔ+ˆØ�w‰wœ#Œ~ÐŠ~r   )r   r   r   r   )rf   Úf8)ÚcolorÚi1) Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r,   r8   rF   rJ   rN   rR   rU   rb   rq   r~   r‡   r”   rB   ÚmarkÚparametrizeru   r@   r„   rš   r¤   r§   r«   r±   r´   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s±   ø‡ € ò5òò8ò!ò@ò
9ò
;ò
9ò
;ò
5ò*Qò'ò<(ò".ðH ‡[�[×ÑØàØØ�H‰HØ! ?Ð3óð	
ó	ñ'ó	ð'ò$ò*ò	)ò÷ð r   r   c                  ó€   € \         P                  ! 4       p V P                  ^^^R7       V P                  ^^^FR7       V # )r;   rl   )r   rª   r�   )r&   s    r   Úmultigraph_test_graphrÃ   ä   s6   € ä
�Š‹€AØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq�!˜B€JÔØ€Hr   c                 óT   € \         P                  ! WR 7      pVR,          V8X  g   Q hR# ))Úmultigraph_weightNr�   )r   rI   )rÃ   Úoperatorr’   r4   s   &&& r   Útest_numpy_multigraphrÇ   ì   s%   € ä
×ÒÐ/ÔL€AØˆT�7�hÔÐÒr   c                 ó¬   € T pVP                  ^ ^^R7       \        P                  ! V^^.R7      pVP                  R8X  g   Q hVR,          ^M8X  g   Q hR# )r   rl   rX   N)r<   r<   r�   )r�   r   rI   Úshape)rÃ   r&   r4   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, expectedrƒ   c                 ó�   € V P                  ^ ^RR7       \        P                  ! V \        R7      p\        P                  W!4       R# )r   rl   rƒ   Nù      ð?       @)r�   r   rI   rz   ÚnptÚassert_array_equal)r&   r’   r4   s   && r   Ú#test_to_numpy_array_complex_weightsrÏ   ú   s6   € ð ‡J�Jˆq�!˜F€JÔ#Ü
×Ò˜!¤7Ô+€AÜ×Ñ˜1Ö'r   c                  óÀ  € \         P                  ! 4       p R pV P                  ^ ^R R7       \         P                  ! V \        R7      p\
        P                  ^ V.^ ^ ..\        R7      p\        P                  W#4       \         P                  ! V P                  4       \        R7      p\
        P                  ^ V.V^ ..\        R7      p\        P                  W#4       R# )l   F}ÿÿÿrl   rƒ   N)
r   r   r�   rI   r{   r@   rA   rÍ   rÎ   Úto_undirected)r&   Úwr4   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Ô'ô 	×Ò˜!Ÿ/™/Ó+´6Ô:€AÜ�x‰x˜!˜Q˜ ! Q Ð(´ˆxÓ7€HÜ×Ñ˜1Ö'r   zfunc, expectedc                ó�  € \         P                  ! 4       p. ROpV F  pVP                  ^ ^VR7       K  	  \         P                  ! W \        R7      p\
        P                  V^ V.^ ^ ..4      '       g   Q h\         P                  ! VP                  4       V \        R7      p\
        P                  V^ V.V^ ..4      '       g   Q hR# )z6Test various functions for reducing multiedge weights.rl   )rÅ   r„   N)r\   r<   g      $@)r   r�   r�   rI   rw   r@   ÚallcloserÑ   )Úfuncr’   r&   ÚweightsrÒ   r4   s   &&    r   Ú)test_to_numpy_array_multiweight_reductionrØ     s¨   € ô 	�ŠÓ€AÚ€GÛˆØ	�
‰
�1�a ˆ
Ö"ñ ä
×Ò˜!¼5ÔA€AÜ�;‰;�q˜A˜x˜=¨1¨a¨&Ð1×2Ò2Ð2Ð2ô 	×Ò˜!Ÿ/™/Ó+¸tÌ5ÔQ€AÜ�;‰;�q˜A˜x˜=¨8°Q¨-Ð8×9Ò9Ð9Ò9r   c                óü   € V P                  ^ ^^
RR7       \        P                  R\        3R\        3.4      p\        P
                  ! WRR7      p\        P                  WR7      p\        P                  W14       R# )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.g      @)rf   r�   rf   r�   N©r„   rf   rƒ   )	r�   r@   r„   ru   r   rI   ÚasarrayrÍ   rÎ   )r&   r’   r„   r4   s   &&  r   Ú6test_to_numpy_array_structured_dtype_attrs_from_fieldsrÜ   '  sc   € ð ‡J�Jˆq�!˜B S€JÔ)Ü�H‰H�x¤�o¨´ }Ð5Ó6€EÜ
×Ò˜!°Ô6€AÜ�z‰z˜(ˆzÓ0€HÜ×Ñ˜1Ö'r   c                  ó  € \         P                  ! ^4      p \        P                  R\        3.4      p\         P
                  ! WRR7      p\        P                  . RO. RO. RO.\        R7      p\        P                  VR,          V4       R# )r=   rf   NrÚ   rƒ   )r   r;   r   )r;   r   r;   )	r   r]   r@   r„   rw   rI   rA   rÍ   rÎ   )r&   r„   r4   r’   s       r   Ú8test_to_numpy_array_structured_dtype_single_attr_defaultrÞ   8  se   € Ü
�Š�aÓ€AÜ�H‰H�x¤Ð'Ð(Ó)€EÜ
×Ò˜!°Ô6€AÜ�x‰xš¢IªyÐ9ÄˆxÓG€HÜ×Ñ˜1˜X�;¨Ö1r   rf   r�   c                 ó:  € \         P                  ! 4       pVP                  ^ ^^R7       \        P	                  V \
        3.4      p\         P                  ! W#RR7      p\        P                  ^ V.V^ ..\
        R7      p\        P                  W@,          V4       R# )r   )r�   NrÚ   rƒ   )
r   r   r�   r@   r„   rw   rI   rA   rÍ   rÎ   )Ú
field_nameÚexpected_attr_valr&   r„   r4   r’   s   &&    r   Ú0test_to_numpy_array_structured_dtype_single_attrrâ   @  s   € ô 	�Š‹
€AØ‡J�Jˆq�!˜!€JÔÜ�H‰H�z¤5Ð)Ð*Ó+€EÜ
×Ò˜!°Ô6€AÜ�x‰x˜!Ð.Ð/Ð2CÀQÐ1GÐHÔPUˆxÓV€HÜ×Ñ˜1�=¨(Ö3r   Ú
graph_typeÚedgeÚflowg       @c                 ó4  € V ! V.4      p\         P                  R \        3R\        3R\        3.4      p\        P                  ! W#RR7      pVP
                   F<  p\        P                  ! V\        VR7      p\        P                  WE,          V4       K>  	  R# )rf   r�   rå   NrÚ   )r@   r„   rw   r   rI   ÚnamesrÍ   rÎ   )rã   rä   r&   r„   r4   Úattrr’   s   &&     r   Ú4test_to_numpy_array_structured_dtype_multiple_fieldsré   P  sx   € ñ 	�D�6Ó€AÜ�H‰H�x¤Ð'¨&´%¨¸6Ä5¸/ÐJÓK€EÜ
×Ò˜!°Ô6€AØ—”ˆÜ×$Ò$ Q¬e¸DÔAˆÜ×Ñ˜q�w¨Ö1ó r   r&   c                 óx  € V P                  ^ ^^
R7       \        P                  R\        3R\        3.4      p\        P
                  ! WR\        P                  R7      pVP                   FK  p\        P
                  ! V \        V\        P                  R7      p\        P                  W#,          V4       KM  	  R# )r   rl   rf   r�   N©r„   rf   Únonedge)
r�   r@   r„   rw   r   rI   Únanrç   rÍ   rÎ   )r&   r„   r4   rè   r’   s   &    r   Ú3test_to_numpy_array_structured_dtype_scalar_nonedgerî   c  s‚   € à‡J�Jˆq�!˜B€JÔÜ�H‰H�x¤Ð'¨&´%¨Ð9Ó:€EÜ
×Ò˜!°¼r¿v¹vÔF€AØ—”ˆÜ×$Ò$ Q¬e¸DÌ"Ï&É&ÔQˆÜ×Ñ˜q�w¨Ö1ó r   c                óž  € V P                  ^ ^^
R7       \        P                  R\        3R\        3.4      p\        P	                  ^ \        P
                  3.VR7      p\        P                  ! WRVR7      pVP                   FD  pW$,          p\        P                  ! V \        WER7      p\        P                  W4,          V4       KF  	  R# )zWSimilar to the scalar case, except has a different non-edge value for
each named field.rl   rf   r�   rƒ   Nrë   )r�   r@   r„   rw   rA   Úinfr   rI   rç   rÍ   rÎ   )r&   r„   Únonedgesr4   rè   rì   r’   s   &      r   Ú0test_to_numpy_array_structured_dtype_nonedge_aryrò   m  s�   € ð ‡J�Jˆq�!˜B€JÔÜ�H‰H�x¤Ð'¨&´%¨Ð9Ó:€EÜ�x‰x˜!œRŸV™V˜˜¨UˆxÓ3€HÜ
×Ò˜!°¸xÔH€AØ—”ˆØ•.ˆÜ×$Ò$ Q¬e¸DÔRˆÜ×Ñ˜q�w¨Ö1ó r   c                 óÜ  € \         P                  ! ^4      p \        P                  R\        3R\        3.4      pRp\
        P                  ! \        VR7      ;_uu_ 4        \         P                  ! WR7       RRR4       \
        P                  ! \        VR7      ;_uu_ 4        \         P                  ! WRR7       RRR4       R#   + '       g   i     LW; i  + '       g   i     R# ; i)zcUsing both a structured dtype (with named fields) and specifying a `weight`
parameter is ambiguous.rf   r�   z7Specifying `weight` not supported for structured dtypesrZ   rƒ   NrÚ   )	r   r]   r@   r„   ru   rB   rC   Ú
ValueErrorrI   )r&   r„   Ú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Ö	7Ü
×Ò˜!Õ)÷ 
8ä	�Š”z¨×	7Ö	7Ü
×Ò˜!°Õ8÷ 
8Ñ	7÷ 
8×	7úç	7×	7Ð	7ús   Á CÂ$CÃC	ÃC+	c                 óB  € \         P                  ! ^V R7      p\        P                  R\        3R\        3.4      p\
        P                  ! \         P                  RR7      ;_uu_ 4        \         P                  ! WRR7       RRR4       R#   + '       g   i     R# ; i)r=   r	   rf   r�   z#Structured arrays are not supportedrZ   NrÚ   )	r   r]   r@   r„   ru   rB   rC   rD   rI   )rã   r&   r„   s   &  r   Ú0test_to_numpy_array_structured_multigraph_raisesrø   ‡  se   € ä
�Š�a jÔ1€AÜ�H‰H�x¤�o¨´ }Ð5Ó6€EÜ	�Š”r×'Ñ'Ð/T×	UÖ	UÜ
×Ò˜!°Õ6÷ 
V×	U×	UÒ	Uús   Á*BÂB	c                 ó4  € ^p \         P                  \         P                  V ^,
          4      ^R7      p\        P                  ! V 4      p\        \        P                  ! VRR7      V4      '       g   Q h\        \        V 4      4      p\        \        P                  ! VRVR7      V4      '       g   Q h\        \        V ^,           4      4      p\        P                  ! \        RR7      ;_uu_ 4        \        P                  ! WR7       RRR4       \        \        V ^,
          4      4      p\        P                  ! \        RR7      ;_uu_ 4        \        P                  ! WR7       RRR4       R#   + '       g   i     Lq; i  + '       g   i     R# ; i)z:An exception is raised when `len(nodelist) != A.shape[0]`.©ÚkNr—   ©r˜   rY   z'nodelist must have the same length as ArZ   rX   )r@   ÚdiagÚonesr   r]   r   r0   r^   rn   rB   rC   rô   )rj   r4   r’   r+   s       r   Ú'test_from_numpy_array_nodelist_bad_sizerÿ   �  s  € à	€AÜ
�‰”—‘˜˜A�“ !ˆÓ$€AÜ�}Š}˜QÓ€Häœ×+Ò+¨A¸Ô>À×IÒIÐIÐIÜ”�q“‹N€EÜÜ
×Ò˜A¨¸Ô>À÷ò ð ð ô
 ”�q˜1•u“Ó€EÜ	�Š”zÐ)R×	SÖ	SÜ
×Ò˜AÕ.÷ 
Tô ”�q˜1•u“Ó€EÜ	�Š”zÐ)R×	SÖ	SÜ
×Ò˜AÕ.÷ 
TÑ	S÷ 
T×	Sú÷
 
T×	SÐ	Sús   Ã2E3ÅFÅ3F	ÆF	r+   c                 ó¶  € \         P                  \         P                  ^4      ^R7      p\        P                  ! \        P
                  ! ^4      \        \        V 4      4      RR7      p\        P                  ! VRV R7      p\        W24      '       g   Q h\        P                  ! VRRR7       \        P                  ! WR	7      p\        W24      '       g   Q hR# )
r   rú   T©ÚmappingÚcopyNrü   r‚   rf   ©ÚnamerX   )r@   rý   rþ   r   Úrelabel_nodesr]   ÚdictÚ	enumerater0   r   Úset_edge_attributes)r+   r4   r’   r&   s   &   r   Útest_from_numpy_array_nodelistr
  ¦  s¤   € ô 	�‰”—‘˜“
˜aˆÓ €Aä×ÒÜ
�Š�aÓ¤$¤y°Ó'7Ó"8¸tô€Hô 	×Ò˜A¨¸Ô>€AÜ˜×$Ò$Ð$Ð$ô ×Ò˜8 S¨xÕ8Ü
×Ò˜AÔ.€AÜ˜×$Ò$Ð$Ò$r   c                 óü  € \         P                  \         P                  ^4      ^R7      p\        P                  ! . R
O4      p\        P
                  ! V\        \        V 4      4      RR7      p\        P                  ! V\        P                  RV R7      p\        WC4      '       g   Q h\        P                  ! VRRR7       \        P                  ! V\        P                  V R	7      p\        WC4      '       g   Q hR# )r   rú   Tr  N)r
   r˜   rY   r‚   rf   r  )r
   rY   ©rŒ   )r;   r<   ©r<   r=   )r=   r   )r@   rý   rþ   r   r   r  r  r  r0   r   r	  )r+   r4   Ú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 S¨xÕ8Ü
×Ò˜A¬B¯J©JÀÔG€AÜ˜×$Ò$Ð$Ò$r   c                 óÆ  € \         P                  . RO. RO. RO. RO. R	O.4      p\        P                  ! 4       p\	        R
4       F1  w  r4VP                  \        P                  ! WC^,           4      4       K3  	  \        P                  ! V\        \	        V 4      4      RR7      p\        P                  ! VR\        P                  RV R7      p\        We4      '       g   Q hR# )r   Tr  N)rŠ   r
   r˜   rY   )r   r;   r   r   r   )r;   r   r<   r   r   )r   r<   r   r=   r   )r   r   r=   r   r   )r   r   r   r   r   r  )r@   rA   r   rª   r  rm   Ú	itertoolsÚrepeatr  r  r0   r   )r+   r4   r  Úirä   r’   r&   s   &      r   Ú)test_from_numpy_array_nodelist_multigraphr  ×  s¶   € ô 	�‰âÚÚÚÚð	
ó	€Aô 	�Š‹€AÜÐ=Ö>‰ˆØ	×Ñœ×)Ò)¨$°AµÓ6Ö7ñ ?ä×Ò ¬4´	¸%Ó0@Ó+AÈÔM€Hä
×ÒØ	ØÜ—]‘]ØØô	€Aô ˜×$Ò$Ð$Ò$r   Úgraphc           	      ó  € V ! ^4      p\         P                  ! V4      p\         P                  ! V\        \	        V4      4      RR7      p\         P
                  ! VRVR7      p\        WT4      '       g   Q hV ! ^4      pVP                  R4       \         P                  ! V4      p\         P                  ! V\        \        VP                  V4      4      RR7      p\         P
                  ! VRVR7      p\        WT4      '       g   Q hR# )r>   Tr  Nrü   Úfoo)
r   rI   r  r  r  r0   r   Úadd_nodeÚzipr+   )r  r+   r&   r4   r’   r  s   &&    r   Ú'test_from_numpy_array_nodelist_rountripr  û  sÐ   € ñ 	ˆa‹€AÜ
×Ò˜!Ó€AÜ×Ò ¬4´	¸%Ó0@Ó+AÈÔM€HÜ
×Ò˜A¨¸Ô>€AÜ˜×$Ò$Ð$Ð$ñ 	ˆa‹€AØ‡J�JˆuÔÜ
×Ò˜!Ó€AÜ×Ò ¬4´°A·G±G¸UÓ0CÓ+DÈ4ÔP€HÜ
×Ò˜A¨¸Ô>€AÜ˜×$Ò$Ð$Ò$r   Úsentinelrí   c                óº   € \         P                  V R.RV ..4      p\        P                  ! WR7      p\	        VP                  RR7      4      ^ ^RR/3.8X  g   Q hR# )z:nonedge sentinel allows zero-weight edges to be preserved.g        ©rì   T©Údatarf   N)r@   rA   r   r0   r*   r%   )r  r4   r&   s   &  r   Útest_from_numpy_array_nonedger     s[   € ô 	�‰�8˜S�/ C¨ ?Ð3Ó4€AÜ
×Ò˜AÔ0€AÜ�!—'‘'˜t�'Ó$Ó%¨1¨a°(¸C°Ð*AÐ)BÔBÐBÒBr   c                óâ  € \         P                  ! 4       pVP                  ^ ^^ R7       VP                  ^^^R7       VP                  ^4       \         P                  ! WR7      p\         P
                  ! W R7      p\        VP                  RR7      4      \        VP                  RR7      4      8X  g   Q h\        VP                  4       4      \        VP                  4       4      8X  g   Q hR# )zMRound-trip with to_numpy_array using nan nonedge preserves zero-weight edges.rl   r  Tr  N)
r   r   r�   r  rI   r0   r*   r%   r‘   r+   )r  r&   r4   r  s   &   r   Ú'test_from_numpy_array_nonedge_roundtripr"    s®   € ô 	�Š‹
€AØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq„MÜ
×Ò˜!Ô.€AÜ
×Ò˜AÔ0€AÜ�!—'‘'˜t�'Ó$Ó%¬°·±¸T°Ó0BÓ)CÔCÐCÐCÜˆq�w‰w‹y‹>œS §¡£›^Ô+Ð+Ò+r   )rÆ   r’   rÌ   r\   gUUUUUU@r‹   )r   r>   )rà   rá   )rf   r;   )r�   r=   rŒ   éüÿÿÿiÓÿÿÿ)r   r=   r<   r;   r   )é	   é   r;   r<   é   )ÚaÚbÚcÚdrŸ   )r‹   rŽ   r  )r   r<   )r=   r;   )r4   r<   r%  Úspam)r;   r=   i�ÿÿÿ)2r  rB   Únetworkxr   Únetworkx.utilsr   Úimportorskipr@   rÍ   r   ÚfixturerÃ   r½   r¾   r/   ÚminÚmaxrÇ   rÊ   r   rA   rz   r   rÏ   rÓ   ÚmeanÚmedianrØ   rÜ   rÞ   râ   ré   rî   rò   rö   rª   r�   rø   rÿ   r
  r  r  r¯   r   Úwheel_graphr  rw   rí   r   r"  r   r   r   Ú<module>r5     s»  ðÛ ã ã Ý 'à×Ò˜Ó!€Ø×Ò˜/Ó*€÷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�˜!˜V RÐ(Ð)Ø	
ˆA�˜#˜v r¨6°3Ð7Ð8ð	óñ2óó ?ð2ð ‡�×Ñ˜˜rŸxšx›z¨2¯:ª:«<Ð8Ó9ñ2ó :ð2ð ‡�×Ñ˜˜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ó	ð%ð  ‡�×Ñ˜¡e¨E£l°B·F±F¸CÐ%@ÓAñCó BðCð ‡�×Ñ˜¡e¨E£l°B·F±F¸CÐ%@ÓAñ	,ó Bò	,r   