+
    )i6|                         ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
 R t ! R R4      t ! R R]4      t ! R R	]4      t ! R
 R4      tR tR# )    N)edges_equalgraphs_equalnodes_equalc                     \         P                  ! ^4      p \        P                  ! \         P                  RR7      ;_uu_ 4        V P                  ^d4       RRR4       R#   + '       g   i     R# ; i)zSee gh-7740zNode.*is not in the graphmatchN)nx
path_graphpytestraisesNetworkXErrordegree)Gs    _/var/www/html/photoedit/myenv/lib/python3.14/site-packages/networkx/classes/tests/test_graph.py,test_degree_node_not_found_exception_messager      sC    
aA	r''/J	K	K	 
L	K	K	Ks   A!!A2	c                      a  ] tR t^t o RtR tR tR tR tR t	R t
R t]P                  P                  ]P                   ! 4       R	8H  R
R7      R 4       tR tR tR tR tR tR tR tR tR tRtV tR# )BaseGraphTesterz:Tests for data-structure independent graph class features.c                |    V P                   p^V9   g   Q h^V9  g   Q hRV9  g   Q h. V9  g   Q h^^/V9  g   Q hR# )   bN)K3selfr   s   & r   test_containsBaseGraphTester.test_contains   sJ    GGAvvzz!||{{1vQ    c                    V P                   p\        V4      ^8X  g   Q hVP                  4       ^8X  g   Q hVP                  4       ^8X  g   Q hR#    N)r   lenordernumber_of_nodesr   s   & r   
test_orderBaseGraphTester.test_order   sD    GG1v{{wwyA~~  "a'''r   c                N  a V P                   o\        SP                  SP                  4      '       g   Q h\        SP                  SP
                  4      '       g   Q h\        ;QJ d7    V3R  lSP                  P                  4        4       F  '       d   K   RM,	  RM(! V3R  lSP                  P                  4        4       4      '       g   Q h\        SP                  4       4      V P                  8X  g   Q h\        SP                  RR7      4      ^ / 3^/ 3^/ 3.8X  g   Q hR# )c              3   P   <"   T F  p\        VSP                  4      x  K  	  R # 5iN)
isinstanceadjlist_inner_dict_factory).0adjr   s   & r   	<genexpr>-BaseGraphTester.test_nodes.<locals>.<genexpr>(   s$      
ETcJsA8899_s   #&FTdataN)r   r(   _nodenode_dict_factory_adjadjlist_outer_dict_factoryallvaluessortednodesk3nodesr   s   &@r   
test_nodesBaseGraphTester.test_nodes$   s    GG!''1#6#67777!&&!">">????s 
EFVV]]_
sss 
EFVV]]_
 
 
 	
 
 aggi DLL000agg4g()q"g2wB-HHHHr   c                   V P                  4       p\        P                  ! \        4      ;_uu_ 4        VP	                  R 4       R R R 4       \        P                  ! \        4      ;_uu_ 4        VP                  R .4       R R R 4       \        P                  ! \        4      ;_uu_ 4        VP                  ^ R 4       R R R 4       \        P                  ! \        4      ;_uu_ 4        VP                  R.4       R R R 4       R #   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lu; i  + '       g   i     R # ; i)Nr   N)Graphr   r   
ValueErroradd_nodeadd_nodes_fromadd_edgeadd_edges_fromr   s   & r   test_none_nodeBaseGraphTester.test_none_node.   s    JJL]]:&&JJt ']]:&&dV$ ']]:&&JJq$ ']]:&&i[) '& '&&&&&&&&s/   D/D,D,)D?D	D)	,D<	?E	c                    V P                   pVP                  ^4      '       g   Q hVP                  ^4      '       d   Q hVP                  . 4      '       d   Q hVP                  ^^/4      '       d   Q hR# r   N)r   has_noder   s   & r   test_has_nodeBaseGraphTester.test_has_node9   s_    GGzz!}}}::a==  ::b>>!!::q!f%%%%%r   c                    V P                   pVP                  ^ ^4      '       g   Q hVP                  ^ R4      '       d   Q hR# r   N)r   has_edger   s   & r   test_has_edgeBaseGraphTester.test_has_edge@   s<    GGzz!Q::a$$$$$r   c                   V P                   p\        VP                  ^ 4      4      ^^.8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; irK   )r   r6   	neighborsr   r   r	   r   r   s   & r   test_neighborsBaseGraphTester.test_neighborsE   sY    GGakk!n%!Q///]]2++,,KKO -,,,s   A88B		PyPyzPyPy gc is different)reasonc                   V P                  4       pR  p\        P                  ! 4        V! V P                   4      pVP                  4        \        P                  ! 4        V! V P                   4      pW48X  g   Q h ! R RV P                   4      p\        P                  ! 4        V! 4       pV! V4      pVP                  4        \        P                  ! 4        V! V4      pW48X  g   Q hR# )c                 T   a  \        V 3R  l\        P                  ! 4        4       4      # )c              3      <"   T F=  p\        V\        P                  4      '       d   K%  \        VS4      '       g   K9  ^x  K?  	  R# 5irF   )r(   weakref
ProxyTypes)r*   obj_types   & r   r,   RBaseGraphTester.test_memory_leak.<locals>.count_objects_of_type.<locals>.<genexpr>Z   s9      +C!#w'9'9: ?I#u?U +s   "AA
A)sumgcget_objects)r\   s   fr   count_objects_of_type?BaseGraphTester.test_memory_leak.<locals>.count_objects_of_typeQ   s&      >>+  r   c                       ] tR t^htRtR# )1BaseGraphTester.test_memory_leak.<locals>.MyGraph N)__name__
__module____qualname____firstlineno____static_attributes__re   r   r   MyGraphrd   h   s    r   rk   N)r=   r_   collectcopy)r   r   ra   beforeafterrk   s   &     r   test_memory_leak BaseGraphTester.test_memory_leakK   s     JJL	 	

&tzz2	


%djj1	djj 	 	

I&w/	


%g.r   c                   V P                   p\        VP                  VP                  4      '       g   Q h\	        VP                  4       . RO4      '       g   Q h\	        VP                  ^ 4      RR.4      '       g   Q h\	        VP                  ^ ^.4      . RO4      '       g   Q h\        P                  ! \        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r   Nr   r   r      rs   rt   r   ru   rL   )
r   r(   r2   r3   r   edgesr   r   r	   r   r   s   & r   
test_edgesBaseGraphTester.test_edgess   s    GG!&&!">">????1779&>????1771:'78888177Aq6?,DEEEE]]2++,,GGBK -,,,s   C--C>	c                   V P                   p\        VP                  4       4      . RO8X  g   Q h\        VP                  4       4      ^ ^^^^^/8X  g   Q hVP                  ^ 4      ^8X  g   Q h\        P
                  ! \        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r   N)rt   rw   )ru   ru   rL   )r   r6   r   dictr   r   r	   r   r   s   & r   test_degreeBaseGraphTester.test_degree|   s    GGahhj!%====AHHJAq!Q1#5555xx{a]]2++,,HHRL -,,,s   B55C	c                z    V P                   pVP                  4       ^8X  g   Q hVP                  4       ^8X  g   Q hR# r   )r   sizenumber_of_edgesr   s   & r   	test_sizeBaseGraphTester.test_size   s4    GGvvx1}}  "a'''r   c                <   V P                   p\        VP                  4       V P                  4      '       g   Q h\        VP                  ^ 4      ^ .4      '       g   Q h\        VP                  ^ ^.4      ^ ^.4      '       g   Q h\        VP                  R.4      . 4      '       g   Q h\        VP                  R4      . 4      '       g   Q hVP                  R4      p\        P
                  ! \        P                  RR7      ;_uu_ 4        \        V4       RRR4       VP                  ^ ^^/ .4      p\        P
                  ! \        P                  RR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     Li; i  + '       g   i     R# ; i)r   foozis not in the graphr   Nz&in sequence nbunch is not a valid noderL   )	r   r   nbunch_iterr8   r   r   r	   r   list)r   r   bunchs   &  r   test_nbunch_iter BaseGraphTester.test_nbunch_iter   s9   GG1==?DLL99991==+aS11111==!Q01a&99991==".33331==/4444b!]]2++3HIIK J q!Qm,]]$L
 
 K
 
 JI

 
 
s   
E7!F
7F	
F	c                   V P                  4       pR \        4       3.p\        P                  ! \        P
                  4      ;_uu_ 4        \        VP                  V4      4       RRR4       R#   + '       g   i     R# ; i)xN)r=   setr   r   r	   r   r   r   )r   r   nbunchs   &  r   "test_nbunch_iter_node_format_raise2BaseGraphTester.test_nbunch_iter_node_format_raise   sQ     JJL,]]2++,,v&' -,,,s   
A//B 	c                z   V P                  4       pVP                  ^^4       \        VP                  4       4      R.8X  g   Q h\	        VP                  4       4      ^^/8X  g   Q hVP                  ^4      ^8X  g   Q h\        VP                  ^.4      4      R.8X  g   Q hVP                  ^RR7      ^8X  g   Q hR# )r   weightr   Nrw   )r=   rA   r6   r   r|   r   s   & r   test_selfloop_degree$BaseGraphTester.test_selfloop_degree   s    JJL	

1aahhj!fX---AHHJAq6)))xx{aahhsm$000xx(x+q000r   c                \   V P                   P                  4       pVP                  ^ ^ 4       \        \        P
                  ! V4      ^ .4      '       g   Q h\        \        P                  ! V4      R.4      '       g   Q h\        P                  ! V4      ^8X  g   Q hVP                  ^ ^ 4       VP                  ^ ^ 4       VP                  R.4       VP                  ^^4       VP                  ^4       VP                  ^ ^ 4       VP                  ^^4       VP                  ^ ^.4       R# )r   Nr   r   )r   rm   rA   r   r	   nodes_with_selfloopsr   selfloop_edgesnumber_of_selfloopsremove_edgeremove_edges_fromremove_noderemove_nodes_fromr   s   & r   test_selfloopsBaseGraphTester.test_selfloops   s    GGLLN	

1a22215s;;;;2,,Q/&::::%%a(A---	a	

1a	VH%	

1a	a	

1a	

1a	QF#r   c                   V P                   P                  4       pVP                  p\        VP                  4      \        V4      8X  g   Q h/ Vn        \        VP                  4      \        V4      8w  g   Q hVP
                  p\        VP
                  4      \        V4      8X  g   Q h/ Vn        \        VP
                  4      \        V4      8w  g   Q hR # r'   )r   rm   r+   idr2   r7   r0   )r   r   old_adj	old_nodess   &   r   test_cache_reset BaseGraphTester.test_cache_reset   s    GGLLN%%!%%yBwK'''!%%yBwK'''GG	!''{bm+++!''{bm+++r   c                   V P                   P                  4       p\        VP                  4      \        VP                  4      8X  g   Q h\        VP                  4      \        VP                  4      8X  g   Q h\        VP
                  4      \        VP
                  4      8X  g   Q h\        VP                  4      \        VP                  4      8X  g   Q hR # r'   )r   rm   r   r7   rx   r   r+   r   s   & r   test_attributes_cached&BaseGraphTester.test_attributes_cached   s    GGLLN!''{bk)))!''{bk)))!((|r!((|+++!%%yBquuI%%%r   re   N)rf   rg   rh   ri   __doc__r   r#   r9   rC   rH   rN   rR   r   markskipifplatformpython_implementationrp   ry   r}   r   r   r   r   r   r   r   rj   __classdictcell____classdict__s   @r   r   r      s     D(I	*&%
 [[&&(F2;Q  ##J(
,	(1$
,& &r   r   c                     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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R t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R't*V t+R(# ))BaseAttrGraphTesterz(Tests of graph class attribute features.c                   V P                  4       pVP                  ^^^^R7       VP                  ^^^^R7       \        R VP                  RR7       4       4      . RO8X  g   Q h\	        VP                  RR7      4      ^^^^^^/8X  g   Q hVP                  ^RR7      ^8X  g   Q h\        VP                  ^.RR7      R	.4      '       g   Q h\        R VP                  RR7       4       . R
O4      '       g   Q h\	        VP                  RR7      4      ^^^^^^/8X  g   Q hVP                  ^RR7      ^8X  g   Q h\        VP                  ^.RR7      R.4      '       g   Q hR# )r   )r   otherc              3   *   "   T F	  w  rVx  K  	  R # 5ir'   re   r*   nds   &  r   r,   ;BaseAttrGraphTester.test_weighted_degree.<locals>.<genexpr>   s     >$=DAa$=   r   r   c              3   *   "   T F	  w  rVx  K  	  R # 5ir'   re   r   s   &  r   r,   r      s     C*B$!A*Br   r   N)ru   r      rw   )r         )r   r   )r=   rA   r6   r   r|   r   r   r   s   & r   test_weighted_degree(BaseAttrGraphTester.test_weighted_degree   sQ   JJL	

1a
+	

1a
+>AHHHH$=>>)KKKAHHHH-.1aAq!2DDDDxx(x+q000AHHaSH:fXFFFFC!(('(*BCYOOOOAHHGH,-!Q1a1CCCCxx'x*a///AHHaSH9VHEEEEr   c                    . VP                   R &   . VP                  ^ ,          R &   VP                  ^^4       . pVP                  ^^VR7       VP                  ^^VR7       R# )r   r   N)graphr7   r   rA   )r   r   lls   && r   add_attributes"BaseAttrGraphTester.add_attributes   sX    
5	a	

1aR
 	

1aR
 r   c                    V P                  R R7      pVP                  R 8X  g   Q hV P                  RR7      pVP                  R8X  g   Q hR# ) nametestN)r=   r   r   s   & r   	test_nameBaseAttrGraphTester.test_name   sD    JJBJvv||JJFJ#vvr   c                    V P                  4       pVP                  RR.4       \        V4      \        V4      P                   R28X  g   Q hR# )r   z with 3 nodes and 2 edgesNrw   ru   r   r=   rB   strtyperf   r   s   & r   test_str_unnamed$BaseAttrGraphTester.test_str_unnamed   sE    JJL	&&)*1vDG,,--FGGGGr   c                    V P                  R R7      pVP                  RR.4       \        V4      \        V4      P                   R28X  g   Q hR# )r   r   z% named 'foo' with 3 nodes and 2 edgesNrw   r   r   r   s   & r   test_str_named"BaseAttrGraphTester.test_str_named   sJ    JJEJ"	&&)*1vDG,,--RSSSSr   c                    V P                  RR.4      pVP                  RR7      pVP                  ^ ^.4      pVP                  RR7      pWP                  J g   Q hW#P                  J g   Q hW4P                  J g   Q hR# )r   Tas_viewF)rm   Nrs   rw   )r=   to_directedsubgraphreverse_graph)r   r   DGSDGRSDGs   &    r   test_graph_chain$BaseAttrGraphTester.test_graph_chain   su    JJ'(]]4](kk1a&!{{{&II~~ZZkk!!!r   c                   V P                  4       pVP                  ^ 4       VP                  ^^4       V P                  V4       VP	                  4       pV P                  W!4       V P                  W!4       V P                  W!4       R# r<   )r=   r?   rA   r   rm   r   different_attrdictshallow_copy_attrdictr   r   Hs   &  r   	test_copyBaseAttrGraphTester.test_copy  si    JJL	

1	

1aAFFH!%""1(r   c                   V P                  4       pVP                  ^ 4       VP                  ^^4       V P                  V4       VP	                  V4      pV P                  W!4       V P                  W!4       V P                  W!4       R# r<   )r=   r?   rA   r   	__class__r   r   r   r   s   &  r   test_class_copy#BaseAttrGraphTester.test_class_copy  sk    JJL	

1	

1aAKKN!%""1(r   c                &   V P                  4       pVP                  ^ 4       VP                  ^^4       V P                  V4       VP	                  4       pVP                  V4       VP                  VP                  4       4       \        VP                  ^ ,          4      ^8X  g   Q hVP                  4       '       d"   VP                  ^,          ^,          ^ ,          MVP                  ^,          ^,          p\        V4      ^8X  g   Q h\        VP                  ^ ,          4      ^ 8X  g   Q hVP                  4       '       d"   VP                  ^,          ^,          ^ ,          MVP                  ^,          ^,          p\        V4      ^ 8X  g   Q hR# r<   )r=   r?   rA   r   r   r@   rB   rx   r    r7   is_multigraphr+   )r   r   r   ddicts   &   r   test_fresh_copy#BaseAttrGraphTester.test_fresh_copy  s   JJL	

1	

1aAKKM		#1771:!###"#//"3"3aAq!5zQ1771:!###"#//"3"3aAq!5zQr   c                l    V P                  W4       V P                  W4       V P                  W4       R # r'   )r   r   deep_copy_attrdictr   r   r   s   &&&r   is_deepcopyBaseAttrGraphTester.is_deepcopy.  s,    !%%r   c                l    V P                  W4       V P                  W4       V P                  W4       R # r'   )deepcopy_graph_attrdeepcopy_node_attrdeepcopy_edge_attrr   s   &&&r   r   &BaseAttrGraphTester.deep_copy_attrdict3  s,      &%%r   c                    VP                   R ,          VP                   R ,          8X  g   Q hVP                   R ,          P                  ^4       VP                   R ,          VP                   R ,          8w  g   Q hR# r   Nr   appendr   s   &&&r   r   'BaseAttrGraphTester.deepcopy_graph_attr8  T    wwu~///	a wwu~///r   c                <   VP                   ^ ,          R,          VP                   ^ ,          R,          8X  g   Q hVP                   ^ ,          R,          P                  ^4       VP                   ^ ,          R,          VP                   ^ ,          R,          8w  g   Q hR# r   r   Nr7   r  r   s   &&&r   r   &BaseAttrGraphTester.deepcopy_node_attr=  m    wwqz% AGGAJu$5555	
5  #wwqz% AGGAJu$5555r   c                   V^,          ^,          R,          V^,          ^,          R,          8X  g   Q hV^,          ^,          R,          P                  ^4       V^,          ^,          R,          V^,          ^,          R,          8w  g   Q hR# r   r   Nr  r   s   &&&r   r   &BaseAttrGraphTester.deepcopy_edge_attrB  h    tAwu~1a///	!Qa tAwu~1a///r   c                J    V P                  W4       V P                  W4       R # r'   )r   r   r   s   &&&r   is_shallow_copy#BaseAttrGraphTester.is_shallow_copyG  s    !""1(r   c                l    V P                  W4       V P                  W4       V P                  W4       R # r'   )shallow_copy_graph_attrshallow_copy_node_attrshallow_copy_edge_attrr   s   &&&r   r   )BaseAttrGraphTester.shallow_copy_attrdictK  s,    $$Q*##A)##A)r   c                    VP                   R ,          VP                   R ,          8X  g   Q hVP                   R ,          P                  ^4       VP                   R ,          VP                   R ,          8X  g   Q hR# r   r  r   s   &&&r   r  +BaseAttrGraphTester.shallow_copy_graph_attrP  r  r   c                <   VP                   ^ ,          R,          VP                   ^ ,          R,          8X  g   Q hVP                   ^ ,          R,          P                  ^4       VP                   ^ ,          R,          VP                   ^ ,          R,          8X  g   Q hR# r  r  r   s   &&&r   r  *BaseAttrGraphTester.shallow_copy_node_attrU  r	  r   c                   V^,          ^,          R,          V^,          ^,          R,          8X  g   Q hV^,          ^,          R,          P                  ^4       V^,          ^,          R,          V^,          ^,          R,          8X  g   Q hR# r  r  r   s   &&&r   r  *BaseAttrGraphTester.shallow_copy_edge_attrZ  r  r   c                   V^,          ^,          R,          pRVP                   ^,          ^,          R&   VP                  VP                  8X  g   Q hW1P                   ^,          ^,          R&   VP                  VP                  8X  g   Q hVP                  ^ ,          R,          pRVP                  ^ ,          R&   VP                  VP                  8X  g   Q hW1P                  ^ ,          R&   VP                  VP                  8X  g   Q hR# r   r   bazN)r+   rx   r7   r   r   r   old_foos   &&& r   same_attrdict!BaseAttrGraphTester.same_attrdict_  s    A$q'%."aEww!''!!!$aEww!''!!!''!*U#!
5ww!''!!!#
5ww!''!!!r   c                   V^,          ^,          R,          pRVP                   ^,          ^,          R&   VP                  VP                  8w  g   Q hW1P                   ^,          ^,          R&   VP                  VP                  8X  g   Q hVP                  ^ ,          R,          pRVP                  ^ ,          R&   VP                  VP                  8w  g   Q hW1P                  ^ ,          R&   VP                  VP                  8X  g   Q hR# r  )r+   r2   r7   r0   r   s   &&& r   r   &BaseAttrGraphTester.different_attrdictl  s    A$q'%."aEvv$aEvv''!*U#!
5ww!''!!!#
5ww!''!!!r   c                ^   VP                   VP                   8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hVP	                  4       '       g   VP	                  4       '       gs   VP                   ^,          ^,          VP                   ^,          ^,          J g   Q hVP                   ^,          ^,          VP                   ^,          ^,          J g   Q hR# VP	                  4       '       g#   VP                   Vn        VP                   Vn        VP	                  4       '       g#   VP                   Vn        VP                   Vn        VP
                  VP
                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  ^,          ^,          VP
                  ^,          ^,          J g   Q hVP                  ^,          ^,          VP
                  ^,          ^,          J g   Q hR# rF   )r2   r0   r   r   is_directed_pred_succr   s   &&&r   r    BaseAttrGraphTester.graphs_equaly  su   vvww!''!!!ww!''!!!vv}}q}}66!9Q<166!9Q<///66!9Q<166!9Q<///==??&&&&==??&&&&77agg%%%77agg%%%771:a=AGGAJqM111771:a=AGGAJqM111r   c                t   V P                   P                  4       pR VP                  R&   \        VP                  VP                  4      '       g   Q hVP                  R,          R 8X  g   Q hVP                  R VP                  / 8X  g   Q hV P                  R R7      pVP                  R,          R 8X  g   Q hR# )barr   r   N)r   rm   r   r(   graph_attr_dict_factoryr=   r   s   &  r   test_graph_attr#BaseAttrGraphTester.test_graph_attr  s    GGLLN!''1#<#<====wwu~&&&GGENww"}}JJ5J!wwu~&&&r   c                  a V P                   P                  4       oSP                  ^RR7       \        ;QJ d/    V3R lSP	                  RR7       4       F  '       d   K   RM$	  RM ! V3R lSP	                  RR7       4       4      '       g   Q h\        SP	                  4       . RO4      '       g   Q h\        SP	                  RR7      ^ / 3^RR/3^/ 3.4      '       g   Q hRSP                  ^,          R&   \        SP	                  RR7      ^ / 3^RR/3^/ 3.4      '       g   Q h\        SP	                  RR7      . RO4      '       g   Q h\        SP	                  RRR
7      . RO4      '       g   Q hR	# )r   r,  r   c              3   T   <"   T F  w  r\        VSP                  4      x  K  	  R # 5ir'   )r(   node_attr_dict_factory)r*   ur   r   s   &  r   r,   5BaseAttrGraphTester.test_node_attr.<locals>.<genexpr>  s'      
@RJq!2233@Rs   %(Tr.   Fr   r  N)r/   defaultr   r   ru   )r<   r   r  )ru   N))r   r,  r7  )ru   r,  )r   rm   r?   r4   r7   r   r   s   &@r   test_node_attr"BaseAttrGraphTester.test_node_attr  sU   GGLLN	

1%
 s 
@AT@R
sss 
@AT@R
 
 
 	
 
 1779i00001777-B!eU^9LqRTg/VWWWW!
51777-B!eU^9LqRTg/VWWWW1777.0RSSSSGGG.0T
 
 	
 
r   c           	        V P                   P                  4       pR R/pVP                  ! R/ VB  \        VP	                  4       . RO4      '       g   Q h\        VP	                  RR7      ^ / 3^/ 3^/ 3^R R/3.4      '       g   Q hR# )r   r,  Tr.   N)r   r   r   ru   r   )r   rm   r?   r   r7   )r   r   as   &  r   test_node_attr2#BaseAttrGraphTester.test_node_attr2  s    GGLLNEN	

1779l3333GGG!R1b'Ar7Q<O P
 
 	
 
r   c                    V P                  4       pVP                  ^^RR7       \        VP                  R,          RR/4      '       g   Q hR# )r   r,  r   r   Nrw   )r=   rA   r   rx   r   s   & r   test_edge_lookup$BaseAttrGraphTester.test_edge_lookup  s>    JJL	

1aU
#1774=5%.9999r   c                  a V P                  4       oSP                  ^^RR7       \        ;QJ d/    V3R lSP                  RR7       4       F  '       d   K   RM$	  RM ! V3R lSP                  RR7       4       4      '       g   Q h\	        SP                  RR7      ^^RR/3.4      '       g   Q h\	        SP                  RR7      R	.4      '       g   Q hR# )
r   r,  r   c              3   V   <"   T F  w  rp\        VSP                  4      x  K   	  R # 5ir'   )r(   edge_attr_dict_factory)r*   r3  vr   r   s   &   r   r,   5BaseAttrGraphTester.test_edge_attr.<locals>.<genexpr>  s)      
CUaJq!2233CUs   &)Tr.   Fr   N)r   ru   r,  )r=   rA   r4   rx   r   r   s   &@r   test_edge_attr"BaseAttrGraphTester.test_edge_attr  s    JJL	

1aU
#s 
CD77PT7CU
sss 
CD77PT7CU
 
 
 	
 
 1777-Au~0F/GHHHH1777.@@@@r   c                    V P                  4       pVP                  RR.RR7       \        VP                  RR7      ^^RR/3^^RR/3.4      '       g   Q h\        VP                  RR7      RR	.4      '       g   Q hR# )
r   r   r   Tr.   Nrw   r   r   )r   ru   r   )r   r   r   )r=   rB   r   rx   r   s   & r   test_edge_attr2#BaseAttrGraphTester.test_edge_attr2  s    JJL	&&)u5GGG!Q!7!Q9O P
 
 	
 
 1777.0NOOOOr   c                z   V P                  4       pVP                  ^^R^ /3^^R^@/3.RR7       \        VP                  RR7      ^^RRR^ /3^^RRR^@/3.4      '       g   Q hVP	                  RR.4       VP                  ^^^RRR7       \        VP                  RR7      ^^R^R	RRR/3.4      '       g   Q hR
# )r   r   r   r   Tr.   r,  r/   spamr,  r/   rO  Nrw   rJ  )r=   rB   r   rx   r   rA   r   s   & r   test_edge_attr3#BaseAttrGraphTester.test_edge_attr3  s    JJL	1a(B01a(B2HIuUGGGAuh34Auh34
 
 	
 
 	
VV,-	

1aae
7GGG!QFE5%(P!Q R
 
 	
 
r   c                2   V P                  4       pVP                  ^^^RRR7       \        VP                  RR7      ^^R^RRRR/3.4      '       g   Q h^
V^,          ^,          R&   \        VP                  RR7      ^^R^
RRRR/3.4      '       g   Q h^VP                  ^,          ^,          R&   \        VP                  RR7      ^^R^RRRR/3.4      '       g   Q h^VP                  R,          R&   \        VP                  RR7      ^^R^RRRR/3.4      '       g   Q h^^.VP                  ^,          ^,          R&   ^VP                  ^,          ^,          R	&   R^RRRRR^^.R	^/p\        VP                  RR7      ^^V3.4      '       g   Q hR
# )r   r,  r   rN  Tr.   r/   rO  listdatar   Nrw   )r=   rA   r   rx   r+   )r   r   dds   &  r   test_edge_attr4#BaseAttrGraphTester.test_edge_attr4  s   JJL	

1aae
7GGG!QFE5%(P!Q R
 
 	
 
 !QGGG!QVUE5(Q!R S
 
 	
 
 !aFGGG!QVUE5(Q!R S
 
 	
 
 !#fGGG!QVUE5(Q!R S
 
 	
 
 $&s)aJ "aHBE5S	b
 1777-Ar
|<<<<r   c                    V P                   pV P                  V4       \        P                  ! V4      pV P	                  W!4       V P                  W!4       VP                  4       pV P                  W!4       R # r'   )r   r   r	   r=   r  r   to_undirectedr   r   s   &  r   test_to_undirected&BaseAttrGraphTester.test_to_undirected  s\    GGAHHQKQ"%OOr   c                   \         P                  ! ^V P                  R7      pVP                  RR7      pWP                  J g   Q hVP                  ^ ^4      '       g   Q hVP                  ^^ 4      '       g   VP                  4       '       g   Q h\        P                  ! \         P                  VP                  R4       \        P                  ! \         P                  VP                  ^^4       VP                  ^^4       VP                  ^^4      '       g   Q hVP                  ^^4      '       g   VP                  4       '       g   Q hR# R# ru   )create_usingTr   NrL   )r	   r
   r=   r   r   rM   r'  r   r   r   r?   rA   r   r   H2s   &  r   test_to_directed_as_view,BaseAttrGraphTester.test_to_directed_as_view  s    MM!$**5]]4](II~~{{1a    {{1a  AMMOO33b&&R8b&&Q:	

1a{{1a    {{1a  AMMOO33O r   c                F   \         P                  ! ^V P                  R7      pVP                  RR7      pWP                  J g   Q hVP                  ^ ^4      '       g   Q hVP                  ^^ 4      '       g   Q h\        P                  ! \         P                  VP                  R4       \        P                  ! \         P                  VP                  ^^4       VP                  ^^4       VP                  ^^4      '       g   Q hVP                  ^^4      '       g   Q hR# r\  )r	   r
   r=   rX  r   rM   r   r   r   r?   rA   r^  s   &  r   test_to_undirected_as_view.BaseAttrGraphTester.test_to_undirected_as_view	  s    MM!$**5__T_*II~~{{1a    {{1a    b&&R8b&&Q:	

1a{{1a    {{1a    r   c                v  aa V P                  4       p ! VV3R  lRVP                  4       4      o ! VV3R lRVP                  4       4      oVP                  4       '       d   S! 4       MS! 4       pVP	                  4       p\        VS4      '       g   Q hVP                  4       p\        VS4      '       g   Q hR# )c                   :   <a  ] tR tRt o V3R ltV3R ltRtV tR# )9BaseAttrGraphTester.test_directed_class.<locals>.newGraphi  c                   < S# r'   re   r   
newDiGraphs   &r   to_directed_classKBaseAttrGraphTester.test_directed_class.<locals>.newGraph.to_directed_class  	    !!r   c                   < S# r'   re   r   newGraphs   &r   to_undirected_classMBaseAttrGraphTester.test_directed_class.<locals>.newGraph.to_undirected_class      r   re   Nrf   rg   rh   ri   rk  rq  rj   r   r   rj  rp  s   @r   rp  rg         "   r   rp  c                   :   <a  ] tR tRt o V3R ltV3R ltRtV tR# );BaseAttrGraphTester.test_directed_class.<locals>.newDiGraphi  c                   < S# r'   re   ri  s   &r   rk  MBaseAttrGraphTester.test_directed_class.<locals>.newDiGraph.to_directed_class   rm  r   c                   < S# r'   re   ro  s   &r   rq  OBaseAttrGraphTester.test_directed_class.<locals>.newDiGraph.to_undirected_class#  rs  r   re   Nrt  ru  s   @r   rj  rx    rv  r   rj  N)r=   rq  rk  r'  r   r(   rX  )r   r   r   rj  rp  s   &  @@r   test_directed_class'BaseAttrGraphTester.test_directed_class  s    JJL	  	 q,,. 	 	  	 ,,. 	  MMOOJLMMO!Z((((OO!X&&&&r   c                    V P                   pV P                  V4       \        P                  ! V4      pV P	                  W!4       V P                  W!4       VP                  4       pV P                  W!4       R # r'   )r   r   r	   DiGraphr  r   r   r   r   s   &  r   test_to_directed$BaseAttrGraphTester.test_to_directed,  s[    GGAJJqMQ"%MMOr   c                   V P                   pV P                  V4       VP                  . RO4      pV P                  W!4       V P	                  W!4       V P                  W!4       VP                  ^ 4      pVP                  ^ / /8X  g   Q hVP                  . 4      pVP                  / 8X  g   Q hVP                  / 8w  g   Q hR# )r   N)r   r   ru   r   )r   r   r   r   r"  r   r+   r   s   &  r   test_subgraph!BaseAttrGraphTester.test_subgraph5  s    GGAJJ|$!1 ""1(JJqMuuBJJrNuu{{uu{{r   c                F   V P                   P                  4       pVP                  ^ ^ 4       VP                  ^^^R7       \        \        P
                  ! VRR7      ^ ^ / 3^^R^/3.4      '       g   Q h\        \        P
                  ! VRR7      RR.4      '       g   Q hR# )r   r   Tr.   r   N)r   r   N)r   r   ru   )r   rm   rA   r   r	   r   r   s   & r   test_selfloops_attr'BaseAttrGraphTester.test_selfloops_attrC  s    GGLLN	

1a	

1a
"ad+q!Rj1a(A:O-P
 
 	
 
 ah/,	1J
 
 	
 
r   re   N),rf   rg   rh   ri   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r"  r   r   r.  r8  r=  r@  rG  rK  rP  rU  rY  r`  rc  r}  r  r  r  rj   r   r   s   @r   r   r      s     2F! H
T
"	)	) &
&
0
6
0
)*
0
6
0
""2('

:
AP
"=<
4
!'.	
 	
r   r   c                      a  ] tR tR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R tR tR tR tR tRtV tR# )	TestGraphiO  z;Tests specific to dict-of-dict-of-dict graph data structurec           	        \         P                  V n        / / / r2p^ ^V^V/^^ V^V/^^ V^V//V n        . ROV n        . ROV n        V P                  4       V n        V P                  V P
                  n        / V P
                  n        / V P
                  P                  ^ &   / V P
                  P                  ^&   / V P
                  P                  ^&   R# )r   Nrv   r6  )r	   r=   k3adjk3edgesr8   r   r2   r0   )r   ed1ed2ed3s   &   r   setup_methodTestGraph.setup_methodR  s    XX
R#!S!S)1q#q#.>AsAsCST
/ **,zzaaar   c                   V P                   p\        P                  ! \        P                  ! VR4      4      pV P	                  W!4       \        P                  ! \        P                  ! V4      4      pV P	                  W!4       R# )r   NrL   )r   pickleloadsdumpsr   )r   r   pgs   &  r   test_pickleTestGraph.test_pickle`  sV    GG\\&,,q"-." \\&,,q/*" r   c                    V P                  ^^.^^./RR7      pVP                  R8X  g   Q h\        VP                  P	                  4       4      ^^/ /3^^/ /3.8X  g   Q hR# )r   r   r   N)r=   r   r6   r+   itemsr   s   & r   test_data_inputTestGraph.test_data_inputg  se    JJA3A3'fJ5vvaeekkm$!aWAr7|(DDDDr   c           
         V P                   p\        VP                  4       4      ^ ^/ ^/ /^^ / ^/ /^^ / ^/ //8X  g   Q hR# r<   )r   r|   	adjacencyr   s   & r   test_adjacencyTestGraph.test_adjacencyl  sT    GGAKKM"2q"~2q"~2q"~'
 
 	
 
r   c                   V P                   pVP                  ^ ,          ^/ ^/ /8X  g   Q hV^ ,          ^/ ^/ /8X  g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  R.4       RRR4       R#   + '       g   i     LO; i  + '       g   i     R# ; i)r   jNA)r   r+   r   r   KeyError__getitem__	TypeErrorr   s   & r   test_getitemTestGraph.test_getitemt  s    GGuuQxAr1b>)))t2q"~%%%]]8$$MM# %]]9%%MM3%  &% %$%%%s   !B:C:C
	C	c                   V P                  4       pVP                  ^ 4       VP                  ^ / /8X  g   Q hVP                  ^RR7       VP                  ^RR7       VP                  ^RR7       VP                  ^,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^RR7       VP                  ^RR7       VP                  ^RR7       VP                  ^,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hR# )r   redcbluer  N)r=   r?   r+   r7   r   s   & r   test_add_nodeTestGraph.test_add_node}  s*   JJL	

1uuB	

1
	

1
	

1
wwqz#%'''wwqz#&(((wwqz#%'''	

1
	

1
	

1
wwqz#&(((wwqz#%'''wwqz#&(((r   c                    V P                  4       pVP                  . R
O4       VP                  ^ / ^/ ^/ /8X  g   Q hVP                  . R
ORR7       VP                  ^ ,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^ ,          VP                  ^,          Jg   Q hVP                  . R
ORR7       VP                  ^ ,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^ ,          VP                  ^,          Jg   Q hV P                  4       pVP                  VP                  RR7      4       VP                  ^ ,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^ ,          VP                  ^,          Jg   Q hVP                  ^ ^RR/3^RR/3.RR7       VP                  ^ ,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hVP                  ^,          R,          R8X  g   Q hR	# )r   r  r  r  r  Tr.   greencyanNr6  )r=   r@   r+   r7   r   s   &  r   test_add_nodes_fromTestGraph.test_add_nodes_from  s   JJL	#uuB2q"----	e,wwqz#%'''wwqz#%'''wwqz+++	f-wwqz#&(((wwqz#&(((wwqz+++JJL	d+,wwqz#&(((wwqz#&(((wwqz+++	!a#w01sFm2DEOwwqz#%'''wwqz#')))wwqz#&(((wwqz#&(((r   c                F   V P                   P                  4       pVP                  ^ 4       VP                  ^^/ /^^/ //8X  g   Q h\        P
                  ! \        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; irK   )r   rm   r   r+   r   r   r	   r   r   s   & r   test_remove_nodeTestGraph.test_remove_node  sp    GGLLN	auuQGQB0000]]2++,,MM" -,,,s   3BB 	c                    V P                   P                  4       pVP                  ^ ^.4       VP                  ^/ /8X  g   Q hVP                  R.4       R# rK   )r   rm   r   r+   r   s   & r   test_remove_nodes_from TestGraph.test_remove_nodes_from  sI    GGLLN	QF#uuB	RD!r   c                   V P                  4       pVP                  ^ ^4       VP                  ^ ^/ /^^ / //8X  g   Q hV P                  4       pVP                  ! R!   VP                  ^ ^/ /^^ / //8X  g   Q hV P                  4       p\        P                  ! \
        4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     R# ; i)r   Nanythingrs   )r=   rA   r+   r   r   r>   r   s   & r   test_add_edgeTestGraph.test_add_edge  s    JJL	

1auuQGQB0000JJL	

FuuQGQB0000JJL]]:&&JJtZ( '&&&s   +CC	c                   V P                  4       pVP                  R^ ^R^/3.4       VP                  ^ ^/ ^R^//^^ / /^^ R^///8X  g   Q hV P                  4       pVP                  R^ ^R^/3^^R^/3.^R7       VP                  ^ ^R^/^R^R^//^^ R^/^R^//^^ R^R^/^R^///8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  R.4       RRR4       \        P                  ! \
        P                  4      ;_uu_ 4        VP                  R.4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^ .4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  RR	.4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lv; i  + '       g   i     R# ; i)
r   r   r/   r.   Nrs   )r   r;  )Nr   )r   ru   )	r=   rB   r+   r   r   r	   r   r  r>   r   s   & r   test_add_edges_fromTestGraph.test_add_edges_from  s   JJL	&1a(A"789uu2q8Q-(2wHa=!
 
 	
 

 JJL	&1a(A"7!Q9LMTUVuuFA;Ha#;<FA;FA;/Ha+Q<
 
 	
 
 ]]2++,,dV$ -]]2++,,l^, -]]9%%aS! &]]:&&i01 '& -,,,%%&&&s0   F>&G#G$ G7>G	G!	$G4	7H	c           
     V   V P                   P                  4       pVP                  ^ ^4       VP                  ^ ^/ /^^/ /^^ / ^/ //8X  g   Q h\        P
                  ! \        P                  4      ;_uu_ 4        VP                  R^ 4       RRR4       R#   + '       g   i     R# ; irK   )r   rm   r   r+   r   r   r	   r   r   s   & r   test_remove_edgeTestGraph.test_remove_edge  s    GGLLN	auuQGQBQArNCCCC]]2++,,MM"a  -,,,s   :BB(	c           
         V P                   P                  4       pVP                  R.4       VP                  ^ ^/ /^^/ /^^ / ^/ //8X  g   Q hVP                  R.4       R# )r   Nrs   r   )r   rm   r   r+   r   s   & r   test_remove_edges_from TestGraph.test_remove_edges_from  s`    GGLLN	VH%uuQGQBQArNCCCC	VH%r   c                    V P                   P                  4       pR VP                  R&   VP                  4        \	        VP
                  4      . 8X  g   Q hVP                  / 8X  g   Q hVP                  / 8X  g   Q hR# r   r   N)r   rm   r   clearr   r7   r+   r   s   & r   
test_clearTestGraph.test_clear  s]    GGLLN		AGG}"""uu{{ww"}}r   c                x   V P                   P                  4       pR VP                  R&   \        VP                  4      pVP                  4        \        VP                  4      V8X  g   Q hVP                  ^ / ^/ ^/ /8X  g   Q h\        VP                  4      . 8X  g   Q hVP                  R,          R 8X  g   Q hR# r  )r   rm   r   r   r7   clear_edgesr+   rx   )r   r   r7   s   &  r   test_clear_edgesTestGraph.test_clear_edges  s    GGLLNQWW	AGG}%%%uuB2q"----AGG}"""wwv$&&&r   c                   V P                   p^ ^/ 3^ ^/ 3^^/ 3.p\        VP                  RR7      V4      '       g   Q h\        VP                  ^ RR7      ^ ^/ 3^ ^/ 3.4      '       g   Q h\        VP                  ^ ^.RR7      V4      '       g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     R# ; i)r   Tr.   NrL   )r   r   rx   r   r   r	   r   )r   r   	all_edgess   &  r   test_edges_dataTestGraph.test_edges_data  s    GGBZ!QaBZ8	1777-y99991771470Aq":1bz2JKKKK177Aq675yAAAA]]2++,,GGB -,,,s   ?CC-	c                (   V P                   P                  4       pVP                  ^ ^4      / 8X  g   Q hV^ ,          ^,          / 8X  g   Q hVP                  ^
^4      e   Q hVP                  R^ 4      e   Q hVP                  R^ ^R7      ^8X  g   Q hR# )r   N)r5  rL   )r   rm   get_edge_datar   s   & r   test_get_edge_dataTestGraph.test_get_edge_data  s    GGLLNq!$***tAw"}}r2&...r1%---r1a0A555r   c                (   V P                   P                  4       pVP                  ^^R^/3.R^^R^/3.R7       ^ / 3^/ 3^/ 3^/ 3^R^/3^/ 3^/ 3^/ 3.p\        VP                  P                  4       4      V8X  g   Q hVP                  4       '       d&   ^ ^/ 3^ ^/ 3^^ / 3^^/ 3^^ / 3^^/ 3^^/ 3^^R^/3.pM^ ^/ 3^ ^/ 3^^/ 3^^/ 3^^R^/3.p\        VP                  P                  4       4      V8X  g   Q hVP                  / 8X  g   Q hV P                   P                  4       pVP                  R^^R^/3.^^R^/3.4       \        VP                  P                  4       4      V8X  g   Q h\        VP                  P                  4       4      V8X  g   Q hVP                  / 8X  g   Q hV P                  4       pRVP                  R&   VP                  ^^R7       VP                  ^ ^RR7       VP                  4       pV P                  4       pVP                  V4       \        W4      '       g   Q hVP                  V4       \        WQ4      '       g   Q hV P                  4       pVP                  ^^.R	7       VP                  ^^0,          \        4       8X  g   Q hVP                  4       ^ 8X  g   Q hV P                  4       pVP                  R.R
7       \        VP                  P                  4       4      ^^/ 3.8X  g   Q hVP                  4       ^8X  g   Q h\        P                   ! \"        P$                  4      ;_uu_ 4        \"        P                  ! 4       P                  4        RRR4       R#   + '       g   i     R# ; i)r   r   r   )r7   rx   r,  r   r.   g      ?r   )r7   )rx   N)r   r   rJ  )r   rm   updater6   r7   r/   r'  rx   r   r=   r?   rA   r   r   r   r   r   r	   r   )r   r   nlistelistGGr   s   &     r   test_updateTestGraph.test_update  sV   GGLLN	A{+,VaXqM=R4STGGGGGGG	
 agglln%...==??Ar
Ar
Ar
Ar
Ar
Ar
Ar
A!}%	E Ar
Ar
Ar
Ar
A!}%E agglln%...ww"}} GGLLN	&1a(A/01q61+6F2GHagglln%...agglln%...ww"}} JJL	

11
	

1a
$VVXJJL
		!A""""	A!!!! JJL	1vww!Q35(((vvx1}} JJL	x agglln%1a*555vvx1}} ]]2++,,HHJ -,,,s   $N  N	)r=   r   r  r  r8   N)rf   rg   rh   ri   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rj   r   r   s   @r   r  r  O  sj     E!E

!)&)8"	)22!&'6F  F r   r  c                   T   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tRtV tR# )TestEdgeSubgraphiX  z6Unit tests for the :meth:`Graph.edge_subgraph` method.c                :   \         P                  ! ^4      p\        ^4       F  pRV 2VP                  V,          R&   K  	  RVP                  R,          R&   RVP                  R,          R&   RVP
                  R&   Wn        VP                  RR.4      V n        R# )	r   noder   edge01edge34r   Nrs   rJ  )	r	   r
   ranger7   rx   r   r   edge_subgraphr   )r   r   is   &  r   r  TestEdgeSubgraph.setup_method[  s    MM!qA#'sAGGAJv  (f (f!&&!12r   c                ^    . RO\        V P                  P                  4       4      8X  g   Q hR# )z.Tests that the subgraph has the correct nodes.Nr   r   r   r   )r6   r   r7   r   s   &r   test_correct_nodes#TestEdgeSubgraph.test_correct_nodesh  s    vdfflln5555r   c                b    RR.\        V P                  P                  RR7      4      8X  g   Q hR# )z.Tests that the subgraph has the correct edges.r   r.   N)r   r   r  )r   r   r  )r6   r   rx   r  s   &r   test_correct_edges#TestEdgeSubgraph.test_correct_edgesl  s+     "23vdffllPVl>W7XXXXr   c                    V P                   P                  ^4       . RO\        V P                  P	                  4       4      8X  g   Q hR# )z[Tests that adding a node to the original graph does not
affect the nodes of the subgraph.

Nr  )r   r?   r6   r   r7   r  s   &r   r  TestEdgeSubgraph.test_add_nodep  s1    
 	vdfflln5555r   c                    V P                   P                  ^ 4       . RO\        V P                  P	                  4       4      8X  g   Q hR# )zYTests that removing a node in the original graph does
affect the nodes of the subgraph.

N)r   r   r   )r   r   r6   r   r7   r  s   &r   r  !TestEdgeSubgraph.test_remove_nodex  s3    
 	1F466<<>2222r   c                &   V P                    FB  pV P                  P                  V,          V P                   P                  V,          8X  d   KB  Q h	  RV P                  P                  ^ ,          R&   V P                  P                  ^ ,          V P                   P                  ^ ,          8X  g   Q hRV P                   P                  ^,          R&   V P                  P                  ^,          V P                   P                  ^,          8X  g   Q hR# )zPTests that the node attribute dictionary of the two graphs is
the same object.

r   r   r,  N)r   r   r7   )r   rE  s   & r   test_node_attr_dict$TestEdgeSubgraph.test_node_attr_dict  s    
 A66<<?dffll1o555  #(Qvv||A$&&,,q/111"'Qvv||A$&&,,q/111r   c                   V P                   P                  4        FF  w  rV P                  P                  W3,          V P                   P                  W3,          8X  d   KF  Q h	  RV P                  P                  R,          R&   V P                  P                  R,          R,          V P                   P                  R,          R,          8X  g   Q hRV P                   P                  R,          R&   V P                  P                  R,          R,          V P                   P                  R,          R,          8X  g   Q hR# )zPTests that the edge attribute dictionary of the two graphs is
the same object.

r   r   r,  Nrs   rJ  )r   rx   r   )r   r3  rE  s   &  r   test_edge_attr_dict$TestEdgeSubgraph.test_edge_attr_dict  s    
 FFLLNDA66<<%ad);;;; # &+T6"vv||D!&)TVV\\$-?-GGGG%*T6"vv||D!&)TVV\\$-?-GGGGr   c                f    V P                   P                  V P                  P                  J g   Q hR# )zQTests that the graph attribute dictionary of the two graphs
is the same object.

N)r   r   r   r  s   &r   test_graph_attr_dict%TestEdgeSubgraph.test_graph_attr_dict  s"    
 vv||tvv||+++r   )r   r   N)rf   rg   rh   ri   r   r  r  r  r  r  r  r  r  rj   r   r   s   @r   r  r  X  s7     @36Y632H, ,r   r  c                     ! R R\         P                  4      p V ! RR7      pVP                  R8X  g   Q hV ! . R4      pVP                  R8X  g   Q hV ! R
.RRR7      pVP                  R8X  g   Q hVP                  R,          R8X  g   Q h\         P                  P                  VP                  R
.4      '       g   Q hR	# )zmTest that subclasses can accept additional arguments.

See: https://github.com/networkx/networkx/issues/8367
c                   6   a a ] tR tRt oRV 3R lltRtVtV ;t# )*test_graph_new_extra_args.<locals>.MyGraphi  c                6   < \         SV `  ! V3/ VB  W n        R # r'   )super__init__	extra_arg)r   incoming_graph_datar  attrr   s   &&&,r   r  3test_graph_new_extra_args.<locals>.MyGraph.__init__  s    G09D9&Nr   r  )NN)rf   rg   rh   ri   r  rj   r   __classcell__)r   r   s   @@r   rk   r    s     	' 	'r   rk   z	extra argr
  r   r,  )r  r   r   Nrs   )r	   r=   r  r   utilsr   rx   )rk   r   s     r   test_graph_new_extra_argsr    s    '"(( '
 	+&A;;+%%%K A;;+%%%E6A;;%776?e###88&2222r   )r_   r  r   rY   r   networkxr	   networkx.utilsr   r   r   r   r   r   r  r  r  re   r   r   <module>r     s`    	      A A@& @&Fv
/ v
rF # F RG, G,T3r   