+
    )iXJ                        ^ 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                  R,R-R..4      R 4       t]P                  P                  R]P&                  ]P,                  34      ]P                  P                  RR/^ ^R^
/3^ ^R^RR0/3^ ^RRR^
RR1/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 . R2O. R3O. R4O. R5O. R6O34      R! 4       t']P                  P                  R . R2O. R3O. R4O. R5O. R6O34      R" 4       t(]P                  P                  R . R2O. R3O. R4O. R5O. R6O34      R# 4       t)]P                  P                  R . R2O. R3O. R4O. R5O. R6O34      ]P                  P                  R$]PT                  ]PV                  ]PX                  34      R% 4       4       t-R# )7    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   &_/var/www/html/photoedit/myenv/lib/python3.14/site-packages/networkx/tests/test_convert_numpy.pysetup_method"TestConvertNumpyArray.setup_method   s\    ""2q).."**=&&rxxz2&&rzz|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     !GYTQ1a.Ys   )r   r   add_nodes_fromadd_weighted_edges_fromedges)r   Ggs   && r   r   %TestConvertNumpyArray.create_weighted   s=    NN1		!!!GQWWY!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    bhhj!VBHHJ%7777bhhj!VBHHJ%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    uuw{{  >! !!!?! ^^A|,66q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    HHi+,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    dgg&  !RXXZ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_array1TestConvertNumpyArray.test_identity_digraph_array0   2    dgg&  !RZZ\: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_array8TestConvertNumpyArray.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XXa["! 	a[M!b&&(9(92Q ]]8hh.//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      ?other333333?Nr   )r   ns   & r   r!   <TestConvertNumpyArray.test_weight_keyword.<locals>.<genexpr>V   s"     Whq1uxgs&CDhs   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    hhjWeTUhWW]]1b!


2#4#4S#FG


a):):3)?@


a):):3w)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_type0TestConvertNumpyArray.test_from_numpy_array_type]   s   HHqcUO"!A$q'(+S1111HHqcUO""5)"!A$q'(+U3333HHqcUO""3'"!A$q'(+S1111HHqcUO""4("!A$q'(+T2222HHqcUO""7+"!A$q'(+W5555HHqcUO""6*i!4!4a8HHy),y).DEF]]&B166($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_dtype1TestConvertNumpyArray.test_from_numpy_array_dtype{   s    &#/HHxj\H,"!A$q'(+U3333!A$q'&/3////tAwv!###tAwx 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 )	zTests 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    HHq!fq!f%& ::<(((%)H%1)%)HI!Qq)$$Qt"**UF----$$Qu2::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_attr8TestConvertNumpyArray.test_from_numpy_array_no_edge_attr   sf     HHq!fq!f%RH0T2qwwt},,,1774=!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81$s   FT)r@   rA   r   r0   r   allitemsr   r   r4   r&   s   &  r   ,test_from_numpy_array_multiedge_no_edge_attrBTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr   s    HHq!fq!f%&4PsA1aAsssA1aAAAAA1Q471:!###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`    HHq!fq!f%&V4qwwt},,,wwt}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# )zTests 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    
 HHq!fq!f%&>==?!Qq)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 as+ww#~~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?     MM"++A./as+ww#~~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 [[HH!?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JJq!AJJJq!BJ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%    
/LAT7h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JJq!AJ
!q!f-A77fT7b==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     JJq!FJ#
!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JJq!1J2
!6*Axx!Q!Q(x7H1' 	!//+6:Axx!Q!Q(x7H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	

1a
" 
!5AA;;qAx=1a&12222 	!//+t5QA;;qAx=8Q-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     JJq!BSJ)HHxo}56E
!6Azz(z0H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HHx'()E
!6AxxIy9xGH1X;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JJq!!JHHz5)*+E
!6Axx!./2CQ1GHPUxVH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     	D6AHHx'&%65/JKE
!6A$$QeDAqw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    JJq!BJHHx'&%9:E
!rvvFA$$QeD"&&Qqw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     JJq!BJHHx'&%9:Exx!RVVUx3H
!xHA.$$QeDRqw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HHxo}56EMM	z	7	7
!) 
8	z	7	7
!8 
8	7 
8	7	7	7	7s    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    
aj1AHHxo}56E	r''/T	U	U
!6 
V	U	U	Us   *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NE
A>   
 q1uE	z)R	S	S
A. 
T q1uE	z)R	S	S
A. 
T	S 
T	S
 
T	S	Ss   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"8tH 	A>A$$$$ 8Sx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4A4	%0@+AMH
ABJJ$QVWA$$$$ 8Sx8
ABJJGA$$$$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MH
	]]	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MH
A>A$$$$ 	aAJJu
!A4AGGU0C+D4PH
A>A$$$$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=   ).r  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  r   r   r   <module>r-     sO      '!/*U Up   1S"IQx#r3ST U
 	RXX6{VQK8XHI	rxx!Vq!f 5WxEF((( 	2Yb	C9rww&7"))QH:	: 	vw''6):;<	)FF+;<=((2 '44 "**'=>
	
A"~	
A!VR()	
A#vr6378	2 ?2 rxxz2::<892 :2 rxxz2::<89
2 :
2	9 r'GH7 I7/. !0#	%	% !0#	%	% !0#	%	%4 !0#	 2#4#4bnnbnn"UV% W	%r   