
    shXJ                        S SK r S SKrS SKrS SKJr  \R                  " S5      r\R                  " S5      r " S S5      r	\R                  S 5       r\R                  R                  S\S	4\S
4\S445      S 5       rS r\R                  R                  S\R&                  " 5       \R)                  S S/SS //\S94\R,                  " 5       \R)                  S S/S S //\S94/5      S 5       rS r\R                  R                  S\S4\S4\S4\R2                  S4\R4                  S445      S 5       r\R                  R                  S\R&                  " 5       SS/SS//4\R,                  " 5       SS/SS//4/5      S 5       rS r\R                  R                  SSS /5      S! 5       r\R                  R                  S"\R&                  \R,                  45      \R                  R                  S#S$S S%S&S04S S%S'S(S).4S S%S*SS+S,.4/5      S- 5       5       r\R                  R                  S.\R&                  " 5       \R,                  " 5       45      S/ 5       r \R                  R                  S.\R&                  " 5       \R,                  " 5       45      S0 5       r!S1 r"\R                  R                  S"\RF                  \RH                  45      S2 5       r%S3 r&\R                  R                  S4/ S5Q/ S6Q/ S7Q/ S8Q/ S9Q45      S: 5       r'\R                  R                  S4/ S5Q/ S6Q/ S7Q/ S8Q/ S9Q45      S; 5       r(\R                  R                  S4/ S5Q/ S6Q/ S7Q/ S8Q/ S9Q45      S< 5       r)\R                  R                  S4/ S5Q/ S6Q/ S7Q/ S8Q/ S9Q45      \R                  R                  S=\RT                  \RV                  \RX                  45      S> 5       5       r-g)?    N)graphs_equalnumpyznumpy.testingc            	           \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS r\R&                  R)                  SS\\R/                  SS/5      45      S 5       rS rS rS rS rS rSrg)TestConvertNumpyArray   c                 0   [         R                  " SS5      U l        [         R                  " S[         R                  S9U l        U R                  [         R                  " 5       5      U l        U R                  [         R                  " 5       5      U l	        g )N
      create_using)
nxbarbell_graphG1cycle_graphDiGraphG2create_weightedGraphG3G4)selfs    u/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/networkx/tests/test_convert_numpy.pysetup_method"TestConvertNumpyArray.setup_method   s\    ""2q).."**=&&rxxz2&&rzz|4    c                     [         R                  " S5      nUR                  U5        UR                  S UR	                  5        5       5        U$ )N   c              3   4   #    U  H  u  pXS U-   4v   M     g7f)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                     [        UR                  5       5      [        UR                  5       5      :X  d   e[        UR                  5       5      [        UR                  5       5      :X  d   eg )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                 2   UR                  5       S:  d   e[        R                  " X#S9nU R                  X5        [        R                  " X#S9nU R                  X5        [        R
                  " SU5      R                  U5      nU R                  X5        g )Nr   r   )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                     [         R                  / SQ/ SQ/5      n[        R                  " [        R
                  [        R                  U5        g)z!Conversion from non-square array.)      r
   )r         N)nparraypytestraisesr   NetworkXErrorr2   r   r6   s     r   
test_shape TestConvertNumpyArray.test_shape&   s1    HHi+,b&&(;(;Q?r   c                     [         R                  " U R                  5      nU R                  U R                  U[         R                  " 5       5        g)z(Conversion from graph to array to graph.N)r   to_numpy_arrayr   r:   r   rF   s     r   test_identity_graph_array/TestConvertNumpyArray.test_identity_graph_array+   2    dgg&  !RXXZ8r   c                     [         R                  " U R                  5      nU R                  U R                  U[         R                  " 5       5        g)z,Conversion from digraph to array to digraph.N)r   rJ   r   r:   r   rF   s     r   test_identity_digraph_array1TestConvertNumpyArray.test_identity_digraph_array0   2    dgg&  !RZZ\:r   c                     [         R                  " U R                  5      nU R                  U R                  U[         R                  " 5       5        g)z:Conversion from weighted graph to array to weighted graph.N)r   rJ   r   r:   r   rF   s     r   "test_identity_weighted_graph_array8TestConvertNumpyArray.test_identity_weighted_graph_array5   rM   r   c                     [         R                  " U R                  5      nU R                  U R                  U[         R                  " 5       5        g)z>Conversion from weighted digraph to array to weighted digraph.N)r   rJ   r   r:   r   rF   s     r   $test_identity_weighted_digraph_array:TestConvertNumpyArray.test_identity_weighted_digraph_array:   rQ   r   c                 &   [         R                  " S5      n[         R                  " S5      n[        U5      n[         R                  " XS9n[         R                  " U5      nU R                  XR5        X3S   /-  n[        R                  " [         R                  [         R                  X#S9  / SQn[        R                  " [         R                  SX2R                  -
   S3S9   [         R                  " X#S9  S	S	S	5        g	! , (       d  f       g	= f)
z6Conversion from graph to array to graph with nodelist.r   r
   nodelistr   )r   r=   zNodes z in nodelist is not in GmatchN)
r   
path_graphlistrJ   r   r.   rC   rD   rE   r-   )r   P4P3rZ   r6   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
Dc                    [         R                  " 5       nUR                  S [        S5       5       5        [         R                  " S5      n[         R
                  " U5      n[        R                  R                  U[         R
                  " US S95        [        R                  R                  SU-  [         R
                  " U5      5        [        R                  R                  SU-  [         R
                  " USS95        g )Nc              3   6   #    U  H  oUS -   SSS.4v   M     g7f)r=         ?333333?)weightotherNr   )r    ns     r   r#   <TestConvertNumpyArray.test_weight_keyword.<locals>.<genexpr>V   s     Whq1us&CDhs   r
   r   ri   rg   rh   rj   )	r   r   add_edges_fromranger^   rJ   rA   testingr.   )r   WP4r`   r6   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                 L   [         R                  S//5      n[        R                  " U5      n[	        US   S   S   [
        5      (       d   e[         R                  S//5      R                  [        5      n[        R                  " U5      n[	        US   S   S   [        5      (       d   e[         R                  S//5      R                  [        5      n[        R                  " U5      n[	        US   S   S   [        5      (       d   e[         R                  S//5      R                  [        5      n[        R                  " U5      n[	        US   S   S   [        5      (       d   e[         R                  S//5      R                  [        5      n[        R                  " U5      n[	        US   S   S   [        5      (       d   e[         R                  S//5      R                  [        5      n[        R                  " [        [        R                  U5        [         R                  / SQ/ SQ// SQ/ SQ//5      n[        R                  " [        R                  SUR                    3S9   [        R                  " U5      nS S S 5        g ! , (       d  f       g = f)Nr=   r   ri   )r=   r=   r=   zInput array must be 2D, not r\   )rA   rB   r   r2   
isinstanceintastypefloatstrboolcomplexobjectrC   rD   	TypeErrorrE   ndim)r   r6   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   5J
J#c                 @   S[         4S[        4/n[        R                  S//US9n[        R
                  " U5      n[        US   S   S   [         5      (       d   e[        US   S   S   [        5      (       d   eUS   S   S   S:X  d   eUS   S   S   S:X  d   eg )Nri   cost)      ?r>   dtyper   r>   r   )rx   rv   rA   rB   r   r2   ru   r   dtr6   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           	         [         R                  SS/SS//5      n[        R                  " 5       n/ SQnUR	                  U VVs/ s H	  u  pEXES4PM     snn5        UR                  SSSS9  [        R                  " US[        R                  S9n[        Xb5      (       d   e[        R                  " US[        R                  S9n[        Xb5      (       d   e/ SQn[        R                  " 5       nUR	                  U VVs/ s H	  u  pEXES4PM     snn5        [        R                  " US[        R                  S9n[        Xb5      (       d   e[        R                  " 5       nUR                  [        U5      SS9  SUS   S   S	   S
'   [        R                  " US[        R                  S9n[        Xb5      (       d   egs  snnf s  snnf )zTests that the :func:`networkx.from_numpy_array` function
interprets integer weights as the number of parallel edges when
creating a multigraph.

r=   r>   )r   r   r   r=   r=   r   rm   T)parallel_edgesr   F)r   r   r   r=   r=   r   r   ri   N)rA   rB   r   r   r&   add_edger2   r   MultiDiGraphrn   set)r   r6   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   N)ri   f8)colori1c                     [         R                  SS/SS//US9n[        R                  " US S9nSUR                  S   ;  d   e[        UR                  S   5      S:X  d   eg )Nr   r=   r   	edge_attrri   r   )rA   rB   r   r2   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                    [         R                  SS/SS//5      n[        R                  " U[        R                  S S9n[        S US   S   R                  5        5       5      (       d   e[        US   S   S   5      S:X  d   eg )Nr   r>   )r   r   c              3   0   #    U  H  u  pS U;  v   M     g7f)ri   Nr   )r    _es      r   r#   UTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr.<locals>.<genexpr>   s     A81$s   r=   )rA   rB   r   r2   r   allitemsr   r   r6   r(   s      r   ,test_from_numpy_array_multiedge_no_edge_attrBTestConvertNumpyArray.test_from_numpy_array_multiedge_no_edge_attr   sx    HHq!fq!f%&4PA1aAAAAA1Q471:!###r   c                     [         R                  SS/SS//5      n[        R                  " USS9nSUR                  S   ;  d   eUR                  S   S   S:X  d   eg )Nr   r>   r
   r   r   ri   r   )rA   rB   r   r2   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                     [         R                  SS/SS//5      n[        R                  " U[        R                  S9n[        R                  " 5       nUR                  SSSS9  [        X#5      (       d   eg)zTests that a symmetric array has edges added only once to an
undirected multigraph when using :func:`networkx.from_numpy_array`.

r   r=   r   rm   N)rA   rB   r   r2   
MultiGraphr   r   )r   r6   r(   r   s       r   test_symmetric$TestConvertNumpyArray.test_symmetric   sf    
 HHq!fq!f%&>==?!Qq)A((((r   c                     [         R                  " S5      n[         R                  " U[        S9nUR                  [        :X  d   egztTest that setting dtype int actually gives an integer array.

For more information, see GitHub pull request #1363.

r
   r   N)r   complete_graphrJ   rv   r   r   r(   r6   s      r   test_dtype_int_graph*TestConvertNumpyArray.test_dtype_int_graph   s6     a as+ww#~~r   c                     [         R                  " [         R                  " S5      5      n[         R                  " U[        S9nUR
                  [        :X  d   egr   )r   r   r   rJ   rv   r   r   s      r   test_dtype_int_multigraph/TestConvertNumpyArray.test_dtype_int_multigraph   s?     MM"++A./as+ww#~~r   )r   r   r   r   )__name__
__module____qualname____firstlineno__r   r   r.   r:   rG   rK   rO   rS   rV   rc   rr   r   r   r   rC   markparametrizerv   rA   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    58!@
9
;
9
;
5*Q'<(".H [[HH!?3	
	'	'$*	)r   r   c                  t    [         R                  " 5       n U R                  SSSS9  U R                  SSSS9  U $ )Nr=   r>      rm   F   )r   r   r   )r(   s    r   multigraph_test_graphr      s6    
AJJq!AJJJq!BJHr   )operatorr   M   r   r   c                 B    [         R                  " XS9nUS   U:X  d   eg )N)multigraph_weightr   )r   rJ   )r   r   r   r6   s       r   test_numpy_multigraphr      s%    
/LAT7hr   c                     U nUR                  SSSS9  [        R                  " USS/S9nUR                  S:X  d   eUS   S	:X  d   eg )
Nr   r=   r
   rm   r>   rY   )r>   r>   r   r   )r   r   rJ   shape)r   r(   r6   s      r   'test_to_numpy_array_multigraph_nodelistr      sQ    AJJq!AJ
!q!f-A77fT7b==r   zG, expected      ?       @r   c                     U R                  SSSS9  [        R                  " U [        S9n[        R                  X!5        g )Nr   r=   r   rm   r   )r   r   rJ   r{   nptassert_array_equal)r(   r   r6   s      r   #test_to_numpy_array_complex_weightsr      s6     JJq!FJ#
!7+A1'r   c                     [         R                  " 5       n SnU R                  SSSS9  [         R                  " U [        S9n[
        R                  SU/SS//[        S9n[        R                  X#5        [         R                  " U R                  5       [        S9n[
        R                  SU/US//[        S9n[        R                  X#5        g )Nl   F}r   r=   rm   r   )
r   r   r   rJ   r|   rA   rB   r   r   to_undirected)r(   wr6   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, expectedr[   r	      gUUUUUU@r>   c                 x   [         R                  " 5       n/ SQnU H  nUR                  SSUS9  M     [         R                  " X [        S9n[
        R                  USU/SS//5      (       d   e[         R                  " UR                  5       U [        S9n[
        R                  USU/US//5      (       d   eg)z6Test various functions for reducing multiedge weights.)r[   r>   g      $@r   r=   rm   )r   r   N)r   r   r   rJ   rx   rA   allcloser   )funcr   r(   weightsr   r6   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   r   )r	   r?   c                     U R                  SSSSS9  [        R                  S[        4S[        4/5      n[        R
                  " XSS	9n[        R                  XS
9n[        R                  X15        g)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   r=   r	   g      @)ri   r   ri   r   Nr   ri   r   )	r   rA   r   rv   r   rJ   asarrayr   r   )r(   r   r   r6   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                     [         R                  " S5      n [        R                  S[        4/5      n[         R
                  " XS S9n[        R                  / SQ/ SQ/ SQ/[        S9n[        R                  US   U5        g )Nr
   ri   r   )r   r=   r   )r=   r   r=   r   )	r   r^   rA   r   rx   rJ   rB   r   r   )r(   r   r6   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   )
field_nameexpected_attr_val)ri   r=   )r   r
   c                    [         R                  " 5       nUR                  SSSS9  [        R	                  U [
        4/5      n[         R                  " X#S S9n[        R                  SU/US//[
        S9n[        R                  X@   U5        g )Nr   r=   r
   )r   r   r   )
r   r   r   rA   r   rx   rJ   rB   r   r   )r   r   r(   r   r6   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edger   r=   ri   r?   )ri   flowg       @i)ri   r   r   c                    U " U/5      n[         R                  S[        4S[        4S[        4/5      n[        R                  " X#S S9nUR
                   H5  n[        R                  " U[        US9n[        R                  XE   U5        M7     g )Nri   r   r   r   )rA   r   rx   r   rJ   namesr   r   )r   r   r(   r   r6   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                 \   U R                  SSSS9  [        R                  S[        4S[        4/5      n[        R
                  " XS [        R                  S9nUR                   HD  n[        R
                  " U [        U[        R                  S9n[        R                  X#   U5        MF     g )Nr   r=   r	   rm   ri   r   r   ri   nonedge)
r   rA   r   rx   r   rJ   nanr   r   r   )r(   r   r6   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                 t   U R                  SSSS9  [        R                  S[        4S[        4/5      n[        R	                  S[        R
                  4/US9n[        R                  " XSUS	9nUR                   H9  nX$   n[        R                  " U [        XES	9n[        R                  X4   U5        M;     g)
zWSimilar to the scalar case, except has a different non-edge value for
each named field.r   r=   r	   rm   ri   r   r   Nr   )r   rA   r   rx   rB   infr   rJ   r   r   r   )r(   r   nonedgesr6   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                     [         R                  " S5      n [        R                  S[        4S[        4/5      nSn[
        R                  " [        US9   [         R                  " XS9  SSS5        [
        R                  " [        US9   [         R                  " XSS9  SSS5        g! , (       d  f       NF= f! , (       d  f       g= f)	zcUsing both a structured dtype (with named fields) and specifying a `weight`
parameter is ambiguous.r
   ri   r   z7Specifying `weight` not supported for structured dtypesr\   r   Nr   )	r   r^   rA   r   rv   rC   rD   
ValueErrorrJ   )r(   r   exception_msgs      r   7test_to_numpy_array_structured_dtype_with_weight_raisesr   {  s     	aAHHxo}56EMM	z	7
!) 
8	z	7
!8 
8	7 
8	7	7	7s   B*B;*
B8;
C	c                    [         R                  " SU S9n[        R                  S[        4S[        4/5      n[
        R                  " [         R                  SS9   [         R                  " XS S9  S S S 5        g ! , (       d  f       g = f)Nr
   r   ri   r   z#Structured arrays are not supportedr\   r   )	r   r^   rA   r   rv   rC   rD   rE   rJ   )r   r(   r   s      r   0test_to_numpy_array_structured_multigraph_raisesr     s_    
aj1AHHxo}56E	r''/T	U
!6 
V	U	Us   A;;
B	c                     Sn [         R                  [         R                  U S-
  5      SS9n[        R                  " U 5      n[        [        R                  " USS9U5      (       d   e[        [        U 5      5      n[        [        R                  " USUS9U5      (       d   e[        [        U S-   5      5      n[        R                  " [        SS9   [        R                  " XS	9  SSS5        [        [        U S-
  5      5      n[        R                  " [        SS9   [        R                  " XS	9  SSS5        g! , (       d  f       N\= f! , (       d  f       g= f)
z:An exception is raised when `len(nodelist) != A.shape[0]`.r?   r=   kNr   r   rZ   z'nodelist must have the same length as Ar\   rY   )rA   diagonesr   r^   r   r2   r_   ro   rC   rD   r   )rk   r6   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
A. 
T q1uE	z)R	S
A. 
T	S 
T	S
 
T	Ss   D?!E?
E
Er-   )r   r
   r>   r=   r   )	   r   r=   r>      )abcdr   )r   r   r>   r
   )r   r>   )r
   r=   )r6   r>   r   spam)r=   r
   c                    [         R                  [         R                  S5      SS9n[        R                  " [        R
                  " S5      [        [        U 5      5      SS9n[        R                  " US U S9n[        X25      (       d   e[        R                  " USS	S
9  [        R                  " XS9n[        X25      (       d   eg )Nr   r=   r   r?   Tmappingcopyr   r   ri   namerY   )rA   r  r  r   relabel_nodesr^   dict	enumerater2   r   set_edge_attributes)r-   r6   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                    [         R                  [         R                  S5      SS9n[        R                  " / SQ5      n[        R
                  " U[        [        U 5      5      SS9n[        R                  " U[        R                  S U S9n[        XC5      (       d   e[        R                  " USS	S
9  [        R                  " U[        R                  U S9n[        XC5      (       d   eg )Nr   r=   r   r   )r=   r>   r
  )r
   r   Tr  )r   r   rZ   r   ri   r  )r   rZ   )rA   r  r  r   r   r  r  r  r2   r   r  )r-   r6   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                    [         R                  / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        R                  " 5       n[	        S5       H-  u  p4UR                  [        R                  " XCS-   5      5        M/     [        R                  " U[        [	        U 5      5      SS	9n[        R                  " US[        R                  S U S
9n[        Xe5      (       d   eg )N)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=   Tr  )r   r   r   rZ   )rA   rB   r   r   r  rn   	itertoolsrepeatr  r  r2   r   )r-   r6   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           	         U " S5      n[         R                  " U5      n[         R                  " U[        [	        U5      5      SS9n[         R
                  " US US9n[        XT5      (       d   eU " S5      nUR                  S5        [         R                  " U5      n[         R                  " U[        [        UR                  U5      5      SS9n[         R
                  " US US9n[        XT5      (       d   eg )Nr?   Tr  r   r   foo)
r   rJ   r  r  r  r2   r   add_nodezipr-   )r   r-   r(   r6   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  rC   networkxr   networkx.utilsr   importorskiprA   r   r   fixturer   r   r   r1   minmaxr   r   r   rB   r{   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/     sE      '!/*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!R()	
A#r3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   