o
    ˷ee                     @   sH  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 dZG dd dZd	d
 ZG dd dZG dd deZG dd deZG dd dZG dd deZG dd deZG dd deZG dd deZG dd deZG dd dZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*ZG d+d, d,eZG d-d. d.eZG d/d0 d0eZ G d1d2 d2eZ!G d3d4 d4e!Z"G d5d6 d6eZ#G d7d8 d8eZ$ej%&d9e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ej-d<ffd>d? Z.ej%&d@ej/ej0ej1ej2gdAdB Z3dS )C    N)deepcopy)reportviews)NodeDataViewc                   @   P   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd ZdS )TestNodeViewc                 C   s   t d| _| jj| _d S N	   nx
path_graphGnodesnvcls r   ^/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/classes/tests/test_reportviews.pysetup_class      zTestNodeView.setup_classc                 C   @   dd l }| j}|||d}||ksJ |j|jksJ d S Nr   pickler   loadsdumps	__slots__selfr   r   pnvr   r   r   test_pickle   
   zTestNodeView.test_picklec                 C      t | jdks	J d S )Nz[0, 1, 2, 3, 4, 5, 6, 7, 8])strr   r   r   r   r   test_str      zTestNodeView.test_strc                 C   r"   )Nz%NodeView((0, 1, 2, 3, 4, 5, 6, 7, 8)))reprr   r$   r   r   r   	test_repr   r&   zTestNodeView.test_reprc                 C   sX   | 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   r   r   r   test_contains    s   


zTestNodeView.test_containsc                 C   s   | j  }|j}d|jd d< |d i ksJ |d ddiks!J ttj |jdd  W d    d S 1 s:w   Y  d S )Nbar   foor)   r      )r   r*   r   pytestraisesr
   NetworkXErrorr-   r   r   r   test_getitem*   s   
"zTestNodeView.test_getitemc                 C   s   | j }t|D ]
\}}||ksJ qt|}t|dksJ t||ks&J t||ks.J t|}t| t|t|ks@J |dd}t|D ]
\}}||ksSJ qId S )Nr   Fdata)r   	enumerateiternextlist)r   r   ininvinv2nnvr   r   r   	test_iter4   s   
zTestNodeView.test_iterc                 C   s<   | j }|| u s
J ||ddusJ ||ddusJ d S )NTr7   weight)r   r   r   r   r   r   	test_callD   s   zTestNodeView.test_callN)__name__
__module____qualname__classmethodr   r    r%   r(   r.   r6   rB   rE   r   r   r   r   r      s    


r   c                   @   r   )TestNodeDataViewc                 C   s<   t d| _t| j| _| jjd| _| jjd| _d S )Nr   Tr1   )	r
   r   r   r   r   r   r8   ndvnwvr   r   r   r   r   L   s   zTestNodeDataView.setup_classc                 C   s0   | j j}|d}||u sJ || jusJ d S )NF)r   r   r8   rK   )r   r   ndvfalser   r   r   test_viewtypeS   s   
zTestNodeDataView.test_viewtypec                 C   r   r   r   r   r   r   r   r    Y   r!   zTestNodeDataView.test_picklec                 C   s,   t dd tdD }t | j|ksJ d S )Nc                 S   s   g | ]}|i fqS r   r   .0r>   r   r   r   
<listcomp>b   s    z-TestNodeDataView.test_str.<locals>.<listcomp>r   )r#   rangerK   )r   msgr   r   r   r%   a   s   zTestNodeDataView.test_strc                 C   sF   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   rK   rL   )r   expectedr   r   r   r(   e   s   zTestNodeDataView.test_reprc                 C   s   | 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 s5J |jddd}d	|v sBJ d|v sHJ d S )
Nr1   r/   r0   r)   )r0   r/   )r)   Nbizr8   default)r)   rU   )r   r*   r   r8   )r   r   r   rL   nwv_defr   r   r   r.   s   s   

zTestNodeDataView.test_containsc                 C   s   | j  }|j}d|jd d< |d ddiksJ |jddd}|d s(J d|d dks0J ttj |j dd  W d    d S 1 sKw   Y  d S )	Nr/   r0   r1   rU   rV   r)   r   r2   )r   r*   r   r3   r4   r
   r5   r8   )r   r   r   rX   r   r   r   r6      s   
"zTestNodeDataView.test_getitemc           	      C   s\  | j  }|j }|jd}|jd}t|D ]\}\}}||ks&J |i ks,J qt|}t|di fks;J d|jd d< |D ]\}}|dkrU|ddiksTJ qD|i ks[J qD|D ]\}}|dkro|ddiksnJ q^|i ksuJ q^|D ]\}}|dkr|dksJ qx|d u sJ qx|jjdddD ]\}}|dkr|dksJ q|dksJ qd S )NTr1   r   r/   r0      rW   )r   r*   r   r8   r9   r:   r;   )	r   r   r   rK   rL   r=   r>   dr?   r   r   r   rB      s6   

zTestNodeDataView.test_iterN)rF   rG   rH   rI   r   rN   r    r%   r(   r.   r6   rB   r   r   r   r   rJ   K   s    
rJ   c                  C   s   t d} d| jd d< | j g}|| jd |  }h d|jd d< ||jd |D ]}ttt	| ttt
dt  q3| jd	}t	| ||B  | jd}t	| ||B  d S )
Nr   r/   r0   r1   T   rY      r0      znv | nvF)r
   r   r   r8   appendr*   r3   r4   	TypeErrorsetevallocals)r   nvsHr   Gnr   r   r   test_nodedataview_unhashable   s    
rg   c                   @   sH   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )TestNodeViewSetOpsc                 C   s*   t d| _d| jjd d< | jj| _d S Nr   r/   r0   r1   r	   r   r   r   r   r      s   zTestNodeViewSetOps.setup_classc                 C      dd |D S )Nc                 S   s   h | ]}|qS r   r   rP   noder   r   r   	<setcomp>   s    z+TestNodeViewSetOps.n_its.<locals>.<setcomp>r   rD   r   r   r   n_its      zTestNodeViewSetOps.n_itsc                 C   sX   | 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-   r   r   r   test_len   s   


zTestNodeViewSetOps.test_lenc                 C   sR   | j }| tdd}||@ | tddksJ ||@ | tddks'J d S Nr2      r   r   rn   rR   r   r   
some_nodesr   r   r   test_and   s    zTestNodeViewSetOps.test_andc                 C   sN   | j }| tdd}||B | tdksJ ||B | tdks%J d S )Nr2   rt   ru   rv   r   r   r   test_or   s   zTestNodeViewSetOps.test_orc                 C   sN   | j }| tdd}h d}||A | |ksJ ||A | |ks%J d S )Nr2   rt   >   r   rY   r]   r0   r^   r   
      ru   )r   r   rw   r   r   r   r   test_xor   s
   zTestNodeViewSetOps.test_xorc                 C   sP   | j }| tdd}|| | tdksJ || | tddks&J d S rs   ru   rv   r   r   r   test_sub   s    zTestNodeViewSetOps.test_subN)rF   rG   rH   rI   r   rn   rr   rx   ry   r|   r}   r   r   r   r   rh      s    
	rh   c                   @       e Zd Zedd Zdd ZdS )TestNodeDataViewSetOpsc                 C   s0   t d| _d| jjd d< | jjd| _d S ri   r
   r   r   r   r8   r   r   r   r   r   r      s   z"TestNodeDataViewSetOps.setup_classc                 C   rj   )Nc                 S       h | ]}||d krdndfqS )r0   r/   Nr   rk   r   r   r   rm          z/TestNodeDataViewSetOps.n_its.<locals>.<setcomp>r   rD   r   r   r   rn      ro   zTestNodeDataViewSetOps.n_itsNrF   rG   rH   rI   r   rn   r   r   r   r   r          
r   c                   @   r~   )TestNodeDataViewDefaultSetOpsc                 C   s4   t d| _d| jjd d< | jjjddd| _d S )Nr   r/   r0   r1   rY   rZ   r   r   r   r   r   r     s   z)TestNodeDataViewDefaultSetOps.setup_classc                 C   rj   )Nc                 S   r   )r0   r/   rY   r   rk   r   r   r   rm     r   z6TestNodeDataViewDefaultSetOps.n_its.<locals>.<setcomp>r   rD   r   r   r   rn     ro   z#TestNodeDataViewDefaultSetOps.n_itsNr   r   r   r   r   r     r   r   c                   @   s`   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd ZdS )TestEdgeDataViewc                 C      t d| _t jj| _d S r   r
   r   r   r   EdgeVieweviewr   r   r   r   r     r   zTestEdgeDataView.setup_classc                 C   sT   dd l }| | jdd}|||d}t|t|ks J |j|jks(J d S )Nr   Tr7   r   )r   r   r   r   r   r<   r   r   r   evpevr   r   r   r      s
   zTestEdgeDataView.test_picklec                 K       |j |d  |d  | d S Nr   rY   _adjupdater   r   ekwdsr   r   r   modify_edge      zTestEdgeDataView.modify_edgec                 C   s<   |  | jdd}tdd tdD }t||ksJ d S )NTr7   c                 S   s   g | ]	}||d  i fqS rY   r   rO   r   r   r   rQ   #      z-TestEdgeDataView.test_str.<locals>.<listcomp>rp   r   r   r#   rR   r   r   repr   r   r   r%   !  s   zTestEdgeDataView.test_strc                 C   *   |  | jdd}d}t||ksJ d S )NTr7   znEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r'   r   r   r   r   r(   &     zTestEdgeDataView.test_reprc                 C   s:  | j  }| |}|dd}|ddd}|D ]\}}}q|i ks#J |D ]\}}}q%|dks1J | j|ddd |D ]+}	t|	d	ksEJ t|	d d
 d
d	hkr^|	d
 ddiks[J d}
q;|	d
 i ksfJ q;|
skJ |D ])}	t|	d	kswJ t|	d d
 d
d	hkr|	d
 dksJ d}qm|	d
 dksJ qm|sJ d S )NTr7   r1   rY   rV   r]   r0   r/   r1   r0   r]   )r   r*   r   r   rq   ra   )r   r   evrr   ev_defuvr[   wtr   checked
checked_wtr   r   r   test_iterdata0  s2   


zTestEdgeDataView.test_iterdatac                 C   s\   |  | j}| }|D ]\}}qt|}t|dksJ t||ks$J t||ks,J d S Nr   rY   r   r   r:   r;   )r   r   r   r   r   ievr   r   r   rB   Q  s   zTestEdgeDataView.test_iterc                 C   sn   |  | 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s5J d S NrY   r]   r]   rY   rY   r^   )rY   Z   )r   rY   r   r   is_directedr   r   r   r   r   r   r.   [  s   
zTestEdgeDataView.test_containsc                 C   s   |  | j}|ddgd}| j r%d|v sJ d|vsJ d|v s$J nd|v s+J d|v s1J d|v s7J d|vs=J d|vsCJ d	|vsIJ d
|vsOJ d|vsUJ d S Nr   r]   nbunchr   r   r   r0   r^   )r^   r2   )r2      )r)   rp   )rp   r   r   r   r   r   r   test_contains_with_nbunchf  s   
z*TestEdgeDataView.test_contains_with_nbunchc                 C   s   |  | j}|dd}t|dksJ t|ddksJ t|g ddks)J t| jddks5J t| j dks@J t| jjdksJJ | j }|dd t|ddks`J t| d	ksjJ t|jd	kssJ d S )
Nr1   r7   rp   rY   r]   rY   r]   r0   r^   r0   r   r   r   rq   edgesr*   add_edger   r   r   re   r   r   r   rr   w     

zTestEdgeDataView.test_lenN)rF   rG   rH   rI   r   r    r   r%   r(   r   rB   r.   r   rr   r   r   r   r   r     s    

!
r   c                   @   0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestOutEdgeDataViewc                 C   "   t jdt  d| _t jj| _d S Nr   )create_usingr
   r   DiGraphr   r   OutEdgeViewr   r   r   r   r   r        zTestOutEdgeDataView.setup_classc                 C   r   )NTr7   zqOutEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r(     r   zTestOutEdgeDataView.test_reprc                 C   s   |  | j}|dd}t|dksJ t|ddksJ t|g ddks)J t| jddks5J t| j dks@J t| jjdksJJ | j }|dd t|ddks`J t| dksjJ t|jdkssJ d S )	Nr1   r7   rp   rY   r   r0   r]   r   r   r   r   r   r   rr     r   zTestOutEdgeDataView.test_lenc                 C   ~   |  | j}|ddgd}d|v sJ d|vsJ d|v sJ d|vs%J d|vs+J d	|vs1J d
|vs7J d|vs=J d S r   r   r   r   r   r   r   r        z-TestOutEdgeDataView.test_contains_with_nbunchN)rF   rG   rH   rI   r   r(   rr   r   r   r   r   r   r     s    

r   c                   @   (   e Zd Zedd Zdd Zdd ZdS )TestInEdgeDataViewc                 C   r   r   r
   r   r   r   r   
InEdgeViewr   r   r   r   r   r     r   zTestInEdgeDataView.setup_classc                 C   r   )NTr7   zpInEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r(     r   zTestInEdgeDataView.test_reprc                 C   ~   |  | j}|ddgd}d|vsJ d|v sJ d|vsJ d|vs%J d|vs+J d	|vs1J d
|vs7J d|vs=J d S r   r   r   r   r   r   r     r   z,TestInEdgeDataView.test_contains_with_nbunchNrF   rG   rH   rI   r   r(   r   r   r   r   r   r     
    

r   c                   @   r   )
TestMultiEdgeDataViewc                 C   r   r   )r
   r   
MultiGraphr   r   MultiEdgeViewr   r   r   r   r   r     r   z!TestMultiEdgeDataView.setup_classc                 K   $   |j |d  |d  d | d S r   r   r   r   r   r   r        $z!TestMultiEdgeDataView.modify_edgec                 C   r   )NTr7   zsMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r(     r   zTestMultiEdgeDataView.test_reprc                 C   ~   |  | j}|ddgd}d|v sJ d|v sJ d|v sJ d|vs%J d|vs+J d	|vs1J d
|vs7J d|vs=J d S r   r   r   r   r   r   r     r   z/TestMultiEdgeDataView.test_contains_with_nbunchNrF   rG   rH   rI   r   r   r(   r   r   r   r   r   r         

r   c                   @   r   )
TestOutMultiEdgeDataViewc                 C   r   r   )r
   r   MultiDiGraphr   r   OutMultiEdgeViewr   r   r   r   r   r     r   z$TestOutMultiEdgeDataView.setup_classc                 K   r   r   r   r   r   r   r   r     r   z$TestOutMultiEdgeDataView.modify_edgec                 C   r   )NTr7   zvOutMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r(     r   z"TestOutMultiEdgeDataView.test_reprc                 C   r   r   r   r   r   r   r   r     r   z2TestOutMultiEdgeDataView.test_contains_with_nbunchNr   r   r   r   r   r     r   r   c                   @   r   )TestInMultiEdgeDataViewc                 C   r   r   )r
   r   r   r   r   InMultiEdgeViewr   r   r   r   r   r     r   z#TestInMultiEdgeDataView.setup_classc                 C   r   )NTr7   zuInMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r(     r   z!TestInMultiEdgeDataView.test_reprc                 C   r   r   r   r   r   r   r   r   $  r   z1TestInMultiEdgeDataView.test_contains_with_nbunchNr   r   r   r   r   r     r   r   c                   @   s   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!S )"TestEdgeViewc                 C   r   r   r   r   r   r   r   r   3  r   zTestEdgeView.setup_classc                 C   sF   dd l }| | j}|||d}||ksJ |j|jks!J d S r   )r   r   r   r   r   r   r   r   r   r   r    8  s
   zTestEdgeView.test_picklec                 K   r   r   r   r   r   r   r   r   @  r   zTestEdgeView.modify_edgec                 C   s6   |  | j}tdd tdD }t||ksJ d S )Nc                 S   s   g | ]}||d  fqS r   r   rO   r   r   r   rQ   E      z)TestEdgeView.test_str.<locals>.<listcomp>rp   r   r   r   r   r   r%   C  s   zTestEdgeView.test_strc                 C   $   |  | 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   r   r   r   r(   H     zTestEdgeView.test_reprc                 C   r   | j  }|j}d|jd d< |d ddiksJ ttj |jdd  W d    d S 1 s2w   Y  d S )Nr/   r   r1   r   r2   r   r*   r   r3   r4   r
   r5   r   r   r   r   r   r   r6   P     
"zTestEdgeView.test_getitemc                 C   st   |  | j}t|t| ksJ t|t|ddksJ t|t|ddks+J t|t|ddks8J d S NFr7   TrY   r   r   r   idr   r   r   r   r   rE   Z  s
   zTestEdgeView.test_callc                 C   s|   |  | j}t|t| ksJ t|t|jddks J t|t|jddks.J t|t|jddks<J d S r   r   r   r   r8   r   r   r   r   	test_dataa  s
    zTestEdgeView.test_datac                 C   sV   |  | j}|D ]\}}qt|}t|dksJ t||ks!J t||ks)J d S r   r   )r   r   r   r   r   r   r   r   rB   h  s   zTestEdgeView.test_iterc                 C   s   |  | 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 r5d|v s7J d|vs=J d|vsCJ d|vsIJ d|vsOJ d|vsUJ d|vs[J d S r   r   )r   r   edvr   r   r   r.   q  s   
zTestEdgeView.test_containsc                 C   r   r   r   r   r   evnr   r   r   r     r   z&TestEdgeView.test_contains_with_nbunchc                 C   s   |  | j}| j rdnd}t||ksJ | j }|dd t|dd|  |  ks5J t| |d ksAJ t|j|d ksLJ d S )Nr   rp   rY   r0   )r   r   is_multigraphrq   r*   r   r   r   )r   r   num_edre   r   r   r   rr     s   
&zTestEdgeView.test_lenc                 C   sr   |  | j}h d}| j r#||@ sJ dh||@ s!J dhd S ||@ ddhks-J ||@ ddhks7J d S )N   r   r   r]   rY   r   r   r   r   r   r   
some_edgesr   r   r   rx     s   
zTestEdgeView.test_andc                 C   sx   |  | j}h d}dd tdD }|| dd tdD }|| ||B ||fv s0J ||B ||fv s:J d S )Nr   c                 S      h | ]}||d  fqS r   r   rO   r   r   r   rm     r   z'TestEdgeView.test_or.<locals>.<setcomp>rp   c                 S   s   h | ]}|d  |fqS r   r   rO   r   r   r   rm     r   r   r   rR   r   )r   r   r   result1result2r   r   r   ry     s   

zTestEdgeView.test_orc                 C   s   |  | j}h d}| j r*dd tddD }|ddh ||A |ks(J d S dd tddD }|dh ||A |ksBJ d S )	Nr   c                 S   r   r   r   rO   r   r   r   rm     r   z(TestEdgeView.test_xor.<locals>.<setcomp>rY   rp   r   r   c                 S   r   r   r   rO   r   r   r   rm     r   r   r   r   rR   r   r   r   r   resultr   r   r   r|     s   
zTestEdgeView.test_xorc                 C   sD   |  | j}h d}dd tdD }|d || s J |d S )Nr   c                 S   r   r   r   rO   r   r   r   rm     r   z(TestEdgeView.test_sub.<locals>.<setcomp>rp   r   )r   r   rR   remover   r   r   r   r}     s
   
zTestEdgeView.test_subN)rF   rG   rH   rI   r   r    r   r%   r(   r6   rE   r   rB   r.   r   rr   rx   ry   r|   r}   r   r   r   r   r   2  s$    

	r   c                   @   r   )TestOutEdgeViewc                 C       t dt  | _t jj| _d S r   r   r   r   r   r   r        zTestOutEdgeView.setup_classc                 C   r   )NzMOutEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   r   r   r   r(     r   zTestOutEdgeView.test_reprc                 C   r   r   r   r   r   r   r   r     r   z)TestOutEdgeView.test_contains_with_nbunchNr   r   r   r   r   r    
    
r  c                   @   r   )TestInEdgeViewc                 C   r  r   r   r   r   r   r   r     r  zTestInEdgeView.setup_classc                 C   r   )NzLInEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   r   r   r   r(     r   zTestInEdgeView.test_reprc                 C   r   r   r   r   r   r   r   r     r   z(TestInEdgeView.test_contains_with_nbunchNr   r   r   r   r   r    r  r  c                   @   s   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )TestMultiEdgeViewc                 C   4   t dt  | _| jjddddd t jj| _d S Nr   rY   r]   r0   r/   )keyr1   )r
   r   r   r   r   r   r   r   r   r   r   r   r        zTestMultiEdgeView.setup_classc                 K   <   t |dkr
|d }|j|d  |d  |d  | d S Nr]   )r   r   rY   rq   r   r   r   r   r   r   r        (zTestMultiEdgeView.modify_edgec                 C   sF   |  | j}dd tdD }|dd t|}t||ks!J d S )Nc                 S      g | ]	}||d  dfqS r   r   rO   r   r   r   rQ     r   z.TestMultiEdgeView.test_str.<locals>.<listcomp>rp   r]   r   )r   r   rR   insertr#   )r   r   replistr   r   r   r   r%   	  s
   zTestMultiEdgeView.test_strc                 C   r   )Nr/   r   rY   r   r1   r   r2   r   r   r   r   r   r6     r   zTestMultiEdgeView.test_getitemc                 C   r   )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   r   r   r   r(     r   zTestMultiEdgeView.test_reprc                 C   s   |  | j}t|t|ddksJ t|t|dddks!J t|t|ddks.J t|t|ddks;J t|t|ddksHJ d S )NTkeysFr8   r  r7   rY   r   r   r   r   r   r   rE   "  s   zTestMultiEdgeView.test_callc                 C   s   |  | j}t|t| ksJ t|t|jdddks!J t|t|jddks/J t|t|jddks=J t|t|jddksKJ d S )NFTr  r  r7   rY   r   r   r   r   r   r   r   *  s    zTestMultiEdgeView.test_datac                 C   sX   |  | j}|D ]\}}}qt|}t|dksJ t||ks"J t||ks*J d S )Nr  r   )r   r   r   r   kr   r   r   r   rB   2  s   zTestMultiEdgeView.test_iterc                 C   s\  | j }| |}|dd}|D ]\}}}q|dksJ |dddd}|D ]\}}}}q$|dks1J | j|ddd	 |ddd
}|D ]k}t|dksKJ td| t|d d ddhkr{t| j jd d  |d dksnJ |d ddiksxJ d}	qAt|d d h dkr|d dksJ |d ddiksJ d}
qA|d dksJ |d i ksJ qA|	sJ |
sJ |dddd}|D ]`}t|d d ddhkr|d dkr|d dksJ t|d d ddhkr|d dkr|d dksJ t|d d ddhkr|d dks
J |d dksJ t|dksJ d}q|s$J |dd}|D ]}t|dks6J q+tdd tdD dg }tt	||ksQJ |dddd}|D ]4}t|d d ddhkr|d dv srJ |d dkr|d dksJ qZ|d dksJ qZ|
 rtt	|dksJ d S tt	|dksJ d S )NTr  r   r1   rY   )r  r8   rW   )r]   r0   r   r/   r   )r  r8   r^   zedge:r]   r0   r\   c                 S   r  r   r   )rP   r=   r   r   r   rQ   i  r   z3TestMultiEdgeView.test_iterkeys.<locals>.<listcomp>rp   r   r   >   r   r0   )r   r   r   rq   printra   r   sortedrR   r<   r   )r   r   r   r   r   r   r  r   r   r   checked_multir   elistr   r   r   test_iterkeys;  sr   


$$


zTestMultiEdgeView.test_iterkeysc                 C   s`   |  | j}h d}dd tdD }|| |dh ||B |ks&J ||B |ks.J d S )N   r  r   r]   r   rY   r   r   c                 S      h | ]	}||d  dfqS r   r   rO   r   r   r   rm   }  r   z,TestMultiEdgeView.test_or.<locals>.<setcomp>rp   r   r   r   r   r   r   ry   y     
zTestMultiEdgeView.test_orc                 C   s`   |  | j}h d}dd tdD }|d |dh || s&J ||| s.J |d S )Nr  c                 S   r   r   r   rO   r   r   r   rm     r   z-TestMultiEdgeView.test_sub.<locals>.<setcomp>rp   r  r   )r   r   rR   r  r   r   r   r   r   r}     r!  zTestMultiEdgeView.test_subc                 C   s   |  | j}h d}| j r2dd tddD }|h d ||A |ks(J ||A |ks0J d S dd tddD }|dd	h ||A |ksKJ ||A |ksSJ d S )
Nr  c                 S   r   r   r   rO   r   r   r   rm     r   z-TestMultiEdgeView.test_xor.<locals>.<setcomp>rY   rp   >   r  r  r   c                 S   r   r   r   rO   r   r   r   rm     r   r  r   r   r   r   r   r   r|     s   
zTestMultiEdgeView.test_xorc                 C   sr   |  | j}h d}| j r#||@ dhksJ ||@ dhks!J d S ||@ ddhks-J ||@ ddhks7J d S )Nr  r  r  r   r   r   r   r   rx     s   
zTestMultiEdgeView.test_andc                 C   r   r   r   r   r   r   r   r     r   z+TestMultiEdgeView.test_contains_with_nbunchN)rF   rG   rH   rI   r   r   r%   r6   r(   rE   r   rB   r  ry   r}   r|   rx   r   r   r   r   r   r    s     

	>

r  c                   @   r   )
TestOutMultiEdgeViewc                 C   r  r	  )r
   r   r   r   r   r   r   r   r   r   r   r   r     r  z TestOutMultiEdgeView.setup_classc                 K   r  r  r  r   r   r   r   r     r  z TestOutMultiEdgeView.modify_edgec                 C   r   )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   r   r   r   r(     r   zTestOutMultiEdgeView.test_reprc                 C   r   r   r   r   r   r   r   r     r   z.TestOutMultiEdgeView.test_contains_with_nbunchNr   r   r   r   r   r"        
r"  c                   @   r   )
TestInMultiEdgeViewc                 C   r  r	  )r
   r   r   r   r   r   r   r   r   r   r   r   r     r  zTestInMultiEdgeView.setup_classc                 K   r  r  r  r   r   r   r   r     r  zTestInMultiEdgeView.modify_edgec                 C   r   )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   r   r   r   r(     r   zTestInMultiEdgeView.test_reprc                 C   r   r   r   r   r   r   r   r     r   z-TestInMultiEdgeView.test_contains_with_nbunchNr   r   r   r   r   r$    r#  r$  c                   @   sf   e Zd ZejZejjZe	dd Z
dd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd ZdS )TestDegreeViewc                 C   s:   t d|  | _| jjdddd | jjdddd d S )Nr   rY   r0   r]   r   )r
   r   GRAPHr   r   r   r   r   r   r     s   zTestDegreeView.setup_classc                 C   s:   dd l }| jj}|||d}t|t|ksJ d S r   )r   r   degreer   r   dict)r   r   degpdegr   r   r   r      s   zTestDegreeView.test_picklec                 C   F   |  | j}tg d}t||ksJ | j }t||ks!J d S )N)r   rY   r0   r]   r]   r0   r0   r^   r]   r2   rY   dviewr   r#   r'  r   dvr   r   r   r   r%     
   
zTestDegreeView.test_strc                 C   r   )Nz0DegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1}))r2  r   r'   r3  r   r   r   r(     s   zTestDegreeView.test_reprc                 C   s   |  | j}|D ]\}}qt|}t||ksJ t||ks!J t|d|d fks-J t|d|d fks9J | j | jdd}|D ]\}}qCt|}t||ksTJ t||ks\J t|d|d fkshJ t|d|d fkstJ d S )Nr   rY   r1   rC   )r2  r   r:   r;   )r   r4  r>   r[   idvr   r   r   rB     s    zTestDegreeView.test_iterc                 C   D   |  | j}|d}|dksJ |ddg}t|ddgks J d S )Nr   rY   r]   r0   r-  r.  r2  r   r  r   r4  dvnr   r   r   test_nbunch'  
   zTestDegreeView.test_nbunchc                 C   s   |  | j}|d dksJ |d dksJ |d dksJ |d dks&J | j | jdd}|d dks6J |d dks>J |d dksFJ |d dksNJ d S )Nr   rY   r0   r]   r1   r6  r2   r2  r   r   r4  r   r   r   r6   .     zTestDegreeView.test_getitemc                 C      |  | j}|ddd}|dksJ |ddd}|dksJ |ddgdd}t|dd	gks0J t|dd}|d dks?J |d dksGJ |d dksOJ |d dksWJ d S )
Nr   r1   r6  rY   r2   r]   r0   r-  )r0   r2   r2  r   r  r(  r   r4  dvwdvdr   r   r   test_weight:     zTestDegreeView.test_weightc                 C   s    |  | j}t|dksJ d S )Nr   )r2  r   rq   r?  r   r   r   rr   H  s   zTestDegreeView.test_lenN)rF   rG   rH   r
   Graphr&  r   
DegreeViewr2  rI   r   r    r%   r(   rB   r<  r6   rF  rr   r   r   r   r   r%    s    
r%  c                   @   "   e Zd ZejZejjZdd Z	dS )TestDiDegreeViewc                 C   "   | j  }d}t||ksJ d S )Nz2DiDegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1})r   r'  r'   r3  r   r   r   r(   Q     
zTestDiDegreeView.test_reprN)
rF   rG   rH   r
   r   r&  r   DiDegreeViewr2  r(   r   r   r   r   rK  M      rK  c                   @   B   e Zd ZejZejjZdd Z	dd Z
dd Zdd Zd	d
 ZdS )TestOutDegreeViewc                 C   r+  )N)r   r   r   r0   rY   r^   rY   r2   r   r2  r   r#   
out_degreer3  r   r   r   r%   [  r5  zTestOutDegreeView.test_strc                 C   rL  )Nz3OutDegreeView({0: 1, 1: 2, 2: 1, 3: 1, 4: 1, 5: 0})r   rW  r'   r3  r   r   r   r(   b  rN  zTestOutDegreeView.test_reprc                 C   r8  Nr   rY   r]   r0   r   rS  r9  r:  r   r   r   r<  g  r=  zTestOutDegreeView.test_nbunchc                 C   s   |  | j}|d dksJ |d dksJ |d dksJ |d dks&J | j | jdd}|d dks6J |d dks>J |d dksFJ |d dksNJ d S Nr   rY   r]   r0   r1   r6  r^   r>  r?  r   r   r   r6   n  r@  zTestOutDegreeView.test_getitemc                 C      |  | j}|ddd}|dksJ |ddd}|dksJ |ddgdd}t|dd	gks0J t|dd}|d dks?J |d dksGJ |d dksOJ |d dksWJ d S )
Nr   r1   r6  rY   r^   r]   r0   r   rS  rB  rC  r   r   r   rF  z  rG  zTestOutDegreeView.test_weightN)rF   rG   rH   r
   r   r&  r   OutDegreeViewr2  r%   r(   r<  r6   rF  r   r   r   r   rR  W      rR  c                   @   rQ  )TestInDegreeViewc                 C   r+  )N)r   r   rY   rY   r   r0   r]   rT  r0  r2  r   r#   	in_degreer3  r   r   r   r%     r5  zTestInDegreeView.test_strc                 C   rL  )Nz2InDegreeView({0: 0, 1: 1, 2: 1, 3: 2, 4: 1, 5: 1})r   rc  r'   r3  r   r   r   r(     rN  zTestInDegreeView.test_reprc                 C   D   |  | j}|d}|dksJ |ddg}t|ddgks J d S )Nr   r]   r0   r   ra  r9  r:  r   r   r   r<    r=  zTestInDegreeView.test_nbunchc                 C   s   |  | j}|d dksJ |d dksJ |d dksJ |d dks&J | j | jdd}|d dks6J |d dks>J |d dksFJ |d dksNJ d S rZ  r>  r?  r   r   r   r6     r@  zTestInDegreeView.test_getitemc                 C      |  | j}|ddd}|dksJ |ddd}|dksJ |ddgdd}t|ddgks0J t|dd}|d dks?J |d dksGJ |d dksOJ |d d	ksWJ d S )
Nr   r1   r6  rY   r]   r0   r   r   r^   rB  rC  r   r   r   rF    rG  zTestInDegreeView.test_weightN)rF   rG   rH   r
   r   r&  r   InDegreeViewr2  r%   r(   r<  r6   rF  r   r   r   r   r^    r]  r^  c                   @   rQ  )TestMultiDegreeViewc                 C   r+  )N)r   r   r-  r   r/  r0  r1  r3  r   r   r   r%     r5  zTestMultiDegreeView.test_strc                 C   rL  )Nz5MultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})rM  r3  r   r   r   r(     rN  zTestMultiDegreeView.test_reprc                 C   r8  )Nr   rY   r]   r0   r-  r   r9  r:  r   r   r   r<    r=  zTestMultiDegreeView.test_nbunchc                 C   s   |  | j}|d dksJ |d dksJ |d dksJ |d dks&J | j | jdd}|d dks6J |d dks>J |d dksFJ |d dksNJ d S )	Nr   rY   r^   r]   r0   r1   r6  r)   r>  r?  r   r   r   r6     r@  z TestMultiDegreeView.test_getitemc                 C   rA  )
Nr   r1   r6  rY   r)   r]   r0   r-  )r0   r)   rB  rC  r   r   r   rF    rG  zTestMultiDegreeView.test_weightN)rF   rG   rH   r
   r   r&  r   MultiDegreeViewr2  r%   r(   r<  r6   rF  r   r   r   r   rh    r]  rh  c                   @   rJ  )TestDiMultiDegreeViewc                 C   rL  )Nz7DiMultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})rM  r3  r   r   r   r(     rN  zTestDiMultiDegreeView.test_reprN)
rF   rG   rH   r
   r   r&  r   DiMultiDegreeViewr2  r(   r   r   r   r   rj    rP  rj  c                   @   rQ  )TestOutMultiDegreeViewc                 C   r+  )N)r   r,  r   rS  rT  rU  rV  r3  r   r   r   r%     r5  zTestOutMultiDegreeView.test_strc                 C   rL  )Nz8OutMultiDegreeView({0: 1, 1: 3, 2: 1, 3: 1, 4: 1, 5: 0})rX  r3  r   r   r   r(     rN  z TestOutMultiDegreeView.test_reprc                 C   r8  rY  r9  r:  r   r   r   r<    r=  z"TestOutMultiDegreeView.test_nbunchc                 C   s   |  | j}|d dksJ |d dksJ |d dksJ |d dks&J | j | jdd}|d dks6J |d dks>J |d dksFJ |d dksNJ d S )Nr   rY   r0   r]   r1   r6  r   r>  r?  r   r   r   r6     r@  z#TestOutMultiDegreeView.test_getitemc                 C   r[  )
Nr   r1   r6  rY   r   r]   r0   r   rS  rB  rC  r   r   r   rF    rG  z"TestOutMultiDegreeView.test_weightN)rF   rG   rH   r
   r   r&  r   OutMultiDegreeViewr2  r%   r(   r<  r6   rF  r   r   r   r   rl    r]  rl  c                   @   rQ  )TestInMultiDegreeViewc                 C   r+  )N)r_  r`  r   r.  rT  r0  rb  r3  r   r   r   r%   -  r5  zTestInMultiDegreeView.test_strc                 C   rL  )Nz7InMultiDegreeView({0: 0, 1: 1, 2: 1, 3: 3, 4: 1, 5: 1})rd  r3  r   r   r   r(   4  rN  zTestInMultiDegreeView.test_reprc                 C   re  )Nr   r]   r0   r   r.  r9  r:  r   r   r   r<  9  r=  z!TestInMultiDegreeView.test_nbunchc                 C   s   |  | j}|d dksJ |d dksJ |d dksJ |d dks&J | j | jdd}|d dks6J |d dks>J |d dksFJ |d dksNJ d S )Nr   rY   r]   r0   r1   r6  r   r>  r?  r   r   r   r6   @  r@  z"TestInMultiDegreeView.test_getitemc                 C   rf  )
Nr   r1   r6  rY   r]   r0   r   )r0   r   r   rB  rC  r   r   r   rF  L  rG  z!TestInMultiDegreeView.test_weightN)rF   rG   rH   r
   r   r&  r   InMultiDegreeViewr2  r%   r(   r<  r6   rF  r   r   r   r   rn  )  r]  rn  )
reportviewerr_msg_termszlist(G.nodeszlist(G.nodes.datazlist(G.edgeszlist(G.in_edgesc                 C   sv   t d}| |}tt j}|dd  W d    n1 s w   Y  t|j}t|j|v s3J ||v s9J d S )Nr0   r   r]   )	r
   complete_graphr3   r4   r5   r#   valuetyperF   )rp  rq  r   viewexcerrmsgr   r   r   test_slicing_reportviews[  s   

rx  graphc                 C   s   t d|  }|j|j|j|jf | r#|j|j|j	|j
|j|jf |j}d|v s,J d|v s2J d|v s8J d|v s>J | rfd|v sHJ d|v sNJ d|v sTJ d	|v sZJ d
|v s`J d|v sfJ tt|d t| d S )Nr2   r   r   adjr'  predsuccin_edges	out_edgesrc  rW  r   )r
   r   r   r   rz  r'  r   r{  r|  r}  r~  rc  rW  __dict__r   r   r   r   )ry  r   cached_dictr   r   r   test_cache_dict_get_set_statet  s$   r  )4r   r*   r   r3   networkxr
   networkx.classesr   rvnetworkx.classes.reportviewsr   r   rJ   rg   rh   r   r   r   r   r   r   r   r   r   r  r  r  r"  r$  r%  rK  rR  r^  rh  rj  rl  rn  markparametrizeNodeViewr   r   r   r   r   r   rx  rH  r   r   r   r  r   r   r   r   <module>   sf    ?h1y.    8!"V
222
22

