
    h                        S SK r S SKJr  S SKrS SKrS SKJr  S SK	J
r
   " S S5      r " S S5      rS	 r " S
 S5      r " S S\5      r " S S\5      r " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S5      r " S S\5      r " S  S!\5      r " S" S#\5      r " S$ S%\5      r " S& S'\5      r " S( S)5      r " S* S+\5      r " S, S-\5      r " S. S/\5      r  " S0 S1\5      r! " S2 S3\!5      r" " S4 S5\5      r# " S6 S7\5      r$\RJ                  RM                  S8\RN                  S94\R                  S:4\RP                  S;4\RR                  S<4\RT                  S;4\RV                  S;4\RX                  S<4\RZ                  S;445      S= 5       r.\RJ                  RM                  S>\R^                  \R`                  \Rb                  \Rd                  /5      S? 5       r3S@ r4g)A    N)deepcopy)reportviews)NodeDataViewc                   N    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
rg)TestNodeView   c                 p    [         R                  " S5      U l        U R                  R                  U l        g N	   nx
path_graphGnodesnvclss    Y/var/www/html/env/lib/python3.13/site-packages/networkx/classes/tests/test_reportviews.pysetup_classTestNodeView.setup_class   s!    a     c                     SS K nU R                  nUR                  " UR                  " US5      5      nX#:X  d   eUR                  UR                  :X  d   eg Nr   pickler   loadsdumps	__slots__selfr   r   pnvs       r   test_pickleTestNodeView.test_pickle   G    WWll6<<B/0yy||s}},,,r   c                 :    [        U R                  5      S:X  d   eg )Nz[0, 1, 2, 3, 4, 5, 6, 7, 8])strr   r!   s    r   test_strTestNodeView.test_str   s    477|<<<<r   c                 :    [        U R                  5      S:X  d   eg )Nz%NodeView((0, 1, 2, 3, 4, 5, 6, 7, 8)))reprr   r(   s    r   	test_reprTestNodeView.test_repr   s    DGG} GGGGr   c                     U R                   R                  5       nUR                  nSU;   d   eSU;  d   eUR                  S5        UR	                  S5        SU;  d   eSU;   d   eg )N   r   )r   copyr   remove_nodeadd_noder!   r   r   s      r   test_containsTestNodeView.test_contains    s_    FFKKMWWBww{{	a	

1{{Bwwr   c                 >   U R                   R                  5       nUR                  nSUR                  S   S'   US   0 :X  d   eUS   SS0:X  d   e[        R                  " [
        R                  5         UR                  SS   S S S 5        g ! , (       d  f       g = f)Nbar   foor0   r      )r   r1   r   pytestraisesr   NetworkXErrorr4   s      r   test_getitemTestNodeView.test_getitem*   s}    FFKKMWW!
5!u{{!u&&&]]2++,GGAaL -,,s   5B
Bc                 p   U R                   n[        U5       H  u  p#X#:X  a  M   e   [        U5      n[        U5      S:X  d   e[        U5      U:w  d   e[        U5      U:X  d   e[        U5      n[        U5        [	        U5      [	        U5      :X  d   eU" SS9n[        U5       H  u  p#X#:X  a  M   e   g )Nr   Fdata)r   	enumerateiternextlist)r!   r   ininvinv2nnvs          r   	test_iterTestNodeView.test_iter4   s    WWbMDA6M6 "2hCyA~~Bx2~~CyCBxT
CyDJ&&&encNDA6M6 #r   c                 Z    U R                   nX" 5       L d   eX" SS9Ld   eX" SS9Ld   eg )NTrB   weight)r   r!   r   s     r   	test_callTestNodeView.test_callD   sA    Et,,,,Ex0000r    N)__name__
__module____qualname____firstlineno__classmethodr   r#   r)   r-   r5   r?   rM   rR   __static_attributes__rT   r   r   r   r      s8     -=H 1r   r   c                   N    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
rg)TestNodeDataViewK   c                    [         R                  " S5      U l        [        U R                  5      U l        U R                  R
                  R                  S5      U l        U R                  R
                  R                  S5      U l        g )Nr   Tr:   )	r   r   r   r   r   r   rC   ndvnwvr   s    r   r   TestNodeDataView.setup_classL   sV    a cee$%%++""4(%%++""5)r   c                 ~    U R                   R                  nUR                  S5      nXL d   eXR                  Ld   eg )NF)r   r   rC   r_   )r!   r   ndvfalses      r   test_viewtypeTestNodeDataView.test_viewtypeS   s6    VV\\775>~~!!!r   c                     SS K nU R                  nUR                  " UR                  " US5      5      nX#:X  d   eUR                  UR                  :X  d   eg r   r   r    s       r   r#   TestNodeDataView.test_pickleY   r%   r   c                     [        [        S5       Vs/ s H  o0 4PM     sn5      n[        U R                  5      U:X  d   eg s  snf r
   )r'   ranger_   )r!   rI   msgs      r   r)   TestNodeDataView.test_stra   s<    E!H-Hqr7H-.488}### .s   Ac                     Sn[        U R                  5      U:X  d   eSn[        U R                  5      U:X  d   eSn[        U R                  5      U:X  d   eg )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   r_   r`   )r!   expecteds     r   r-   TestNodeDataView.test_repre   sb    >DGG}(((4 	 DHH~)))A 	 DHH~)))r   c                 R   U R                   R                  5       nUR                  R                  5       nUR                  R                  S5      nSUR                  S   S'   S0 4U;   d   eSSS04U;   d   eSU;   d   eSU;   d   eUR                  SSS9nS	U;   d   eSU;   d   eg )
Nr:   r8   r9   r0   )r9   r8   )r0   NbizrC   default)r0   rp   )r   r1   r   rC   )r!   r   r   r`   nwv_defs        r   r5   TestNodeDataView.test_containss   s    FFKKMWW\\^ggll5!!
52w"}}E5>"b(((S   C''ue'4W$$$W$$$r   c                    U R                   R                  5       nUR                  nSUR                  S   S'   US   SS0:X  d   eUR                  SSS9nUS   (       d   S5       eUS   S:X  d   e[        R                  " [
        R                  5         UR                  R                  5       SS   S S S 5        g ! , (       d  f       g = f)	Nr8   r9   r:   rp   rq   r0   r   r;   )r   r1   r   r<   r=   r   r>   rC   )r!   r   r   rs   s       r   r?   TestNodeDataView.test_getitem   s    FFKKMWW!
5!u&&&''ue'4qz 5 zqzU"""]]2++,GGLLN1Q -,,s   B==
Cc                    U R                   R                  5       nUR                  R                  5       nUR                  R                  S5      nUR                  R                  S5      n[	        U5       H  u  nu  pgXV:X  d   eU0 :X  a  M   e   [        U5      n[        U5      S0 4:X  d   eSUR                  S   S'   U H  u  pgUS:X  a  USS0:X  d   eM  U0 :X  a  M   e   U H  u  pgUS:X  a  USS0:X  d   eM  U0 :X  a  M   e   U H  u  pgUS:X  a
  US:X  d   eM  Uc  M   e   UR                  R                  SSS9 H  u  pgUS:X  a
  US:X  d   eM  US:X  a  M   e   g )NTr:   r   r8   r9      rr   )r   r1   r   rC   rD   rE   rF   )	r!   r   r   r_   r`   rH   rI   drJ   s	            r   rM   TestNodeDataView.test_iter   si   FFKKMWW\\^ggll4 ggll5!"2IAv6M67N7 ' 2hCyQG###!
5DAAvUEN***Bww	  DAAvUEN***Bww	  DAAvEz!zy y	  GGLLL2DAAvEz!zAvv	 3r   rT   N)rU   rV   rW   rX   rY   r   rd   r#   r)   r-   r5   r?   rM   rZ   rT   r   r   r\   r\   K   s7    * *"-$*% "r   r\   c                     [         R                  " S5      n SU R                  S   S'   U R                  R                  5       /nUR	                  U R                  R                  S5      5        U R                  5       n1 SkUR                  S   S'   UR	                  UR                  R                  S5      5        U HL  n[        R                  " [        [        U5        [        R                  " [        [        S[        5       5        MN     U R                  R                  S	5      n[        U5        XD-    U R                  R                  S5      n[        U5        XD-    g )
Nr   r8   r9   r:   T   rx      r9      znv | nvF)r   r   r   rC   appendr1   r<   r=   	TypeErrorsetevallocals)r   nvsHr   Gns        r   test_nodedataview_unhashabler      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                   H    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	rg
)TestNodeViewSetOps   c                     [         R                  " S5      U l        SU R                  R                  S   S'   U R                  R                  U l        g Nr   r8   r9   r:   r   r   s    r   r   TestNodeViewSetOps.setup_class   s7    a  %Aur   c                     [        U5      $ )N)r   rQ   s     r   n_itsTestNodeViewSetOps.n_its   s    5zr   c                     U R                   R                  5       nUR                  n[        U5      S:X  d   eUR	                  S5        [        U5      S:X  d   eUR                  S5        [        U5      S:X  d   eg )Nr   r0      )r   r1   r   lenr2   r3   r4   s      r   test_lenTestNodeViewSetOps.test_len   sa    FFKKMWW2w!||	a2w!||	

12w!||r   c                     U R                   nU R                  [        SS5      5      nX-  U R                  [        SS5      5      :X  d   eX!-  U R                  [        SS5      5      :X  d   eg Nr;   r   r   r   r   ri   r!   r   
some_nodess      r   test_andTestNodeViewSetOps.test_and   s]    WWZZa-
$**U1a["9999$**U1a["9999r   c                     U R                   nU R                  [        SS5      5      nX-  U R                  [        S5      5      :X  d   eX!-  U R                  [        S5      5      :X  d   eg )Nr;   r   r   r   s      r   test_orTestNodeViewSetOps.test_or   sY    WWZZa-
$**U2Y"7777$**U2Y"7777r   c                     U R                   nU R                  [        SS5      5      n1 SknX-  U R                  U5      :X  d   eX!-  U R                  U5      :X  d   eg )Nr;   r   >   r   rx   r~   r9   r   r   
      r   )r!   r   r   r   s       r   test_xorTestNodeViewSetOps.test_xor   sV    WWZZa-
*$**U"3333$**U"3333r   c                     U R                   nU R                  [        SS5      5      nX-
  U R                  [        S5      5      :X  d   eX!-
  U R                  [        SS5      5      :X  d   eg r   r   r   s      r   test_subTestNodeViewSetOps.test_sub   s[    WWZZa-
$**U1X"6666$**U1b\"::::r   rT   N)rU   rV   rW   rX   rY   r   r   r   r   r   r   r   rZ   rT   r   r   r   r      s2     
:84;r   r   c                   *    \ rS rSr\S 5       rS rSrg)TestNodeDataViewSetOps   c                     [         R                  " S5      U l        SU R                  R                  S   S'   U R                  R                  R	                  S5      U l        g r   r   r   r   r   rC   r   r   s    r   r   "TestNodeDataViewSetOps.setup_class   sB    a  %Au!!%(r   c                 D    U Vs1 s H  o"US:X  a  SOS 4iM     sn$ s  snf )Nr9   r8   rT   r!   r   nodes      r   r   TestNodeDataViewSetOps.n_its   s%    AFG	ut4GGG   rT   NrU   rV   rW   rX   rY   r   r   rZ   rT   r   r   r   r      s    ) )
Hr   r   c                   *    \ rS rSr\S 5       rS rSrg)TestNodeDataViewDefaultSetOpsi  c                     [         R                  " S5      U l        SU R                  R                  S   S'   U R                  R                  R	                  SSS9U l        g )Nr   r8   r9   r:   rx   ry   r   r   s    r   r   )TestNodeDataViewDefaultSetOps.setup_class  sG    a  %Au!!%!3r   c                 D    U Vs1 s H  o"US:X  a  SOS4iM     sn$ s  snf )Nr9   r8   rx   rT   r   s      r   r   #TestNodeDataViewDefaultSetOps.n_its  s%    >CDed	uq1eDDDr   rT   Nr   rT   r   r   r   r     s    4 4
Er   r   c                   Z    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rSrg)TestEdgeDataViewi  c                 x    [         R                  " S5      U l        [         R                  R                  U l        g r
   r   r   r   r   EdgeVieweviewr   s    r   r   TestEdgeDataView.setup_class  #    a NN++	r   c                     SS K nU R                  U R                  5      " SS9nUR                  " UR                  " US5      5      n[        U5      [        U5      :X  d   eUR                  UR                  :X  d   eg )Nr   TrB   r   )r   r   r   r   r   rG   r   r!   r   evpevs       r   r#   TestEdgeDataView.test_pickle  sa    ZZT*ll6<<B/0Bx49$$$||s}},,,r   c                 R    UR                   US      US      R                  U5        g Nr   rx   _adjupdater!   r   ekwdss       r   modify_edgeTestEdgeDataView.modify_edge  %    	qtQqT!!$'r   c                     U R                  U R                  5      " SS9n[        [        S5       Vs/ s H
  o"US-   0 4PM     sn5      n[        U5      U:X  d   eg s  snf )NTrB   r   rx   r   r   r'   ri   r!   r   rI   reps       r   r)   TestEdgeDataView.test_str!  sS    ZZT*5848aq1ub>8452w#~~ 5s   Ac                 h    U R                  U R                  5      " SS9nSn[        U5      U:X  d   eg )NTrB   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-   TestEdgeDataView.test_repr&  5    ZZT*) 	 Bx3r   c                 .   U R                   R                  5       nU R                  U5      nU" SS9nU" SSS9nU H  u  pVnM     W0 :X  d   eU H  u  pVnM     WS:X  d   eU R                  USSS9  U HD  n	[	        U	5      S	:X  d   e[        U	S S
 5      S
S	1:X  a  U	S
   SS0:X  d   eSn
M9  U	S
   0 :X  a  MD   e   W
(       d   eU HB  n	[	        U	5      S	:X  d   e[        U	S S
 5      S
S	1:X  a  U	S
   S:X  d   eSnM7  U	S
   S:X  a  MB   e   W(       d   eg )NTrB   r:   rx   rq   r~   r9   r8   r:   r9   r~   )r   r1   r   r   r   r   )r!   r   evrr   ev_defuvrz   wtr   checked
checked_wts               r   test_iterdataTestEdgeDataView.test_iterdata0  sC   FFKKMjjmd^%+GA! BwwHA" QwwF.Aq6Q;;1Ra5zaV#tu~---trz!z  wAq6Q;;1Ra5zaV#tu}$}!
tqy y  zr   c                     U R                  U R                  5      nU" 5       nU H  u  p4M     [        U5      n[        U5      S:X  d   e[        U5      U:w  d   e[        U5      U:X  d   eg Nr   rx   r   r   rE   rF   )r!   r   r   r   r   ievs         r   rM   TestEdgeDataView.test_iterQ  sg    jj UDA 2hCyF"""Bx2~~CyCr   c                     U R                  U R                  5      nU" 5       nU R                  R                  5       (       a  SU;   a  SU;  d   eOSU;   a  SU;   d   eSU;  d   eSU;  d   eSU;  d   eg Nrx   r~   r~   rx   rx   r   )rx   Z   )r   rx   r   r   is_directedr!   r   r   s      r   r5   TestEdgeDataView.test_contains[  s    jj U66R<F"$444$4R<FbL00Rb   b   r   c                 :   U R                  U R                  5      nU" SS/S9nU R                  R                  5       (       a  SU;   d   eSU;  d   eSU;   d   eOSU;   d   eSU;   d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg Nr   r~   nbunchr   r   r   r9   r   )r   r;   )r;      )r0   r   )r   r   r   r   s      r   test_contains_with_nbunch*TestEdgeDataView.test_contains_with_nbunchf  s    jj A66R<<###R<<R<<R<<R<<RRRRRr   c                    U R                  U R                  5      nU" SS9n[        U5      S:X  d   e[        U" S5      5      S:X  d   e[        U" / SQ5      5      S:X  d   e[        U R                  R                  S5      5      S:X  d   e[        U R                  R                  5       5      S:X  d   e[        U R                  R                  5      S:X  d   eU R                  R	                  5       nUR                  SS5        [        UR                  S5      5      S:X  d   e[        UR                  5       5      S	:X  d   e[        UR                  5      S	:X  d   eg )
Nr:   rB   r   rx   r~   rx   r~   r9   r   r9   r   r   r   r   edgesr1   add_edger!   r   r   r   s       r   r   TestEdgeDataView.test_lenw     jj e_2w!||3q6{a3y>"a'''466<<?#q(((466<<>"a'''466<< A%%%FFKKM	

1a1771:!###1779~"""177|q   r   rT   N)rU   rV   rW   rX   rY   r   r#   r   r)   r-   r   rM   r5   r   r   rZ   rT   r   r   r   r     sB    , ,-(
B 	! "!r   r   c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestOutEdgeDataViewi  c                     [         R                  " S[         R                  " 5       S9U l        [         R                  R
                  U l        g Nr   )create_usingr   r   DiGraphr   r   OutEdgeViewr   r   s    r   r   TestOutEdgeDataView.setup_class  s+    abjjl;NN..	r   c                 h    U R                  U R                  5      " SS9nSn[        U5      U:X  d   eg )NTrB   zqOutEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r-   TestOutEdgeDataView.test_repr  r   r   c                    U R                  U R                  5      nU" SS9n[        U5      S:X  d   e[        U" S5      5      S:X  d   e[        U" / SQ5      5      S:X  d   e[        U R                  R                  S5      5      S:X  d   e[        U R                  R                  5       5      S:X  d   e[        U R                  R                  5      S:X  d   eU R                  R	                  5       nUR                  SS5        [        UR                  S5      5      S:X  d   e[        UR                  5       5      S:X  d   e[        UR                  5      S:X  d   eg )	Nr:   rB   r   rx   r  r9   r~   r   r  r  s       r   r   TestOutEdgeDataView.test_len  r  r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;  d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r   r   r   s      r   r   -TestOutEdgeDataView.test_contains_with_nbunch      jj A||R||RRRRRr   rT   N)
rU   rV   rW   rX   rY   r   r-   r   r   rZ   rT   r   r   r
  r
    s#    / /!"
 r   r
  c                   0    \ rS rSr\S 5       rS rS rSrg)TestInEdgeDataViewi  c                     [         R                  " S[         R                  " 5       S9U l        [         R                  R
                  U l        g r  r   r   r  r   r   
InEdgeViewr   r   s    r   r   TestInEdgeDataView.setup_class  s+    abjjl;NN--	r   c                 h    U R                  U R                  5      " SS9nSn[        U5      U:X  d   eg )NTrB   zpInEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r-   TestInEdgeDataView.test_repr  r   r   c                     U R                  U R                  5      nU" SS/S9nSU;  d   eSU;   d   eSU;  d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  r   s      r   r   ,TestInEdgeDataView.test_contains_with_nbunch      jj AR||RRRRRRr   rT   N	rU   rV   rW   rX   rY   r   r-   r   rZ   rT   r   r   r  r    s    . .
 r   r  c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestMultiEdgeDataViewi  c                     [         R                  " S[         R                  " 5       S9U l        [         R                  R
                  U l        g r  )r   r   
MultiGraphr   r   MultiEdgeViewr   r   s    r   r   !TestMultiEdgeDataView.setup_class  s+    abmmo>NN00	r   c                 X    UR                   US      US      S   R                  U5        g r   r   r   s       r   r   !TestMultiEdgeDataView.modify_edge  *    	qtQqT1$$T*r   c                 h    U R                  U R                  5      " SS9nSn[        U5      U:X  d   eg )NTrB   zsMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r-   TestMultiEdgeDataView.test_repr  r   r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;   d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  r   s      r   r   /TestMultiEdgeDataView.test_contains_with_nbunch  s    jj A||||||RRRRRr   rT   N
rU   rV   rW   rX   rY   r   r   r-   r   rZ   rT   r   r   r'  r'    s#    1 1+
 r   r'  c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestOutMultiEdgeDataViewi  c                     [         R                  " S[         R                  " 5       S9U l        [         R                  R
                  U l        g r  )r   r   MultiDiGraphr   r   OutMultiEdgeViewr   r   s    r   r   $TestOutMultiEdgeDataView.setup_class  s,    aboo.?@NN33	r   c                 X    UR                   US      US      S   R                  U5        g r   r   r   s       r   r   $TestOutMultiEdgeDataView.modify_edge  r.  r   c                 h    U R                  U R                  5      " SS9nSn[        U5      U:X  d   eg )NTrB   zvOutMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r-   "TestOutMultiEdgeDataView.test_repr  r   r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;  d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  r   s      r   r   2TestOutMultiEdgeDataView.test_contains_with_nbunch  r  r   rT   Nr3  rT   r   r   r5  r5    s#    4 4+
 r   r5  c                   0    \ rS rSr\S 5       rS rS rSrg)TestInMultiEdgeDataViewi  c                     [         R                  " S[         R                  " 5       S9U l        [         R                  R
                  U l        g r  )r   r   r7  r   r   InMultiEdgeViewr   r   s    r   r   #TestInMultiEdgeDataView.setup_class  s,    aboo.?@NN22	r   c                 h    U R                  U R                  5      " SS9nSn[        U5      U:X  d   eg )NTrB   zuInMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   s      r   r-   !TestInMultiEdgeDataView.test_repr  r   r   c                     U R                  U R                  5      nU" SS/S9nSU;  d   eSU;   d   eSU;  d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  r   s      r   r   1TestInMultiEdgeDataView.test_contains_with_nbunch$  r$  r   rT   Nr%  rT   r   r   rA  rA    s    3 3
 r   rA  c                   ~    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rSrg)TestEdgeViewi2  c                 x    [         R                  " S5      U l        [         R                  R                  U l        g r
   r   r   s    r   r   TestEdgeView.setup_class3  r   r   c                     SS K nU R                  U R                  5      nUR                  " UR                  " US5      5      nX#:X  d   eUR
                  UR
                  :X  d   eg r   )r   r   r   r   r   r   r   s       r   r#   TestEdgeView.test_pickle8  sP    ZZll6<<B/0yy||s}},,,r   c                 R    UR                   US      US      R                  U5        g r   r   r   s       r   r   TestEdgeView.modify_edge@  r   r   c                     U R                  U R                  5      n[        [        S5       Vs/ s H	  o"US-   4PM     sn5      n[        U5      U:X  d   eg s  snf )Nr   rx   r   r   s       r   r)   TestEdgeView.test_strC  sL    ZZuQx0x!q1u:x012w#~~ 1s   Ac                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )NzJEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   s      r   r-   TestEdgeView.test_reprH  0    ZZ1 	 Bx3r   c                    U R                   R                  5       nUR                  nSUR                  S   S'   US   SS0:X  d   e[        R                  " [
        R                  SS9   UR                  SS   S S S 5        [        R                  " [        SS9   UR                  S	     S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)
Nr8   r   r:   z.*does not support slicing)matchr   r;   z.*edge.*is not in the graph.)r   r   )r   r1   r  r<   r=   r   r>   KeyErrorr!   r   r   s      r   r?   TestEdgeView.test_getitemP  s    FFKKMWW$e$xE5>))) ]]2++3OPGGAaL Q ]]8+JKGGDM LK	 QP LKs   )B3C3
C
Cc                 ,   U R                  U R                  5      n[        U5      [        U" 5       5      :X  d   e[        U5      [        U" SS95      :X  d   e[        U5      [        U" SS95      :w  d   e[        U5      [        U" SS95      :w  d   eg NFrB   Trx   r   r   r   idr!   r   s     r   rR   TestEdgeView.test_call^  s}    ZZ"vBD!!!"vBEN++++"vBDM****"vBaL))))r   c                 t   U R                  U R                  5      n[        U5      [        UR                  5       5      :w  d   e[        U5      [        UR                  SS95      :X  d   e[        U5      [        UR                  SS95      :w  d   e[        U5      [        UR                  SS95      :w  d   eg r\  r   r   r^  rC   r_  s     r   	test_dataTestEdgeView.test_datae  s    ZZ"vBGGI&&&"vBGGG/0000"vBGGG.////"vBGG1G-....r   c                     U R                  U R                  5      nU H  u  p#M     [        U5      n[        U5      S:X  d   e[        U5      U:w  d   e[        U5      U:X  d   eg r   r   )r!   r   r   r   r   s        r   rM   TestEdgeView.test_iterl  s`    ZZDA 2hCyF"""Bx2~~CyCr   c                 X   U R                  U R                  5      nU" 5       nU R                  R                  5       (       a  SU;   a  SU;  d   eSU;   a  SU;  d   eOSU;   a  SU;   d   eSU;   a  SU;   d   eSU;  d   eSU;  d   eSU;  d   eSU;  d   eSU;  d   eSU;  d   eg r   r   )r!   r   edvs      r   r5   TestEdgeView.test_containsu  s    ZZd66R<F"$444S=V3%666%6R<FbL00S=Vs]22RS   b   b   c!!!c!!!r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;   d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  r!   r   evns      r   r   &TestEdgeView.test_contains_with_nbunch      ZZA}}}}}}S   S   S   S   S   r   c                    U R                  U R                  5      nU R                  R                  5       (       a  SOSn[        U5      U:X  d   eU R                  R	                  5       nUR                  SS5        [        UR                  S5      5      SUR                  5       -   UR                  5       -
  :X  d   e[        UR                  5       5      US-   :X  d   e[        UR                  5      US-   :X  d   eg )Nr   r   rx   r9   )r   r   is_multigraphr   r1   r  r  r   )r!   r   num_edr   s       r   r   TestEdgeView.test_len  s    ZZff**,,!2w&   FFKKM	

1a1771:!aoo&7"7!--/"IIII1779~!+++177|vz)))r   c                     U R                  U R                  5      n1 SknU R                  R                  5       (       a$  X!-  (       d   S15       eX-  (       d   S15       e g X-  SS1:X  d   eX!-  SS1:X  d   eg )N   r   r   r~   rx   r   r   rv  r   r!   r   
some_edgess      r   r   TestEdgeView.test_and  s    ZZ-
66?,VH,??,VH,? 	 ?vv&6666?vv&6666r   c                 B   U R                  U R                  5      n1 Skn[        S5       Vs1 s H	  o3US-   4iM     nnUR                  U5        [        S5       Vs1 s H	  o3S-   U4iM     nnUR                  U5        X-  XE4;   d   eX!-  XE4;   d   eg s  snf s  snf )Nrt  r   rx   r   r   ri   r   )r!   r   rx  rI   result1result2s         r   r   TestEdgeView.test_or  s    ZZ-
',Qx0x!q1u:x0z"',Qx0x!E1:x0z"W$6666W$6666 10s   BBc                    U R                  U R                  5      n1 SknU R                  R                  5       (       a?  [        SS5       Vs1 s H	  o3US-   4iM     nnUR	                  SS15        X-  U:X  d   e g [        SS5       Vs1 s H	  o3US-   4iM     nnUR	                  S15        X-  U:X  d   eg s  snf s  snf )Nrt  rx   r   rv  ru  r   r   r   ri   r   r!   r   rx  rI   results        r   r   TestEdgeView.test_xor  s    ZZ-
66*/1+6+Q!a%j+F6MM66*+?f,,,
 	 +01+6+Q!a%j+F6MM6(#?f,,, 7 7s   B;C c                     U R                  U R                  5      n1 Skn[        S5       Vs1 s H	  o3US-   4iM     nnUR                  S5        X-
  (       d   U5       eg s  snf )Nrt  r   rx   r   )r   r   ri   remover  s        r   r   TestEdgeView.test_sub  sW    ZZ-
&+Ah/ha!e*h/f&& 0s   A!rT   N)rU   rV   rW   rX   rY   r   r#   r   r)   r-   r?   rR   rc  rM   r5   r   r   r   r   r   r   rZ   rT   r   r   rJ  rJ  2  s_    , ,-(
*/ ""
!	*
	7'r   rJ  c                   0    \ rS rSr\S 5       rS rS rSrg)TestOutEdgeViewi  c                     [         R                  " S[         R                  " 5       5      U l        [         R                  R
                  U l        g r
   r  r   s    r   r   TestOutEdgeView.setup_class  s+    a.NN..	r   c                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )NzMOutEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   s      r   r-   TestOutEdgeView.test_repr  rU  r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;  d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  rk  s      r   r   )TestOutEdgeView.test_contains_with_nbunch      ZZA}}S   }}S   S   S   S   S   r   rT   Nr%  rT   r   r   r  r    s    / /
!r   r  c                   0    \ rS rSr\S 5       rS rS rSrg)TestInEdgeViewi  c                     [         R                  " S[         R                  " 5       5      U l        [         R                  R
                  U l        g r
   r  r   s    r   r   TestInEdgeView.setup_class  s+    a.NN--	r   c                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )NzLInEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   s      r   r-   TestInEdgeView.test_repr  rU  r   c                     U R                  U R                  5      nU" SS/S9nSU;  d   eSU;   d   eSU;  d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  rk  s      r   r   (TestInEdgeView.test_contains_with_nbunch      ZZAS   }}S   S   S   S   S   S   r   rT   Nr%  rT   r   r   r  r    s    . .
!r   r  c                   r    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rSrg)TestMultiEdgeViewi  c                     [         R                  " S[         R                  " 5       5      U l        U R                  R	                  SSSSS9  [         R
                  R                  U l        g Nr   rx   r~   r9   r8   )keyr:   )r   r   r)  r   r  r   r*  r   r   s    r   r   TestMultiEdgeView.setup_class  sC    a1q!.NN00	r   c                     [        U5      S:X  a  US-   nUR                  US      US      US      R                  U5        g Nr~   )r   r   rx   r   r   r   r   s       r   r   TestMultiEdgeView.modify_edge  B    q6Q;DA	qtQqT1Q4 ''-r   c                     U R                  U R                  5      n[        S5       Vs/ s H
  o"US-   S4PM     nnUR                  SS5        [	        U5      n[	        U5      U:X  d   eg s  snf )Nr   rx   r   r~   r  )r   r   ri   insertr'   )r!   r   rI   replistr   s        r   r)   TestMultiEdgeView.test_str  s`    ZZ*/(3(Qq1ua=(3q)$'l2w#~~ 4s   A+c                 (   U R                   R                  5       nUR                  nSUR                  S   S'   US   SS0:X  d   e[        R                  " [
        R                  5         UR                  SS   S S S 5        g ! , (       d  f       g = f)Nr8   r   rx   r   r:   r   r;   )r   r1   r  r<   r=   r   r>   rY  s      r   r?   TestMultiEdgeView.test_getitem  sp    FFKKMWW"''{uen,,, ]]2++,GGAaL -,,s   *B
Bc                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )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-   TestMultiEdgeView.test_repr  1    ZZH 	 Bx3r   c                 h   U R                  U R                  5      n[        U5      [        U" SS95      :X  d   e[        U5      [        U" SSS95      :X  d   e[        U5      [        U" SS95      :w  d   e[        U5      [        U" SS95      :w  d   e[        U5      [        U" SS95      :w  d   eg )NTkeysFrC   r  rB   rx   r   r]  r_  s     r   rR   TestMultiEdgeView.test_call&  s    ZZ"vBDM****"vBE56666"vBEN++++"vBDM****"vBaL))))r   c                    U R                  U R                  5      n[        U5      [        UR                  5       5      :w  d   e[        U5      [        UR                  SSS95      :X  d   e[        U5      [        UR                  SS95      :w  d   e[        U5      [        UR                  SS95      :w  d   e[        U5      [        UR                  SS95      :w  d   eg )NFTr  r  rB   rx   r   rb  r_  s     r   rc  TestMultiEdgeView.test_data.  s    ZZ"vBGGI&&&"vBGGTG:;;;;"vBGGG/0000"vBGGG.////"vBGG1G-....r   c                     U R                  U R                  5      nU H  u  p#nM     [        U5      n[        U5      S:X  d   e[        U5      U:w  d   e[        U5      U:X  d   eg )Nr  r   )r!   r   r   r   kr   s         r   rM   TestMultiEdgeView.test_iter6  sb    ZZGA! 2hCyI%%%Bx2~~CyCr   c                    U R                   nU R                  U5      nU" SS9nU H  u  pEnM     WS:X  d   eU" SSSS9nU H  u  pEpgM     WS:X  d   eU R                  USSS	9  U" SSS
9nU H  n[        U5      S:X  d   e[	        SU5        [        US S 5      SS1:X  aA  [	        U R                   R                  S   S   5        US   S:X  d   eUS   SS0:X  d   eSn	Mu  [        US S 5      1 Sk:X  a  US   S:X  d   eUS   SS0:X  d   eSn
M  US   S:X  d   eUS   0 :X  a  M   e   W	(       d   eW
(       d   eU" SSSS9nU H  n[        US S 5      SS1:X  a  US   S:X  a  US   S:X  d   e[        US S 5      SS1:X  a  US   S:X  a  US   S:X  d   e[        US S 5      SS1:X  d  Mi  US   S:X  d   eUS   S:X  d   e[        U5      S:X  d   eSnM     W(       d   eU" SS9nU H  n[        U5      S:X  a  M   e   [        [        S5       Vs/ s H
  oUS-   S4PM     snS/-   5      n[        U5      U:X  d   eU" SSSSS9n[        R                  " [        5         U" SSSS5        S S S 5        [        R                  " [        5         U" SSSSS9  S S S 5        U HE  n[        US S 5      SS1:X  d  M  US   S;   d   eUS   S:X  a  US   S:X  d   eM:  US   S:X  a  ME   e   UR                  5       (       a  [        [        U5      5      S:X  d   eg [        [        U5      5      S:X  d   eg s  snf ! , (       d  f       N= f! , (       d  f       N= f)NTr  r   r:   rx   )r  rC   rr   )r~   r9   r   r8   r   )r  rC   r   zedge:r~   r9   r}   r   r  r   )r  rr   ry   >   r   r9   )r   r   r   r   printr   r   sortedri   r<   r=   r   r   rG   )r!   r   r   r   r   r   r  r   r   r   checked_multir   rH   elists                 r   test_iterkeysTestMultiEdgeView.test_iterkeys?  s   FFjjmd^GA! Avvd2KA! 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8x!AE1x8I;FGbzU"""T15]]9%tQ' &]]9%tQ/ &A1Ra5zaV#tv~%~Q419Q45=(=Q419$9  ==??tBx=A%%%tBx=A%%%% 9 &%%%s   M *M
M
M
M$c                     U R                  U R                  5      n1 Skn[        S5       Vs1 s H
  o3US-   S4iM     nnUR                  U5        UR                  S15        X-  U:X  d   eX!-  U:X  d   eg s  snf )N   r  r   r~   r   rx   r   r   r   rx   r   r  r{  r  s        r   r   TestMultiEdgeView.test_or  sx    ZZ6
).q2Aa!eQ-2j!yk"&(((&(((	 3s   A8c                    U R                  U R                  5      n1 Skn[        S5       Vs1 s H
  o3US-   S4iM     nnUR                  S5        UR	                  S15        X-
  (       d   U5       eX!-
  (       d   U5       eg s  snf )Nr  r   rx   r   r  r  )r   r   ri   r  r   r  s        r   r   TestMultiEdgeView.test_sub  sv    ZZ6
).q2Aa!eQ-2i yk"&&&&	 3s   Bc                    U R                  U R                  5      n1 SknU R                  R                  5       (       aI  [        SS5       Vs1 s H
  o3US-   S4iM     nnUR	                  1 Sk5        X-  U:X  d   eX!-  U:X  d   eg [        SS5       Vs1 s H
  o3US-   S4iM     nnUR	                  SS15        X-  U:X  d   eX!-  U:X  d   eg s  snf s  snf )Nr  rx   r   r   >   r  r  r  r  r  r  r  s        r   r   TestMultiEdgeView.test_xor  s    ZZ6
66-21a[9[!a%m[F9MM;<?f,,,?f,,,-21a[9[!a%m[F9MM9i01?f,,,?f,,, :
 :s   CCc                     U R                  U R                  5      n1 SknU R                  R                  5       (       a  X-  S1:X  d   eX!-  S1:X  d   eg X-  SS1:X  d   eX!-  SS1:X  d   eg )Nr  r  r  r   rw  s      r   r   TestMultiEdgeView.test_and  sz    ZZ6
66?yk111?yk111?y)&<<<<?y)&<<<<r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;   d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  rk  s      r   r   +TestMultiEdgeView.test_contains_with_nbunch  rn  r   rT   N)rU   rV   rW   rX   rY   r   r   r)   r?   r-   rR   rc  rM   r  r   r   r   r   r   rZ   rT   r   r   r  r    sW    1 1
.
*/ @&D)'-	=
!r   r  c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestOutMultiEdgeViewi  c                     [         R                  " S[         R                  " 5       5      U l        U R                  R	                  SSSSS9  [         R
                  R                  U l        g r  )r   r   r7  r   r  r   r8  r   r   s    r   r    TestOutMultiEdgeView.setup_class  sD    a!23q!.NN33	r   c                     [        U5      S:X  a  US-   nUR                  US      US      US      R                  U5        g r  r  r   s       r   r    TestOutMultiEdgeView.modify_edge  r  r   c                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )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-   TestOutMultiEdgeView.test_repr  s1    ZZI 	 Bx3r   c                     U R                  U R                  5      nU" SS/S9nSU;   d   eSU;  d   eSU;   d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  rk  s      r   r   .TestOutMultiEdgeView.test_contains_with_nbunch  r  r   rT   Nr3  rT   r   r   r  r    s#    4 4
.

!r   r  c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestInMultiEdgeViewi  c                     [         R                  " S[         R                  " 5       5      U l        U R                  R	                  SSSSS9  [         R
                  R                  U l        g r  )r   r   r7  r   r  r   rC  r   r   s    r   r   TestInMultiEdgeView.setup_class  sD    a!23q!.NN22	r   c                     [        U5      S:X  a  US-   nUR                  US      US      US      R                  U5        g r  r  r   s       r   r   TestInMultiEdgeView.modify_edge  r  r   c                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )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-   TestInMultiEdgeView.test_repr  r  r   c                     U R                  U R                  5      nU" SS/S9nSU;  d   eSU;   d   eSU;  d   eSU;  d   eSU;  d   eS	U;  d   eS
U;  d   eSU;  d   eg r   r  rk  s      r   r   -TestInMultiEdgeView.test_contains_with_nbunch  r  r   rT   Nr3  rT   r   r   r  r    s#    3 3
.

!r   r  c                       \ rS rSr\R
                  r\R                  R                  r	\
S 5       rS rS rS rS rS rS rS	 rS
 rSrg)TestDegreeViewi  c                     [         R                  " SU R                  5       5      U l        U R                  R	                  SSSS9  U R                  R	                  SSSS9  g )Nr   rx   r9   r~   r   )r   r   GRAPHr   r  r   s    r   r   TestDegreeView.setup_class  sF    a-q!#q!#r   c                     SS K nU R                  R                  nUR                  " UR                  " US5      5      n[        U5      [        U5      :X  d   eg r   )r   r   degreer   r   dict)r!   r   degpdegs       r   r#   TestDegreeView.test_pickle	  sA    ffmm||FLLb12CyDJ&&&r   c                     U R                  U R                  5      n[        / SQ5      n[        U5      U:X  d   eU R                  R                  5       n[        U5      U:X  d   eg )N)r   rx   r9   r~   r~   r9   r9   r   r~   r;   rx   dviewr   r'   r  r!   dvr   s      r   r)   TestDegreeView.test_str  N    ZZBC2w#~~VV]]_2w#~~r   c                 `    U R                  U R                  5      nSn[        U5      U:X  d   eg )Nz0DegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1}))r  r   r,   r  s      r   r-   TestDegreeView.test_repr  s)    ZZ@Bx3r   c                    U R                  U R                  5      nU H  u  p#M     [        U5      n[        U5      U:w  d   e[        U5      U:X  d   e[        U5      SUS   4:X  d   e[        U5      SUS   4:X  d   eU R                  U R                  SS9nU H  u  p#M     [        U5      n[        U5      U:w  d   e[        U5      U:X  d   e[        U5      SUS   4:X  d   e[        U5      SUS   4:X  d   eg )Nr   rx   r:   rP   )r  r   rE   rF   )r!   r  rI   rz   idvs        r   rM   TestDegreeView.test_iter  s   ZZDA 2hBx2~~CyCCyQ1J&&&CyQ1J&&&ZZuZ-DA 2hBx2~~CyCCyQ1J&&&CyQ1J&&&r   c                     U R                  U R                  5      nU" S5      nUS:X  d   eU" SS/5      n[        U5      SS/:X  d   eg )Nr   rx   r~   r9   r  r  r  r   r  r!   r  dvns      r   test_nbunchTestDegreeView.test_nbunch/  L    ZZeaxx!Qjc{vv....r   c                    U R                  U R                  5      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eU R                  U R                  SS9nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )Nr   rx   r9   r~   r:   r  r;   r  r   r!   r  s     r   r?   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                 $   U R                  U R                  5      nU" SSS9nUS:X  d   eU" SSS9nUS:X  d   eU" SS/SS9n[        U5      SS	/:X  d   e[        U" SS95      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )
Nr   r:   r  rx   r;   r~   r9   r  )r9   r;   r  r   r  r  r!   r  dvwdvds       r   test_weightTestDegreeView.test_weightB      ZZ5!axx5!axx!Q&c{vv....2U#$1v{{1v{{1v{{1v{{r   c                 \    U R                  U R                  5      n[        U5      S:X  d   eg )Nr   )r  r   r   r  s     r   r   TestDegreeView.test_lenP  s$    ZZ2w!||r   rT   N)rU   rV   rW   rX   r   Graphr  r   
DegreeViewr  rY   r   r#   r)   r-   rM   r  r?   r  r   rZ   rT   r   r   r  r    sT    HHENN%%E$ $
'
'&/
r   r  c                   ^    \ rS rSr\R
                  r\R                  R                  r	S r
Srg)TestDiDegreeViewiU  c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz2DiDegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1})r   r  r,   r  s      r   r-   TestDiDegreeView.test_reprY  s&    VV]]_BBx3r   rT   N)rU   rV   rW   rX   r   r  r  r   DiDegreeViewr  r-   rZ   rT   r   r   r  r  U  s    JJENN''Er   r  c                   v    \ rS rSr\R
                  r\R                  R                  r	S r
S rS rS rS rSrg)	TestOutDegreeViewi_  c                     U R                  U R                  5      n[        / SQ5      n[        U5      U:X  d   eU R                  R                  5       n[        U5      U:X  d   eg )N)r   r   r   r9   rx   r   rx   r;   r   r  r   r'   
out_degreer  s      r   r)   TestOutDegreeView.test_strc  Q    ZZBC2w#~~VV 2w#~~r   c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz3OutDegreeView({0: 1, 1: 2, 2: 1, 3: 1, 4: 1, 5: 0})r   r"  r,   r  s      r   r-   TestOutDegreeView.test_reprj  s)    VV CBx3r   c                     U R                  U R                  5      nU" S5      nUS:X  d   eU" SS/5      n[        U5      SS/:X  d   eg Nr   rx   r~   r9   r   r  r  r  s      r   r  TestOutDegreeView.test_nbuncho  r  r   c                    U R                  U R                  5      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eU R                  U R                  SS9nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg Nr   rx   r~   r9   r:   r  r   r  r  s     r   r?   TestOutDegreeView.test_getitemv  r  r   c                 $   U R                  U R                  5      nU" SSS9nUS:X  d   eU" SSS9nUS:X  d   eU" SS/SS9n[        U5      SS	/:X  d   e[        U" SS95      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )
Nr   r:   r  rx   r   r~   r9   r   r  r
  r  s       r   r  TestOutDegreeView.test_weight  r  r   rT   N)rU   rV   rW   rX   r   r  r  r   OutDegreeViewr  r)   r-   r  r?   r  rZ   rT   r   r   r  r  _  s3    JJENN((E
/
r   r  c                   v    \ rS rSr\R
                  r\R                  R                  r	S r
S rS rS rS rSrg)	TestInDegreeViewi  c                     U R                  U R                  5      n[        / SQ5      n[        U5      U:X  d   eU R                  R                  5       n[        U5      U:X  d   eg )N)r   r   rx   rx   r   r9   r~   r  r  r  r   r'   	in_degreer  s      r   r)   TestInDegreeView.test_str  Q    ZZBC2w#~~VV2w#~~r   c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz2InDegreeView({0: 0, 1: 1, 2: 1, 3: 2, 4: 1, 5: 1})r   r8  r,   r  s      r   r-   TestInDegreeView.test_repr  s)    VVBBx3r   c                     U R                  U R                  5      nU" S5      nUS:X  d   eU" SS/5      n[        U5      SS/:X  d   eg )Nr   r~   r9   r   r6  r  r  s      r   r  TestInDegreeView.test_nbunch  r  r   c                    U R                  U R                  5      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eU R                  U R                  SS9nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg r,  r  r  s     r   r?   TestInDegreeView.test_getitem  r  r   c                 $   U R                  U R                  5      nU" SSS9nUS:X  d   eU" SSS9nUS:X  d   eU" SS/SS9n[        U5      SS/:X  d   e[        U" SS95      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S	:X  d   eg )
Nr   r:   r  rx   r~   r9   r   r   r   r
  r  s       r   r  TestInDegreeView.test_weight  r  r   rT   N)rU   rV   rW   rX   r   r  r  r   InDegreeViewr  r)   r-   r  r?   r  rZ   rT   r   r   r2  r2    s3    JJENN''E
/
r   r2  c                   v    \ rS rSr\R
                  r\R                  R                  r	S r
S rS rS rS rSrg)	TestMultiDegreeViewi  c                     U R                  U R                  5      n[        / SQ5      n[        U5      U:X  d   eU R                  R                  5       n[        U5      U:X  d   eg )N)r   r   r  r   r  r  r  r  s      r   r)   TestMultiDegreeView.test_str  r  r   c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz5MultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r  r  s      r   r-   TestMultiDegreeView.test_repr  s&    VV]]_EBx3r   c                     U R                  U R                  5      nU" S5      nUS:X  d   eU" SS/5      n[        U5      SS/:X  d   eg )Nr   rx   r~   r9   r  r   r  r  s      r   r  TestMultiDegreeView.test_nbunch  r  r   c                    U R                  U R                  5      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eU R                  U R                  SS9nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )	Nr   rx   r   r~   r9   r:   r  r0   r  r  s     r   r?    TestMultiDegreeView.test_getitem  r  r   c                 $   U R                  U R                  5      nU" SSS9nUS:X  d   eU" SSS9nUS:X  d   eU" SS/SS9n[        U5      SS	/:X  d   e[        U" SS95      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )
Nr   r:   r  rx   r0   r~   r9   r  )r9   r0   r
  r  s       r   r  TestMultiDegreeView.test_weight  r  r   rT   N)rU   rV   rW   rX   r   r)  r  r   MultiDegreeViewr  r)   r-   r  r?   r  rZ   rT   r   r   rF  rF    s3    MMENN**E
/
r   rF  c                   ^    \ rS rSr\R
                  r\R                  R                  r	S r
Srg)TestDiMultiDegreeViewi  c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz7DiMultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r  r  s      r   r-   TestDiMultiDegreeView.test_repr  s&    VV]]_GBx3r   rT   N)rU   rV   rW   rX   r   r7  r  r   DiMultiDegreeViewr  r-   rZ   rT   r   r   rS  rS    s    OOENN,,Er   rS  c                   v    \ rS rSr\R
                  r\R                  R                  r	S r
S rS rS rS rSrg)	TestOutMultiDegreeViewi  c                     U R                  U R                  5      n[        / SQ5      n[        U5      U:X  d   eU R                  R                  5       n[        U5      U:X  d   eg )N)r   r  r   r  r  r   r!  r  s      r   r)   TestOutMultiDegreeView.test_str  r$  r   c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz8OutMultiDegreeView({0: 1, 1: 3, 2: 1, 3: 1, 4: 1, 5: 0})r&  r  s      r   r-    TestOutMultiDegreeView.test_repr
  s)    VV HBx3r   c                     U R                  U R                  5      nU" S5      nUS:X  d   eU" SS/5      n[        U5      SS/:X  d   eg r)  r  r  s      r   r  "TestOutMultiDegreeView.test_nbunch  r  r   c                    U R                  U R                  5      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eU R                  U R                  SS9nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )Nr   rx   r9   r~   r:   r  r   r  r  s     r   r?   #TestOutMultiDegreeView.test_getitem  r  r   c                 $   U R                  U R                  5      nU" SSS9nUS:X  d   eU" SSS9nUS:X  d   eU" SS/SS9n[        U5      SS	/:X  d   e[        U" SS95      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )
Nr   r:   r  rx   r   r~   r9   r   r  r
  r  s       r   r  "TestOutMultiDegreeView.test_weight"  r  r   rT   N)rU   rV   rW   rX   r   r7  r  r   OutMultiDegreeViewr  r)   r-   r  r?   r  rZ   rT   r   r   rX  rX    s3    OOENN--E
/
r   rX  c                   v    \ rS rSr\R
                  r\R                  R                  r	S r
S rS rS rS rSrg)	TestInMultiDegreeViewi1  c                     U R                  U R                  5      n[        / SQ5      n[        U5      U:X  d   eU R                  R                  5       n[        U5      U:X  d   eg )N)r4  r5  r   r  r  r  r7  r  s      r   r)   TestInMultiDegreeView.test_str5  r:  r   c                 ^    U R                   R                  5       nSn[        U5      U:X  d   eg )Nz7InMultiDegreeView({0: 0, 1: 1, 2: 1, 3: 3, 4: 1, 5: 1})r<  r  s      r   r-   TestInMultiDegreeView.test_repr<  s)    VVGBx3r   c                     U R                  U R                  5      nU" S5      nUS:X  d   eU" SS/5      n[        U5      SS/:X  d   eg )Nr   r~   r9   r   r  r  r  s      r   r  !TestInMultiDegreeView.test_nbunchA  r  r   c                    U R                  U R                  5      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eU R                  U R                  SS9nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eg )Nr   rx   r~   r9   r:   r  r   r  r  s     r   r?   "TestInMultiDegreeView.test_getitemH  r  r   c                 $   U R                  U R                  5      nU" SSS9nUS:X  d   eU" SSS9nUS:X  d   eU" SS/SS9n[        U5      SS/:X  d   e[        U" SS95      nUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S	:X  d   eg )
Nr   r:   r  rx   r~   r9   r   )r9   r   r   r
  r  s       r   r  !TestInMultiDegreeView.test_weightT  r  r   rT   N)rU   rV   rW   rX   r   r7  r  r   InMultiDegreeViewr  r)   r-   r  r?   r  rZ   rT   r   r   re  re  1  s3    OOENN,,E
/
r   re  )
reportviewerr_msg_termszlist(G.nodeszlist(G.nodes.datazlist(G.edgeszlist(G.in_edgesc                 4   [         R                  " S5      nU " U5      n[        R                  " [         R                  5       nUSS   S S S 5        [        WR                  5      n[        U5      R                  U;   d   eX;   d   eg ! , (       d  f       NF= f)Nr9   r   r~   )	r   complete_graphr<   r=   r>   r'   valuetyperU   )rq  rr  r   viewexcerrmsgs         r   test_slicing_reportviewsrz  c  sy      	!Aa=D	r''	(CQq	 
)^F:&((("""	 
)	(s   B		
Bgraphc                    [         R                  " SU " 5       5      nUR                  UR                  UR                  UR
                  4  UR                  5       (       aD  UR                  UR                  UR                  UR                  UR                  UR                  4  UR                  nSU;   d   eSU;   d   eSU;   d   eSU;   d   eUR                  5       (       a0  SU;   d   eSU;   d   eSU;   d   eS	U;   d   eS
U;   d   eSU;   d   e[        R                  " [        R                   " US5      5        [#        U5        g )Nr;   r   r  adjr  predsuccin_edges	out_edgesr8  r"  r   )r   r   r   r  r}  r  r   r~  r  r  r  r8  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                      S [        [        R                  5       5       n U  HF  n[        [	        [        R                  U5      [        R                  R
                  5      (       a  MF   e   g )Nc              3   6   #    U  H  nS U;   d  M  Uv   M     g7f)EdgeNrT   ).0r   s     r   	<genexpr>;test_edge_views_inherit_from_EdgeViewABC.<locals>.<genexpr>  s     K(;1v{QQ(;s   
	)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   r1   r   r<   networkxr   networkx.classesr   rvnetworkx.classes.reportviewsr   r   r\   r   r   r   r   r   r
  r  r'  r5  rA  rJ  r  r  r  r  r  r  r  r  r2  rF  rS  rX  re  markparametrizeNodeViewr   r  r  r*  rC  r8  rz  r  r  r)  r7  r  r  rT   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   