o
    ]Zh                     @   sP  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 Z3dCdD Z4dS )E    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   V/var/www/auris/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   Z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invZinv2Z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 )NTr6   weight)r   r   r   r   r   r   	test_callD   s   zTestNodeView.test_callN)__name__
__module____qualname__classmethodr   r   r$   r'   r-   r5   r?   rB   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   Tr0   )	r
   r   r   r   r   r   r7   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   r7   rH   )r   r   Z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"   rangerH   )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   rH   rI   )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 )
Nr0   r.   r/   r(   )r/   r.   )r(   Nbizr7   default)r(   rQ   )r   r)   r   r7   )r   r   r   rI   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.   r/   r0   rQ   rR   r(   r   r1   )r   r)   r   r2   r3   r
   r4   r7   )r   r   r   rT   r   r   r   r5      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 )NTr0   r   r.   r/      rS   )r   r)   r   r7   r8   r9   r:   )	r   r   r   rH   rI   r<   r=   dr>   r   r   r   r?      s6   

zTestNodeDataView.test_iterN)rC   rD   rE   rF   r   rJ   r   r$   r'   r-   r5   r?   r   r   r   r   rG   K   s    
rG   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.   r/   r0   T   rU      r/      znv | nvF)r
   r   r   r7   appendr)   r2   r3   	TypeErrorsetevallocals)r   ZnvsHr   ZGnr   r   r   test_nodedataview_unhashable   s    
ra   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/   r0   r	   r   r   r   r   r      s   zTestNodeViewSetOps.setup_classc                 C   s   t |S )N)r]   rA   r   r   r   n_its   s   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 Nr1      r   r   rd   rN   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 )Nr1   ri   rj   rk   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 )Nr1   ri   >   r   rU   rY   r/   rZ   r   
      rj   )r   r   rl   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 rh   rj   rk   r   r   r   test_sub   s    zTestNodeViewSetOps.test_subN)rC   rD   rE   rF   r   rd   rg   rm   rn   rq   rr   r   r   r   r   rb      s    
	rb   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 rc   r
   r   r   r   r7   r   r   r   r   r   r      s   z"TestNodeDataViewSetOps.setup_classc                 C      dd |D S )Nc                 S       h | ]}||d krdndfqS )r/   r.   Nr   rL   noder   r   r   	<setcomp>       z/TestNodeDataViewSetOps.n_its.<locals>.<setcomp>r   rA   r   r   r   rd         zTestNodeDataViewSetOps.n_itsNrC   rD   rE   rF   r   rd   r   r   r   r   rt          
rt   c                   @   rs   )TestNodeDataViewDefaultSetOpsc                 C   s4   t d| _d| jjd d< | jjjddd| _d S )Nr   r.   r/   r0   rU   rV   ru   r   r   r   r   r     s   z)TestNodeDataViewDefaultSetOps.setup_classc                 C   rv   )Nc                 S   rw   )r/   r.   rU   r   rx   r   r   r   rz     r{   z6TestNodeDataViewDefaultSetOps.n_its.<locals>.<setcomp>r   rA   r   r   r   rd     r|   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   Tr6   r   )r   r   r   r   r   r;   r   r   r   evZpevr   r   r   r     s
   zTestEdgeDataView.test_picklec                 K       |j |d  |d  | d S Nr   rU   _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 )NTr6   c                 S   s   g | ]	}||d  i fqS rU   r   rK   r   r   r   rM   #      z-TestEdgeDataView.test_str.<locals>.<listcomp>re   r   r   r"   rN   r   r   repr   r   r   r$   !  s   zTestEdgeDataView.test_strc                 C   *   |  | jdd}d}t||ksJ d S )NTr6   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 )NTr6   r0   rU   rR   rY   r/   r.   r0   r/   rY   )r   r)   r   r   rf   r]   )r   r   evrr   Zev_defuvrW   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   rU   r   r   r9   r:   )r   r   r   r   r   ievr   r   r   r?   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rU   rY   rY   rU   rU   rZ   )rU   Z   )r   rU   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   rY   Znbunchr   r   r   r/   rZ   )rZ   r1   )r1      )r(   re   )re   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 )
Nr0   r6   re   rU   rY   rU   rY   r/   rZ   r/   r   r   r   rf   edgesr)   add_edger   r   r   r`   r   r   r   rg   w     

zTestEdgeDataView.test_lenN)rC   rD   rE   rF   r   r   r   r$   r'   r   r?   r-   r   rg   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   )Zcreate_usingr
   r   DiGraphr   r   OutEdgeViewr   r   r   r   r   r        zTestOutEdgeDataView.setup_classc                 C   r   )NTr6   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 )	Nr0   r6   re   rU   r   r/   rY   r   r   r   r   r   r   rg     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)rC   rD   rE   rF   r   r'   rg   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   )NTr6   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rC   rD   rE   rF   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   )NTr6   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rC   rD   rE   rF   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   )NTr6   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   )NTr6   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   rK   r   r   r   rM   E      z)TestEdgeView.test_str.<locals>.<listcomp>re   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   s   | j  }|j}d|jd d< |d ddiksJ tjtjdd |jdd  W d    n1 s3w   Y  tjtdd |jd	  W d    d S 1 sPw   Y  d S )
Nr.   r   r0   z.*does not support slicing)matchr   r1   z.*edge.*is not in the graph.)r   r   )r   r)   r   r2   r3   r
   r4   KeyErrorr   r   r   r   r   r   r5   P  s   
"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 NFr6   TrU   r   r   r   idr   r   r   r   r   rB   ^  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   r7   r   r   r   r   	test_datae  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   r?   l  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   Zedvr   r   r   r-   u  s   
zTestEdgeView.test_containsc                 C   r   r   r   r   r   Z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   re   rU   r/   )r   r   Zis_multigraphrf   r)   r   r   r   )r   r   Znum_edr`   r   r   r   rg     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   rU   r   r   rY   r   r   r   r   r   
some_edgesr   r   r   rm     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   rK   r   r   r   rz     r   z'TestEdgeView.test_or.<locals>.<setcomp>re   c                 S   s   h | ]}|d  |fqS r   r   rK   r   r   r   rz     r   r   r   rN   r   )r   r   r   Zresult1Zresult2r   r   r   rn     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   rK   r   r   r   rz     r   z(TestEdgeView.test_xor.<locals>.<setcomp>rU   re   r   r   c                 S   r   r   r   rK   r   r   r   rz     r   r   r   r   rN   r   r   r   r   resultr   r   r   rq     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   rK   r   r   r   rz     r   z(TestEdgeView.test_sub.<locals>.<setcomp>re   r   )r   r   rN   remover   r   r   r   rr     s
   
zTestEdgeView.test_subN)rC   rD   rE   rF   r   r   r   r$   r'   r5   rB   r   r?   r-   r   rg   rm   rn   rq   rr   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   rU   rY   r/   r.   )keyr0   )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 NrY   )r   r   rU   rf   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   rK   r   r   r   rM     r   z.TestMultiEdgeView.test_str.<locals>.<listcomp>re   rY   r   )r   r   rN   insertr"   )r   r   Zreplistr   r   r   r   r$     s
   zTestMultiEdgeView.test_strc                 C   sr   | 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   rU   r   r0   r   r1   )r   r)   r   r2   r3   r
   r4   r   r   r   r   r5     s   
"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r7   r  r6   rU   r   r   r   r   r   r   rB   &  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  r6   rU   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   r?   6  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||ksOJ |ddddd}t	
t |dddd W d    n	1 sow   Y  t	
t |ddddd W d    n	1 sw   Y  |D ]4}t|d d ddhkr|d dv sJ |d dkr|d dksJ q|d dksJ q| rtt|dksJ d S tt|dksJ d S )NTr  r   r0   rU   )r  r7   rS   )rY   r/   r   r.   r   )r  r7   rZ   zedge:rY   r/   rX   c                 S   r   r   r   )rL   r<   r   r   r   rM   m  r   z3TestMultiEdgeView.test_iterkeys.<locals>.<listcomp>re   r   r   )r  rS   rV   >   r   r/   )r   r   r   rf   printr]   r   sortedrN   r2   r3   r\   r   r;   )r   r   r   r   r   r   r  r   r   r   Zchecked_multir   Zelistr   r   r   test_iterkeys?  s~   


$$


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   rU   r   r   r   rY   r   r  c                 S      h | ]	}||d  dfqS r   r   rK   r   r   r   rz     r   z,TestMultiEdgeView.test_or.<locals>.<setcomp>re   r   r   r   r   r   r   rn        
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   rK   r   r   r   rz     r   z-TestMultiEdgeView.test_sub.<locals>.<setcomp>re   r  r   )r   r   rN   r   r   r   r   r   r   rr     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   rK   r   r   r   rz     r   z-TestMultiEdgeView.test_xor.<locals>.<setcomp>rU   re   >   r
  r  r   c                 S   r  r   r   rK   r   r   r   rz     r   r  r   r   r   r   r   r   rq     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   rm     s   
zTestMultiEdgeView.test_andc                 C   r   r   r   r   r   r   r   r     r   z+TestMultiEdgeView.test_contains_with_nbunchN)rC   rD   rE   rF   r   r   r$   r5   r'   rB   r   r?   r  rn   rr   rq   rm   r   r   r   r   r   r     s     

	B

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   rU   r/   rY   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   degZ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   rU   r/   rY   rY   r/   r/   rZ   rY   r1   rU   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}))r  r   r&   r  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   rU   r0   r@   )r  r   r9   r:   )r   r  r=   rW   Zidvr   r   r   r?     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   rU   rY   r/   r  r  r  r   r  r   r  Z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   rU   r/   rY   r0   r!  r1   r  r   r   r  r   r   r   r5   6     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   r0   r!  rU   r1   rY   r/   r  )r/   r1   r  r   r  r  r   r  Zdvwdvdr   r   r   test_weightB     zTestDegreeView.test_weightc                 C   s    |  | j}t|dksJ d S )Nr   )r  r   rf   r(  r   r   r   rg   P  s   zTestDegreeView.test_lenN)rC   rD   rE   r
   Graphr  r   Z
DegreeViewr  rF   r   r   r$   r'   r?   r%  r5   r.  rg   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&   r  r   r   r   r'   Y     
zTestDiDegreeView.test_reprN)
rC   rD   rE   r
   r   r  r   ZDiDegreeViewr  r'   r   r   r   r   r2  U      r2  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   r/   rU   rZ   rU   r1   r   r  r   r"   
out_degreer  r   r   r   r$   c  r   zTestOutDegreeView.test_strc                 C   r3  )Nz3OutDegreeView({0: 1, 1: 2, 2: 1, 3: 1, 4: 1, 5: 0})r   r=  r&   r  r   r   r   r'   j  r5  zTestOutDegreeView.test_reprc                 C   r"  Nr   rU   rY   r/   r   r9  r#  r$  r   r   r   r%  o  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   rU   rY   r/   r0   r!  rZ   r'  r(  r   r   r   r5   v  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   r0   r!  rU   rZ   rY   r/   r   r9  r+  r,  r   r   r   r.    r/  zTestOutDegreeView.test_weightN)rC   rD   rE   r
   r   r  r   ZOutDegreeViewr  r$   r'   r%  r5   r.  r   r   r   r   r8  _      r8  c                   @   r7  )TestInDegreeViewc                 C   r  )N)r   r   rU   rU   r   r/   rY   r:  r  r  r   r"   	in_degreer  r   r   r   r$     r   zTestInDegreeView.test_strc                 C   r3  )Nz2InDegreeView({0: 0, 1: 1, 2: 1, 3: 2, 4: 1, 5: 1})r   rH  r&   r  r   r   r   r'     r5  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   rY   r/   r   rF  r#  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 r@  r'  r(  r   r   r   r5     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   r0   r!  rU   rY   r/   r   r   rZ   r+  r,  r   r   r   r.    r/  zTestInDegreeView.test_weightN)rC   rD   rE   r
   r   r  r   ZInDegreeViewr  r$   r'   r%  r5   r.  r   r   r   r   rC    rB  rC  c                   @   r7  )TestMultiDegreeViewc                 C   r  )N)r   r   r  r   r  r  r  r  r   r   r   r$     r   zTestMultiDegreeView.test_strc                 C   r3  )Nz5MultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r4  r  r   r   r   r'     r5  zTestMultiDegreeView.test_reprc                 C   r"  )Nr   rU   rY   r/   r  r   r#  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   rU   rZ   rY   r/   r0   r!  r(   r'  r(  r   r   r   r5     r)  z TestMultiDegreeView.test_getitemc                 C   r*  )
Nr   r0   r!  rU   r(   rY   r/   r  )r/   r(   r+  r,  r   r   r   r.    r/  zTestMultiDegreeView.test_weightN)rC   rD   rE   r
   r   r  r   ZMultiDegreeViewr  r$   r'   r%  r5   r.  r   r   r   r   rL    rB  rL  c                   @   r1  )TestDiMultiDegreeViewc                 C   r3  )Nz7DiMultiDegreeView({0: 1, 1: 4, 2: 2, 3: 4, 4: 2, 5: 1})r4  r  r   r   r   r'     r5  zTestDiMultiDegreeView.test_reprN)
rC   rD   rE   r
   r   r  r   ZDiMultiDegreeViewr  r'   r   r   r   r   rM    r6  rM  c                   @   r7  )TestOutMultiDegreeViewc                 C   r  )N)r   r  r   r9  r:  r;  r<  r  r   r   r   r$     r   zTestOutMultiDegreeView.test_strc                 C   r3  )Nz8OutMultiDegreeView({0: 1, 1: 3, 2: 1, 3: 1, 4: 1, 5: 0})r>  r  r   r   r   r'   
  r5  z TestOutMultiDegreeView.test_reprc                 C   r"  r?  r#  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   rU   r/   rY   r0   r!  r   r'  r(  r   r   r   r5     r)  z#TestOutMultiDegreeView.test_getitemc                 C   rA  )
Nr   r0   r!  rU   r   rY   r/   r   r9  r+  r,  r   r   r   r.  "  r/  z"TestOutMultiDegreeView.test_weightN)rC   rD   rE   r
   r   r  r   ZOutMultiDegreeViewr  r$   r'   r%  r5   r.  r   r   r   r   rN    rB  rN  c                   @   r7  )TestInMultiDegreeViewc                 C   r  )N)rD  rE  r   r  r:  r  rG  r  r   r   r   r$   5  r   zTestInMultiDegreeView.test_strc                 C   r3  )Nz7InMultiDegreeView({0: 0, 1: 1, 2: 1, 3: 3, 4: 1, 5: 1})rI  r  r   r   r   r'   <  r5  zTestInMultiDegreeView.test_reprc                 C   rJ  )Nr   rY   r/   r   r  r#  r$  r   r   r   r%  A  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   rU   rY   r/   r0   r!  r   r'  r(  r   r   r   r5   H  r)  z"TestInMultiDegreeView.test_getitemc                 C   rK  )
Nr   r0   r!  rU   rY   r/   r   )r/   r   r   r+  r,  r   r   r   r.  T  r/  z!TestInMultiDegreeView.test_weightN)rC   rD   rE   r
   r   r  r   ZInMultiDegreeViewr  r$   r'   r%  r5   r.  r   r   r   r   rO  1  rB  rO  )
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 )Nr/   r   rY   )	r
   Zcomplete_graphr2   r3   r4   r"   valuetyperC   )rP  rQ  r   viewexcerrmsgr   r   r   test_slicing_reportviewsc  s   

rW  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 )Nr1   r   r   adjr  predsuccin_edges	out_edgesrH  r=  r   )r
   r   r   r   rY  r  r   rZ  r[  r\  r]  rH  r=  __dict__r   r   r   r   )rX  r   Zcached_dictr   r   r   test_cache_dict_get_set_state|  s$   r_  c                  C   s<   dd t tjD } | D ]}tttj|tjjsJ qd S )Nc                 s   s    | ]	}d |v r|V  qdS )EdgeNr   )rL   r   r   r   r   	<genexpr>  s    z;test_edge_views_inherit_from_EdgeViewABC.<locals>.<genexpr>)dirr
   r   
issubclassgetattrZEdgeViewABC)Zall_edge_view_classesZeview_classr   r   r   (test_edge_views_inherit_from_EdgeViewABC  s   
re  )5r   r)   r   r2   Znetworkxr
   Znetworkx.classesr   rvZnetworkx.classes.reportviewsr   r   rG   ra   rb   rt   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r2  r8  rC  rL  rM  rN  rO  markZparametrizeZNodeViewr   r   r   r   r   r   rW  r0  r   r   r   r_  re  r   r   r   r   <module>   sh    ?h1y.    <!"V
222
22


