
    ިsg.?                     H    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      Z	y)zOriginal NetworkX graph tests    N)convert_node_labels_to_integers)edges_equalnodes_equalc                       e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&y$)%HistoricalTestsc                    t        j                         | _        t        t        j                  d      d      | _        t        t        j                  d      d      | _        t        t        j                  d      d      | _        t        t        j                  d      d      | _	        t        t        j                  d      d      | _
        t        t        j                  d      d      | _        t        t        j                  d      d      | _        t        t        j                  d      d      | _        t         j                  | _        y )N   )first_label   
         )nx
null_graphnullcnlti
path_graphP1P3P10complete_graphK1K3K4K5K10GraphG)clss    Z/var/www/html/venv/lib/python3.12/site-packages/networkx/classes/tests/historical_tests.pysetup_classzHistoricalTests.setup_class   s    ==?r}}Q'Q7r}}Q'Q7b)q9r((+;r((+;r((+;r((+;))"-1=    c                     | j                  d      }|j                  dk(  sJ | j                         }|j                  dk(  sJ y )Ntest)name )r   r%   selfr   Hs      r    	test_namezHistoricalTests.test_name   s?    FFFvvFFHvv||r"   c                     | j                         }|j                  d       |j                  d      sJ |j                  d       |j                  d      rJ y )NA)r   add_nodehas_noderemove_noder(   r   s     r    test_add_remove_nodez$HistoricalTests.test_add_remove_node    sG    FFH	

3zz#	c::c?""?r"   c                 v    | j                         }|j                  dg      rJ |j                  ddi      rJ y Nr,   r	   )r   r.   r0   s     r    test_nonhashable_nodez%HistoricalTests.test_nonhashable_node'   s<    
 FFH::se$$$::sAh''''r"   c                 F   | j                         }|j                  t        d             |j                  d      sJ |j	                  g d       |j                  g d       t        |j                         t              g dk(  sJ t        |t              g dk(  sJ y )NABCDEFGHIJKLL)r)   IJKr7   )r	      r   r   key)r	   r;   r   r   r,   BCDEFr   )r   add_nodes_fromlistr.   remove_nodes_fromsortednodesstrr0   s     r    test_add_nodes_fromz#HistoricalTests.test_add_nodes_from0   s    FFH	n-.zz#	56	&aggiS) .
 
 	
 
 aS!%TTTTr"   c                 n    | j                         }|j                  d       d|v sJ g |vsJ ddi|vsJ y r3   )r   r-   r0   s     r    test_containszHistoricalTests.test_containsF   s?    FFH	

3axx{{1vQr"   c                 .   | j                         }|j                  d       |j                  d      sJ |j                  d       t        j                  t
        j                  |j                  d       |j                  d       t        |      g k(  sJ y )Nmj)	r   r-   r.   pytestraisesr   NetworkXErrorr/   rD   r0   s     r    test_add_removezHistoricalTests.test_add_removeM   si    FFH	

3zz#	

3b&&s;	cAw"}}r"   c                 \   | j                         }|j                  t        d             |j                  | j                         t	        |j                         t              g dk(  sJ |j                  | j                         t	        |j                         t              g dk(  sJ y )NABCDr<   )r	   r;   r   r,   r>   r?   r@   r,   r>   r?   r@   )r   rC   rD   r   rF   rG   rH   rE   r0   s     r    test_nbunch_is_listz#HistoricalTests.test_nbunch_is_listW   s{    FFH	f&	!aggiS)-JJJJ	DGG$aggiS)-AAAAr"   c                     | j                         }t        d      }|j                  |       |j                  d      sJ y )Nr6   r7   )r   setrC   r.   r(   r   nbunchs      r    test_nbunch_is_setz"HistoricalTests.test_nbunch_is_set_   s5    FFH^$	 zz#r"   c                     | j                         }t        d      }|j                  |       ddddd}|j                  |       t	        |j                         t              s	J g d       y )	Nr6   foor;   Tspam)r8   r9   r:   r7   r<   r,   r>   r?   r@   rA   rB   r   r)   )r   rX   rC   rE   rF   rG   rH   rY   s      r    test_nbunch_dictz HistoricalTests.test_nbunch_dicte   s]    FFH^$	 14f=	F#aggiS)S+SS)r"   c                    | j                         }|j                  g d       | j                  j                         }|j                  |       t	        |j                         t
              g dk(  sJ | j                  j                         }|j                  |       t	        |j                         t
              g dk(  sJ y Nr_   r<   r	   r;   r   r,   r>   r?   r@   rA   rB   r   r)   )r   rC   r   rG   rF   rH   rE   )r(   r   n_iters      r    test_nbunch_iteratorz$HistoricalTests.test_nbunch_iteratorn   s    FFH	AB	 aggiS) .
 
 	
 
 	F#aggiS)-UUUUr"   c                     | j                         }|j                  g d       | j                  }|j                  |       t        |j	                         t
              s	J g d       y rb   )r   rC   r   rF   rG   rH   rY   s      r    test_nbunch_graphz!HistoricalTests.test_nbunch_graph   sU    FFH	AB	 aggiS) 	
 ,
 	
)r"   c                    | j                         }t        j                  t        |j                  d       |j	                  dd       |j	                  dd       |j                  dd      sJ |j                  dd      rJ  |j
                  d sJ |j                         r|j                  dd      rJ |j                  dd      sJ |j	                  dd       |j	                  dd       |j                  dd       |j                         r|j                  dd      sJ |j                  dd      rJ |j                  dd      rJ y )Nr,   r>   r?   r,   r>   )r   rO   rP   	TypeErroradd_edgehas_edgeis_directedremove_edger0   s     r    test_add_edgezHistoricalTests.test_add_edge   s   FFHiS1	

3	

3zz#s###::c3'''qzz:&&&==?zz#s+++ ::c3'''	

3	

3	c3==?::c3'''zz#s+++::c3''''r"   c                 J   | j                         }|j                  dd       |j                  dd      sJ |j                  dd       |j                  dd       |j	                  d      sJ |j                  d       |j                  dd       |j	                  d      sJ y )Nr,   XZ)r   rk   rl   rn   r.   r/   r0   s     r    test_self_loopzHistoricalTests.test_self_loop   s    FFH	

3zz#s###	c3	

3zz#	c	

3zz#r"   c                    | j                         }|j                  dg       |j                  dd      sJ |j                         r|j                  dd      rJ |j                  dd      sJ |j                  ddg       |j                  dd      sJ |j                  dd      sJ |j                         r|j                  dd      rJ y |j                  dd      sJ y )Nr>   r?   r>   r?   )r@   rB   r>   r@   r@   rB   )r   add_edges_fromrl   rm   r0   s     r    test_add_edges_fromz#HistoricalTests.test_add_edges_from   s    FFH	*&zz#s###==?zz#s+++::c3'''	*j12zz#s###zz#s###==?zz#s++++::c3'''r"   c                 N   | j                         }|j                  t        d      t        d      t        d      g        |j                  d sJ  |j                  d sJ  |j                  d sJ |j                         r |j                  d rJ y  |j                  d sJ y )NIJKKJK)r8   r9   )r:   r:   )r9   r:   )r:   r9   )r   rw   tuplerD   rl   rm   r0   s     r    test_add_edges_from2z$HistoricalTests.test_add_edges_from2   s    FFH	%+tDz5;?@qzz:&&&qzz:&&&qzz:&&&==?!qzz:....1::z***r"   c                     | j                         }|j                  t        t        d      t        d                   |j	                  dd      sJ |j	                  dd      rJ y )NACDCDEr@   rA   r?   )r   rw   ziprD   rl   r0   s     r    test_add_edges_from3z$HistoricalTests.test_add_edges_from3   sU    FFH	T%[$u+67zz#s###::c3''''r"   c                    | j                         }|j                  g d       |j                  t        t	        d      t	        d                   |j                  dd      sJ |j                  dd      sJ |j                  d       |j                  dd      rJ t        j                  t        |j                  d       |j                  dd       |j                  dd      sJ |j                  dd       |j                  dd      rJ |j                  t	        d      t	        d	      t        d
      t        d      g       |j                  dd      rJ |j                  dd      rJ |j                  t	        d      t	        d
      t	        d      g       |j                  dd      rJ |j                  t        d             |j                  dd       y )Nrc   MNOPNOPMOPMNHIDFr{   r|   r)   r8   r9   r:   rz   ZEFHIMNO)r   rC   rw   r   rD   rl   r/   rO   rP   rj   rn   rk   remove_edges_fromr}   rE   rX   r0   s     r    test_remove_edgez HistoricalTests.test_remove_edge   s   FFH	JK	T&\4<89zz#s###zz#s###	c::c3'''i4	

3zz#s###	c3::c3''' 	
T$ZdU4[%+NO::c3'''::c3'''	T$ZdT$Z@A::c3'''	C
O,	

3r"   c                 t   | j                         }|j                  g d       t        j                  t        j
                  |j                  d       t        |j                  d            g k(  sJ t        |j                  g             g k(  sJ |j                         rg d}ng d}t        t        |j                  ddg            |      sJ t        |j                  ddh      |      sJ | j                         }|j                  d       t        |j                  |      |      sJ d	d
d}t        |j                  |      |      sJ t        t        |j                  d            ddg      sJ t        t        |      g d      sJ t        t        |j                               g d      sJ y )Nri   r,   r?   rv   )r?   r>   )r?   r@      rr   )ri   r   rv   ri   r   ru   rv   r,   r>   ABthing1thing2ri   r   rU   )r   rw   rO   rP   r   rQ   edgesrD   rm   r   rC   r   rF   )r(   r   elistG1ndicts        r    test_edges_nbunchz!HistoricalTests.test_edges_nbunch   sl   FFH	UVb&&3AGGCL!R'''AGGBK B&&&==?8EDE4c
 34e<<<177C:.666VVX
$1772;...X.1775>51114-
J/GHHH6!9&:;;; OH
 	
 
r"   c                 Z   | j                         }|j                  g d       |j                  d      dk(  sJ t        |j                  dg            dgk(  sJ t	        d |j                  ddg      D              ddgk(  sJ t	        d |j                         D              g d	k(  sJ y )
Nr   r,   r;   r,   r;   c              3   &   K   | ]	  \  }}|  y wN .0nds      r    	<genexpr>z.HistoricalTests.test_degree.<locals>.<genexpr>"  s     9DAqa9   r>   r   c              3   &   K   | ]	  \  }}|  y wr   r   r   s      r    r   z.HistoricalTests.test_degree.<locals>.<genexpr>#       /DAqa/r   )r;   r;   r   r   )r   rw   degreerD   rF   r0   s     r    test_degreezHistoricalTests.test_degree  s    FFH	UVxx}!!! AHHcUO$
2229AHHc3Z$899aVCCC/AHHJ//<???r"   c                     | j                         }|j                  ddg       t        d |j                  ddg      D              ddgk(  sJ y )N)r	      r	   r;   c              3   &   K   | ]	  \  }}|  y wr   r   r   s      r    r   z/HistoricalTests.test_degree2.<locals>.<genexpr>(  s     6DAqa6r   r	   r   r;   )r   rw   rF   r   r(   r)   s     r    test_degree2zHistoricalTests.test_degree2%  sJ    FFH	'6*+6AHHaW$5661a&@@@r"   c                    t        j                  d      }t        j                  d      }t        d |j                  ddg      D              i k(  sJ t	        d |j                  |      D              g dk(  sJ t	        d |j                  |      D              g d	k(  sJ t        |j                  g             g k(  sJ t        |j                  g             i k(  sJ y )
Nr   r   c              3   &   K   | ]	  \  }}|  y wr   r   r   s      r    r   z4HistoricalTests.test_degree_graph.<locals>.<genexpr>.  s     8$!QA8r   r,   r>   c              3   &   K   | ]	  \  }}|  y wr   r   r   s      r    r   z4HistoricalTests.test_degree_graph.<locals>.<genexpr>0       2DAqa2r   )r	   r;   r;   c              3   &   K   | ]	  \  }}|  y wr   r   r   s      r    r   z4HistoricalTests.test_degree_graph.<locals>.<genexpr>2  r   r   )r	   r	   r;   )r   r   dictr   rF   rD   )r(   r   P5s      r    test_degree_graphz!HistoricalTests.test_degree_graph*  s    ]]1]]18"))S#J"788B>>>2BIIbM22i???2BIIbM22i???BIIbM"b(((BIIbM"b(((r"   c                     t        j                         }t        |j                               g k(  sJ t	        |j                               i k(  sJ y r   )r   r   rD   r   r   )r(   r   s     r    	test_nullzHistoricalTests.test_null6  s?    }}DKKM"b(((DKKM"b(((r"   c                 $   | j                         }|j                  g d       |j                         dk(  sJ |j                         dk(  sJ |j	                         dk(  sJ |j	                  dd      dk(  sJ |j	                  dd      dk(  sJ y )	Nr   r   r   r,   r>   r	   r@   r   )r   rw   ordersizenumber_of_edgesr0   s     r    test_order_sizezHistoricalTests.test_order_size;  s    FFH	UVwwyA~~vvx1}}  "a'''  c*a///  c*a///r"   c                     | j                         }|j                         }|j                  |j                  k(  sJ |j                  |j                  k(  sJ ||usJ y r   )r   copyadjr%   r'   s      r    	test_copyzHistoricalTests.test_copyD  sN    FFHFFHuu~~vvzzr"   c                     | j                         }|j                  g d       |j                  g d      }t        t	        |      g d      sJ t        t	        |j                               ddg      sJ y )Nr   )r,   r>   r@   ri   rv   )r   rw   subgraphr   rD   r   r   )r(   r   SGs      r    test_subgraphzHistoricalTests.test_subgraphK  s^    FFH	UVZZ(48_5554
+j*-EFFFr"   c                    | j                         }|j                         s|j                  g d       |j                         }||usJ |j                         sJ |j                  |j                  k(  sJ |j
                  |j
                  k(  sJ t        |j                  t        d                  g dk(  sJ |j                  dd       |j                  dd      sJ |j                  dd      rJ y y )Nr   r   )ri   r   )r>   r,   ru   rv   r,   r>   )r   rm   rw   to_directedr%   r   rF   	out_edgesrD   rn   rl   )r(   r   DGs      r    test_to_directedz HistoricalTests.test_to_directedR  s    FFH}}L BQ;;>>###77aff$$$66QUU?"?",,tDz23 8    NN3$;;sC((({{3,,,,) r"   c                 \   | j                         }|j                         r|j                  g d       |j                         }||usJ |j                         rJ |j                         sJ |j                  |j                  k(  sJ |j
                  |j
                  k7  sJ t        |j                  t        d                  g dk(  sJ t        |j                  ddg            g dk(  sJ |j                  dd       |j                  dd      rJ |j                  dd      rJ y y )Nr   r   r   r,   r>   )r   rm   rw   to_undirectedr%   r   rF   r   rD   rn   rl   )r(   r   UGs      r    test_to_undirectedz"HistoricalTests.test_to_undirectedj  s   FFH==?L "BQ;;~~'''==?"?77aff$$$66QUU?"?"((4:./ 4    "((C:./ 4    NN3${{3,,,{{3,,,,1 r"   c                    | j                         }|j                  g d       |j                  d       t        |d         ddgk(  sJ t        |j	                  d            ddgk(  sJ t        |j	                  d            ddgk(  sJ t        |j	                  d            g k(  sJ t        j                  t        j                  |j                  d       y )Nr   GJKr,   r>   r?   r   rN   )	r   rw   rC   rF   	neighborsrO   rP   r   rQ   r0   s     r    test_neighborszHistoricalTests.test_neighbors  s    FFH	UV	af~#s+++akk#&'C:555akk#&'C:555akk#&'2---b&&S9r"   c                    | j                         }|j                  g d       |j                  d       t        |j	                               g dk(  sJ t        |j                         g d      sJ t        d |j                         D              g dk(  sJ t        |j                         t              g dk(  sJ t        |j                  d            d	d
gk(  sJ t        j                  t        j                  |j                  d       |j                          t        j                  |      dk(  sJ t        j                   |      dk(  sJ y )Nr   r   )r,   r>   r?   r@   r   r9   r:   c              3   &   K   | ]	  \  }}|  y wr   r   )r   kvs      r    r   z1HistoricalTests.test_iterators.<locals>.<genexpr>  r   r   )r   r   r   r;   r;   r   r   r<   )r   )r>   r   )r?   r   )r@   r;   )r   r   )r9   r   )r:   r   r,   r>   r?   rq   r   )r   rw   rC   rF   rG   r   r   r   rH   r   rO   rP   r   rQ   clearnumber_of_nodesr   r0   s     r    test_iteratorszHistoricalTests.test_iterators  s   FFH	UV	aggi $GGGGGGIS
 	
 
 /AHHJ//3HHHHahhjc* /
 
 	
 
 akk#&'C:555b&&S9		!!!$)))!!!$)))r"   c                     t        j                         }t        j                         }|j                  g       }t        j                  ||      sJ y r   )r   r   r   is_isomorphic)r(   	nullgraphr   r)   s       r    test_null_subgraphz"HistoricalTests.test_null_subgraph  s;    MMO	MMOJJrN9---r"   c                 (   t        j                         }t        j                  d      }t        j                  d      }|j                  g       }t        j                  ||      sJ |j                  g d      }t        j                  ||      sJ y )Nr   r   )r	   r;   r   r   r   )r   r   empty_graphr   r   )r(   r   E5E10r)   s        r    test_empty_subgraphz#HistoricalTests.test_empty_subgraph  sq    MMO	^^AnnR LL9---LL)2&&&r"   c                     t        j                  d      }t        j                  d      }t        j                  d      }|j                  g d      }t        j                  ||      sJ y )Nr	   r   r   )r	   r;   r   )r   r   r   r   )r(   r   r   r   r)   s        r    test_complete_subgraphz&HistoricalTests.test_complete_subgraph  sV    q!q!q!KK	"2&&&r"   c                 Z   t        j                         }t        j                  d      }t        j                  d      }t        j                  d      }|j                  d      }t        j                  ||      sJ |j                  dh      }t        j                  ||      sJ |j                  t        |            }t        j                  ||      sJ |j                  |      }t        j                  ||      sJ |j                  dg      }t        j                  ||      sJ y )Nr	   r   r   	   )r   r   r   r   r   iter)r(   r   r   r   r   r)   s         r    test_subgraph_nbunchz$HistoricalTests.test_subgraph_nbunch  s    MMO	q!q!q!KKN2&&&KK2&&&KKR!2&&&KKO2&&&KK9---r"   c                    | j                         }t        j                  t        j                  |j
                  d       |j                  dg       t        j                  t        j                  |j                  d       y )Nr   )r   rO   rP   r   rQ   r/   rE   r   r   s     r    test_node_tuple_issuez%HistoricalTests.test_node_tuple_issue  sQ    FFHb&&v>	VH%b&&V<r"   N)'__name__
__module____qualname__classmethodr!   r*   r1   r4   rI   rK   rR   rV   r[   r`   re   rg   ro   rs   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r    r   r   
   s    
 
#(U,BTV,
*(0	($
+(2 
D@A

))
0G-0-8:*2.''.(=r"   r   )
__doc__rO   networkxr   r   r   networkx.utilsr   r   r   r   r"   r    <module>r      s     #   = 3Q= Q=r"   