o
    &?e-?                     @   sB   d Z ddlZddlZddlmZ ddlmZmZ G dd dZ	dS )zOriginal NetworkX graph tests    N)convert_node_labels_to_integers)edges_equalnodes_equalc                   @   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!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z d;d< Z!d=d> Z"d?d@ Z#dAdB Z$dCdD Z%dEdF Z&dGS )HHistoricalTestsc                 C   s   t  | _tt ddd| _tt ddd| _tt ddd| _tt ddd| _	tt ddd| _
tt ddd| _tt ddd| _tt ddd| _t j| _d S )N   )Zfirst_label   
         )nx
null_graphnullcnlti
path_graphZP1P3ZP10complete_graphK1K3ZK4K5ZK10ZGraphG)cls r   h/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/networkx/classes/tests/historical_tests.pysetup_class
   s   
zHistoricalTests.setup_classc                 C   s4   | j dd}|jdksJ |   }|jdksJ d S )Ntest)name )r   r   selfr   Hr   r   r   	test_name   s   zHistoricalTests.test_namec                 C   s<   |   }|d |dsJ |d |drJ d S )NA)r   add_nodehas_noderemove_noder   r   r   r   r   test_add_remove_node   s
   

z$HistoricalTests.test_add_remove_nodec                 C   s.   |   }|dgrJ |ddirJ d S Nr!   r   )r   r#   r%   r   r   r   test_nonhashable_node&   s   z%HistoricalTests.test_nonhashable_nodec                 C   sx   |   }|td |dsJ |g d |g d t| tdg dks.J t|tdg dks:J d S )NABCDEFGHIJKLL)r   IJKr*   )r      r   r	   key)r   r.   r   r	   r!   BCDEFr   )r   add_nodes_fromlistr#   remove_nodes_fromsortednodesstrr%   r   r   r   test_add_nodes_from/   s   z#HistoricalTests.test_add_nodes_fromc                 C   s>   |   }|d d|v sJ g |vsJ ddi|vsJ d S r'   )r   r"   r%   r   r   r   test_containsE   s
   
zHistoricalTests.test_containsc                 C   sZ   |   }|d |dsJ |d ttj|jd |d t|g ks+J d S )Nmj)	r   r"   r#   pytestraisesr   NetworkXErrorr$   r7   r%   r   r   r   test_add_removeL   s   


zHistoricalTests.test_add_removec                 C   sj   |   }|td || j t| tdg dksJ || j t| tdg dks3J d S )NZABCDr/   )r   r.   r   r!   r1   r2   r3   r!   r1   r2   r3   )r   r6   r7   r   r9   r:   r;   r8   r%   r   r   r   test_nbunch_is_listV   s    z#HistoricalTests.test_nbunch_is_listc                 C   s,   |   }td}|| |dsJ d S )Nr)   r*   )r   setr6   r#   r   r   Znbunchr   r   r   test_nbunch_is_set^   s   
z"HistoricalTests.test_nbunch_is_setc                 C   sR   |   }td}|| ddddd}|| t| tds'J g dd S )	Nr)   Zfoor.   TZspam)r+   r,   r-   r*   r/   r!   r1   r2   r3   r4   r5   r   r   )r   rF   r6   r8   r9   r:   r;   rG   r   r   r   test_nbunch_dictd   s   

 z HistoricalTests.test_nbunch_dictc                 C   sz   |   }|g d | j }|| t| tdg dks#J | j }|| t| tdg dks;J d S NrI   r/   r   r.   r   r!   r1   r2   r3   r4   r5   r   r   )r   r6   r   r:   r9   r;   r8   )r   r   Zn_iterr   r   r   test_nbunch_iteratorm   s   



 z$HistoricalTests.test_nbunch_iteratorc                 C   sF   |   }|g d | j}|| t| tds!J g dd S rK   )r   r6   r   r9   r:   r;   rG   r   r   r   test_nbunch_graph   s
   
 z!HistoricalTests.test_nbunch_graphc                 C   s   |   }tt|jd |dd |dd |dds J |ddr(J |jd s/J | r<|ddr;J n|ddsDJ |dd |dd |dd | rc|ddsbJ n|ddrkJ |ddrsJ d S )Nr!   r1   r2   r!   r1   )r   r@   rA   	TypeErroradd_edgehas_edgeis_directedremove_edger%   r   r   r   test_add_edge   s"   zHistoricalTests.test_add_edgec                 C   sr   |   }|dd |ddsJ |dd |dd |ds%J |d |dd |ds7J d S )Nr!   XZ)r   rQ   rR   rT   r#   r$   r%   r   r   r   test_self_loop   s   
zHistoricalTests.test_self_loopc                 C   s   |   }|dg |ddsJ | r|ddrJ n|dds'J |ddg |dds6J |dds>J | rL|ddrJJ d S |ddsTJ d S )Nr1   r2   r1   r2   )r3   r5   r1   r3   r3   r5   )r   add_edges_fromrR   rS   r%   r   r   r   test_add_edges_from   s   z#HistoricalTests.test_add_edges_fromc                 C   sz   |   }|tdtdtdg |jd sJ |jd s J |jd s'J | r4|jd r2J d S |jd s;J d S )NIJKKJK)r+   r,   )r-   r-   )r,   r-   )r-   r,   )r   r[   tupler7   rR   rS   r%   r   r   r   test_add_edges_from2   s   z$HistoricalTests.test_add_edges_from2c                 C   sD   |   }|ttdtd |ddsJ |ddr J d S )NZACDZCDEr3   r4   r2   )r   r[   zipr7   rR   r%   r   r   r   test_add_edges_from3   s   z$HistoricalTests.test_add_edges_from3c                 C   s<  |   }|g d |ttdtd |ddsJ |dds'J |d |ddr4J tt	|j
d |dd |ddsJJ |
dd |ddrXJ |tdtd	td
tdg |ddrqJ |ddryJ |tdtd
tdg |ddrJ |td |dd d S )NrL   ZMNOPZNOPMOPMNZHIZDFr^   r_   r   r+   r,   r-   r]   ZZEFHIMNO)r   r6   r[   rb   r7   rR   r$   r@   rA   rP   rT   rQ   Zremove_edges_fromr`   r8   rF   r%   r   r   r   test_remove_edge   s&   
"z HistoricalTests.test_remove_edgec                 C   s6  |   }|g d ttj|jd t|dg ksJ t|g g ks*J | r3g d}ng d}t	t|ddg|sEJ t	|ddh|sQJ |   }|
d t	|||sdJ d	d
d}t	|||ssJ t	t|dddgsJ tt|g dsJ t	t| g dsJ d S )NrO   r!   r2   rZ   )r2   r1   )r2   r3      rW   )rO   rj   rZ   rO   rj   rY   rZ   r!   r1   ABZthing1Zthing2rO   rj   rD   )r   r[   r@   rA   r   rB   edgesr7   rS   r   r6   r   r9   )r   r   ZelistZG1Zndictr   r   r   test_edges_nbunch   s*   



z!HistoricalTests.test_edges_nbunchc                 C   s   |   }|g d |ddksJ t|dgdgks!J tdd |ddgD ddgks5J td	d | D g d
ksFJ d S )Nri   r!   r.   r!   r.   c                 s       | ]\}}|V  qd S Nr   .0ndr   r   r   	<genexpr>!      z.HistoricalTests.test_degree.<locals>.<genexpr>r1   r   c                 s   rq   rr   r   rs   r   r   r   rw   "  rx   )r.   r.   r   r   )r   r[   degreer7   r9   r%   r   r   r   test_degree  s   (&zHistoricalTests.test_degreec                 C   sB   |   }|ddg tdd |ddgD ddgksJ d S )N)r      r   r.   c                 s   rq   rr   r   rs   r   r   r   rw   '  rx   z/HistoricalTests.test_degree2.<locals>.<genexpr>r   r{   r.   )r   r[   r9   ry   r   r   r   r   r   test_degree2$  s   ,zHistoricalTests.test_degree2c                 C   s   t d}t d}tdd |ddgD i ksJ tdd ||D g dks.J td	d ||D g d
ks@J t|g g ksKJ t|g i ksVJ d S )Nr   r
   c                 s   rq   rr   r   rs   r   r   r   rw   -  rx   z4HistoricalTests.test_degree_graph.<locals>.<genexpr>r!   r1   c                 s   rq   rr   r   rs   r   r   r   rw   /  rx   )r   r.   r.   c                 s   rq   rr   r   rs   r   r   r   rw   1  rx   )r   r   r.   )r   r   dictry   r9   r7   )r   r   ZP5r   r   r   test_degree_graph)  s   

$$$z!HistoricalTests.test_degree_graphc                 C   s4   t  }t| g ksJ t| i ksJ d S rr   )r   r   r7   ry   r   )r   r   r   r   r   	test_null5  s   zHistoricalTests.test_nullc                 C   sr   |   }|g d | dksJ | dksJ | dks#J |dddks-J |dddks7J d S )	Nri   r	   r
   r!   r1   r   r3   r   )r   r[   ordersizenumber_of_edgesr%   r   r   r   test_order_size:  s   zHistoricalTests.test_order_sizec                 C   s@   |   }| }|j|jksJ |j|jksJ ||usJ d S rr   )r   copyadjr   r   r   r   r   	test_copyC  s
   zHistoricalTests.test_copyc                 C   sX   |   }|g d |g d}tt|g dsJ tt| ddgs*J d S )Nri   )r!   r1   r3   rO   rZ   )r   r[   subgraphr   r7   r   rn   )r   r   ZSGr   r   r   test_subgraphJ  s
   zHistoricalTests.test_subgraphc                 C   s   |   }| sT|g d | }||usJ | sJ |j|jks'J |j|jks/J t|tdg dks>J |	dd |
ddsLJ |
ddrVJ d S d S )Nri   rm   )rO   rj   )r1   r!   rY   rZ   r!   r1   )r   rS   r[   Zto_directedr   r   r9   Z	out_edgesr7   rT   rR   )r   r   ZDGr   r   r   test_to_directedQ  s    z HistoricalTests.test_to_directedc                 C   s   |   }| ri|g d | }||usJ | rJ | s%J |j|jks-J |j|jks5J t|tdg dksDJ t|ddgg dksSJ |	dd |
ddraJ |
ddrkJ d S d S )Nri   rm   rl   r!   r1   )r   rS   r[   Zto_undirectedr   r   r9   rn   r7   rT   rR   )r   r   ZUGr   r   r   test_to_undirectedi  s$   z"HistoricalTests.test_to_undirectedc                 C   s   |   }|g d |d t|d ddgksJ t|dddgks)J t|dddgks6J t|dg ksAJ ttj|jd d S )Nri   GJKr!   r1   r2   r   r?   )	r   r[   r6   r9   	neighborsr@   rA   r   rB   r%   r   r   r   test_neighbors  s   
zHistoricalTests.test_neighborsc                 C   s   |   }|g d |d t| g dksJ t| g ds'J tdd | D g dks8J t| tdg dksFJ t|	d	d
dgksSJ t
tj|j	d |  t|dksiJ t|dksrJ d S )Nri   r   )r!   r1   r2   r3   r   r,   r-   c                 s   rq   rr   r   )rt   kvr   r   r   rw     rx   z1HistoricalTests.test_iterators.<locals>.<genexpr>)r   r   r   r.   r.   r   r   r/   )rp   )r1   r   )r2   r   )r3   r.   )r   r   )r,   r   )r-   r   r!   r1   r2   rV   r   )r   r[   r6   r9   r:   r   rn   ry   r;   r   r@   rA   r   rB   clearZnumber_of_nodesr   r%   r   r   r   test_iterators  s   
"	zHistoricalTests.test_iteratorsc                 C   s.   t  }t  }|g }t ||sJ d S rr   )r   r   r   is_isomorphic)r   	nullgraphr   r   r   r   r   test_null_subgraph  s   
z"HistoricalTests.test_null_subgraphc                 C   sX   t  }t d}t d}|g }t ||sJ |g d}t ||s*J d S )Nr
   r   )r   r.   r   r	   r
   )r   r   Zempty_graphr   r   )r   r   ZE5ZE10r   r   r   r   test_empty_subgraph  s   


z#HistoricalTests.test_empty_subgraphc                 C   s@   t d}t d}t d}|g d}t ||sJ d S )Nr   r   r
   )r   r.   r   )r   r   r   r   )r   r   r   r   r   r   r   r   test_complete_subgraph  s
   


z&HistoricalTests.test_complete_subgraphc                 C   s   t  }t d}t d}t d}|d}t ||s J |dh}t ||s.J |t|}t ||s=J ||}t ||sJJ |dg}t ||sXJ d S )Nr   r   r
   	   )r   r   r   r   r   iter)r   r   r   r   r   r   r   r   r   test_subgraph_nbunch  s   




z$HistoricalTests.test_subgraph_nbunchc                 C   s<   |   }ttj|jd |dg ttj|jd d S )Nr|   )r   r@   rA   r   rB   r$   r8   r   r}   r   r   r   test_node_tuple_issue  s   z%HistoricalTests.test_node_tuple_issueN)'__name__
__module____qualname__classmethodr   r    r&   r(   r<   r=   rC   rE   rH   rJ   rM   rN   rU   rX   r\   ra   rc   rh   ro   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	   sJ    
	
	"
	

r   )
__doc__r@   Znetworkxr   r   r   Znetworkx.utilsr   r   r   r   r   r   r   <module>   s    