
    fit                     >   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j%        &                    d8ej'        d9fej
        d:fej(        d;fej)        d<fej*        d;fej+        d;fej,        d<fej-        d;ff          d=             Z.ej%        &                    d>ej/        ej0        ej1        ej2        g          d?             Z3d@ Z4dS )A    N)deepcopy)reportviews)NodeDataViewc                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
TestNodeViewc                 Z    t          j        d          | _        | j        j        | _        d S N	   nx
path_graphGnodesnvclss    /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/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 d S Nr   pickler   loadsdumps	__slots__selfr   r   pnvs       r   test_picklezTestNodeView.test_pickle   Y    Wfl<6<B//00Syyyy|s},,,,,,r   c                 :    t          | j                  dk    sJ d S )Nz[0, 1, 2, 3, 4, 5, 6, 7, 8])strr   r   s    r   test_strzTestNodeView.test_str   s"    47||<<<<<<<r   c                 :    t          | j                  dk    sJ d S )Nz%NodeView((0, 1, 2, 3, 4, 5, 6, 7, 8)))reprr   r%   s    r   	test_reprzTestNodeView.test_repr   s"    DG}} GGGGGGGr   c                     | j                                         }|j        }d|v sJ d|vsJ |                    d           |                    d           d|vsJ d|v sJ d S )N   r
   )r   copyr   remove_nodeadd_noder   r   r   s      r   test_containszTestNodeView.test_contains    sq    FKKMMWBwwww{{{{	a	

1{{{{Bwwwwwwr   c                 .   | 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            d S # 1 swxY w Y   d S )Nbar   foor+   r      )r   r,   r   pytestraisesr   NetworkXErrorr/   s      r   test_getitemzTestNodeView.test_getitem*   s    FKKMMW!
5!u{{{{!u&&&&]2+,, 	 	GAaCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   -B

BBc                    | j         }t          |          D ]\  }}||k    sJ t          |          }t          |          dk    sJ t          |          |k    sJ t          |          |k    sJ t          |          }t          |           t	          |          t	          |          k    sJ  |d          }t          |          D ]\  }}||k    sJ d S )Nr   Fdata)r   	enumerateiternextlist)r   r   ininvinv2nnvs          r   	test_iterzTestNodeView.test_iter4   s    WbMM 	 	DAq666662hhCyyA~~~~Bxx2~~~~CyyCBxxT


CyyDJJ&&&&bennncNN 	 	DAq66666	 	r   c                 p    | j         }| |            u sJ | |d          usJ | |d          usJ d S )NTr;   weight)r   r   r   s     r   	test_callzTestNodeView.test_callD   sb    EEt,,,,,,,EEx000000000r   N)__name__
__module____qualname__classmethodr   r!   r&   r)   r0   r9   rF   rJ    r   r   r   r      s          [- - -= = =H H H       1 1 1 1 1r   r   c                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
TestNodeDataViewc                     t          j        d          | _        t          | j                  | _        | j        j                            d          | _        | j        j                            d          | _        d S )Nr
   Tr4   )	r   r   r   r   r   r   r<   ndvnwvr   s    r   r   zTestNodeDataView.setup_classL   sZ    a  ce$$%+""4((%+""5))r   c                 j    | j         j        }|                    d          }||u sJ || j        usJ d S )NF)r   r   r<   rS   )r   r   ndvfalses      r   test_viewtypezTestNodeDataView.test_viewtypeS   s@    V\775>>X~~~~!!!!!!r   c                     dd l }| j        } |j         |j        |d                    }||k    sJ |j        |j        k    sJ d S r   r   r   s       r   r!   zTestNodeDataView.test_pickleY   r"   r   c                     t          d t          d          D                       }t          | j                  |k    sJ d S )Nc                     g | ]}|i fS rO   rO   .0rB   s     r   
<listcomp>z-TestNodeDataView.test_str.<locals>.<listcomp>b   s    ---qAr7---r   r
   )r$   rangerS   )r   msgs     r   r&   zTestNodeDataView.test_stra   sC    --E!HH---..48}}######r   c                     d}t          | j                  |k    sJ d}t          | j                  |k    sJ d}t          | j                  |k    sJ d S )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   sq    >DG}}((((4 	 DH~~))))A 	 DH~~))))))r   c                 @   | 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 |                    dd          }d	|v sJ d|v sJ d S )
Nr4   r2   r3   r+   )r3   r2   )r+   Nbizr<   default)r+   rc   )r   r,   r   r<   )r   r   r   rT   nwv_defs        r   r0   zTestNodeDataView.test_containss   s    FKKMMW\\^^gll5!!!
52w"}}}}E5>"b((((S    C''ue'44W$$$$W$$$$$$r   c                    | j                                         }|j        }d|j        d         d<   |d         ddik    sJ |                    dd          }|d         s
J d            |d         dk    sJ t          j        t
          j                  5  |j                                        dd          d d d            d S # 1 swxY w Y   d S )	Nr2   r3   r4   rc   rd   r+   r   r5   )r   r,   r   r6   r7   r   r8   r<   )r   r   r   rf   s       r   r9   zTestNodeDataView.test_getitem   s   FKKMMW!
5!u&&&&''ue'44qz  5   qzU""""]2+,, 	  	 GLLNN1Q3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   "CC	C	c                    | j                                         }|j                                        }|j                            d          }|j                            d          }t	          |          D ]\  }\  }}||k    sJ |i k    sJ t          |          }t          |          di fk    sJ d|j        d         d<   |D ]\  }}|dk    r|ddik    sJ |i k    sJ |D ]\  }}|dk    r|ddik    sJ |i k    sJ |D ]\  }}|dk    r	|dk    sJ |J |j                            dd          D ]\  }}|dk    r	|dk    sJ |dk    sJ d S )NTr4   r   r2   r3      re   )r   r,   r   r<   r=   r>   r?   )	r   r   r   rS   rT   rA   rB   drC   s	            r   rF   zTestNodeDataView.test_iter   s   FKKMMW\\^^gll4  gll5!!"2 	 	IAv16666777772hhCyyQG####!
5 	 	DAqAvvUEN*****Bwwwww 	 	DAqAvvUEN*****Bwwwww 	! 	!DAqAvvEzzzzzyyyyGLLL22 	 	DAqAvvEzzzzzAvvvvv		 	r   N)rK   rL   rM   rN   r   rW   r!   r&   r)   r0   r9   rF   rO   r   r   rQ   rQ   K   s        * * [*" " "- - -$ $ $* * *% % %     " " " " "r   rQ   c                     t          j        d          } d| j        d         d<   | j                                        g}|                    | j                            d                     |                                 }h d|j        d         d<   |                    |j                            d                     |D ]O}t          j        t          t          |           t          j        t          t          dt                                 P| j                            d	          }t          |           ||z   | j                            d          }t          |           ||z   d S )
Nr
   r2   r3   r4   T   ri      r3      znv | nvF)r   r   r   r<   appendr,   r6   r7   	TypeErrorsetevallocals)r   nvsHr   Gns        r   test_nodedataview_unhashablerx      s&   
aAAGAJu7<<>>
CJJqw||D!!"""	A!		AGAJuJJqw||D!!""" < <ib)))iy&((;;;;	
e		BGGGGG	
e		BGGGGGGGr   c                   H    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
dS )	TestNodeViewSetOpsc                     t          j        d          | _        d| j        j        d         d<   | j        j        | _        d S Nr
   r2   r3   r4   r   r   s    r   r   zTestNodeViewSetOps.setup_class   s4    a   %Aur   c                      t          |          S )N)rr   rI   s     r   n_itszTestNodeViewSetOps.n_its   s    5zzr   c                    | j                                         }|j        }t          |          dk    sJ |                    d           t          |          dk    sJ |                    d           t          |          dk    sJ d S )Nr
   r+      )r   r,   r   lenr-   r.   r/   s      r   test_lenzTestNodeViewSetOps.test_len   sv    FKKMMW2ww!||||	a2ww!||||	

12ww!||||||r   c                 
   | j         }|                     t          dd                    }||z  |                     t          dd                    k    sJ ||z  |                     t          dd                    k    sJ d S Nr5      r
   r   r~   r^   r   r   
some_nodess      r   test_andzTestNodeViewSetOps.test_and   sz    WZZa--
J$**U1a[["9"99999B$**U1a[["9"9999999r   c                    | j         }|                     t          dd                    }||z  |                     t          d                    k    sJ ||z  |                     t          d                    k    sJ d S )Nr5   r   r   r   s      r   test_orzTestNodeViewSetOps.test_or   sv    WZZa--
J$**U2YY"7"77777B$**U2YY"7"7777777r   c                     | j         }|                     t          dd                    }h d}||z  |                     |          k    sJ ||z  |                     |          k    sJ d S )Nr5   r   >   r   ri   rn   r3   ro   r
   
      r   )r   r   r   r   s       r   test_xorzTestNodeViewSetOps.test_xor   su    WZZa--
***J$**U"3"33333B$**U"3"3333333r   c                    | j         }|                     t          dd                    }||z
  |                     t          d                    k    sJ ||z
  |                     t          dd                    k    sJ d S r   r   r   s      r   test_subzTestNodeViewSetOps.test_sub   sx    WZZa--
J$**U1XX"6"66666B$**U1b\\":":::::::r   N)rK   rL   rM   rN   r   r~   r   r   r   r   r   rO   r   r   rz   rz      s          [
    : : :8 8 84 4 4; ; ; ; ;r   rz   c                   *    e Zd Zed             Zd ZdS )TestNodeDataViewSetOpsc                     t          j        d          | _        d| j        j        d         d<   | j        j                            d          | _        d S r|   r   r   r   r   r<   r   r   s    r   r   z"TestNodeDataViewSetOps.setup_class   sB    a   %Au!!%((r   c                     d |D             S )Nc                 &    h | ]}||d k    rdndfS )r3   r2   NrO   r\   nodes     r   	<setcomp>z/TestNodeDataViewSetOps.n_its.<locals>.<setcomp>   s)    GGG		uut4GGGr   rO   rI   s     r   r~   zTestNodeDataViewSetOps.n_its   s    GGGGGGr   NrK   rL   rM   rN   r   r~   rO   r   r   r   r      sA        ) ) [)
H H H H Hr   r   c                   *    e Zd Zed             Zd ZdS )TestNodeDataViewDefaultSetOpsc                     t          j        d          | _        d| j        j        d         d<   | j        j                            dd          | _        d S )Nr
   r2   r3   r4   ri   rj   r   r   s    r   r   z)TestNodeDataViewDefaultSetOps.setup_class  sG    a   %Au!!%!33r   c                     d |D             S )Nc                 &    h | ]}||d k    rdndfS )r3   r2   ri   rO   r   s     r   r   z6TestNodeDataViewDefaultSetOps.n_its.<locals>.<setcomp>  s)    DDDd		uuq1DDDr   rO   rI   s     r   r~   z#TestNodeDataViewDefaultSetOps.n_its  s    DDeDDDDr   Nr   rO   r   r   r   r      sA        4 4 [4
E E E E Er   r   c                   Z    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S )TestEdgeDataViewc                 d    t          j        d          | _        t           j        j        | _        d S r	   r   r   r   r   EdgeVieweviewr   s    r   r   zTestEdgeDataView.setup_class  #    a  N+			r   c                     dd l } |                     | j                  d          } |j         |j        |d                    }t          |          t          |          k    sJ |j        |j        k    sJ d S )Nr   Tr;   r   )r   r   r   r   r   r@   r   r   r   evpevs       r   r!   zTestEdgeDataView.test_pickle  s    TZZT***fl<6<B//00Bxx499$$$$|s},,,,,,r   c                 j    |j         |d                  |d                                      |           d S Nr   ri   _adjupdater   r   ekwdss       r   modify_edgezTestEdgeDataView.modify_edge  /    	qtQqT!!$'''''r   c                      |                      | j                  d          }t          d t          d          D                       }t          |          |k    sJ d S )NTr;   c                     g | ]
}||d z   i fS ri   rO   r[   s     r   r]   z-TestEdgeDataView.test_str.<locals>.<listcomp>  s"    444aAq1ub>444r   r   r   r   r$   r^   r   r   reps      r   r&   zTestEdgeDataView.test_str  s[    TZZT***44588444552ww#~~~~~~r   c                 |     |                      | j                  d          }d}t          |          |k    sJ d S )NTr;   znEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r(   r   s      r   r)   zTestEdgeDataView.test_repr"  E    TZZT***) 	 Bxx3r   c                 t   | j                                         }|                     |          } |d          } |dd          }|D ]\  }}}|i k    sJ |D ]\  }}}|dk    sJ |                     |dd           |D ]U}	t	          |	          d	k    sJ t          |	d d
                   d
d	hk    r|	d
         ddik    sJ d}
G|	d
         i k    sJ V|
sJ |D ]S}	t	          |	          d	k    sJ t          |	d d
                   d
d	hk    r|	d
         dk    sJ d}E|	d
         dk    sJ T|sJ d S )NTr;   r4   ri   rd   rn   r3   r2   r4   r3   rn   )r   r,   r   r   r   rr   )r   r   evrr   ev_defuvrk   wtr   checked
checked_wts               r   test_iterdatazTestEdgeDataView.test_iterdata,  s   FKKMMjjmmSd^^^%+++ 	 	GAq!Bwwww 	 	HAq"QwwwwF... 	" 	"Aq66Q;;;;1RaR5zzaV##tu~----trzzzzz 	! 	!Aq66Q;;;;1RaR5zzaV##tu}}}}!

tqyyyyyr   c                     |                      | j                  } |            }|D ]\  }}t          |          }t          |          dk    sJ t          |          |k    sJ t          |          |k    sJ d S Nr   ri   r   r   r>   r?   )r   r   r   r   r   ievs         r   rF   zTestEdgeDataView.test_iterM  s    jj  SUU 	 	DAq2hhCyyF""""Bxx2~~~~CyyCr   c                     |                      | j                  } |            }| j                                        rd|v rd|vsJ n
d|v rd|v sJ d|vsJ d|vsJ d|vsJ d S Nri   rn   rn   ri   ri   ro   )ri   Z   )r   ri   r   r   is_directedr   r   r   s      r   r0   zTestEdgeDataView.test_containsW  s    jj  SUU6 	1R<<F"$4$4$4$4$4R<<FbLLLLRb    b      r   c                    |                      | j                  } |ddg          }| j                                        rd|v sJ d|vsJ d|v sJ n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 S Nr   rn   nbunchr   r   r   r3   ro   )ro   r5   )r5      )r+   r   )r   r
   r   r   s      r   test_contains_with_nbunchz*TestEdgeDataView.test_contains_with_nbunchb  s    jj  SA6 	 R<<<<####R<<<<<R<<<<R<<<<R<<<<RRRRRr   c                    |                      | j                  } |d          }t          |          dk    sJ t           |d                    dk    sJ t           |g d                    dk    sJ t          | j                            d                    dk    sJ t          | j                                                  dk    sJ t          | j        j                  dk    sJ | j                                        }|                    dd           t          |                    d                    dk    sJ t          |                                          d	k    sJ t          |j                  d	k    sJ d S )
Nr4   r;   r   ri   rn   ri   rn   r3   ro   r3   r
   r   r   r   edgesr,   add_edger   r   r   rv   s       r   r   zTestEdgeDataView.test_lens  b   jj  Se___2ww!||||33q66{{a33yyy>>""a''''46<<??##q((((46<<>>""a''''46<  A%%%%FKKMM	

1a1771::!####17799~~""""17||q      r   N)rK   rL   rM   rN   r   r!   r   r&   r)   r   rF   r0   r   r   rO   r   r   r   r     s        , , [,- - -( ( (  
    B     	! 	! 	!     "! ! ! ! !r   r   c                   6    e Zd Zed             Zd Zd Zd ZdS )TestOutEdgeDataViewc                     t          j        dt          j                              | _        t           j        j        | _        d S Nr
   )create_usingr   r   DiGraphr   r   OutEdgeViewr   r   s    r   r   zTestOutEdgeDataView.setup_class  s.    abjll;;;N.			r   c                 |     |                      | j                  d          }d}t          |          |k    sJ d S )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                  } |d          }t          |          dk    sJ t           |d                    dk    sJ t           |g d                    dk    sJ t          | j                            d                    dk    sJ t          | j                                                  dk    sJ t          | j        j                  dk    sJ | j                                        }|                    dd           t          |                    d                    dk    sJ t          |                                          dk    sJ t          |j                  dk    sJ d S )	Nr4   r;   r   ri   r   r3   rn   r
   r   r   s       r   r   zTestOutEdgeDataView.test_len  r   r   c                     |                      | 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 d S r   r   r   r   s      r   r   z-TestOutEdgeDataView.test_contains_with_nbunch      jj  SA||||R||||RRRRRr   N)rK   rL   rM   rN   r   r)   r   r   rO   r   r   r   r     sZ        / / [/  ! ! !"
  
  
  
  
 r   r   c                   0    e Zd Zed             Zd Zd ZdS )TestInEdgeDataViewc                     t          j        dt          j                              | _        t           j        j        | _        d S r   r   r   r   r   r   
InEdgeViewr   r   s    r   r   zTestInEdgeDataView.setup_class  s.    abjll;;;N-			r   c                 |     |                      | j                  d          }d}t          |          |k    sJ d S )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                  } |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 d S r   r   r   s      r   r   z,TestInEdgeDataView.test_contains_with_nbunch      jj  SAR||||RRRRRRr   NrK   rL   rM   rN   r   r)   r   rO   r   r   r   r     sK        . . [.  
  
  
  
  
 r   r   c                   6    e Zd Zed             Zd Zd Zd ZdS )TestMultiEdgeDataViewc                     t          j        dt          j                              | _        t           j        j        | _        d S r   )r   r   
MultiGraphr   r   MultiEdgeViewr   r   s    r   r   z!TestMultiEdgeDataView.setup_class  s.    abmoo>>>N0			r   c                 v    |j         |d                  |d                  d                             |           d S r   r   r   s       r   r   z!TestMultiEdgeDataView.modify_edge  4    	qtQqT1$$T*****r   c                 |     |                      | j                  d          }d}t          |          |k    sJ d S )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                  } |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 d S r   r   r   s      r   r   z/TestMultiEdgeDataView.test_contains_with_nbunch  s    jj  SA||||||||||||RRRRRr   NrK   rL   rM   rN   r   r   r)   r   rO   r   r   r   r     sZ        1 1 [1+ + +  
  
  
  
  
 r   r   c                   6    e Zd Zed             Zd Zd Zd ZdS )TestOutMultiEdgeDataViewc                     t          j        dt          j                              | _        t           j        j        | _        d S r   )r   r   MultiDiGraphr   r   OutMultiEdgeViewr   r   s    r   r   z$TestOutMultiEdgeDataView.setup_class  s0    abo.?.?@@@N3			r   c                 v    |j         |d                  |d                  d                             |           d S r   r   r   s       r   r   z$TestOutMultiEdgeDataView.modify_edge  r  r   c                 |     |                      | j                  d          }d}t          |          |k    sJ d S )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                  } |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 d S r   r   r   s      r   r   z2TestOutMultiEdgeDataView.test_contains_with_nbunch  r   r   Nr  rO   r   r   r  r    sZ        4 4 [4+ + +  
  
  
  
  
 r   r  c                   0    e Zd Zed             Zd Zd ZdS )TestInMultiEdgeDataViewc                     t          j        dt          j                              | _        t           j        j        | _        d S r   )r   r   r	  r   r   InMultiEdgeViewr   r   s    r   r   z#TestInMultiEdgeDataView.setup_class  s0    abo.?.?@@@N2			r   c                 |     |                      | j                  d          }d}t          |          |k    sJ d S )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                  } |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 d S r   r   r   s      r   r   z1TestInMultiEdgeDataView.test_contains_with_nbunch   r   r   Nr   rO   r   r   r  r    sK        3 3 [3  
  
  
  
  
 r   r  c                   ~    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dS )TestEdgeViewc                 d    t          j        d          | _        t           j        j        | _        d S r	   r   r   s    r   r   zTestEdgeView.setup_class/  r   r   c                     dd l }|                     | j                  } |j         |j        |d                    }||k    sJ |j        |j        k    sJ d S r   )r   r   r   r   r   r   r   s       r   r!   zTestEdgeView.test_pickle4  se    ZZfl<6<B//00Syyyy|s},,,,,,r   c                 j    |j         |d                  |d                                      |           d S r   r   r   s       r   r   zTestEdgeView.modify_edge<  r   r   c                     |                      | j                  }t          d t          d          D                       }t          |          |k    sJ d S )Nc                     g | ]	}||d z   f
S r   rO   r[   s     r   r]   z)TestEdgeView.test_str.<locals>.<listcomp>A       000!Aq1u:000r   r   r   r   s      r   r&   zTestEdgeView.test_str?  sN    ZZ00uQxx000112ww#~~~~~~r   c                 h    |                      | j                  }d}t          |          |k    sJ d S )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_reprD  8    ZZ1 	 Bxx3r   c                    | 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            n# 1 swxY w Y   t          j        t          d          5  |j        d	          d d d            d S # 1 swxY w Y   d S )
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_getitemL  sG   FKKMMW$e$xE5>)))) ]2+3OPPP 	 	GAaCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]8+JKKK 	 	GDMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   !A==BB#B>>CCc                    |                      | j                  }t          |          t           |                      k    sJ t          |          t           |d                    k    sJ t          |          t           |d                    k    sJ t          |          t           |d                    k    sJ d S NFr;   Tri   r   r   r   idr   r   s     r   rJ   zTestEdgeView.test_callZ  s    ZZ"vvBBDD!!!!"vvBBENNN++++++"vvBBDMMM******"vvBBaLLL))))))))r   c                    |                      | j                  }t          |          t          |                                          k    sJ t          |          t          |                    d                    k    sJ t          |          t          |                    d                    k    sJ t          |          t          |                    d                    k    sJ d S r#  r   r   r%  r<   r&  s     r   	test_datazTestEdgeView.test_dataa  s    ZZ"vvBGGII&&&&"vvBGGG//000000"vvBGGG..//////"vvBGG1G--........r   c                     |                      | j                  }|D ]\  }}t          |          }t          |          dk    sJ t          |          |k    sJ t          |          |k    sJ d S r   r   )r   r   r   r   r   s        r   rF   zTestEdgeView.test_iterh  s}    ZZ 	 	DAq2hhCyyF""""Bxx2~~~~CyyCr   c                    |                      | j                  } |            }| j                                        rd|v rd|vsJ d|v rd|vsJ n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 d S r   r   )r   r   edvs      r   r0   zTestEdgeView.test_containsq  s   ZZbdd6 	3R<<F"$4$4$4$4S==V3%6%6%6%6%6R<<FbLLLLS==Vs]]]]RS    b    b    c!!!!c!!!!!!r   c                     |                      | 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 d S r   r   r   r   evns      r   r   z&TestEdgeView.test_contains_with_nbunch      ZZbA}}}}}}}}}}}}S    S    S    S    S      r   c                 .   |                      | j                  }| j                                        rdnd}t          |          |k    sJ | j                                        }|                    dd           t          |                    d                    d|                                z   |                                z
  k    sJ t          |                                          |dz   k    sJ t          |j                  |dz   k    sJ d S )Nr
   r   ri   r3   )r   r   is_multigraphr   r,   r   r   r   )r   r   num_edrv   s       r   r   zTestEdgeView.test_len  s    ZZf**,,3!2ww&    FKKMM	

1a1771::!aoo&7&7"7!--//"IIIII17799~~!++++17||vz))))))r   c                     |                      | j                  }h d}| j                                        r!||z  sJ dh            ||z  sJ dh            n||z  ddhk    sJ ||z  ddhk    sJ d S )N   r   r   rn   ri   r   r   r7  r   r   r   
some_edgess      r   r   zTestEdgeView.test_and  s    ZZ---
6 	7?,,VH,,,
?,,VH,,,,
?vv&66666?vv&66666r   c                 &   |                      | j                  }h d}d t          d          D             }|                    |           d t          d          D             }|                    |           ||z  ||fv sJ ||z  ||fv sJ d S )Nr5  c                     h | ]	}||d z   f
S r   rO   r[   s     r   r   z'TestEdgeView.test_or.<locals>.<setcomp>  r  r   r   c                     h | ]	}|d z   |f
S r   rO   r[   s     r   r   z'TestEdgeView.test_or.<locals>.<setcomp>  s     000!AE1:000r   r   r   r^   r   )r   r   r9  result1result2s        r   r   zTestEdgeView.test_or  s    ZZ---
00uQxx000z"""00uQxx000z"""ZWg$66666RWg$6666666r   c                 d   |                      | j                  }h d}| j                                        r=d t          dd          D             }|                    ddh           ||z  |k    sJ n;d t          dd          D             }|                    dh           ||z  |k    sJ d S )Nr5  c                     h | ]	}||d z   f
S r   rO   r[   s     r   r   z(TestEdgeView.test_xor.<locals>.<setcomp>       666Qq!a%j666r   ri   r   r7  r6  c                     h | ]	}||d z   f
S r   rO   r[   s     r   r   z(TestEdgeView.test_xor.<locals>.<setcomp>  rB  r   r   r   r   r^   r   r   r   r9  results       r   r   zTestEdgeView.test_xor  s    ZZ---
6 	-66%1++666FMM66*+++
?f,,,,,66%1++666FMM6(###
?f,,,,r   c                     |                      | j                  }h d}d t          d          D             }|                    d           ||z
  s
J |            d S )Nr5  c                     h | ]	}||d z   f
S r   rO   r[   s     r   r   z(TestEdgeView.test_sub.<locals>.<setcomp>  s     ///1a!e*///r   r   r   )r   r   r^   removerE  s       r   r   zTestEdgeView.test_sub  si    ZZ---
//eAhh///fJ&&&&&&&r   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  .  s       , , [,- - -( ( (  
    * * */ / /     " " ""
! 
! 
!	* 	* 	*	 	 	7 7 7  ' ' ' ' 'r   r  c                   0    e Zd Zed             Zd Zd ZdS )TestOutEdgeViewc                     t          j        dt          j                              | _        t           j        j        | _        d S r	   r   r   s    r   r   zTestOutEdgeView.setup_class  s+    a..N.			r   c                 h    |                      | j                  }d}t          |          |k    sJ d S )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                  } |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 d S r   r   r.  s      r   r   z)TestOutEdgeView.test_contains_with_nbunch      ZZbA}}}}S    }}}}S    S    S    S    S      r   Nr   rO   r   r   rK  rK    sK        / / [/  
! 
! 
! 
! 
!r   rK  c                   0    e Zd Zed             Zd Zd ZdS )TestInEdgeViewc                     t          j        dt          j                              | _        t           j        j        | _        d S r	   r   r   s    r   r   zTestInEdgeView.setup_class  s+    a..N-			r   c                 h    |                      | j                  }d}t          |          |k    sJ d S )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                  } |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 d S r   r   r.  s      r   r   z(TestInEdgeView.test_contains_with_nbunch      ZZbAS    }}}}S    S    S    S    S    S      r   Nr   rO   r   r   rQ  rQ    sK        . . [.  
! 
! 
! 
! 
!r   rQ  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d Zd Zd Zd ZdS )TestMultiEdgeViewc                     t          j        dt          j                              | _        | j                            dddd           t           j        j        | _        d S Nr
   ri   rn   r3   r2   )keyr4   )r   r   r   r   r   r   r   r   r   s    r   r   zTestMultiEdgeView.setup_class  sG    a11q!...N0			r   c                     t          |          dk    r|dz   }|j        |d                  |d                  |d                                      |           d S Nrn   )r   r   ri   r   r   r   r   s       r   r   zTestMultiEdgeView.modify_edge   P    q66Q;;DA	qtQqT1Q4 ''-----r   c                     |                      | j                  }d t          d          D             }|                    dd           t	          |          }t	          |          |k    sJ d S )Nc                     g | ]
}||d z   dfS r7  rO   r[   s     r   r]   z.TestMultiEdgeView.test_str.<locals>.<listcomp>  s"    333QAq1ua=333r   r   rn   r   )r   r   r^   insertr$   )r   r   replistr   s       r   r&   zTestMultiEdgeView.test_str  sd    ZZ33%((333q)$$$'ll2ww#~~~~~~r   c                    | j                                         }|j        }d|j        d         d<   |d         ddik    sJ t          j        t
          j                  5  |j        dd          d d d            d S # 1 swxY w Y   d S )Nr2   r   ri   r   r4   r   r5   )r   r,   r   r6   r7   r   r8   r!  s      r   r9   zTestMultiEdgeView.test_getitem  s    FKKMMW"''{uen,,,, ]2+,, 	 	GAaCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A<<B B c                 h    |                      | j                  }d}t          |          |k    sJ d S )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  9    ZZH 	 Bxx3r   c                    |                      | j                  }t          |          t           |d                    k    sJ t          |          t           |dd                    k    sJ t          |          t           |d                    k    sJ t          |          t           |d                    k    sJ t          |          t           |d                    k    sJ d S )NTkeysFr<   ri  r;   ri   r   r$  r&  s     r   rJ   zTestMultiEdgeView.test_call  s    ZZ"vvBBDMMM******"vvBBE555666666"vvBBENNN++++++"vvBBDMMM******"vvBBaLLL))))))))r   c                 T   |                      | j                  }t          |          t          |                                          k    sJ t          |          t          |                    dd                    k    sJ t          |          t          |                    d                    k    sJ t          |          t          |                    d                    k    sJ t          |          t          |                    d                    k    sJ d S )NFTrj  rh  r;   ri   r   r(  r&  s     r   r)  zTestMultiEdgeView.test_data&  s    ZZ"vvBGGII&&&&"vvBGGTG::;;;;;;"vvBGGG//000000"vvBGGG..//////"vvBGG1G--........r   c                     |                      | j                  }|D ]\  }}}t          |          }t          |          dk    sJ t          |          |k    sJ t          |          |k    sJ d S )Nrd  r   )r   r   r   r   kr   s         r   rF   zTestMultiEdgeView.test_iter.  s    ZZ 	 	GAq!2hhCyyI%%%%Bxx2~~~~CyyCr   c                 h   | j         }|                     |          } |d          }|D ]\  }}}|dk    sJ  |ddd          }|D ]\  }}}}|dk    sJ |                     |dd	            |dd
          }|D ]}t          |          dk    sJ t	          |d d                   ddhk    r!|d         dk    sJ |d         ddik    sJ d}	Ut	          |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    s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    r3|d         dk    sJ |d         dk    sJ t          |          dk    sJ d}|sJ  |d          }|D ]}t          |          dk    sJ t          d t          d          D             dgz             }t          |          |k    sJ  |dddd          }t          j        t                    5   |dddd           d d d            n# 1 swxY w Y   t          j        t                    5   |dddd           d d d            n# 1 swxY w Y   |D ]T}t	          |d d                   ddhk    r5|d         dv sJ |d         dk    r|d         dk    sJ F|d         dk    sJ U|
                                r$t          t          |                    dk    sJ d S t          t          |                    dk    sJ d S )NTrh  r   r4   ri   )ri  r<   re   )rn   r3   r   r2   r   )ri  r<   ro   rn   r3   rm   c                     g | ]
}||d z   dfS r7  rO   )r\   rA   s     r   r]   z3TestMultiEdgeView.test_iterkeys.<locals>.<listcomp>c  s"    888!AE1888r   r   r   r   )ri  re   rj   >   r   r3   )r   r   r   r   rr   sortedr^   r6   r7   rq   r   r@   )r   r   r   r   r   r   rm  r   r   r   checked_multir   elists                r   test_iterkeyszTestMultiEdgeView.test_iterkeys7  s   FjjmmSd^^^ 	 	GAq!AvvvvSd222 	 	KAq!RQwwwwI5111Sd&&& 	" 	"Aq66Q;;;;1RaR5zzaV##tqyyyytu~----QrrUyyy((tqyyyytu~---- $tqyyyytrzzzzzSd222 		" 		"A1RaR5zzaV##!		tu}}}}1RaR5zzaV##!		tqyyyy1RaR5zzaV##tqyyyytu}}}}1vv{{{{!
Sd^^^ 	 	Aq66Q;;;;;88uQxx888I;FGGbzzU""""ST1555]9%% 	( 	(CtQ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]9%% 	0 	0CtQ////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	% 	%A1RaR5zzaV##tv~~~~Q4199Q45=====Q419999==?? 	&tBxx==A%%%%%%tBxx==A%%%%%%s$   J66J:=J:K66K:=K:c                     |                      | j                  }h d}d t          d          D             }|                    |           |                    dh           ||z  |k    sJ ||z  |k    sJ d S )N   rd  r   rn   r   ri   r   r   c                     h | ]
}||d z   dfS r7  rO   r[   s     r   r   z,TestMultiEdgeView.test_or.<locals>.<setcomp>z  "    222A1a!eQ-222r   r   r   r=  rE  s       r   r   zTestMultiEdgeView.test_orw  s    ZZ666
22q222j!!!yk"""J&((((B&((((((r   c                    |                      | j                  }h d}d t          d          D             }|                    d           |                    dh           ||z
  s
J |            ||z
  s
J |            d S )Nru  c                     h | ]
}||d z   dfS r7  rO   r[   s     r   r   z-TestMultiEdgeView.test_sub.<locals>.<setcomp>  ry  r   r   rd  r   )r   r   r^   rI  r   rE  s       r   r   zTestMultiEdgeView.test_sub  s    ZZ666
22q222i   yk"""J&&&&&B&&&&&&&r   c                    |                      | j                  }h d}| j                                        rId t          dd          D             }|                    h d           ||z  |k    sJ ||z  |k    sJ d S d t          dd          D             }|                    ddh           ||z  |k    sJ ||z  |k    sJ d S )	Nru  c                     h | ]
}||d z   dfS r7  rO   r[   s     r   r   z-TestMultiEdgeView.test_xor.<locals>.<setcomp>  "    999q!a%m999r   ri   r   >   rv  rw  r   c                     h | ]
}||d z   dfS r7  rO   r[   s     r   r   z-TestMultiEdgeView.test_xor.<locals>.<setcomp>  r~  r   rv  r   rD  rE  s       r   r   zTestMultiEdgeView.test_xor  s    ZZ666
6 		-99U1a[[999FMM;;;<<<
?f,,,,?f,,,,,,99U1a[[999FMM9i0111
?f,,,,?f,,,,,,r   c                     |                      | j                  }h d}| j                                        r||z  dhk    sJ ||z  dhk    sJ d S ||z  ddhk    sJ ||z  ddhk    sJ d S )Nru  rd  rw  r   r8  s      r   r   zTestMultiEdgeView.test_and  s    ZZ666
6 	=
?yk1111?yk111111
?y)&<<<<<?y)&<<<<<<<r   c                     |                      | 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 d S r   r   r.  s      r   r   z+TestMultiEdgeView.test_contains_with_nbunch  r0  r   N)rK   rL   rM   rN   r   r   r&   r9   r)   rJ   r)  rF   rs  r   r   r   r   r   rO   r   r   rW  rW    s        1 1 [1
. . .
      * * */ / /     >& >& >&@) ) )' ' '- - -= = =
! 
! 
! 
! 
!r   rW  c                   6    e Zd Zed             Zd Zd Zd ZdS )TestOutMultiEdgeViewc                     t          j        dt          j                              | _        | j                            dddd           t           j        j        | _        d S rY  )r   r   r	  r   r   r   r
  r   r   s    r   r   z TestOutMultiEdgeView.setup_class  sI    a!2!233q!...N3			r   c                     t          |          dk    r|dz   }|j        |d                  |d                  |d                                      |           d S r\  r]  r   s       r   r   z TestOutMultiEdgeView.modify_edge  r^  r   c                 h    |                      | j                  }d}t          |          |k    sJ d S )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  s9    ZZI 	 Bxx3r   c                     |                      | 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 d S r   r   r.  s      r   r   z.TestOutMultiEdgeView.test_contains_with_nbunch  rO  r   Nr  rO   r   r   r  r    sZ        4 4 [4
. . .
  
! 
! 
! 
! 
!r   r  c                   6    e Zd Zed             Zd Zd Zd ZdS )TestInMultiEdgeViewc                     t          j        dt          j                              | _        | j                            dddd           t           j        j        | _        d S rY  )r   r   r	  r   r   r   r  r   r   s    r   r   zTestInMultiEdgeView.setup_class  sI    a!2!233q!...N2			r   c                     t          |          dk    r|dz   }|j        |d                  |d                  |d                                      |           d S r\  r]  r   s       r   r   zTestInMultiEdgeView.modify_edge  r^  r   c                 h    |                      | j                  }d}t          |          |k    sJ d S )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  rf  r   c                     |                      | 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 d S r   r   r.  s      r   r   z-TestInMultiEdgeView.test_contains_with_nbunch  rU  r   Nr  rO   r   r   r  r    sZ        3 3 [3
. . .
  
! 
! 
! 
! 
!r   r  c                   z    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d
S )TestDegreeViewc                     t          j        d|                                           | _        | j                            ddd           | j                            ddd           d S )Nr   ri   r3   rn   r   )r   r   GRAPHr   r   r   s    r   r   zTestDegreeView.setup_class  sW    a--q!###q!#####r   c                     dd l }| j        j        } |j         |j        |d                    }t          |          t          |          k    sJ d S r   )r   r   degreer   r   dict)r   r   degpdegs       r   r!   zTestDegreeView.test_pickle  sV    fmv|LFLb1122CyyDJJ&&&&&&r   c                     |                      | j                  }t          g d          }t          |          |k    sJ | j                                        }t          |          |k    sJ d S )N)r   ri   r3   rn   rn   r3   r3   ro   rn   r5   ri   dviewr   r$   r  r   dvr   s      r   r&   zTestDegreeView.test_str  b    ZZBBBCC2ww#~~~~V]]__2ww#~~~~~~r   c                 h    |                      | j                  }d}t          |          |k    sJ d S )Nz0DegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1}))r  r   r(   r  s      r   r)   zTestDegreeView.test_repr	  s1    ZZ@Bxx3r   c                 ^   |                      | j                  }|D ]\  }}t          |          }t          |          |k    sJ t          |          |k    sJ t          |          d|d         fk    sJ t          |          d|d         fk    sJ |                      | j        d          }|D ]\  }}t          |          }t          |          |k    sJ t          |          |k    sJ t          |          d|d         fk    sJ t          |          d|d         fk    sJ d S )Nr   ri   r4   rH   )r  r   r>   r?   )r   r  rB   rk   idvs        r   rF   zTestDegreeView.test_iter  sD   ZZ 	 	DAq2hhBxx2~~~~CyyCCyyQ1J&&&&CyyQ1J&&&&ZZuZ-- 	 	DAq2hhBxx2~~~~CyyCCyyQ1J&&&&CyyQ1J&&&&&&r   c                     |                      | j                  } |d          }|dk    sJ  |ddg          }t          |          ddgk    sJ d S )Nr   ri   rn   r3   r  r  r  r   rp  r   r  dvns      r   test_nbunchzTestDegreeView.test_nbunch!  b    ZZbeeaxxxxb!Qjjc{{vv.......r   c                 R   |                      | j                  }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |                      | j        d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S )Nr   ri   r3   rn   r4   r  r5   r  r   r   r  s     r   r9   zTestDegreeView.test_getitem(      ZZ!uzzzz!uzzzz!uzzzz!uzzzzZZuZ--!uzzzz!uzzzz!uzzzz!uzzzzzzr   c                 |   |                      | 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 d S )
Nr   r4   r  ri   r5   rn   r3   r  )r3   r5   r  r   rp  r  r   r  dvwdvds       r   test_weightzTestDegreeView.test_weight4      ZZb5!!!axxxxb5!!!axxxxb!Q&&&c{{vv.....22U###$$1v{{{{1v{{{{1v{{{{1v{{{{{{r   c                 d    |                      | j                  }t          |          dk    sJ d S )Nr   )r  r   r   r  s     r   r   zTestDegreeView.test_lenB  s,    ZZ2ww!||||||r   N)rK   rL   rM   r   Graphr  r   
DegreeViewr  rN   r   r!   r&   r)   rF   r  r9   r  r   rO   r   r   r  r    s        HEN%E$ $ [$
' ' '    
' ' '&/ / /
 
 
      r   r  c                   :    e Zd Zej        Zej        j        Zd Z	dS )TestDiDegreeViewc                 f    | j                                         }d}t          |          |k    sJ d S )Nz2DiDegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1})r   r  r(   r  s      r   r)   zTestDiDegreeView.test_reprK  s-    V]]__BBxx3r   N)
rK   rL   rM   r   r   r  r   DiDegreeViewr  r)   rO   r   r   r  r  G  s4        JEN'E    r   r  c                   R    e Zd Zej        Zej        j        Zd Z	d Z
d Zd Zd ZdS )TestOutDegreeViewc                     |                      | j                  }t          g d          }t          |          |k    sJ | j                                        }t          |          |k    sJ d S )N)r   r   r   r3   ri   ro   ri   r5   r   r  r   r$   
out_degreer  s      r   r&   zTestOutDegreeView.test_strU  f    ZZBBBCC2ww#~~~~V  2ww#~~~~~~r   c                 f    | j                                         }d}t          |          |k    sJ d S )Nz3OutDegreeView({0: 1, 1: 2, 2: 1, 3: 1, 4: 1, 5: 0})r   r  r(   r  s      r   r)   zTestOutDegreeView.test_repr\  s1    V  CBxx3r   c                     |                      | j                  } |d          }|dk    sJ  |ddg          }t          |          ddgk    sJ d S Nr   ri   rn   r3   r   r  r  r  s      r   r  zTestOutDegreeView.test_nbuncha  r  r   c                 R   |                      | j                  }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |                      | j        d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S Nr   ri   rn   r3   r4   r  ro   r  r  s     r   r9   zTestOutDegreeView.test_getitemh  r  r   c                 |   |                      | 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 d S )
Nr   r4   r  ri   ro   rn   r3   r   r  r  r  s       r   r  zTestOutDegreeView.test_weightt  r  r   N)rK   rL   rM   r   r   r  r   OutDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r  Q  sp        JEN(E    
/ / /
 
 
    r   r  c                   R    e Zd Zej        Zej        j        Zd Z	d Z
d Zd Zd ZdS )TestInDegreeViewc                     |                      | j                  }t          g d          }t          |          |k    sJ | j                                        }t          |          |k    sJ d S )N)r   r   ri   ri   r   r3   rn   r  r  r  r   r$   	in_degreer  s      r   r&   zTestInDegreeView.test_str  f    ZZBBBCC2ww#~~~~V2ww#~~~~~~r   c                 f    | j                                         }d}t          |          |k    sJ d S )Nz2InDegreeView({0: 0, 1: 1, 2: 1, 3: 2, 4: 1, 5: 1})r   r  r(   r  s      r   r)   zTestInDegreeView.test_repr  s1    VBBxx3r   c                     |                      | j                  } |d          }|dk    sJ  |ddg          }t          |          ddgk    sJ d S )Nr   rn   r3   r   r  r  r  s      r   r  zTestInDegreeView.test_nbunch  r  r   c                 R   |                      | j                  }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |                      | j        d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S r  r  r  s     r   r9   zTestInDegreeView.test_getitem  r  r   c                 |   |                      | 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 d S )
Nr   r4   r  ri   rn   r3   r   r   ro   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    sp        JEN'E    
/ / /
 
 
    r   r  c                   R    e Zd Zej        Zej        j        Zd Z	d Z
d Zd Zd ZdS )TestMultiDegreeViewc                     |                      | j                  }t          g d          }t          |          |k    sJ | j                                        }t          |          |k    sJ d S )N)r   r   r  r   r  r  r  r  s      r   r&   zTestMultiDegreeView.test_str  r  r   c                 f    | j                                         }d}t          |          |k    sJ d S )Nz5MultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r  r  s      r   r)   zTestMultiDegreeView.test_repr  s-    V]]__EBxx3r   c                     |                      | j                  } |d          }|dk    sJ  |ddg          }t          |          ddgk    sJ d S )Nr   ri   rn   r3   r  r   r  r  s      r   r  zTestMultiDegreeView.test_nbunch  r  r   c                 R   |                      | j                  }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |                      | j        d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S )	Nr   ri   ro   rn   r3   r4   r  r+   r  r  s     r   r9   z TestMultiDegreeView.test_getitem  r  r   c                 |   |                      | 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 d S )
Nr   r4   r  ri   r+   rn   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    sp        MEN*E    
/ / /
 
 
    r   r  c                   :    e Zd Zej        Zej        j        Zd Z	dS )TestDiMultiDegreeViewc                 f    | j                                         }d}t          |          |k    sJ d S )Nz7DiMultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r  r  s      r   r)   zTestDiMultiDegreeView.test_repr  s-    V]]__GBxx3r   N)
rK   rL   rM   r   r	  r  r   DiMultiDegreeViewr  r)   rO   r   r   r  r    s4        OEN,E    r   r  c                   R    e Zd Zej        Zej        j        Zd Z	d Z
d Zd Zd ZdS )TestOutMultiDegreeViewc                     |                      | j                  }t          g d          }t          |          |k    sJ | j                                        }t          |          |k    sJ d S )N)r   r  r   r  r  r  r  r  s      r   r&   zTestOutMultiDegreeView.test_str  r  r   c                 f    | j                                         }d}t          |          |k    sJ d S )Nz8OutMultiDegreeView({0: 1, 1: 3, 2: 1, 3: 1, 4: 1, 5: 0})r  r  s      r   r)   z TestOutMultiDegreeView.test_repr  s1    V  HBxx3r   c                     |                      | j                  } |d          }|dk    sJ  |ddg          }t          |          ddgk    sJ d S r  r  r  s      r   r  z"TestOutMultiDegreeView.test_nbunch  r  r   c                 R   |                      | j                  }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |                      | j        d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S )Nr   ri   r3   rn   r4   r  r   r  r  s     r   r9   z#TestOutMultiDegreeView.test_getitem  r  r   c                 |   |                      | 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 d S )
Nr   r4   r  ri   r   rn   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    sp        OEN-E    
/ / /
 
 
    r   r  c                   R    e Zd Zej        Zej        j        Zd Z	d Z
d Zd Zd ZdS )TestInMultiDegreeViewc                     |                      | j                  }t          g d          }t          |          |k    sJ | j                                        }t          |          |k    sJ d S )N)r  r  r   r  r  r  r  r  s      r   r&   zTestInMultiDegreeView.test_str'  r  r   c                 f    | j                                         }d}t          |          |k    sJ d S )Nz7InMultiDegreeView({0: 0, 1: 1, 2: 1, 3: 3, 4: 1, 5: 1})r  r  s      r   r)   zTestInMultiDegreeView.test_repr.  s1    VGBxx3r   c                     |                      | j                  } |d          }|dk    sJ  |ddg          }t          |          ddgk    sJ d S )Nr   rn   r3   r   r  r  r  s      r   r  z!TestInMultiDegreeView.test_nbunch3  r  r   c                 R   |                      | j                  }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |                      | j        d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S )Nr   ri   rn   r3   r4   r  r   r  r  s     r   r9   z"TestInMultiDegreeView.test_getitem:  r  r   c                 |   |                      | 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 d S )
Nr   r4   r  ri   rn   r3   r   )r3   r   r   r  r  s       r   r  z!TestInMultiDegreeView.test_weightF  r  r   N)rK   rL   rM   r   r	  r  r   InMultiDegreeViewr  r&   r)   r  r9   r  rO   r   r   r  r  #  sp        OEN,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            n# 1 swxY w Y   t          |j                  }t          |          j        |v sJ ||v sJ d S )Nr3   r   rn   )	r   complete_graphr6   r7   r8   r$   valuetyperK   )r  r  r   viewexcerrmsgs         r   test_slicing_reportviewsr  U  s      	!A:a==D	r'	(	( CQqS		              ^^F::&((((F""""""s   AAAgraphc                    t          j        d |                       }|j        |j        |j        |j        f |                                r&|j        |j        |j	        |j
        |j        |j        f |j        }d|v sJ d|v sJ d|v sJ d|v s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#          |           d S )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  n  sP    	a!!AGQWaeQX%%}} K	
AKalJJ*Kk!!!!k!!!!K{""""}} +$$$$$$$$[((((k))))k)))){**** La$$%%%QKKKKKr   c                      d t          t          j                  D             } | D ];}t          t	          t          j        |          t          j        j                  sJ <d S )Nc              3   "   K   | ]
}d |v |V  dS )EdgeNrO   )r\   r   s     r   	<genexpr>z;test_edge_views_inherit_from_EdgeViewABC.<locals>.<genexpr>  s&      KK1v{{Q{{{{KKr   )dirr   r   
issubclassgetattrEdgeViewABC)all_edge_view_classeseview_classs     r   (test_edge_views_inherit_from_EdgeViewABCr    sp    KKBN(;(;KKK, 
 
BNK00".2L
 
 	
 	
 	
 	

 
r   )5r   r,   r   r6   networkxr   networkx.classesr   rvnetworkx.classes.reportviewsr   r   rQ   rx   rz   r   r   r   r   r   r   r  r  r  rK  rQ  rW  r  r  r  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 5 5 5 5 5<1 <1 <1 <1 <1 <1 <1 <1~e e e e e e e eP  **; *; *; *; *; *; *; *;ZH H H H H/ H H HE E E E E$: E E Ev! v! v! v! v! v! v! v!r+  +  +  +  + * +  +  + \         ,      :         ,      @         2      @         6      <R' R' R' R' R' R' R' R'j! ! ! ! !l ! ! !6! ! ! ! !\ ! ! !6r! r! r! r! r! r! r! r!j! ! ! ! !, ! ! !B! ! ! ! !+ ! ! !DS S S S S S S Sl    ~   / / / / / / / /d/ / / / /~ / / /d/ / / / /. / / /d    /   / / / / /^ / / /d/ / / / /N / / /d #	n%	-.	n%	)*	(		>*		./		n- # # # bh
BM2?C   .
 
 
 
 
r   