
    ިsg                        d dl Z d dlmZ d dlZd dlZd dlmZ d dl	m
Z
  G d d      Z G d d      Zd	 Z G d
 d      Z G d de      Z G d de      Z G d d      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d      Z G d de      Z G d  d!e      Z G d" d#e      Z G d$ d%e      Z G d& d'e      Z G d( d)      Z G d* d+e      Z G d, d-e      Z G d. d/e      Z  G d0 d1e      Z! G d2 d3e!      Z" G d4 d5e      Z# G d6 d7e      Z$ejJ                  jM                  d8ejN                  d9fej                  d:fejP                  d;fejR                  d<fejT                  d;fejV                  d;fejX                  d<fejZ                  d;ff      d=        Z.ejJ                  jM                  d>ej^                  ej`                  ejb                  ejd                  g      d?        Z3d@ Z4y)A    N)deepcopy)reportviews)NodeDataViewc                   F    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zy	)
TestNodeViewc                 n    t        j                  d      | _        | j                  j                  | _        y N	   nx
path_graphGnodesnvclss    Z/var/www/html/venv/lib/python3.12/site-packages/networkx/classes/tests/test_reportviews.pysetup_classzTestNodeView.setup_class   s!    a     c                     dd l }| j                  } |j                   |j                  |d            }||k(  sJ |j                  |j                  k(  sJ y Nr   pickler   loadsdumps	__slots__selfr   r   pnvs       r   test_picklezTestNodeView.test_pickle   M    WWfll<6<<B/0Syy||s}},,,r   c                 8    t        | j                        dk(  sJ y )Nz[0, 1, 2, 3, 4, 5, 6, 7, 8])strr   r   s    r   test_strzTestNodeView.test_str   s    477|<<<<r   c                 8    t        | j                        dk(  sJ y )Nz%NodeView((0, 1, 2, 3, 4, 5, 6, 7, 8)))reprr   r%   s    r   	test_reprzTestNodeView.test_repr   s    DGG} GGGGr   c                     | j                   j                         }|j                  }d|v sJ d|vsJ |j                  d       |j	                  d       d|vsJ d|v sJ y )N   r
   )r   copyr   remove_nodeadd_noder   r   r   s      r   test_containszTestNodeView.test_contains    s_    FFKKMWWBww{{	a	

1{{Bwwr   c                 .   | j                   j                         }|j                  }d|j                  d   d<   |d   i k(  sJ |d   ddik(  sJ t        j                  t
        j                        5  |j                  dd  d d d        y # 1 sw Y   y xY w)Nbar   foor+   r      )r   r,   r   pytestraisesr   NetworkXErrorr/   s      r   test_getitemzTestNodeView.test_getitem*   s    FFKKMWW!
5!u{{!u&&&]]2++, 	GGAaL	 	 	s   2BBc                 j   | j                   }t        |      D ]  \  }}||k(  rJ  t        |      }t        |      dk(  sJ t        |      |k7  sJ t        |      |k(  sJ t        |      }t        |       t	        |      t	        |      k(  sJ  |d      }t        |      D ]  \  }}||k(  rJ  y )Nr   Fdata)r   	enumerateiternextlist)r   r   ininvinv2nnvs          r   	test_iterzTestNodeView.test_iter4   s    WWbM 	DAq6M6	2hCyA~~Bx2~~CyCBxT
CyDJ&&&encN 	DAq6M6	r   c                 f    | j                   }| |       u sJ | |d      usJ | |d      usJ y )NTr;   weight)r   r   r   s     r   	test_callzTestNodeView.test_callD   sA    Et,,,,Ex0000r   N)__name__
__module____qualname__classmethodr   r!   r&   r)   r0   r9   rF   rJ    r   r   r   r      s8     -=H 1r   r   c                   F    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zy	)
TestNodeDataViewc                    t        j                  d      | _        t        | j                        | _        | j                  j
                  j                  d      | _        | j                  j
                  j                  d      | _        y )Nr
   Tr4   )	r   r   r   r   r   r   r<   ndvnwvr   s    r   r   zTestNodeDataView.setup_classL   sV    a cee$%%++""4(%%++""5)r   c                 ~    | j                   j                  }|j                  d      }||u sJ || j                  usJ y )NF)r   r   r<   rS   )r   r   ndvfalses      r   test_viewtypezTestNodeDataView.test_viewtypeS   s:    VV\\775>X~~!!!r   c                     dd l }| j                  } |j                   |j                  |d            }||k(  sJ |j                  |j                  k(  sJ y r   r   r   s       r   r!   zTestNodeDataView.test_pickleY   r"   r   c                     t        t        d      D cg c]  }|i f c}      }t        | j                        |k(  sJ y c c}w r	   )r$   rangerS   )r   rB   msgs      r   r&   zTestNodeDataView.test_stra   s:    E!H-qAr7-.488}### .s   A c                     d}t        | j                        |k(  sJ d}t        | j                        |k(  sJ d}t        | j                        |k(  sJ y )Nz)NodeDataView((0, 1, 2, 3, 4, 5, 6, 7, 8))zMNodeDataView({0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {}, 7: {}, 8: {}})zkNodeDataView({0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None}, data='foo'))r(   r   rS   rT   )r   expecteds     r   r)   zTestNodeDataView.test_repre   sb    >DGG}(((4 	 DHH~)))A 	 DHH~)))r   c                 @   | j                   j                         }|j                  j                         }|j                  j                  d      }d|j                  d   d<   di f|v sJ dddif|v sJ d|v sJ d|v sJ |j                  dd      }d	|v sJ d|v sJ y )
Nr4   r2   r3   r+   )r3   r2   )r+   Nbizr<   default)r+   r_   )r   r,   r   r<   )r   r   r   rT   nwv_defs        r   r0   zTestNodeDataView.test_containss   s    FFKKMWW\\^ggll5!!
52w"}}E5>"b(((S   C''ue'4W$$$W$$$r   c                    | j                   j                         }|j                  }d|j                  d   d<   |d   ddik(  sJ |j                  dd      }|d   sJ d       |d   dk(  sJ t        j                  t
        j                        5  |j                  j                         dd  d d d        y # 1 sw Y   y xY w)	Nr2   r3   r4   r_   r`   r+   r   r5   )r   r,   r   r6   r7   r   r8   r<   )r   r   r   rb   s       r   r9   zTestNodeDataView.test_getitem   s    FFKKMWW!
5!u&&&''ue'4qz 5 zqzU"""]]2++, 	 GGLLN1Q	  	  	 s   B88Cc                    | j                   j                         }|j                  j                         }|j                  j                  d      }|j                  j                  d      }t	        |      D ]  \  }\  }}||k(  sJ |i k(  rJ  t        |      }t        |      di fk(  sJ d|j                  d   d<   |D ]  \  }}|dk(  r
|ddik(  rJ |i k(  rJ  |D ]  \  }}|dk(  r
|ddik(  rJ |i k(  rJ  |D ]  \  }}|dk(  r|dk(  rJ |J  |j                  j                  dd      D ]  \  }}|dk(  r|dk(  rJ |dk(  rJ  y )NTr4   r   r2   r3      ra   )r   r,   r   r<   r=   r>   r?   )	r   r   r   rS   rT   rA   rB   drC   s	            r   rF   zTestNodeDataView.test_iter   s   FFKKMWW\\^ggll4 ggll5!"2 	IAv16M67N7	 2hCyQG###!
5 	DAqAvUEN***Bww		  	DAqAvUEN***Bww		  	!DAqAvEz!zy y		! GGLLL2 	DAqAvEz!zAvv		r   N)rK   rL   rM   rN   r   rW   r!   r&   r)   r0   r9   rF   rO   r   r   rQ   rQ   K   s7    * *"-$*% "r   rQ   c                     t        j                  d      } d| j                  d   d<   | j                  j                         g}|j	                  | j                  j                  d             | j                         }h d|j                  d   d<   |j	                  |j                  j                  d             |D ]I  }t        j                  t        t        |       t        j                  t        t        dt                      K | j                  j                  d	      }t        |       ||z   | j                  j                  d      }t        |       ||z   y )
Nr
   r2   r3   r4   T   re      r3      znv | nvF)r   r   r   r<   appendr,   r6   r7   	TypeErrorsetevallocals)r   nvsHr   Gns        r   test_nodedataview_unhashablert      s    
aAAGGAJu77<<>
CJJqww||D!"	A!AGGAJuJJqww||D!" <ib)iy&(;< 
e	BGG	
e	BGGr   c                   @    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
y)	TestNodeViewSetOpsc                     t        j                  d      | _        d| j                  j                  d   d<   | j                  j                  | _        y Nr
   r2   r3   r4   r   r   s    r   r   zTestNodeViewSetOps.setup_class   s7    a  %Aur   c                     t        |      S )N)rn   rI   s     r   n_itszTestNodeViewSetOps.n_its   s    5zr   c                     | j                   j                         }|j                  }t        |      dk(  sJ |j	                  d       t        |      dk(  sJ |j                  d       t        |      dk(  sJ y )Nr
   r+      )r   r,   r   lenr-   r.   r/   s      r   test_lenzTestNodeViewSetOps.test_len   sa    FFKKMWW2w!||	a2w!||	

12w!||r   c                     | j                   }| j                  t        dd            }||z  | j                  t        dd            k(  sJ ||z  | j                  t        dd            k(  sJ y Nr5      r
   r   rz   rZ   r   r   
some_nodess      r   test_andzTestNodeViewSetOps.test_and   sa    WWZZa-
J$**U1a["9999B$**U1a["9999r   c                     | j                   }| j                  t        dd            }||z  | j                  t        d            k(  sJ ||z  | j                  t        d            k(  sJ y )Nr5   r   r   r   s      r   test_orzTestNodeViewSetOps.test_or   s]    WWZZa-
J$**U2Y"7777B$**U2Y"7777r   c                     | j                   }| j                  t        dd            }h d}||z  | j                  |      k(  sJ ||z  | j                  |      k(  sJ y )Nr5   r   >   r   re   rj   r3   rk   r
   
      r   )r   r   r   r   s       r   test_xorzTestNodeViewSetOps.test_xor   sZ    WWZZa-
*J$**U"3333B$**U"3333r   c                     | j                   }| j                  t        dd            }||z
  | j                  t        d            k(  sJ ||z
  | j                  t        dd            k(  sJ y r   r   r   s      r   test_subzTestNodeViewSetOps.test_sub   s_    WWZZa-
J$**U1X"6666B$**U1b\"::::r   N)rK   rL   rM   rN   r   rz   r~   r   r   r   r   rO   r   r   rv   rv      s2     
:84;r   rv   c                   "    e Zd Zed        Zd Zy)TestNodeDataViewSetOpsc                     t        j                  d      | _        d| j                  j                  d   d<   | j                  j                  j	                  d      | _        y rx   r   r   r   r   r<   r   r   s    r   r   z"TestNodeDataViewSetOps.setup_class   sB    a  %Au!!%(r   c                 >    |D ch c]  }||dk(  rdnd f c}S c c}w )Nr3   r2   rO   r   r   nodes      r   rz   zTestNodeDataViewSetOps.n_its   s#    AFG	ut4GGG   NrK   rL   rM   rN   r   rz   rO   r   r   r   r      s    ) )
Hr   r   c                   "    e Zd Zed        Zd Zy)TestNodeDataViewDefaultSetOpsc                     t        j                  d      | _        d| j                  j                  d   d<   | j                  j                  j	                  dd      | _        y )Nr
   r2   r3   r4   re   rf   r   r   s    r   r   z)TestNodeDataViewDefaultSetOps.setup_class  sG    a  %Au!!%!3r   c                 >    |D ch c]  }||dk(  rdndf c}S c c}w )Nr3   r2   re   rO   r   s      r   rz   z#TestNodeDataViewDefaultSetOps.n_its  s#    >CDd	uq1DDDr   Nr   rO   r   r   r   r     s    4 4
Er   r   c                   R    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zy)TestEdgeDataViewc                 v    t        j                  d      | _        t         j                  j                  | _        y r	   r   r   r   r   EdgeVieweviewr   s    r   r   zTestEdgeDataView.setup_class  #    a NN++	r   c                     dd l } | j                  | j                        d      } |j                   |j                  |d            }t        |      t        |      k(  sJ |j                  |j                  k(  sJ y )Nr   Tr;   r   )r   r   r   r   r   r@   r   r   r   evpevs       r   r!   zTestEdgeDataView.test_pickle  sg    TZZT*fll<6<<B/0Bx49$$$||s}},,,r   c                 R    |j                   |d      |d      j                  |       y Nr   re   _adjupdater   r   ekwdss       r   modify_edgezTestEdgeDataView.modify_edge  %    	qtQqT!!$'r   c                      | j                  | j                        d      }t        t        d      D cg c]
  }||dz   i f c}      }t        |      |k(  sJ y c c}w )NTr;   r|   re   r   r   r$   rZ   r   r   rB   reps       r   r&   zTestEdgeDataView.test_str!  sS    TZZT*584aAq1ub>452w#~~ 5s   Ac                 l     | j                  | j                        d      }d}t        |      |k(  sJ y )NTr;   znEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r(   r   r   r   s      r   r)   zTestEdgeDataView.test_repr&  7    TZZT*) 	 Bx3r   c                    | j                   j                         }| j                  |      } |d      } |dd      }|D ]  \  }}} i k(  sJ |D ]  \  }}} dk(  sJ | j                  |dd       |D ]>  }	t	        |	      d	k(  sJ t        |	d d
       d
d	hk(  r|	d
   ddik(  sJ d}
5|	d
   i k(  r>J  
sJ |D ]<  }	t	        |	      d	k(  sJ t        |	d d
       d
d	hk(  r|	d
   dk(  sJ d}3|	d
   dk(  r<J  sJ y )NTr;   r4   re   r`   rj   r3   r2   r4   r3   rj   )r   r,   r   r   r}   rn   )r   r   evrr   ev_defuvrg   wtr   checked
checked_wts               r   test_iterdatazTestEdgeDataView.test_iterdata0  s[   FFKKMjjmd^%+ 	GAq!	Bww 	HAq"	QwwF. 	"Aq6Q;;1Ra5zaV#tu~---trz!z	" w 	!Aq6Q;;1Ra5zaV#tu}$}!
tqy y	! zr   c                     | j                  | j                        } |       }|D ]  \  }} t        |      }t        |      dk(  sJ t        |      |k7  sJ t        |      |k(  sJ y Nr   re   r   r   r>   r?   )r   r   r   r   r   ievs         r   rF   zTestEdgeDataView.test_iterQ  sn    jj U 	DAq	2hCyF"""Bx2~~CyCr   c                     | j                  | j                        } |       }| j                  j                         r
d|v rd|vsJ d|v rd|v sJ d|vsJ d|vsJ d|vsJ y Nre   rj   rj   re   re   rk   )re   Z   )r   re   r   r   is_directedr   r   r   s      r   r0   zTestEdgeDataView.test_contains[  s|    jj U66R<F"$444R<FbL00Rb   b   r   c                    | j                  | j                        } |ddg      }| j                  j                         rd|v sJ d|vsJ d|v sJ d|v sJ d|v sJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y Nr   rj   nbunchr   r   r   r3   rk   )rk   r5   )r5      )r+   r|   )r|   r
   r   r   s      r   test_contains_with_nbunchz*TestEdgeDataView.test_contains_with_nbunchf  s    jj A66R<<###R<<R<<R<<R<<RRRRRr   c                    | j                  | j                        } |d      }t        |      dk(  sJ t         |d            dk(  sJ t         |g d            dk(  sJ t        | j                  j                  d            dk(  sJ t        | j                  j                               dk(  sJ t        | j                  j                        dk(  sJ | j                  j	                         }|j                  dd       t        |j                  d            dk(  sJ t        |j                               d	k(  sJ t        |j                        d	k(  sJ y )
Nr4   r;   r|   re   rj   re   rj   r3   rk   r3   r
   r   r   r}   edgesr,   add_edger   r   r   rr   s       r   r~   zTestEdgeDataView.test_lenw     jj e_2w!||3q6{a3y>"a'''466<<?#q(((466<<>"a'''466<< A%%%FFKKM	

1a1771:!###1779~"""177|q   r   N)rK   rL   rM   rN   r   r!   r   r&   r)   r   rF   r0   r   r~   rO   r   r   r   r     sB    , ,-(
B 	! "!r   r   c                   .    e Zd Zed        Zd Zd Zd Zy)TestOutEdgeDataViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y Nr
   )create_usingr   r   DiGraphr   r   OutEdgeViewr   r   s    r   r   zTestOutEdgeDataView.setup_class  s+    abjjl;NN..	r   c                 l     | j                  | j                        d      }d}t        |      |k(  sJ y )NTr;   zqOutEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r)   zTestOutEdgeDataView.test_repr  r   r   c                    | j                  | j                        } |d      }t        |      dk(  sJ t         |d            dk(  sJ t         |g d            dk(  sJ t        | j                  j                  d            dk(  sJ t        | j                  j                               dk(  sJ t        | j                  j                        dk(  sJ | j                  j	                         }|j                  dd       t        |j                  d            dk(  sJ t        |j                               dk(  sJ t        |j                        dk(  sJ y )	Nr4   r;   r|   re   r   r3   rj   r
   r   r   s       r   r~   zTestOutEdgeDataView.test_len  r   r   c                     | j                  | j                        } |ddg      }d|v sJ d|vsJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r   r   s      r   r   z-TestOutEdgeDataView.test_contains_with_nbunch      jj A||R||RRRRRr   N)rK   rL   rM   rN   r   r)   r~   r   rO   r   r   r   r     s#    / /!"
 r   r   c                   (    e Zd Zed        Zd Zd Zy)TestInEdgeDataViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y r   r   r   r   r   r   
InEdgeViewr   r   s    r   r   zTestInEdgeDataView.setup_class  s+    abjjl;NN--	r   c                 l     | j                  | j                        d      }d}t        |      |k(  sJ y )NTr;   zpInEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r)   zTestInEdgeDataView.test_repr  r   r   c                     | j                  | j                        } |ddg      }d|vsJ d|v sJ d|vsJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r   s      r   r   z,TestInEdgeDataView.test_contains_with_nbunch      jj AR||RRRRRRr   NrK   rL   rM   rN   r   r)   r   rO   r   r   r   r     s    . .
 r   r   c                   .    e Zd Zed        Zd Zd Zd Zy)TestMultiEdgeDataViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y r   )r   r   
MultiGraphr   r   MultiEdgeViewr   r   s    r   r   z!TestMultiEdgeDataView.setup_class  s+    abmmo>NN00	r   c                 X    |j                   |d      |d      d   j                  |       y r   r   r   s       r   r   z!TestMultiEdgeDataView.modify_edge  *    	qtQqT1$$T*r   c                 l     | j                  | j                        d      }d}t        |      |k(  sJ y )NTr;   zsMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r)   zTestMultiEdgeDataView.test_repr  r   r   c                     | j                  | j                        } |ddg      }d|v sJ d|v sJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r   s      r   r   z/TestMultiEdgeDataView.test_contains_with_nbunch  s    jj A||||||RRRRRr   NrK   rL   rM   rN   r   r   r)   r   rO   r   r   r   r     s#    1 1+
 r   r   c                   .    e Zd Zed        Zd Zd Zd Zy)TestOutMultiEdgeDataViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y r   )r   r   MultiDiGraphr   r   OutMultiEdgeViewr   r   s    r   r   z$TestOutMultiEdgeDataView.setup_class  s,    aboo.?@NN33	r   c                 X    |j                   |d      |d      d   j                  |       y r   r   r   s       r   r   z$TestOutMultiEdgeDataView.modify_edge  r   r   c                 l     | j                  | j                        d      }d}t        |      |k(  sJ y )NTr;   zvOutMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r)   z"TestOutMultiEdgeDataView.test_repr  r   r   c                     | j                  | j                        } |ddg      }d|v sJ d|vsJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r   s      r   r   z2TestOutMultiEdgeDataView.test_contains_with_nbunch  r   r   Nr   rO   r   r   r   r     s#    4 4+
 r   r   c                   (    e Zd Zed        Zd Zd Zy)TestInMultiEdgeDataViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y r   )r   r   r  r   r   InMultiEdgeViewr   r   s    r   r   z#TestInMultiEdgeDataView.setup_class  s,    aboo.?@NN22	r   c                 l     | j                  | j                        d      }d}t        |      |k(  sJ y )NTr;   zuInMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r)   z!TestInMultiEdgeDataView.test_repr  r   r   c                     | j                  | j                        } |ddg      }d|vsJ d|v sJ d|vsJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r   s      r   r   z1TestInMultiEdgeDataView.test_contains_with_nbunch$  r   r   Nr   rO   r   r   r  r    s    3 3
 r   r  c                   v    e Zd Ze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 Zy)TestEdgeViewc                 v    t        j                  d      | _        t         j                  j                  | _        y r	   r   r   s    r   r   zTestEdgeView.setup_class3  r   r   c                     dd l }| j                  | j                        } |j                   |j                  |d            }||k(  sJ |j
                  |j
                  k(  sJ y r   )r   r   r   r   r   r   r   s       r   r!   zTestEdgeView.test_pickle8  sV    ZZfll<6<<B/0Syy||s}},,,r   c                 R    |j                   |d      |d      j                  |       y r   r   r   s       r   r   zTestEdgeView.modify_edge@  r   r   c                     | j                  | j                        }t        t        d      D cg c]	  }||dz   f c}      }t        |      |k(  sJ y c c}w )Nr|   re   r   r   s       r   r&   zTestEdgeView.test_strC  sJ    ZZuQx0!Aq1u:012w#~~ 1s   Ac                 ^    | j                  | j                        }d}t        |      |k(  sJ y )NzJEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   s      r   r)   zTestEdgeView.test_reprH  0    ZZ1 	 Bx3r   c                    | j                   j                         }|j                  }d|j                  d   d<   |d   ddik(  sJ t        j                  t
        j                  d      5  |j                  dd  d d d        t        j                  t        d      5  |j                  d	    d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)
Nr2   r   r4   z.*does not support slicing)matchr   r5   z.*edge.*is not in the graph.)r   r
   )r   r,   r   r6   r7   r   r8   KeyErrorr   r   r   s      r   r9   zTestEdgeView.test_getitemP  s    FFKKMWW$e$xE5>))) ]]2++3OP 	GGAaL	 ]]8+JK 	GGDM	 			 		 	s   *B6C6B?Cc                 6   | j                  | j                        }t        |      t         |             k(  sJ t        |      t         |d            k(  sJ t        |      t         |d            k7  sJ t        |      t         |d            k7  sJ y NFr;   Tre   r   r   r   idr   r   s     r   rJ   zTestEdgeView.test_call^  s}    ZZ"vBD!!!"vBEN++++"vBDM****"vBaL))))r   c                 ~   | j                  | j                        }t        |      t        |j                               k7  sJ t        |      t        |j                  d            k(  sJ t        |      t        |j                  d            k7  sJ t        |      t        |j                  d            k7  sJ y r  r   r   r  r<   r  s     r   	test_datazTestEdgeView.test_datae  s    ZZ"vBGGI&&&"vBGGG/0000"vBGGG.////"vBGG1G-....r   c                     | j                  | j                        }|D ]  \  }} t        |      }t        |      dk(  sJ t        |      |k7  sJ t        |      |k(  sJ y r   r   )r   r   r   r   r   s        r   rF   zTestEdgeView.test_iterl  sg    ZZ 	DAq	2hCyF"""Bx2~~CyCr   c                    | j                  | j                        } |       }| j                  j                         rd|v rd|vsJ d|v rd|vsJ d|v rd|v sJ d|v rd|v sJ d|vsJ d|vsJ d|vsJ d|vsJ d|vsJ d|vsJ y r   r   )r   r   edvs      r   r0   zTestEdgeView.test_containsu  s    ZZd66R<F"$444S=V3%666R<FbL00S=Vs]22RS   b   b   c!!!c!!!r   c                     | j                  | j                        } |ddg      }d|v sJ d|v sJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r   r   evns      r   r   z&TestEdgeView.test_contains_with_nbunch      ZZA}}}}}}S   S   S   S   S   r   c                    | j                  | j                        }| j                  j                         rdnd}t        |      |k(  sJ | j                  j	                         }|j                  dd       t        |j                  d            d|j                         z   |j                         z
  k(  sJ t        |j                               |dz   k(  sJ t        |j                        |dz   k(  sJ y )Nr
   r|   re   r3   )r   r   is_multigraphr}   r,   r   r   r   )r   r   num_edrr   s       r   r~   zTestEdgeView.test_len  s    ZZff**,!2w&   FFKKM	

1a1771:!aoo&7"7!--/"IIII1779~!+++177|vz)))r   c                     | j                  | j                        }h d}| j                  j                         r||z  sJ dh       ||z  sJ dh       y ||z  ddhk(  sJ ||z  ddhk(  sJ y )N   r   r   rj   re   r   r   r.  r   r   r   
some_edgess      r   r   zTestEdgeView.test_and  s    ZZ-
66?,VH,?
?,VH,? 	 
?vv&6666?vv&6666r   c                 :   | j                  | j                        }h d}t        d      D ch c]	  }||dz   f }}|j                  |       t        d      D ch c]	  }|dz   |f }}|j                  |       ||z  ||fv sJ ||z  ||fv sJ y c c}w c c}w )Nr,  r|   re   r   r   rZ   r   )r   r   r0  rB   result1result2s         r   r   zTestEdgeView.test_or  s    ZZ-
',Qx0!Aq1u:00z"',Qx0!AE1:00z"ZWg$6666RWg$6666 10s   BBc                 v   | j                  | j                        }h d}| j                  j                         r<t        dd      D ch c]	  }||dz   f }}|j	                  ddh       ||z  |k(  sJ y t        dd      D ch c]	  }||dz   f }}|j	                  dh       ||z  |k(  sJ y c c}w c c}w )Nr,  re   r|   r.  r-  r   r   r   rZ   r   r   r   r0  rB   results        r   r   zTestEdgeView.test_xor  s    ZZ-
66*/1+6Qq!a%j6F6MM66*+
?f,,,
 	 +01+6Qq!a%j6F6MM6(#
?f,,, 7 7s   B1B6c                     | j                  | j                        }h d}t        d      D ch c]	  }||dz   f }}|j                  d       ||z
  sJ |       y c c}w )Nr,  r|   re   r   )r   r   rZ   remover7  s        r   r   zTestEdgeView.test_sub  sZ    ZZ-
&+Ah/1a!e*//fJ&& 0s   AN)rK   rL   rM   rN   r   r!   r   r&   r)   r9   rJ   r   rF   r0   r   r~   r   r   r   r   rO   r   r   r  r  2  s_    , ,-(
*/ ""
!	*
	7'r   r  c                   (    e Zd Zed        Zd Zd Zy)TestOutEdgeViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y r	   r   r   s    r   r   zTestOutEdgeView.setup_class  s+    a.NN..	r   c                 ^    | j                  | j                        }d}t        |      |k(  sJ y )NzMOutEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   s      r   r)   zTestOutEdgeView.test_repr  r  r   c                     | j                  | j                        } |ddg      }d|v sJ d|vsJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r%  s      r   r   z)TestOutEdgeView.test_contains_with_nbunch      ZZA}}S   }}S   S   S   S   S   r   Nr   rO   r   r   r<  r<    s    / /
!r   r<  c                   (    e Zd Zed        Zd Zd Zy)TestInEdgeViewc                     t        j                  dt        j                               | _        t         j                  j
                  | _        y r	   r   r   s    r   r   zTestInEdgeView.setup_class  s+    a.NN--	r   c                 ^    | j                  | j                        }d}t        |      |k(  sJ y )NzLInEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   s      r   r)   zTestInEdgeView.test_repr  r  r   c                     | j                  | j                        } |ddg      }d|vsJ d|v sJ d|vsJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r%  s      r   r   z(TestInEdgeView.test_contains_with_nbunch      ZZAS   }}S   S   S   S   S   S   r   Nr   rO   r   r   rB  rB    s    . .
!r   rB  c                   j    e Zd Ze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y)TestMultiEdgeViewc                     t        j                  dt        j                               | _        | j                  j	                  dddd       t         j
                  j                  | _        y Nr
   re   rj   r3   r2   )keyr4   )r   r   r   r   r   r   r   r   r   s    r   r   zTestMultiEdgeView.setup_class  sC    a1q!.NN00	r   c                     t        |      dk(  r|dz   }|j                  |d      |d      |d      j                  |       y Nrj   )r   r   re   r}   r   r   r   s       r   r   zTestMultiEdgeView.modify_edge  B    q6Q;DA	qtQqT1Q4 ''-r   c                     | j                  | j                        }t        d      D cg c]
  }||dz   df }}|j                  dd       t	        |      }t	        |      |k(  sJ y c c}w )Nr|   re   r   rj   r   )r   r   rZ   insertr$   )r   r   rB   replistr   s        r   r&   zTestMultiEdgeView.test_str  sa    ZZ*/(3QAq1ua=33q)$'l2w#~~ 4s   A(c                    | j                   j                         }|j                  }d|j                  d   d<   |d   ddik(  sJ t        j                  t
        j                        5  |j                  dd  d d d        y # 1 sw Y   y xY w)Nr2   r   re   r   r4   r   r5   )r   r,   r   r6   r7   r   r8   r  s      r   r9   zTestMultiEdgeView.test_getitem  sy    FFKKMWW"''{uen,,, ]]2++, 	GGAaL	 	 	s   (BB
c                 ^    | j                  | j                        }d}t        |      |k(  sJ y )NzrMultiEdgeView([(0, 1, 0), (1, 2, 0), (1, 2, 3), (2, 3, 0), (3, 4, 0), (4, 5, 0), (5, 6, 0), (6, 7, 0), (7, 8, 0)])r   r   s      r   r)   zTestMultiEdgeView.test_repr  1    ZZH 	 Bx3r   c                 |   | j                  | j                        }t        |      t         |d            k(  sJ t        |      t         |dd            k(  sJ t        |      t         |d            k7  sJ t        |      t         |d            k7  sJ t        |      t         |d            k7  sJ y )NTkeysFr<   rY  r;   re   r   r  r  s     r   rJ   zTestMultiEdgeView.test_call&  s    ZZ"vBDM****"vBE56666"vBEN++++"vBDM****"vBaL))))r   c                    | j                  | j                        }t        |      t        |j                               k7  sJ t        |      t        |j                  dd            k(  sJ t        |      t        |j                  d            k7  sJ t        |      t        |j                  d            k7  sJ t        |      t        |j                  d            k7  sJ y )NFTrZ  rX  r;   re   r   r  r  s     r   r   zTestMultiEdgeView.test_data.  s    ZZ"vBGGI&&&"vBGGTG:;;;;"vBGGG/0000"vBGGG.////"vBGG1G-....r   c                     | j                  | j                        }|D ]  \  }}} t        |      }t        |      dk(  sJ t        |      |k7  sJ t        |      |k(  sJ y )NrT  r   )r   r   r   r   kr   s         r   rF   zTestMultiEdgeView.test_iter6  si    ZZ 	GAq!	2hCyI%%%Bx2~~CyCr   c                 `   | j                   }| j                  |      } |d      }|D ]  \  }}} dk(  sJ  |ddd      }|D ]  \  }}}}	 dk(  sJ | j                  |dd	        |dd
      }|D ]  }t        |      dk(  sJ t	        d|       t        |d d       ddhk(  r>t	        | j                   j                  d   d          |d   dk(  sJ |d   ddik(  sJ d}	pt        |d d       h dk(  r|d   dk(  sJ |d   ddik(  sJ d}
|d   dk(  sJ |d   i k(  rJ  	sJ 
sJ  |ddd      }|D ]  }t        |d d       ddhk(  r|d   dk(  r
|d   dk(  sJ t        |d d       ddhk(  r|d   dk(  r
|d   dk(  sJ t        |d d       ddhk(  sa|d   dk(  sJ |d   dk(  sJ t        |      dk(  sJ d} sJ  |d      }|D ]  }t        |      dk(  rJ  t        t        d      D cg c]
  }||dz   df c}dgz         }t        |      |k(  sJ  |dddd      }t        j                  t              5   |dddd       d d d        t        j                  t              5   |dddd       d d d        |D ]<  }t        |d d       ddhk(  s|d   dv sJ |d   dk(  r|d   dk(  r1J |d   dk(  r<J  |j                         rt        t        |            dk(  sJ y t        t        |            dk(  sJ y c c}w # 1 sw Y   xY w# 1 sw Y   xY w)NTrX  r   r4   re   )rY  r<   ra   )rj   r3   r   r2   r   )rY  r<   rk   zedge:rj   r3   ri   r|   r   r   )rY  ra   rf   >   r   r3   )r   r   r   r}   printrn   r   sortedrZ   r6   r7   rm   r   r@   )r   r   r   r   r   r   r]  r   r   r   checked_multir   rA   elists                 r   test_iterkeyszTestMultiEdgeView.test_iterkeys?  s   FFjjmd^ 	GAq!	Avvd2 	KAq!R	QwwI51d& 	"Aq6Q;;'11Ra5zaV#dffkk!nQ'(tqy ytu~---QrUy(tqy ytu~--- $tqy ytrz!z	" w}d2 		"A1Ra5zaV#!	tu}$}1Ra5zaV#!	tqy y1Ra5zaV#tqy ytu}$}1v{"{!
		" zd^ 	Aq6Q;;	uQx8!AE18I;FGbzU"""T15]]9% 	(tQ'	(]]9% 	0tQ/	0 	%A1Ra5zaV#tv~%~Q419Q45=(=Q419$9	% ==?tBx=A%%%tBx=A%%%% 9	( 	(	0 	0s   =LL9L$L!$L-c                     | j                  | j                        }h d}t        d      D ch c]
  }||dz   df }}|j                  |       |j                  dh       ||z  |k(  sJ ||z  |k(  sJ y c c}w )N   rT  r   rj   r   re   r   r   r|   re   r   r   r2  r7  s        r   r   zTestMultiEdgeView.test_or  s}    ZZ6
).q2A1a!eQ-22j!yk"J&(((B&(((	 3s   A6c                     | j                  | j                        }h d}t        d      D ch c]
  }||dz   df }}|j                  d       |j	                  dh       ||z
  sJ |       ||z
  sJ |       y c c}w )Nre  r|   re   r   rT  r   )r   r   rZ   r:  r   r7  s        r   r   zTestMultiEdgeView.test_sub  s{    ZZ6
).q2A1a!eQ-22i yk"J&&B&&	 3s   A:c                    | j                  | j                        }h d}| j                  j                         rGt        dd      D ch c]
  }||dz   df }}|j	                  h d       ||z  |k(  sJ ||z  |k(  sJ y t        dd      D ch c]
  }||dz   df }}|j	                  ddh       ||z  |k(  sJ ||z  |k(  sJ y c c}w c c}w )Nre  re   r|   r   >   rf  rg  r   rf  r   r6  r7  s        r   r   zTestMultiEdgeView.test_xor  s    ZZ6
66-21a[9q!a%m9F9MM;<
?f,,,?f,,,-21a[9q!a%m9F9MM9i01
?f,,,?f,,, :
 :s   CCc                     | j                  | j                        }h d}| j                  j                         r||z  dhk(  sJ ||z  dhk(  sJ y ||z  ddhk(  sJ ||z  ddhk(  sJ y )Nre  rT  rg  r   r/  s      r   r   zTestMultiEdgeView.test_and  s    ZZ6
66
?yk111?yk111
?y)&<<<<?y)&<<<<r   c                     | j                  | j                        } |ddg      }d|v sJ d|v sJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r%  s      r   r   z+TestMultiEdgeView.test_contains_with_nbunch  r'  r   N)rK   rL   rM   rN   r   r   r&   r9   r)   rJ   r   rF   rc  r   r   r   r   r   rO   r   r   rH  rH    sW    1 1
.
*/ @&D)'-	=
!r   rH  c                   .    e Zd Zed        Zd Zd Zd Zy)TestOutMultiEdgeViewc                     t        j                  dt        j                               | _        | j                  j	                  dddd       t         j
                  j                  | _        y rJ  )r   r   r  r   r   r   r  r   r   s    r   r   z TestOutMultiEdgeView.setup_class  sD    a!23q!.NN33	r   c                     t        |      dk(  r|dz   }|j                  |d      |d      |d      j                  |       y rM  rN  r   s       r   r   z TestOutMultiEdgeView.modify_edge  rO  r   c                 ^    | j                  | j                        }d}t        |      |k(  sJ y )NzuOutMultiEdgeView([(0, 1, 0), (1, 2, 0), (1, 2, 3), (2, 3, 0), (3, 4, 0), (4, 5, 0), (5, 6, 0), (6, 7, 0), (7, 8, 0)])r   r   s      r   r)   zTestOutMultiEdgeView.test_repr  s1    ZZI 	 Bx3r   c                     | j                  | j                        } |ddg      }d|v sJ d|vsJ d|v sJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r%  s      r   r   z.TestOutMultiEdgeView.test_contains_with_nbunch  r@  r   Nr   rO   r   r   rm  rm    s#    4 4
.

!r   rm  c                   .    e Zd Zed        Zd Zd Zd Zy)TestInMultiEdgeViewc                     t        j                  dt        j                               | _        | j                  j	                  dddd       t         j
                  j                  | _        y rJ  )r   r   r  r   r   r   r
  r   r   s    r   r   zTestInMultiEdgeView.setup_class  sD    a!23q!.NN22	r   c                     t        |      dk(  r|dz   }|j                  |d      |d      |d      j                  |       y rM  rN  r   s       r   r   zTestInMultiEdgeView.modify_edge  rO  r   c                 ^    | j                  | j                        }d}t        |      |k(  sJ y )NztInMultiEdgeView([(0, 1, 0), (1, 2, 0), (1, 2, 3), (2, 3, 0), (3, 4, 0), (4, 5, 0), (5, 6, 0), (6, 7, 0), (7, 8, 0)])r   r   s      r   r)   zTestInMultiEdgeView.test_repr  rV  r   c                     | j                  | j                        } |ddg      }d|vsJ d|v sJ d|vsJ d|vsJ d|vsJ d	|vsJ d
|vsJ d|vsJ y r   r   r%  s      r   r   z-TestInMultiEdgeView.test_contains_with_nbunch  rF  r   Nr   rO   r   r   rs  rs    s#    3 3
.

!r   rs  c                       e Zd Zej                  Zej                  j                  Ze	d        Z
d Zd Zd Zd Zd Zd Zd Zd	 Zy
)TestDegreeViewc                     t        j                  d| j                               | _        | j                  j	                  ddd       | j                  j	                  ddd       y )Nr   re   r3   rj   r   )r   r   GRAPHr   r   r   s    r   r   zTestDegreeView.setup_class  sF    a-q!#q!#r   c                     dd l }| j                  j                  } |j                   |j                  |d            }t        |      t        |      k(  sJ y r   )r   r   degreer   r   dict)r   r   degpdegs       r   r!   zTestDegreeView.test_pickle	  sE    ffmmv||LFLLb12CyDJ&&&r   c                     | j                  | j                        }t        g d      }t        |      |k(  sJ | j                  j                         }t        |      |k(  sJ y )N)r   re   r3   rj   rj   r3   r3   rk   rj   r5   re   dviewr   r$   r}  r   dvr   s      r   r&   zTestDegreeView.test_str  N    ZZBC2w#~~VV]]_2w#~~r   c                 ^    | j                  | j                        }d}t        |      |k(  sJ y )Nz0DegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1}))r  r   r(   r  s      r   r)   zTestDegreeView.test_repr  s)    ZZ@Bx3r   c                    | j                  | j                        }|D ]  \  }} t        |      }t        |      |k7  sJ t        |      |k(  sJ t        |      d|d   fk(  sJ t        |      d|d   fk(  sJ | j                  | j                  d      }|D ]  \  }} t        |      }t        |      |k7  sJ t        |      |k(  sJ t        |      d|d   fk(  sJ t        |      d|d   fk(  sJ y )Nr   re   r4   rH   )r  r   r>   r?   )r   r  rB   rg   idvs        r   rF   zTestDegreeView.test_iter  s   ZZ 	DAq	2hBx2~~CyCCyQ1J&&&CyQ1J&&&ZZuZ- 	DAq	2hBx2~~CyCCyQ1J&&&CyQ1J&&&r   c                     | j                  | j                        } |d      }|dk(  sJ  |ddg      }t        |      ddgk(  sJ y )Nr   re   rj   r3   r  r  r  r   r`  r   r  dvns      r   test_nbunchzTestDegreeView.test_nbunch/  L    ZZeaxx!Qjc{vv....r   c                    | j                  | j                        }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ | j                  | j                  d      }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )Nr   re   r3   rj   r4   r  r5   r  r   r   r  s     r   r9   zTestDegreeView.test_getitem6      ZZ!uzz!uzz!uzz!uzzZZuZ-!uzz!uzz!uzz!uzzr   c                 .   | j                  | j                        } |dd      }|dk(  sJ  |dd      }|dk(  sJ  |ddgd      }t        |      dd	gk(  sJ t         |d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )
Nr   r4   r  re   r5   rj   r3   r  )r3   r5   r  r   r`  r~  r   r  dvwdvds       r   test_weightzTestDegreeView.test_weightB      ZZ5!axx5!axx!Q&c{vv....2U#$1v{{1v{{1v{{1v{{r   c                 Z    | j                  | j                        }t        |      dk(  sJ y )Nr   )r  r   r}   r  s     r   r~   zTestDegreeView.test_lenP  s$    ZZ2w!||r   N)rK   rL   rM   r   Graphr{  r   
DegreeViewr  rN   r   r!   r&   r)   rF   r  r9   r  r~   rO   r   r   ry  ry    sT    HHENN%%E$ $
'
'&/
r   ry  c                   V    e Zd Zej                  Zej                  j                  Zd Z	y)TestDiDegreeViewc                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz2DiDegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1})r   r}  r(   r  s      r   r)   zTestDiDegreeView.test_reprY  s&    VV]]_BBx3r   N)
rK   rL   rM   r   r   r{  r   DiDegreeViewr  r)   rO   r   r   r  r  U  s    JJENN''Er   r  c                   n    e Zd Zej                  Zej                  j                  Zd Z	d Z
d Zd Zd Zy)TestOutDegreeViewc                     | j                  | j                        }t        g d      }t        |      |k(  sJ | j                  j                         }t        |      |k(  sJ y )N)r   r   r   r3   re   rk   re   r5   r   r  r   r$   
out_degreer  s      r   r&   zTestOutDegreeView.test_strc  Q    ZZBC2w#~~VV 2w#~~r   c                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz3OutDegreeView({0: 1, 1: 2, 2: 1, 3: 1, 4: 1, 5: 0})r   r  r(   r  s      r   r)   zTestOutDegreeView.test_reprj  s)    VV CBx3r   c                     | j                  | j                        } |d      }|dk(  sJ  |ddg      }t        |      ddgk(  sJ y Nr   re   rj   r3   r   r  r  r  s      r   r  zTestOutDegreeView.test_nbuncho  r  r   c                    | j                  | j                        }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ | j                  | j                  d      }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y Nr   re   rj   r3   r4   r  rk   r  r  s     r   r9   zTestOutDegreeView.test_getitemv  r  r   c                 .   | j                  | j                        } |dd      }|dk(  sJ  |dd      }|dk(  sJ  |ddgd      }t        |      dd	gk(  sJ t         |d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )
Nr   r4   r  re   rk   rj   r3   r   r  r  r  s       r   r  zTestOutDegreeView.test_weight  r  r   N)rK   rL   rM   r   r   r{  r   OutDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r  _  s3    JJENN((E
/
r   r  c                   n    e Zd Zej                  Zej                  j                  Zd Z	d Z
d Zd Zd Zy)TestInDegreeViewc                     | j                  | j                        }t        g d      }t        |      |k(  sJ | j                  j                         }t        |      |k(  sJ y )N)r   r   re   re   r   r3   rj   r  r  r  r   r$   	in_degreer  s      r   r&   zTestInDegreeView.test_str  Q    ZZBC2w#~~VV2w#~~r   c                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz2InDegreeView({0: 0, 1: 1, 2: 1, 3: 2, 4: 1, 5: 1})r   r  r(   r  s      r   r)   zTestInDegreeView.test_repr  s)    VVBBx3r   c                     | j                  | j                        } |d      }|dk(  sJ  |ddg      }t        |      ddgk(  sJ y )Nr   rj   r3   r   r  r  r  s      r   r  zTestInDegreeView.test_nbunch  r  r   c                    | j                  | j                        }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ | j                  | j                  d      }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y r  r  r  s     r   r9   zTestInDegreeView.test_getitem  r  r   c                 .   | j                  | j                        } |dd      }|dk(  sJ  |dd      }|dk(  sJ  |ddgd      }t        |      ddgk(  sJ t         |d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   d	k(  sJ y )
Nr   r4   r  re   rj   r3   r   r   rk   r  r  s       r   r  zTestInDegreeView.test_weight  r  r   N)rK   rL   rM   r   r   r{  r   InDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r    s3    JJENN''E
/
r   r  c                   n    e Zd Zej                  Zej                  j                  Zd Z	d Z
d Zd Zd Zy)TestMultiDegreeViewc                     | j                  | j                        }t        g d      }t        |      |k(  sJ | j                  j                         }t        |      |k(  sJ y )N)r   r   r  r   r  r  r  r  s      r   r&   zTestMultiDegreeView.test_str  r  r   c                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz5MultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r  r  s      r   r)   zTestMultiDegreeView.test_repr  s&    VV]]_EBx3r   c                     | j                  | j                        } |d      }|dk(  sJ  |ddg      }t        |      ddgk(  sJ y )Nr   re   rj   r3   r  r   r  r  s      r   r  zTestMultiDegreeView.test_nbunch  r  r   c                    | j                  | j                        }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ | j                  | j                  d      }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )	Nr   re   rk   rj   r3   r4   r  r+   r  r  s     r   r9   z TestMultiDegreeView.test_getitem  r  r   c                 .   | j                  | j                        } |dd      }|dk(  sJ  |dd      }|dk(  sJ  |ddgd      }t        |      dd	gk(  sJ t         |d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )
Nr   r4   r  re   r+   rj   r3   r  )r3   r+   r  r  s       r   r  zTestMultiDegreeView.test_weight  r  r   N)rK   rL   rM   r   r   r{  r   MultiDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r    s3    MMENN**E
/
r   r  c                   V    e Zd Zej                  Zej                  j                  Zd Z	y)TestDiMultiDegreeViewc                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz7DiMultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r  r  s      r   r)   zTestDiMultiDegreeView.test_repr  s&    VV]]_GBx3r   N)
rK   rL   rM   r   r  r{  r   DiMultiDegreeViewr  r)   rO   r   r   r  r    s    OOENN,,Er   r  c                   n    e Zd Zej                  Zej                  j                  Zd Z	d Z
d Zd Zd Zy)TestOutMultiDegreeViewc                     | j                  | j                        }t        g d      }t        |      |k(  sJ | j                  j                         }t        |      |k(  sJ y )N)r   r  r   r  r  r  r  r  s      r   r&   zTestOutMultiDegreeView.test_str  r  r   c                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz8OutMultiDegreeView({0: 1, 1: 3, 2: 1, 3: 1, 4: 1, 5: 0})r  r  s      r   r)   z TestOutMultiDegreeView.test_repr
  s)    VV HBx3r   c                     | j                  | j                        } |d      }|dk(  sJ  |ddg      }t        |      ddgk(  sJ y r  r  r  s      r   r  z"TestOutMultiDegreeView.test_nbunch  r  r   c                    | j                  | j                        }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ | j                  | j                  d      }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )Nr   re   r3   rj   r4   r  r   r  r  s     r   r9   z#TestOutMultiDegreeView.test_getitem  r  r   c                 .   | j                  | j                        } |dd      }|dk(  sJ  |dd      }|dk(  sJ  |ddgd      }t        |      dd	gk(  sJ t         |d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )
Nr   r4   r  re   r   rj   r3   r   r  r  r  s       r   r  z"TestOutMultiDegreeView.test_weight"  r  r   N)rK   rL   rM   r   r  r{  r   OutMultiDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r    s3    OOENN--E
/
r   r  c                   n    e Zd Zej                  Zej                  j                  Zd Z	d Z
d Zd Zd Zy)TestInMultiDegreeViewc                     | j                  | j                        }t        g d      }t        |      |k(  sJ | j                  j                         }t        |      |k(  sJ y )N)r  r  r   r  r  r  r  r  s      r   r&   zTestInMultiDegreeView.test_str5  r  r   c                 \    | j                   j                         }d}t        |      |k(  sJ y )Nz7InMultiDegreeView({0: 0, 1: 1, 2: 1, 3: 3, 4: 1, 5: 1})r  r  s      r   r)   zTestInMultiDegreeView.test_repr<  s)    VVGBx3r   c                     | j                  | j                        } |d      }|dk(  sJ  |ddg      }t        |      ddgk(  sJ y )Nr   rj   r3   r   r  r  r  s      r   r  z!TestInMultiDegreeView.test_nbunchA  r  r   c                    | j                  | j                        }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ | j                  | j                  d      }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y )Nr   re   rj   r3   r4   r  r   r  r  s     r   r9   z"TestInMultiDegreeView.test_getitemH  r  r   c                 .   | j                  | j                        } |dd      }|dk(  sJ  |dd      }|dk(  sJ  |ddgd      }t        |      ddgk(  sJ t         |d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   d	k(  sJ y )
Nr   r4   r  re   rj   r3   r   )r3   r   r   r  r  s       r   r  z!TestInMultiDegreeView.test_weightT  r  r   N)rK   rL   rM   r   r  r{  r   InMultiDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r  1  s3    OOENN,,E
/
r   r  )
reportviewerr_msg_termszlist(G.nodeszlist(G.nodes.datazlist(G.edgeszlist(G.in_edgesc                     t        j                  d      } | |      }t        j                  t         j                        5 }|dd  d d d        t        j                        }t        |      j                  |v sJ ||v sJ y # 1 sw Y   >xY w)Nr3   r   rj   )	r   complete_graphr6   r7   r8   r$   valuetyperK   )r  r  r   viewexcerrmsgs         r   test_slicing_reportviewsr  c  s      	!Aa=D	r''	( CQq	^F:&(((F"""	 s   BBgraphc                 V   t        j                  d |              }|j                  |j                  |j                  |j
                  f |j                         rD|j                  |j                  |j                  |j                  |j                  |j                  f |j                  }d|v sJ d|v sJ d|v sJ d|v sJ |j                         r$d|v sJ d|v sJ d|v sJ d	|v sJ d
|v sJ d|v sJ t        j                  t        j                   |d             t#        |       y )Nr5   r   r   adjr}  predsuccin_edges	out_edgesr  r  r   )r   r   r   r   r  r}  r   r  r  r  r  r  r  __dict__r   r   r   r   )r  r   cached_dicts      r   test_cache_dict_get_set_stater  |  s!    	a!AGGQWWaeeQXX%}}	

AKKallJ**Kk!!!k!!!K{"""}}$$$$$$[(((k)))k))){*** LLa$%QKr   c                      d t        t        j                        D        } | D ]@  }t        t	        t        j                  |      t        j                  j
                        r@J  y )Nc              3   *   K   | ]  }d |v s|  yw)EdgeNrO   ).0r   s     r   	<genexpr>z;test_edge_views_inherit_from_EdgeViewABC.<locals>.<genexpr>  s     K1v{QKs   	)dirr   r   
issubclassgetattrEdgeViewABC)all_edge_view_classeseview_classs     r   (test_edge_views_inherit_from_EdgeViewABCr    sQ    KBNN(;K, 
BNNK0"..2L2L
 	
 

r   )5r   r,   r   r6   networkxr   networkx.classesr   rvnetworkx.classes.reportviewsr   r   rQ   rt   rv   r   r   r   r   r   r   r   r  r  r<  rB  rH  rm  rs  ry  r  r  r  r  r  r  r  markparametrizeNodeViewr   r   r   r   r
  r  r  r  r   r   r  r  r  rO   r   r   <module>r     s?       . 5<1 <1~e eP*.; .;bH/ HE$: Ev! v!r+ * + \ ,  : ,  @ 2  @ 6  <V' V'r!l !6!\ !6x! x!v!, !B!+ !DS Sl~ / /d/~ /d/. /d/ /^ /d/N /d #	n%	-.	n%	)*	(			>*			./			n-## bhh

BMM2??C.
r   