
    \MhYI                         d dl mZ d dlZd dlZd dlmZ ddlmZ ddlm	Z
  G d de          Z G d	 d
ee
          Z G d d          Z G d de          Z G d dej                  Z G d de          ZdS )    )UserDictN)edges_equal   )BaseAttrGraphTester)	TestGraphc                   b    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )BaseMultiGraphTesterc                     | j         }|                    dd          sJ |                    dd          rJ |                    ddd          sJ |                    ddd          rJ d S )Nr   r   )K3has_edgeselfGs     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/networkx/classes/tests/test_multigraph.pytest_has_edgez"BaseMultiGraphTester.test_has_edge   s{    Gzz!Q::a$$$$$zz!Q"""""::aA&&&&&&&    c                    | j         }|                    dd          di ik    sJ |d         d         di ik    sJ |d         d         d         i k    sJ |                    dd          J |                    ddd          i k    sJ d S )Nr   r   
      )r   get_edge_datar   s     r   test_get_edge_dataz'BaseMultiGraphTester.test_get_edge_data   s    Gq!$$B////tAw1b'!!!!tAwqzRr2&&...q!Q''2------r   c                     | j         }t          |                                          di idi iddi idi iddi idi iddk    sJ d S )Nr   r      r   r   r   r   r   r   r   )r   dict	adjacencyr   s     r   test_adjacencyz#BaseMultiGraphTester.test_adjacency   s}    GAKKMM""r72w''r72w''r72w'''
 '
 
 
 
 
 
 
r   c                 @   |d         d         d         d         |d         d         d         d         k    sJ |d         d         d         d                              d           |d         d         d         d         |d         d         d         d         k    sJ d S Nr   r   r   fooappendr   Hr   s      r   deepcopy_edge_attrz'BaseMultiGraphTester.deepcopy_edge_attr$       tAwqz% AaDGAJu$55555	!Q
5  ###tAwqz% AaDGAJu$5555555r   c                 @   |d         d         d         d         |d         d         d         d         k    sJ |d         d         d         d                              d           |d         d         d         d         |d         d         d         d         k    sJ d S r#   r%   r'   s      r   shallow_copy_edge_attrz+BaseMultiGraphTester.shallow_copy_edge_attr)   r*   r   c                    |j         |j         k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |                                s~|                                sj|j         d         d         d         |j         d         d         d         u sJ |j         d         d         d         |j         d         d         d         u sJ d S |                                s|j         |_        |j         |_        |                                s|j         |_        |j         |_        |j        |j        k    sJ |j        |j        k    sJ |j        d         d         d         |j        d         d         d         u sJ |j        d         d         d         |j        d         d         d         u sJ d S )Nr   r   r   )_adj_nodegraphnameis_directed_pred_succr'   s      r   graphs_equalz!BaseMultiGraphTester.graphs_equal.   s   vw!'!!!!w!'!!!!v}} 	8q}} 	86!9Q<?afQil1o55556!9Q<?afQil1o555555==?? !&&==?? !&&7ag%%%%7ag%%%%71:a=#qwqz!}Q'7777771:a=#qwqz!}Q'7777777r   c                    |d         d         d         d         }d|j         d         d         d         d<   |j        |j        k    sJ ||j         d         d         d         d<   |j        |j        k    sJ |j        d         d         }d|j        d         d<   |j        |j        k    sJ ||j        d         d<   |j        |j        k    sJ d S Nr   r   r   r$   bazadjr.   nodesr/   r   r(   r   old_foos       r   same_attrdictz"BaseMultiGraphTester.same_attrdictB       A$q'!*U# %aAuv 'aAuv'!*U#!
5w!'!!!!#
5w!'!!!!!!r   c                    |d         d         d         d         }d|j         d         d         d         d<   |j        |j        k    sJ ||j         d         d         d         d<   |j        |j        k    sJ |j        d         d         }d|j        d         d<   |j        |j        k    sJ ||j        d         d<   |j        |j        k    sJ d S r7   r9   r<   s       r   different_attrdictz'BaseMultiGraphTester.different_attrdictP   r?   r   c                     | j         }|                     |           t          j        |          }|                     ||           |                                }|                     ||           d S N)r   add_attributesnx
MultiGraphis_shallow_copyto_undirectedis_deepcopyr   r   r(   s      r   test_to_undirectedz'BaseMultiGraphTester.test_to_undirected^   sm    GAM!Q"""OOAr   c                     | j         }|                     |           t          j        |          }|                     ||           |                                }|                     ||           d S rC   )r   rD   rE   MultiDiGraphrG   to_directedrI   rJ   s      r   test_to_directedz%BaseMultiGraphTester.test_to_directedf   sk    GAOAQ"""MMOOAr   c                 h   | j         }|                    dd           |                    dd           |                    ddd           |                    ddd           |                    dd          dk    sJ |                    dd           |                    dd          dk    sJ d S )Nr   parallel edgekeyr   r   )r   add_edgeremove_edgenumber_of_edgesr   s     r   test_number_of_edges_selfloopsz3BaseMultiGraphTester.test_number_of_edges_selfloopsn   s    G	

1a	

1a	

1a_
---	a000  A&&!++++	a  A&&!++++++r   c                    |                                  }|                    ddd           |                    dddd           t          |j        d         ddi          sJ t          |j        d	         ddi          sJ d S )
Nr   r   bar)r$   rS   bizr   r   r   r$   )r   r   rS   )GraphrT   r   edgesr   s     r   test_edge_lookupz%BaseMultiGraphTester.test_edge_lookupx   s    JJLL	

1aU
###	

1aE
***177+eU^<<<<<17;/%@@@@@@@r   c           	         |                                                      dddd                               dddd           t                              dd          j                  sJ t          fd                    d	
          D                       sJ t                              d	d	          dddddifdddddifg          sJ t                              d	d          ddg          sJ d S )Nr   r   k1rY   )rS   r$   k2r8   c              3   J   K   | ]\  }}}t          |j                  V  d S rC   )
isinstanceedge_attr_dict_factory).0uvdr   s       r   	<genexpr>z6BaseMultiGraphTester.test_edge_attr.<locals>.<genexpr>   sG       
 
8?1aJq!233
 
 
 
 
 
r   Tdatakeysrk   r$   )r   r   r`   rY   )r   r   ra   r8   )r\   rT   rc   r   edge_key_dict_factoryallr]   r   r   s    @r   test_edge_attrz#BaseMultiGraphTester.test_edge_attr   sS   JJLL	

1aTu
---	

1aTu
---!//!Q//1HIIIII 
 
 
 
CD77PT7CUCU
 
 
 
 
 	
 	
 	
 GGDG))D5%.)Aq$+GH
 
 	
 	
 	
 GGEG**-@BU,V
 
 	
 	
 	
 	
 	
r   c                 2   |                                  }|                    dddddd           t          |                    d	          dddddd
fg          sJ d|d         d         d         d<   t          |                    d	          dddddd
fg          sJ d|j        d         d         d         d<   t          |                    d	          dddddd
fg          sJ d|j        d         d<   t          |                    d	          dddddd
fg          sJ ddg|j        d         d         d         d<   d|j        d         d         d         d<   t          |                    d	          dddddddgddfg          sJ d S )Nr   r   r      rY   r$   )rS   rk   spamrY   Trj   )rk   rs   rY   r   rk   r      r[      listdataweight)rk   rs   rY   rv   rw   )r\   rT   r   r]   r:   r   s     r   test_edge_attr4z$BaseMultiGraphTester.test_edge_attr4   s   JJLL	

1aQQU
>>>GGG!QE%(P(P!Q R
 
 	
 	
 	
  !Q
6GGG!QU5(Q(Q!R S
 
 	
 	
 	
 "$aAvGGG!QU5(Q(Q!R S
 
 	
 	
 	
 $& GGG!QU5(Q(Q!R S
 
 	
 	
 	
 ')#YaAz"#%aAx GGG  " %$%'I"$ 

 
 	
 	
 	
 	
 	
r   N)__name__
__module____qualname__r   r   r!   r)   r,   r5   r>   rA   rK   rO   rW   r^   rp   rx    r   r   r	   r	      s        ' ' '. . .
 
 
6 6 6
6 6 6
8 8 8(" " "" " "    , , ,A A A
 
 
 $
 $
 $
 $
 $
r   r	   c                   "   e Zd Zd Zd Zd ZdddZddd	Zeed
ZddeiiZ	ddeiiZ
ddeddiiZddgiZdddefdddefgZdddi fgZdddefgZdddefgZdddeddfgZe	defe	defe
defedefedefgZej                            de          d             Ze	efe
efeefgZej                            de          d             Ze
eegZej                            de          d             Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d"S )#TestMultiGraphc                 R   t           j        | _        di idi idi i}}}||d||d||dd| _        g d| _        g d| _        |                                 | _        | j        | j        _        i | j        _        i | j        j        d<   i | j        j        d<   i | j        j        d<   d S )	Nr   r   r   r   r   r   r   r   r   r   )	rE   rF   r\   k3adjk3edgesk3nodesr   r.   r/   )r   ed1ed2ed3s       r   setup_methodzTestMultiGraph.setup_method   s    ]
R1b'Ar7#S S))##.>.>ssCSCSTT
/// yy**,,zaaar   c                     |                      dgdgdd          }|j        dk    sJ dddi iifdddi iifg}t          |j                                                  |k    sJ d S )Nr   r   r   test)r1   r   )r\   r1   sortedr:   items)r   r   expecteds      r   test_data_inputzTestMultiGraph.test_data_input   s    JJA3A3''fJ55vQG%A2w<'89aekkmm$$000000r   c                    ddd}ddd}||d}dd|ii}ddd	|fddd
|fg}ddd	|fg}|                      |d          }t          |                    dd                    |k    sJ |                      |d           }t          |                    dd                    |k    sJ |                      |d          }t          |                    dd                    |k    sJ |                      |d          }|                      t          j        |                    }t          j        ||          du sJ dD ]F}	|                      t          j        |          |	          }t          j        ||          |	k    sJ Gd S )Nru   r$   ws   rY   r   abr   r   Tmultigraph_inputrl   F)TF)r\   listr]   rE   to_dict_of_dictsis_isomorphic)
r   edata0edata1keydictdodododmultiple_edgesingle_edger   r(   mgis
             r   test_data_multigraph_inputz)TestMultiGraph.test_data_multigraph_input   s   ''''((g'sAv.c1f0EFS!W-.JJwJ66AGGDG1122mCCCCJJwJ66AGGDG1122mCCCCJJwJ77AGGDG1122kAAAA JJwJ66JJr*1--..1%%----  	1 	1C

2.q11C
HHA#Aq))S00000	1 	1r   ru   r$   r   bluebox)colorshape)traitsgraphicsr   r   )r   r   r   r   r   TFzdod, mgi, edgesc                    |                      ||          }t          |                    dd                    |k    sJ t          j        || j         |          }t          |                    dd                    |k    sJ d S )Nr   Trl   create_usingr   )r\   r   r]   rE   to_networkx_graph)r   dodr   r]   r   s        r   test_non_multigraph_inputz(TestMultiGraph.test_non_multigraph_input   s    JJsSJ11AGGDG1122e;;;; 4:PSTTTAGGDG1122e;;;;;;r   z
dod, edgesc                     |                      |          }t          |                    dd                    |k    sJ d S )NTrl   )r\   r   r]   )r   r   r]   r   s       r   "test_non_multigraph_input_mgi_nonez1TestMultiGraph.test_non_multigraph_input_mgi_none  sB     JJsOOAGGDG1122e;;;;;;r   r   c                     t          j        t          j        | j        |d           t          j        t          j        t          j        || j        d           d S )NTr   r   )pytestraisesrE   NetworkXErrorr\   r   )r   r   s     r   test_non_multigraph_input_raisez.TestMultiGraph.test_non_multigraph_input_raise  s\     	b&
C$OOOO !	
 	
 	
 	
 	
 	
r   c                 Z   | j         }|d         di idi idk    sJ t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t
                    5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr   r   jA)r   r   r   KeyError__getitem__	TypeErrorr   s     r   test_getitemzTestMultiGraph.test_getitem  s-   GtAr72w//////]8$$ 	 	MM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9%% 	! 	!MM3%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s#   AAA<B  B$'B$c                    | j         }|                    d           |j        ddi iiddi iidk    sJ t          j        t
          j                  5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   )r   remove_noder:   r   r   rE   r   r   s     r   test_remove_nodezTestMultiGraph.test_remove_node$  s    G	auQBLa!R\::::::]2+,, 	 	MM"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A66A:=A:c                    |                                  }|                    dd           |j        ddi iiddi iidk    sJ |                                  } |j        d  |j        ddi iiddi iidk    sJ |                                  }t          j        t
                    5  |                    d d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   anything)r\   rT   r:   r   r   
ValueErrorr   s     r   test_add_edgezTestMultiGraph.test_add_edge+  s*   JJLL	

1auQBLa!R\::::::JJLL
FuQBLa!R\::::::JJLL]:&& 	) 	)JJtZ(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   &C

CCc                 z   |                                  }|                    ddd           |                    dd           |                                dk    sJ |                                  }|                    dddi fg           |                    dg           |                                dk    sJ d S )Nr   r   rR   r   r   )r\   rT   rV   add_edges_fromr   s     r   test_add_edge_conflicting_keyz,TestMultiGraph.test_add_edge_conflicting_key6  s    JJLL	

1aQ
	

1a  ""a''''JJLL	1aB-)))	&"""  ""a''''''r   c                    |                                  }|                    dddddifg           |j        di ddididi ddididk    sJ |                    dddddifgd           |j        di ddiddiddididi ddiddiddididk    sJ |                                  }ddddifd	d
dg}|                    |           ddiddii i d}|j        d|id|idk    sJ t	          j        t          j                  5  |                    dg           d d d            n# 1 swxY w Y   t	          j        t          j                  5  |                    dg           d d d            n# 1 swxY w Y   t	          j        t                    5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rw      r   )rw   )r   r   r   r   )r   r   ))rw   r   )r   r      )r   r   r   )r   r   r   r   )r   )r   r   r   r      )	r\   r   r:   r.   r   r   rE   r   r   )r   r   r]   r   s       r   test_add_edges_fromz"TestMultiGraph.test_add_edges_from@  s   JJLL	&1a(A"78999urxm,,-rxm,,-
 
 
 
 
 
 	
&1a(A"78CCCurxm18Q-PPQrxm18Q-PPQ
 
 
 
 
 
 JJLLHa=!$	
 	
m1"2FFva\q'l;;;;;; ]2+,, 	% 	%dV$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ]2+,, 	0 	0o.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ]9%% 	" 	"aS!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s6   D++D/2D/E77E;>E;F??GGc                     t          j                    }t          j        t                    5  |                    ddddidfg           ddd           dS # 1 swxY w Y   dS )zadd_edges_from expects 4-tuples of the format (u, v, key, data_dict).

        Ensure 4-tuples of form (u, v, data_dict, key) raise exception.
        r   r   r   redN)rE   rF   r   r   r   r   r   s     r   4test_multigraph_add_edges_from_four_tuple_misorderedzCTestMultiGraph.test_multigraph_add_edges_from_four_tuple_misordereda  s    
 MOO]9%% 	< 	<q!gu%5q9:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AAAc                    | j         }|                    dd           |j        ddi iiddi iidi idi iddk    sJ t          j        t
          j                  5  |                    dd           d d d            n# 1 swxY w Y   t          j        t
          j                  5  |                    ddd           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   rR   )r   rU   r:   r   r   rE   r   r   s     r   test_remove_edgezTestMultiGraph.test_remove_edgek  sf   G	auQBLa!R\1b'qRTg>V>VWWWWWW]2+,, 	! 	!MM"a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]2+,, 	' 	'MM!QAM&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's$   A??BB(CCCc                    | j                                         }|                    dg           di i}|j        d|id|i||ddk    sJ |                    dg           | j                             dd           | j                                         }|                    t          |                    dd                               |j        i i i dk    sJ | j                                         }|                    t          |                    d	d                               |j        i i i dk    sJ | j                                         }|                    t          |                    d	d	                               |j        i i i dk    sJ | j                                         }|                    d
dddi fdg           |j        ddi iiddi iii dk    sJ d S )Nr   r   r   r   )r   r   r   T)rk   rm   Fr   r   r   r   )r   copyremove_edges_fromr:   rT   r   r]   r   r   kds      r   test_remove_edges_fromz%TestMultiGraph.test_remove_edges_fromu  s   GLLNN	VH%%%WuQGBrNNCCCCCC	VH%%%AGLLNN	Dd!>!>??@@@uB2"------GLLNN	De$!?!?@@AAAuB2"------GLLNN	De%!@!@AABBBuB2"------GLLNN	YAq"v>???uQBLa!R\bAAAAAAAAr   c                    | j         }|                    ddd           |                    ddd           |j        di idi iddi idi iddi idi iddk    sJ |                    dd           di i}|j        d	|id	|i||ddk    sJ t	          j        t          j                  5  |                    d
d           d d d            d S # 1 swxY w Y   d S )Nr   r   rQ   rR   r   r   r   r   r   r   )r   rT   rU   r:   r   r   rE   r   r   s      r   test_remove_multiedgez$TestMultiGraph.test_remove_multiedge  sj   G	

1a_
---	a000ur72w''r72w''r72w''
 
 
 
 
 

 	
aWuQGBrNNCCCCCC]2+,, 	! 	!MM"a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   .CCCN)$ry   rz   r{   r   r   r   etraits	egraphicsedatadodod1dodod2dodod3dolr   r   single_edge1single_edge2single_edge3casesr   markparametrizer   mgi_none_casesr   raise_casesr   r   r   r   r   r   r   r   r   r   r|   r   r   r~   r~      s         1 1 11 1 14 e$$G 511II66EC< FC>"FCG%889:F,C3'2S#z94UVMa$%K#q%()L#q'*+L#qW5"A"ABCL 
}%	%	%	%	e[!E [.66< < 76< 
		N [\>::< < ;:<
 63'K[UK00	
 	
 10	
! ! !  	) 	) 	)( ( (" " "B< < <' ' 'B B B(! ! ! ! !r   r~   c                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestEdgeSubgraphz;Unit tests for the :meth:`MultiGraph.edge_subgraph` method.c                 8   t          j                    }t          j        |t          d                     t          j        |t          d                     t          d          D ]}d| |j        |         d<   d|j        d         d         d         d<   d|j        d         d         d         d<   d|j        d	         d
         d         d<   d|j        d	         d
         d         d<   d|j        d<   || _        |                    ddg          | _	        d S )Nr   noder1   edge010r   r   edge011edge340r   r   edge341r0   r   )r   r   r   )
rE   rF   add_pathranger;   r:   r0   r   edge_subgraphr(   )r   r   is      r   r   zTestEdgeSubgraph.setup_method  s    MOO
AuQxx   
AuQxx   q 	, 	,A!+AGAJv!*aAv!*aAv!*aAv!*aAv! )Y!788r   c                 b    g dt          | j                                                  k    sJ dS )z.Tests that the subgraph has the correct nodes.r   r   r   r   N)r   r(   r;   r   s    r   test_correct_nodesz#TestEdgeSubgraph.test_correct_nodes  s/    ||vdfllnn55555555r   c                 h    ddgt          | j                            dd                    k    sJ dS )z.Tests that the subgraph has the correct edges.)r   r   r   r   )r   r   r   r   Tr1   rl   N)r   r(   r]   r   s    r   test_correct_edgesz#TestEdgeSubgraph.test_correct_edges  sL    $&:;vFLLdL00@
 @
 
 
 
 
 
 
r   c                     | j                             d           g dt          | j                                                  k    sJ dS )zkTests that adding a node to the original graph does not
        affect the nodes of the subgraph.

        r   r   N)r   add_noder   r(   r;   r   s    r   test_add_nodezTestEdgeSubgraph.test_add_node  sE    
 	||vdfllnn55555555r   c                     | j                             d           g dt          | j                                                  k    sJ dS )ziTests that removing a node in the original graph does
        affect the nodes of the subgraph.

        r   )r   r   r   N)r   r   r   r(   r;   r   s    r   r   z!TestEdgeSubgraph.test_remove_node  sG    
 	1yyF46<<>>22222222r   c                 ^   | j         D ]*}| j        j        |         | j         j        |         k    sJ +d| j        j        d         d<   | j        j        d         | j         j        d         k    sJ d| j         j        d         d<   | j        j        d         | j         j        d         k    sJ dS )z`Tests that the node attribute dictionary of the two graphs is
        the same object.

        r$   r   r1   rY   r   N)r(   r   r;   )r   rg   s     r   test_node_attr_dictz$TestEdgeSubgraph.test_node_attr_dict  s    
  	6 	6A6<?dfl1o55555"'Qv|A$&,q/1111"'Qv|A$&,q/111111r   c                 ~   | j                             d          D ]F\  }}}| j        j        |         |         |         | j         j        |         |         |         k    sJ Gd| j        j        d         d         d         d<   | j        j        d         d         d         d         | j         j        d         d         d         d         k    sJ d| j         j        d         d	         d         d<   | j        j        d         d	         d         d         | j         j        d         d	         d         d         k    sJ d
S )z`Tests that the edge attribute dictionary of the two graphs is
        the same object.

        T)rm   r$   r   r   r1   rY   r   r   N)r(   r]   r   r.   )r   rf   rg   ks       r   test_edge_attr_dictz$TestEdgeSubgraph.test_edge_attr_dict  s   
 v|||.. 	@ 	@GAq!6;q>!$Q'46;q>!+<Q+??????',Aq!V$v{1~a #F+tv{1~a/@/CF/KKKKK',Aq!V$v{1~a #F+tv{1~a/@/CF/KKKKKKKr   c                 :    | j         j        | j        j        u sJ dS )zaTests that the graph attribute dictionary of the two graphs
        is the same object.

        N)r   r0   r(   r   s    r   test_graph_attr_dictz%TestEdgeSubgraph.test_graph_attr_dict  s#    
 v|tv|++++++r   N)ry   rz   r{   __doc__r   r   r   r   r   r   r  r  r|   r   r   r   r     s        EE9 9 9$6 6 6
 
 
6 6 63 3 32 2 2L L L, , , , ,r   r   c                       e Zd ZdS )CustomDictClassN)ry   rz   r{   r|   r   r   r  r    s        Dr   r  c                   *    e Zd ZeZeZeZeZeZeZ	eZ
dS )MultiGraphSubClassN)ry   rz   r{   r  node_dict_factorynode_attr_dict_factoryadjlist_outer_dict_factoryadjlist_inner_dict_factoryrn   rd   graph_attr_dict_factoryr|   r   r   r	  r	    s:        ',!0!0+,-r   r	  c                       e Zd Zd ZdS )TestMultiGraphSubclassc                 (   t           | _        g d| _        g d| _        |                                 | _        | j                            | j                                        | j                                        | j                                        d          | j        _        i i i d| j        _        | j        D ]@}| j        D ]6}||k    r.di i}|| j        j        |         |<   || j        j        |         |<   7A| j        	                                | j        _
        | j                                        | j        j
        d<   | j                                        | j        j
        d<   | j                                        | j        j
        d<   d S )Nr   r   r   r   r   )r	  r\   r   r   r   r  r  r.   r3   r
  r/   r  )r   rf   rg   rh   s       r   r   z#TestMultiGraphSubclass.setup_method  sn   '
/// yy**,,w99755777557775577 
 
 2"-- 	+ 	+A\ + +66BA)*DGLOA&)*DGLOA&	+
 1133799;;a799;;a799;;ar   N)ry   rz   r{   r   r|   r   r   r  r    s#        < < < < <r   r  )collectionsr   r   networkxrE   networkx.utilsr   
test_graphr   r   
_TestGraphr	   r~   r   r  rF   r	  r  r|   r   r   <module>r     s                    & & & & & & + + + + + + / / / / / /g
 g
 g
 g
 g
. g
 g
 g
T`! `! `! `! `!): `! `! `!FN, N, N, N, N, N, N, N,b	 	 	 	 	h 	 	 	. . . . . . . .< < < < <^ < < < < <r   