U
    ?hQ                     @   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                   @   sP   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   Y/var/www/html/venv/lib/python3.8/site-packages/networkx/classes/tests/test_reportviews.pysetup_class   s    zTestNodeView.setup_classc                 C   s@   dd l }| j}|||d}||ks,t|j|jks<td S Nr   pickler   loadsdumpsAssertionError	__slots__selfr   r   Zpnvr   r   r   test_pickle   s
    zTestNodeView.test_picklec                 C   s   t | jdkstd S )Nz[0, 1, 2, 3, 4, 5, 6, 7, 8])strr   r   r   r   r   r   test_str   s    zTestNodeView.test_strc                 C   s   t | jdkstd S )Nz%NodeView((0, 1, 2, 3, 4, 5, 6, 7, 8)))reprr   r   r   r   r   r   	test_repr   s    zTestNodeView.test_reprc                 C   sX   | j  }|j}d|kstd|ks(t|d |d d|ksHtd|ksTtd S )N   r   )r   copyr   r   remove_nodeadd_noder   r   r   r   r   r   test_contains    s    


zTestNodeView.test_containsc              	   C   sl   | j  }|j}d|jd d< |d i ks.t|d ddiksBtttj |jdd  W 5 Q R X d S )Nbar   foor#   r      )r   r$   r   r   pytestraisesr	   NetworkXErrorr'   r   r   r   test_getitem*   s    
zTestNodeView.test_getitemc                 C   s   | j }t|D ]\}}||kstqt|}t|dks<tt||ksLtt||ks\tt|}t| t|t|kst|dd}t|D ]\}}||kstqd S )Nr   Fdata)r   	enumerater   iternextlist)r   r   ininvZinv2Znnvr   r   r   	test_iter4   s    
zTestNodeView.test_iterc                 C   s<   | j }|| kst||ddk	s&t||ddk	s8td S )NTr1   weight)r   r   r   r   r   r   r   	test_callD   s    zTestNodeView.test_callN)__name__
__module____qualname__classmethodr   r   r    r"   r(   r0   r:   r=   r   r   r   r   r      s   


r   c                   @   sP   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 )TestNodeDataViewc                 C   s<   t d| _t| j| _| jjd| _| jjd| _d S )Nr   Tr+   )	r	   r
   r   r   r   r   r2   ndvnwvr   r   r   r   r   L   s    zTestNodeDataView.setup_classc                 C   s0   | j j}|d}||kst|| jk	s,td S )NF)r   r   r2   r   rC   )r   r   Zndvfalser   r   r   test_viewtypeS   s    
zTestNodeDataView.test_viewtypec                 C   s@   dd l }| j}|||d}||ks,t|j|jks<td S r   r   r   r   r   r   r   Y   s
    zTestNodeDataView.test_picklec                 C   s,   t dd tdD }t | j|ks(td S )Nc                 S   s   g | ]}|i fqS r   r   .0r8   r   r   r   
<listcomp>b   s     z-TestNodeDataView.test_str.<locals>.<listcomp>r   )r   rangerC   r   )r   msgr   r   r   r    a   s    zTestNodeDataView.test_strc                 C   sF   d}t | j|kstd}t | j|ks,td}t | j|ksBt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   r   rC   rD   )r   expectedr   r   r   r"   e   s    zTestNodeDataView.test_reprc                 C   s   | j  }|j }|jd}d|jd d< di f|ks>tdddif|ksRtd|ks^td|ksjt|jddd}d	|kstd|kstd S )
Nr+   r)   r*   r#   )r*   r)   )r#   Nbizr2   default)r#   rL   )r   r$   r   r2   r   )r   r   r   rD   nwv_defr   r   r   r(   s   s    

zTestNodeDataView.test_containsc              	   C   s   | j  }|j}d|jd d< |d ddiks2t|jddd}|d sPtd|d dks`tttj |j dd  W 5 Q R X d S )	Nr)   r*   r+   rL   rM   r#   r   r,   )	r   r$   r   r   r-   r.   r	   r/   r2   )r   r   r   rO   r   r   r   r0      s    
zTestNodeDataView.test_getitemc           	      C   sh  | j  }|j }|jd}|jd}t|D ]$\}\}}||ksLt|i ks4tq4t|}t|di fksvtd|jd d< |D ].\}}|dkr|ddikstq|i kstq|D ].\}}|dkr|ddikstq|i kstq|D ].\}}|dkr|dkstq|d kstq|jjdddD ]2\}}|dkrR|dks`tn|dks0tq0d S )NTr+   r   r)   r*      rN   )r   r$   r   r2   r3   r   r4   r5   )	r   r   r   rC   rD   r7   r8   dr9   r   r   r   r:      s4    



zTestNodeDataView.test_iterN)r>   r?   r@   rA   r   rE   r   r    r"   r(   r0   r:   r   r   r   r   rB   K   s   
rB   c                  C   s   t d} d| jd d< | j g}|| jd |  }dddh|jd d< ||jd |D ]$}ttt	| ttt
d	t  qh| jd
}t	| ||B  | jd}t	| ||B  d S )Nr   r)   r*   r+   TrP         znv | nvF)r	   r
   r   r2   appendr$   r-   r.   	TypeErrorsetevallocals)r   ZnvsHr   ZGnr   r   r   test_nodedataview_unhashable   s     
r[   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)   r*   r+   r   r   r   r   r   r      s    zTestNodeViewSetOps.setup_classc                 C   s   t |S )N)rW   r<   r   r   r   n_its   s    zTestNodeViewSetOps.n_itsc                 C   sX   | j  }|j}t|dks t|d t|dks:t|d t|dksTtd S )Nr   r#      )r   r$   r   lenr   r%   r&   r'   r   r   r   test_len   s    


zTestNodeViewSetOps.test_lenc                 C   sR   | j }| tdd}||@ | tddks2t||@ | tddksNtd S Nr,      r   r   r^   rI   r   r   r   
some_nodesr   r   r   test_and   s    zTestNodeViewSetOps.test_andc                 C   sN   | j }| tdd}||B | tdks0t||B | tdksJtd S )Nr,   rc   rd   re   r   r   r   test_or   s    zTestNodeViewSetOps.test_orc                 C   sZ   | j }| tdd}ddddddd	d
h}||A | |ks@t||A | |ksVtd S )Nr,   rc   r   rP   rS   r*   rT   r   
      rd   )r   r   rf   r   r   r   r   test_xor   s
    zTestNodeViewSetOps.test_xorc                 C   sP   | j }| tdd}|| | tdks0t|| | tddksLtd S rb   rd   re   r   r   r   test_sub   s    zTestNodeViewSetOps.test_subN)r>   r?   r@   rA   r   r^   ra   rg   rh   rk   rl   r   r   r   r   r\      s   
	r\   c                   @   s    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 r]   r	   r
   r   r   r2   r   r   r   r   r   r      s    z"TestNodeDataViewSetOps.setup_classc                 C   s   dd |D S )Nc                 S   s    h | ]}||d krdndfqS )r*   r)   Nr   rG   noder   r   r   	<setcomp>  s     z/TestNodeDataViewSetOps.n_its.<locals>.<setcomp>r   r<   r   r   r   r^      s    zTestNodeDataViewSetOps.n_itsNr>   r?   r@   rA   r   r^   r   r   r   r   rm      s   
rm   c                   @   s    e Zd Zedd Zdd ZdS )TestNodeDataViewDefaultSetOpsc                 C   s4   t d| _d| jjd d< | jjjddd| _d S )Nr   r)   r*   r+   rP   rQ   rn   r   r   r   r   r     s    z)TestNodeDataViewDefaultSetOps.setup_classc                 C   s   dd |D S )Nc                 S   s    h | ]}||d krdndfqS )r*   r)   rP   r   ro   r   r   r   rq     s     z6TestNodeDataViewDefaultSetOps.n_its.<locals>.<setcomp>r   r<   r   r   r   r^     s    z#TestNodeDataViewDefaultSetOps.n_itsNrr   r   r   r   r   rs     s   
rs   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   s   t d| _t jj| _d S r   r	   r
   r   r   EdgeVieweviewr   r   r   r   r     s    zTestEdgeDataView.setup_classc                 C   sT   dd l }| | jdd}|||d}t|t|ks@t|j|jksPtd S )Nr   Tr1   r   )r   rw   r   r   r   r6   r   r   r   r   evZpevr   r   r   r     s
    zTestEdgeDataView.test_picklec                 K   s    |j |d  |d  | d S Nr   rP   _adjupdater   r   ekwdsr   r   r   modify_edge  s    zTestEdgeDataView.modify_edgec                 C   s<   |  | jdd}tdd tdD }t||ks8td S )NTr1   c                 S   s   g | ]}||d  i fqS rP   r   rF   r   r   r   rH   #  s     z-TestEdgeDataView.test_str.<locals>.<listcomp>r_   rw   r   r   rI   r   r   ry   repr   r   r   r    !  s    zTestEdgeDataView.test_strc                 C   s*   |  | jdd}d}t||ks&td S )NTr1   znEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])rw   r   r!   r   r   r   r   r   r"   &  s    zTestEdgeDataView.test_reprc                 C   s@  | j  }| |}|dd}|ddd}|D ]
\}}}q.|i ksFt|D ]
\}}}qJ|dksbt| j|ddd |D ]V}	t|	d	kstt|	d d
 d
d	hkr|	d
 ddikstd}
qv|	d
 i ksvtqv|
st|D ]V}	t|	d	kstt|	d d
 d
d	hkr |	d
 dkstd}q|	d
 dkstq|s<td S )NTr1   r+   rP   rM   rS   r*   r)   r+   r*   rS   )r   r$   rw   r   r   r`   rW   )r   r   evrry   Zev_defuvrR   wtr   checked
checked_wtr   r   r   test_iterdata0  s2    


zTestEdgeDataView.test_iterdatac                 C   s\   |  | j}| }|D ]\}}qt|}t|dks8tt||ksHtt||ksXtd S Nr   rP   rw   r   r4   r5   r   )r   r   ry   r   r   ievr   r   r   r:   Q  s    zTestEdgeDataView.test_iterc                 C   sn   |  | j}| }| j r2d|kr,d|ksFtnd|krBd|ksFtd|ksRtd|ks^td|ksjtd S NrP   rS   rS   rP   rP   rT   )rP   Z   )r   rP   rw   r   is_directedr   r   r   ry   r   r   r   r(   [  s    
zTestEdgeDataView.test_containsc                 C   s   |  | j}|ddgd}| j rJd|ks0td|ks<td|ksntn$d|ksVtd|ksbtd|ksntd|ksztd|kstd	|kstd
|kstd|kstd S Nr   rS   Znbunchr   r   r   r*   rT   )rT   r,   )r,      )r#   r_   )r_   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&tt|ddks:tt|dddgdksTtt| jddksltt| j dkstt| jjdkst| j }|dd t|ddkstt| dkstt|jdkstd S )	Nr+   r1   r_   rP   rS   r*   rT   r   rw   r   r`   r   edgesr$   add_edger   r   ry   rZ   r   r   r   ra   w  s    

zTestEdgeDataView.test_lenN)r>   r?   r@   rA   r   r   r   r    r"   r   r:   r(   r   ra   r   r   r   r   rt     s   

!
rt   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestOutEdgeDataViewc                 C   s"   t jdt  d| _t jj| _d S Nr   )Zcreate_usingr	   r
   DiGraphr   r   OutEdgeViewrw   r   r   r   r   r     s    zTestOutEdgeDataView.setup_classc                 C   s*   |  | jdd}d}t||ks&td S )NTr1   zqOutEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r"     s    zTestOutEdgeDataView.test_reprc                 C   s   |  | j}|dd}t|dks&tt|ddks:tt|dddgdksTtt| jddksltt| j dkstt| jjdkst| j }|dd t|ddkstt| dkstt|jdkstd S )Nr+   r1   r_   rP   rS   r*   r   r   r   r   r   r   ra     s    

zTestOutEdgeDataView.test_lenc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   rw   r   r   r   r   r   r   r     s    z-TestOutEdgeDataView.test_contains_with_nbunchN)r>   r?   r@   rA   r   r"   ra   r   r   r   r   r   r     s
   

r   c                   @   s(   e Zd Zedd Zdd Zdd ZdS )TestInEdgeDataViewc                 C   s"   t jdt  d| _t jj| _d S r   r	   r
   r   r   r   
InEdgeViewrw   r   r   r   r   r     s    zTestInEdgeDataView.setup_classc                 C   s*   |  | jdd}d}t||ks&td S )NTr1   zpInEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r"     s    zTestInEdgeDataView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z,TestInEdgeDataView.test_contains_with_nbunchNr>   r?   r@   rA   r   r"   r   r   r   r   r   r     s   

r   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestMultiEdgeDataViewc                 C   s"   t jdt  d| _t jj| _d S r   )r	   r
   
MultiGraphr   r   MultiEdgeViewrw   r   r   r   r   r     s    z!TestMultiEdgeDataView.setup_classc                 K   s$   |j |d  |d  d | d S rz   r{   r~   r   r   r   r     s    z!TestMultiEdgeDataView.modify_edgec                 C   s*   |  | jdd}d}t||ks&td S )NTr1   zsMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r"     s    zTestMultiEdgeDataView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z/TestMultiEdgeDataView.test_contains_with_nbunchNr>   r?   r@   rA   r   r   r"   r   r   r   r   r   r     s
   

r   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestOutMultiEdgeDataViewc                 C   s"   t jdt  d| _t jj| _d S r   )r	   r
   MultiDiGraphr   r   OutMultiEdgeViewrw   r   r   r   r   r     s    z$TestOutMultiEdgeDataView.setup_classc                 K   s$   |j |d  |d  d | d S rz   r{   r~   r   r   r   r     s    z$TestOutMultiEdgeDataView.modify_edgec                 C   s*   |  | jdd}d}t||ks&td S )NTr1   zvOutMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r"     s    z"TestOutMultiEdgeDataView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z2TestOutMultiEdgeDataView.test_contains_with_nbunchNr   r   r   r   r   r     s
   

r   c                   @   s(   e Zd Zedd Zdd Zdd ZdS )TestInMultiEdgeDataViewc                 C   s"   t jdt  d| _t jj| _d S r   )r	   r
   r   r   r   InMultiEdgeViewrw   r   r   r   r   r     s    z#TestInMultiEdgeDataView.setup_classc                 C   s*   |  | jdd}d}t||ks&td S )NTr1   zuInMultiEdgeDataView([(0, 1, {}), (1, 2, {}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 7, {}), (7, 8, {})])r   r   r   r   r   r"     s    z!TestInMultiEdgeDataView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r   $  s    z1TestInMultiEdgeDataView.test_contains_with_nbunchNr   r   r   r   r   r     s   

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   s   t d| _t jj| _d S r   ru   r   r   r   r   r   3  s    zTestEdgeView.setup_classc                 C   sF   dd l }| | j}|||d}||ks2t|j|jksBtd S r   )r   rw   r   r   r   r   r   rx   r   r   r   r   8  s
    zTestEdgeView.test_picklec                 K   s    |j |d  |d  | d S rz   r{   r~   r   r   r   r   @  s    zTestEdgeView.modify_edgec                 C   s6   |  | j}tdd tdD }t||ks2td S )Nc                 S   s   g | ]}||d  fqS r   r   rF   r   r   r   rH   E  s     z)TestEdgeView.test_str.<locals>.<listcomp>r_   r   r   r   r   r   r    C  s    zTestEdgeView.test_strc                 C   s$   |  | j}d}t||ks t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  s    zTestEdgeView.test_reprc              	   C   s\   | j  }|j}d|jd d< |d ddiks2tttj |jdd  W 5 Q R X d S )Nr)   r   r+   r   r,   r   r$   r   r   r-   r.   r	   r/   r   r   ry   r   r   r   r0   P  s    
zTestEdgeView.test_getitemc                 C   st   |  | j}t|t| ks"tt|t|ddks<tt|t|ddksVtt|t|ddksptd S NFr1   TrP   r   rw   r   idr   r   ry   r   r   r   r=   Z  s
    zTestEdgeView.test_callc                 C   s|   |  | j}t|t| ks$tt|t|jddks@tt|t|jddks\tt|t|jddksxtd S r   rw   r   r   r2   r   r   r   r   r   	test_dataa  s
    zTestEdgeView.test_datac                 C   sV   |  | j}|D ]\}}qt|}t|dks2tt||ksBtt||ksRtd S r   r   )r   ry   r   r   r   r   r   r   r:   h  s    zTestEdgeView.test_iterc                 C   s   |  | j}| }| j rFd|kr,d|ks0td|kr@d|ksntn(d|krVd|ksZtd|krjd|ksntd|ksztd|kstd|kstd|kstd|kstd|kstd S r   r   )r   ry   Zedvr   r   r   r(   q  s    
zTestEdgeView.test_containsc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   ry   Zevnr   r   r   r     s    z&TestEdgeView.test_contains_with_nbunchc                 C   s   |  | j}| j rdnd}t||ks.t| j }|dd t|dd|  |  ksjtt| |d kstt|j|d kstd S )Nr   r_   rP   r*   )	rw   r   Zis_multigraphr`   r   r$   r   r   r   )r   ry   Znum_edrZ   r   r   r   ra     s    
&zTestEdgeView.test_lenc                 C   sr   |  | j}dddh}| j rF||@ s2tdh||@ sntdhn(||@ ddhksZt||@ ddhksntd S )Nr   rP   r   r   rS   r   r   ry   
some_edgesr   r   r   rg     s    

zTestEdgeView.test_andc                 C   sz   |  | j}dddh}dd tdD }|| dd tdD }|| ||B ||fksbt||B ||fksvtd S )Nr   r   r   c                 S   s   h | ]}||d  fqS r   r   rF   r   r   r   rq     s     z'TestEdgeView.test_or.<locals>.<setcomp>r_   c                 S   s   h | ]}|d  |fqS r   r   rF   r   r   r   rq     s     rw   r   rI   r}   r   )r   ry   r   Zresult1Zresult2r   r   r   rh     s    


zTestEdgeView.test_orc                 C   s   |  | j}dddh}| j rTdd tddD }|ddh ||A |kstn0dd tddD }|dh ||A |kstd S )	Nr   r   r   c                 S   s   h | ]}||d  fqS r   r   rF   r   r   r   rq     s     z(TestEdgeView.test_xor.<locals>.<setcomp>rP   r_   c                 S   s   h | ]}||d  fqS r   r   rF   r   r   r   rq     s     rw   r   r   rI   r}   r   r   ry   r   resultr   r   r   rk     s    

zTestEdgeView.test_xorc                 C   sF   |  | j}dddh}dd tdD }|d || sBt|d S )Nr   r   r   c                 S   s   h | ]}||d  fqS r   r   rF   r   r   r   rq     s     z(TestEdgeView.test_sub.<locals>.<setcomp>r_   )rw   r   rI   remover   r   r   r   r   rl     s
    

zTestEdgeView.test_subN)r>   r?   r@   rA   r   r   r   r    r"   r0   r=   r   r:   r(   r   ra   rg   rh   rk   rl   r   r   r   r   r   2  s"   

	r   c                   @   s(   e Zd Zedd Zdd Zdd ZdS )TestOutEdgeViewc                 C   s    t dt  | _t jj| _d S r   r   r   r   r   r   r     s    zTestOutEdgeView.setup_classc                 C   s$   |  | j}d}t||ks td S )NzMOutEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   r   r   r   r"     s    zTestOutEdgeView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z)TestOutEdgeView.test_contains_with_nbunchNr   r   r   r   r   r     s   
r   c                   @   s(   e Zd Zedd Zdd Zdd ZdS )TestInEdgeViewc                 C   s    t dt  | _t jj| _d S r   r   r   r   r   r   r     s    zTestInEdgeView.setup_classc                 C   s$   |  | j}d}t||ks td S )NzLInEdgeView([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)])r   r   r   r   r   r"     s    zTestInEdgeView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z(TestInEdgeView.test_contains_with_nbunchNr   r   r   r   r   r     s   
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   s4   t dt  | _| jjddddd t jj| _d S Nr   rP   rS   r*   r)   )keyr+   )r	   r
   r   r   r   r   r   rw   r   r   r   r   r     s    zTestMultiEdgeView.setup_classc                 K   s<   t |dkr|d }|j|d  |d  |d  | d S NrS   )r   r   rP   r`   r|   r}   r~   r   r   r   r     s    zTestMultiEdgeView.modify_edgec                 C   sF   |  | j}dd tdD }|dd t|}t||ksBtd S )Nc                 S   s   g | ]}||d  dfqS r   r   rF   r   r   r   rH     s     z.TestMultiEdgeView.test_str.<locals>.<listcomp>r_   rS   rP   rS   r*   )rw   r   rI   insertr   r   )r   ry   Zreplistr   r   r   r   r    	  s
    zTestMultiEdgeView.test_strc              	   C   s\   | j  }|j}d|jd d< |d ddiks2tttj |jdd  W 5 Q R X d S )Nr)   r   rP   r   r+   r   r,   r   r   r   r   r   r0     s    
zTestMultiEdgeView.test_getitemc                 C   s$   |  | j}d}t||ks t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   r   r   r   r"     s    zTestMultiEdgeView.test_reprc                 C   s   |  | j}t|t|ddks&tt|t|dddksBtt|t|ddks\tt|t|ddksvtt|t|ddkstd S )NTkeysFr2   r   r1   rP   r   r   r   r   r   r   r=   "  s    zTestMultiEdgeView.test_callc                 C   s   |  | j}t|t| ks$tt|t|jdddksBtt|t|jddks^tt|t|jddksztt|t|jddkstd S )NFTr   r   r1   rP   r   r   r   r   r   r   r   *  s    zTestMultiEdgeView.test_datac                 C   sX   |  | j}|D ]
\}}}qt|}t|dks4tt||ksDtt||ksTtd S )Nr   r   )r   ry   r   r   kr   r   r   r   r:   2  s    zTestMultiEdgeView.test_iterc                 C   sp  | j }| |}|dd}|D ]
\}}}q|dks6t|dddd}|D ]\}}}}qH|dksbt| j|ddd	 |ddd
}|D ]}t|dksttd| t|d d ddhkrt| j jd d  |d dkst|d ddikstd}	qt|d d dddhkr@|d dks$t|d ddiks:td}
q|d dksRt|d i kstq|	snt|
sxt|dddd}|D ]}t|d d ddhkr|d dkr|d dkstt|d d ddhkr|d dkr|d dkstt|d d ddhkr|d dks.t|d dks@tt|dksRtd}q|sdt|dd}|D ]}t|dksrtqrtdd t	dD dg }t||kst|dddd}|D ]f}t|d d ddhkr|d dkst|d dkr|d dks0tn|d dkstq|
 rVtt|dksltntt|dksltd S )NTr   r   r+   rP   )r   r2   rN   )rS   r*   r   r)   r   )r   r2   rT   zedge:rS   r*   c                 S   s   g | ]}||d  dfqS r   r   )rG   r7   r   r   r   rH   i  s     z3TestMultiEdgeView.test_iterkeys.<locals>.<listcomp>r_   r   r   >   r   r*   )r   rw   r   r   r`   printrW   r|   sortedrI   r   r6   )r   r   r   ry   r   r   r   r   r   r   Zchecked_multir   Zelistr   r   r   test_iterkeys;  sn    




((


zTestMultiEdgeView.test_iterkeysc                 C   sb   |  | j}dddh}dd tdD }|| |dh ||B |ksNt||B |ks^td S )Nr   rP   r   r   r   rS   r   c                 S   s   h | ]}||d  dfqS r   r   rF   r   r   r   rq   }  s     z,TestMultiEdgeView.test_or.<locals>.<setcomp>r_   r   r   r   r   r   r   rh   y  s    

zTestMultiEdgeView.test_orc                 C   sb   |  | j}dddh}dd tdD }|d |dh || sNt||| s^t|d S )Nr   r   r   c                 S   s   h | ]}||d  dfqS r   r   rF   r   r   r   rq     s     z-TestMultiEdgeView.test_sub.<locals>.<setcomp>r_   r   )rw   r   rI   r   r}   r   r   r   r   r   rl     s    

zTestMultiEdgeView.test_subc                 C   s   |  | j}dddh}| j rfdd tddD }|dddh ||A |ksTt||A |kstnBd	d tddD }|ddh ||A |kst||A |kstd S )
Nr   r   r   c                 S   s   h | ]}||d  dfqS r   r   rF   r   r   r   rq     s     z-TestMultiEdgeView.test_xor.<locals>.<setcomp>rP   r_   r   c                 S   s   h | ]}||d  dfqS r   r   rF   r   r   r   rq     s     r   r   r   r   r   rk     s    

zTestMultiEdgeView.test_xorc                 C   sr   |  | j}dddh}| j rF||@ dhks2t||@ dhksntn(||@ ddhksZt||@ ddhksntd S )Nr   r   r   r   r   r   r   r   rg     s    

zTestMultiEdgeView.test_andc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z+TestMultiEdgeView.test_contains_with_nbunchN)r>   r?   r@   rA   r   r   r    r0   r"   r=   r   r:   r   rh   rl   rk   rg   r   r   r   r   r   r     s   

	>

r   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestOutMultiEdgeViewc                 C   s4   t dt  | _| jjddddd t jj| _d S r   )r	   r
   r   r   r   r   r   rw   r   r   r   r   r     s    z TestOutMultiEdgeView.setup_classc                 K   s<   t |dkr|d }|j|d  |d  |d  | d S r   r   r~   r   r   r   r     s    z TestOutMultiEdgeView.modify_edgec                 C   s$   |  | j}d}t||ks t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   r   r   r   r"     s    zTestOutMultiEdgeView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z.TestOutMultiEdgeView.test_contains_with_nbunchNr   r   r   r   r   r     s
   
r   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestInMultiEdgeViewc                 C   s4   t dt  | _| jjddddd t jj| _d S r   )r	   r
   r   r   r   r   r   rw   r   r   r   r   r     s    zTestInMultiEdgeView.setup_classc                 K   s<   t |dkr|d }|j|d  |d  |d  | d S r   r   r~   r   r   r   r     s    zTestInMultiEdgeView.modify_edgec                 C   s$   |  | j}d}t||ks t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   r   r   r   r"     s    zTestInMultiEdgeView.test_reprc                 C   s~   |  | j}|ddgd}d|ks&td|ks2td|ks>td|ksJtd|ksVtd	|ksbtd
|ksntd|ksztd S r   r   r   r   r   r   r     s    z-TestInMultiEdgeView.test_contains_with_nbunchNr   r   r   r   r   r     s
   
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   rP   r*   rS   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s6td S r   )r   r   degreer   r   dictr   )r   r   degZpdegr   r   r   r     s    zTestDegreeView.test_picklec                 C   sN   |  | j}tddddddg}t||ks0t| j }t||ksJtd S )Nr   rP   r*   rS   rS   r*   r*   rT   rS   r,   rP   dviewr   r   r   r   r   dvr   r   r   r   r      s
    
zTestDegreeView.test_strc                 C   s$   |  | j}d}t||ks td S )Nz0DegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1}))r   r   r!   r   r   r   r   r   r"     s    zTestDegreeView.test_reprc                 C   s   |  | j}|D ]\}}qt|}t||ks2tt||ksBtt|d|d fksZtt|d|d fksrt| j | jdd}|D ]\}}qt|}t||kstt||kstt|d|d fkstt|d|d fkstd S )Nr   rP   r+   r;   )r   r   r4   r   r5   )r   r   r8   rR   Zidvr   r   r   r:     s     zTestDegreeView.test_iterc                 C   sD   |  | j}|d}|dks t|ddg}t|ddgks@td S )Nr   rP   rS   r*   r   r   r   r   r   r   r   r   Zdvnr   r   r   test_nbunch'  s
    zTestDegreeView.test_nbunchc                 C   s   |  | j}|d dkst|d dks,t|d dks<t|d dksLt| j | jdd}|d dkslt|d dks|t|d dkst|d dkstd S )Nr   rP   r*   rS   r+   r   r,   r   r   r   r   r   r   r   r   r0   .  s    zTestDegreeView.test_getitemc                 C   s   |  | j}|ddd}|dks$t|ddd}|dks<t|ddgdd}t|dd	gks`tt|dd}|d dks~t|d dkst|d dkst|d dkstd S )
Nr   r+   r   rP   r,   rS   r*   r   )r*   r,   r   r   r   r   r   r   r   Zdvwdvdr   r   r   test_weight:  s    zTestDegreeView.test_weightc                 C   s    |  | j}t|dkstd S )Nr   )r   r   r`   r   r   r   r   r   ra   H  s    zTestDegreeView.test_lenN)r>   r?   r@   r	   Graphr   r   Z
DegreeViewr   rA   r   r   r    r"   r:   r   r0   r   ra   r   r   r   r   r     s   
r   c                   @   s"   e Zd ZejZejjZdd Z	dS )TestDiDegreeViewc                 C   s"   | j  }d}t||kstd S )Nz2DiDegreeView({0: 1, 1: 3, 2: 2, 3: 3, 4: 2, 5: 1})r   r   r!   r   r   r   r   r   r"   Q  s    
zTestDiDegreeView.test_reprN)
r>   r?   r@   r	   r   r   r   ZDiDegreeViewr   r"   r   r   r   r   r   M  s   r   c                   @   sB   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   sN   |  | j}tddddddg}t||ks0t| j }t||ksJtd S )Nr   r   r   r*   rP   rT   rP   r,   r   r   r   r   r   
out_degreer   r   r   r   r    [  s
    
zTestOutDegreeView.test_strc                 C   s"   | j  }d}t||kstd S )Nz3OutDegreeView({0: 1, 1: 2, 2: 1, 3: 1, 4: 1, 5: 0})r   r   r!   r   r   r   r   r   r"   b  s    
zTestOutDegreeView.test_reprc                 C   sD   |  | j}|d}|dks t|ddg}t|ddgks@td S Nr   rP   rS   r*   r   r   r   r   r   r   r   r   g  s
    zTestOutDegreeView.test_nbunchc                 C   s   |  | j}|d dkst|d dks,t|d dks<t|d dksLt| j | jdd}|d dkslt|d dks|t|d dkst|d dkstd S Nr   rP   rS   r*   r+   r   rT   r   r   r   r   r   r0   n  s    zTestOutDegreeView.test_getitemc                 C   s   |  | j}|ddd}|dks$t|ddd}|dks<t|ddgdd}t|dd	gks`tt|dd}|d dks~t|d dkst|d dkst|d dkstd S )
Nr   r+   r   rP   rT   rS   r*   r   r   r   r   r   r   r   r   z  s    zTestOutDegreeView.test_weightN)r>   r?   r@   r	   r   r   r   ZOutDegreeViewr   r    r"   r   r0   r   r   r   r   r   r   W  s   r   c                   @   sB   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 )TestInDegreeViewc                 C   sN   |  | j}tddddddg}t||ks0t| j }t||ksJtd S )Nr   r   rP   rP   r   r*   rS   r   r   r   r   r   r   	in_degreer   r   r   r   r      s
    
zTestInDegreeView.test_strc                 C   s"   | j  }d}t||kstd S )Nz2InDegreeView({0: 0, 1: 1, 2: 1, 3: 2, 4: 1, 5: 1})r   r	  r!   r   r   r   r   r   r"     s    
zTestInDegreeView.test_reprc                 C   sD   |  | j}|d}|dks t|ddg}t|ddgks@td S )Nr   rS   r*   r   r  r   r   r   r   r   r     s
    zTestInDegreeView.test_nbunchc                 C   s   |  | j}|d dkst|d dks,t|d dks<t|d dksLt| j | jdd}|d dkslt|d dks|t|d dkst|d dkstd S r  r   r   r   r   r   r0     s    zTestInDegreeView.test_getitemc                 C   s   |  | j}|ddd}|dks$t|ddd}|dks<t|ddgdd}t|ddgks`tt|dd}|d dks~t|d dkst|d dkst|d d	kstd S )
Nr   r+   r   rP   rS   r*   r   r   rT   r   r   r   r   r   r     s    zTestInDegreeView.test_weightN)r>   r?   r@   r	   r   r   r   ZInDegreeViewr   r    r"   r   r0   r   r   r   r   r   r    s   r  c                   @   sB   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 )TestMultiDegreeViewc                 C   sN   |  | j}tddddddg}t||ks0t| j }t||ksJtd S )Nr   r   r   r   r   r   r   r   r   r   r   r      s
    
zTestMultiDegreeView.test_strc                 C   s"   | j  }d}t||kstd S )Nz5MultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r   r   r   r   r   r"     s    
zTestMultiDegreeView.test_reprc                 C   sD   |  | j}|d}|dks t|ddg}t|ddgks@td S )Nr   rP   rS   r*   r   r   r   r   r   r   r   r     s
    zTestMultiDegreeView.test_nbunchc                 C   s   |  | j}|d dkst|d dks,t|d dks<t|d dksLt| j | jdd}|d dkslt|d dks|t|d dkst|d dkstd S )	Nr   rP   rT   rS   r*   r+   r   r#   r   r   r   r   r   r0     s    z TestMultiDegreeView.test_getitemc                 C   s   |  | j}|ddd}|dks$t|ddd}|dks<t|ddgdd}t|dd	gks`tt|dd}|d dks~t|d dkst|d dkst|d dkstd S )
Nr   r+   r   rP   r#   rS   r*   r   )r*   r#   r   r   r   r   r   r     s    zTestMultiDegreeView.test_weightN)r>   r?   r@   r	   r   r   r   ZMultiDegreeViewr   r    r"   r   r0   r   r   r   r   r   r    s   r  c                   @   s"   e Zd ZejZejjZdd Z	dS )TestDiMultiDegreeViewc                 C   s"   | j  }d}t||kstd S )Nz7DiMultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r   r   r   r   r   r"     s    
zTestDiMultiDegreeView.test_reprN)
r>   r?   r@   r	   r   r   r   ZDiMultiDegreeViewr   r"   r   r   r   r   r    s   r  c                   @   sB   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 )TestOutMultiDegreeViewc                 C   sN   |  | j}tddddddg}t||ks0t| j }t||ksJtd S )Nr   r   r   r   r   r   r   r   r   r   r   r      s
    
zTestOutMultiDegreeView.test_strc                 C   s"   | j  }d}t||kstd S )Nz8OutMultiDegreeView({0: 1, 1: 3, 2: 1, 3: 1, 4: 1, 5: 0})r  r   r   r   r   r"     s    
z TestOutMultiDegreeView.test_reprc                 C   sD   |  | j}|d}|dks t|ddg}t|ddgks@td S r  r   r   r   r   r   r     s
    z"TestOutMultiDegreeView.test_nbunchc                 C   s   |  | j}|d dkst|d dks,t|d dks<t|d dksLt| j | jdd}|d dkslt|d dks|t|d dkst|d dkstd S )Nr   rP   r*   rS   r+   r   r   r   r   r   r   r   r0     s    z#TestOutMultiDegreeView.test_getitemc                 C   s   |  | j}|ddd}|dks$t|ddd}|dks<t|ddgdd}t|dd	gks`tt|dd}|d dks~t|d dkst|d dkst|d dkstd S )
Nr   r+   r   rP   r   rS   r*   r   r   r   r   r   r   r   r     s    z"TestOutMultiDegreeView.test_weightN)r>   r?   r@   r	   r   r   r   ZOutMultiDegreeViewr   r    r"   r   r0   r   r   r   r   r   r    s   r  c                   @   sB   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 )TestInMultiDegreeViewc                 C   sN   |  | j}tddddddg}t||ks0t| j }t||ksJtd S )Nr  r  r   r   r   r   r  r   r   r   r   r    -  s
    
zTestInMultiDegreeView.test_strc                 C   s"   | j  }d}t||kstd S )Nz7InMultiDegreeView({0: 0, 1: 1, 2: 1, 3: 3, 4: 1, 5: 1})r
  r   r   r   r   r"   4  s    
zTestInMultiDegreeView.test_reprc                 C   sD   |  | j}|d}|dks t|ddg}t|ddgks@td S )Nr   rS   r*   r   r   r   r   r   r   r   r   9  s
    z!TestInMultiDegreeView.test_nbunchc                 C   s   |  | j}|d dkst|d dks,t|d dks<t|d dksLt| j | jdd}|d dkslt|d dks|t|d dkst|d dkstd S )Nr   rP   rS   r*   r+   r   r   r   r   r   r   r   r0   @  s    z"TestInMultiDegreeView.test_getitemc                 C   s   |  | j}|ddd}|dks$t|ddd}|dks<t|ddgdd}t|ddgks`tt|dd}|d dks~t|d dkst|d dkst|d d	kstd S )
Nr   r+   r   rP   rS   r*   r   )r*   r   r   r   r   r   r   r   r   L  s    z!TestInMultiDegreeView.test_weightN)r>   r?   r@   r	   r   r   r   ZInMultiDegreeViewr   r    r"   r   r0   r   r   r   r   r   r  )  s   r  )
reportviewerr_msg_termszlist(G.nodeszlist(G.nodes.datazlist(G.edgeszlist(G.in_edgesc              	   C   sb   t d}| |}tt j}|dd  W 5 Q R X t|j}t|j|ksRt	||ks^t	d S )Nr*   r   rS   )
r	   Zcomplete_graphr-   r.   r/   r   valuetyper>   r   )r  r  r   viewexcerrmsgr   r   r   test_slicing_reportviews[  s    

r  graphc                 C   s   t d|  }|j|j|j|jf | rF|j|j|j	|j
|j|jf |j}d|ksXtd|ksdtd|ksptd|ks|t| rd|kstd|kstd|kstd	|kstd
|kstd|ksttt|d t| d S )Nr,   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  r   Zcached_dictr   r   r   test_cache_dict_get_set_statet  s$    r  )4r   r$   r   r-   Znetworkxr	   Znetworkx.classesr   rvZnetworkx.classes.reportviewsr   r   rB   r[   r\   rm   rs   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  markZparametrizeZNodeViewrv   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   <module>   sf   ?h1y.    8!"V
222
22

 