
    fi.?                     P    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	dS )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&d$S )%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        | _        d S )N   )first_label   
         )nx
null_graphnullcnlti
path_graphP1P3P10complete_graphK1K3K4K5K10GraphG)clss    /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/classes/tests/historical_tests.pysetup_classzHistoricalTests.setup_class   s   =??r}Q''Q777r}Q''Q777b))q999r(++;;;r(++;;;r(++;;;r(++;;;)"--1===    c                     |                      d          }|j        dk    sJ |                                  }|j        dk    sJ d S )Ntest)name )r   r%   selfr   Hs      r    	test_namezHistoricalTests.test_name   sH    FFFvFFHHv||||||r"   c                     |                                  }|                    d           |                    d          sJ |                    d           |                    d          rJ d S )NA)r   add_nodehas_noderemove_noder(   r   s     r    test_add_remove_nodez$HistoricalTests.test_add_remove_node    sb    FFHH	

3zz#	c::c??"""""r"   c                     |                                  }|                    dg          rJ |                    ddi          rJ d S Nr,   r	   )r   r.   r0   s     r    test_nonhashable_nodez%HistoricalTests.test_nonhashable_node'   sM    
 FFHH::se$$$$$::sAh'''''''r"   c                    |                                  }|                    t          d                     |                    d          sJ |                    g d           |                    g d           t          |                                t                    g dk    sJ t          |t                    g dk    sJ d S )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    FFHH	n--...zz#	555666	&&&aggiiS))) .
 .
 .
 
 
 
 
 aS!!!%T%T%TTTTTTTr"   c                     |                                  }|                    d           d|v sJ g |vsJ ddi|vsJ d S r3   )r   r-   r0   s     r    test_containszHistoricalTests.test_containsF   sM    FFHH	

3axxxx{{{{1vQr"   c                 N   |                                  }|                    d           |                    d          sJ |                    d           t          j        t
          j        |j        d           |                    d           t          |          g k    sJ d S )Nmj)	r   r-   r.   pytestraisesr   NetworkXErrorr/   rD   r0   s     r    test_add_removezHistoricalTests.test_add_removeM   s    FFHH	

3zz#	

3b&s;;;	cAww"}}}}}}r"   c                    |                                  }|                    t          d                     |                    | j                   t	          |                                t                    g dk    sJ |                    | j                   t	          |                                t                    g dk    sJ d S )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    FFHH	f&&&	!!!aggiiS)))-J-J-JJJJJ	DG$$$aggiiS)))-A-A-AAAAAAAr"   c                     |                                  }t          d          }|                    |           |                    d          sJ d S )Nr6   r7   )r   setrC   r.   r(   r   nbunchs      r    test_nbunch_is_setz"HistoricalTests.test_nbunch_is_set_   sL    FFHH^$$	   zz#r"   c                    |                                  }t          d          }|                    |           ddddd}|                    |           t	          |                                t                    sJ g d            d S )	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    FFHH^$$	   14f==	F###aggiiS)))SS+S+S+SSSSSSr"   c                    |                                  }|                    g d           | j                                        }|                    |           t	          |                                t
                    g dk    sJ | j                                        }|                    |           t	          |                                t
                    g dk    sJ d S 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    FFHH	AAABBB	   aggiiS))) .
 .
 .
 
 
 
 
 	F###aggiiS)))-U-U-UUUUUUUr"   c                     |                                  }|                    g d           | j        }|                    |           t          |                                t
                    sJ g d            d S rb   )r   rC   r   rF   rG   rH   rY   s      r    test_nbunch_graphz!HistoricalTests.test_nbunch_graph   s    FFHH	AAABBB	   aggiiS))) 	
 	
 ,
 ,
 ,
 	
 	
 	
 	
 	
r"   c                    |                                  }t          j        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          sJ |                    dd           |                    dd           |                    dd           |                                r|                    dd          sJ n|                    dd          rJ |                    dd          rJ d S )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   FFHHiS111	

3	

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

3	

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

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

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

3zz#r"   c                 .   |                                  }|                    dg           |                    dd          sJ |                                r|                    dd          rJ n|                    dd          sJ |                    ddg           |                    dd          sJ |                    dd          sJ |                                r|                    dd          rJ d S |                    dd          sJ d S )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#   FFHH	*&&&zz#s#####==?? 	(zz#s++++++::c3'''''	*j1222zz#s#####zz#s#####==?? 	(zz#s+++++++::c3'''''''r"   c                 P   |                                  }|                    t          d          t          d          t          d          g            |j        d sJ  |j        d sJ  |j        d sJ |                                r |j        d rJ d S  |j        d sJ d S )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    FFHH	%++tDzz5;;?@@@qz:&&&&qz:&&&&qz:&&&&==?? 	+!qz:......1:z******r"   c                    |                                  }|                    t          t          d          t          d                               |                    dd          sJ |                    dd          rJ d S )NACDCDEr@   rA   r?   )r   rw   ziprD   rl   r0   s     r    test_add_edges_from3z$HistoricalTests.test_add_edges_from3   ss    FFHH	T%[[$u++66777zz#s#####::c3'''''''r"   c                    |                                  }|                    g d           |                    t          t	          d          t	          d                               |                    dd          sJ |                    dd          sJ |                    d           |                    dd          rJ t          j        t          |j
        d           |                    dd           |                    dd          sJ |
                    dd           |                    dd          rJ |                    t	          d          t	          d	          t          d
          t          d          g           |                    dd          rJ |                    dd          rJ |                    t	          d          t	          d
          t	          d          g           |                    dd          rJ |                    t          d                     |                    dd           d S )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   FFHH	JJJKKK	T&\\4<<88999zz#s#####zz#s#####	c::c3'''''i444	

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

3r"   c                 6   |                                  }|                    g d           t          j        t          j        |j        d           t          |                    d                    g k    sJ t          |                    g                     g k    sJ |                                rg d}ng d}t          t          |                    ddg                    |          sJ t          |                    ddh          |          sJ |                                  }|
                    d           t          |                    |          |          sJ d	d
d}t          |                    |          |          sJ t          t          |                    d                    ddg          sJ t          t          |          g d          sJ t          t          |                                          g d          sJ d S )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   s   FFHH	UUUVVVb&333AGGCLL!!R''''AGGBKK  B&&&&==?? 	E888EEDDDE4c
 3 344e<<<<<177C:..66666VVXX
$1772;;.....X..1775>>5111114--
J/GHHHHH6!99&:&:&:;;;;; OOHHH
 
 	
 	
 	
 	
 	
r"   c                    |                                  }|                    g d           |                    d          dk    sJ t          |                    dg                    dgk    sJ t	          d |                    ddg          D                       ddgk    sJ t	          d |                                D                       g d	k    sJ d S )
Nr   r,   r;   r,   r;   c              3       K   | ]	\  }}|V  
d S N .0nds      r    	<genexpr>z.HistoricalTests.test_degree.<locals>.<genexpr>"  s&      99DAqa999999r"   r>   r   c              3       K   | ]	\  }}|V  
d S 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    FFHH	UUUVVVxx}}!!!! AHHcUOO$$
222299AHHc3Z$8$899999aVCCCC//AHHJJ/////<<<??????r"   c                     |                                  }|                    ddg           t          d |                    ddg          D                       ddgk    sJ d S )N)r	      r	   r;   c              3       K   | ]	\  }}|V  
d S r   r   r   s      r    r   z/HistoricalTests.test_degree2.<locals>.<genexpr>(  s&      66DAqa666666r"   r	   r   r;   )r   rw   rF   r   r(   r)   s     r    test_degree2zHistoricalTests.test_degree2%  sj    FFHH	'6*+++66AHHaW$5$5666661a&@@@@@@r"   c                 .   t          j        d          }t          j        d          }t          d |                    ddg          D                       i k    sJ t	          d |                    |          D                       g dk    sJ t	          d |                    |          D                       g d	k    sJ t          |                    g                     g k    sJ t          |                    g                     i k    sJ d S )
Nr   r   c              3       K   | ]	\  }}|V  
d S r   r   r   s      r    r   z4HistoricalTests.test_degree_graph.<locals>.<genexpr>.  s&      88$!QA888888r"   r,   r>   c              3       K   | ]	\  }}|V  
d S r   r   r   s      r    r   z4HistoricalTests.test_degree_graph.<locals>.<genexpr>0  &      22DAqa222222r"   )r	   r;   r;   c              3       K   | ]	\  }}|V  
d S 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8"))S#J"7"788888B>>>>22BIIbMM22222iii????22BIIbMM22222iii????BIIbMM""b((((BIIbMM""b((((((r"   c                     t          j                    }t          |                                          g k    sJ t	          |                                          i k    sJ d S r   )r   r   rD   r   r   )r(   r   s     r    	test_nullzHistoricalTests.test_null6  sU    }DKKMM""b((((DKKMM""b((((((r"   c                 h   |                                  }|                    g d           |                                dk    sJ |                                dk    sJ |                                dk    sJ |                    dd          dk    sJ |                    dd          dk    sJ d S )	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    FFHH	UUUVVVwwyyA~~~~vvxx1}}}}  ""a''''  c**a////  c**a//////r"   c                     |                                  }|                                }|j        |j        k    sJ |j        |j        k    sJ ||usJ d S r   )r   copyadjr%   r'   s      r    	test_copyzHistoricalTests.test_copyD  sS    FFHHFFHHu~~~~vzzzzzzr"   c                 2   |                                  }|                    g d           |                    g d          }t          t	          |          g d          sJ t          t	          |                                          ddg          sJ d S )Nr   )r,   r>   r@   ri   rv   )r   rw   subgraphr   rD   r   r   )r(   r   SGs      r    test_subgraphzHistoricalTests.test_subgraphK  s    FFHH	UUUVVVZZ((488___555554

++j*-EFFFFFFFr"   c                 *   |                                  }|                                s|                    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          sJ |
                    dd          rJ d S d S )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  s4   FFHH}} 	-LLL   BQ;;;;>>#####7af$$$$6QU????",,tDzz2233 8 8 8     NN3$$$;;sC((((({{3,,,,,)	- 	-( -,r"   c                    |                                  }|                                r*|                    g d           |                                }||usJ |                                rJ |                                sJ |j        |j        k    sJ |j        |j        k    sJ t          |                    t          d                              g dk    sJ t          |                    ddg                    g dk    sJ |	                    dd           |
                    dd          rJ |
                    dd          rJ d S d S )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   FFHH==?? 	-LLL   ""BQ;;;;~~'''''==??"""7af$$$$6QU????"((4::..// 4 4 4     "((C:..// 4 4 4     NN3$$${{3,,,,,{{3,,,,,1	- 	-0 -,r"   c                    |                                  }|                    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    sJ t          |                    d                    g k    sJ t          j        t          j        |j        d           d S )Nr   GJKr,   r>   r?   r   rN   )	r   rw   rC   rF   	neighborsrO   rP   r   rQ   r0   s     r    test_neighborszHistoricalTests.test_neighbors  s    FFHH	UUUVVV	af~~#s++++akk#&&''C:5555akk#&&''C:5555akk#&&''2----b&S99999r"   c                    |                                  }|                    g d           |                    d           t          |                                          g dk    sJ t          |                                g d          sJ t          d |                                D                       g dk    sJ t          |                                t                    g dk    sJ t          |	                    d                    d	d
gk    sJ t          j        t          j        |j	        d           |                                 t          j        |          dk    sJ t          j        |          dk    sJ d S )Nr   r   )r,   r>   r?   r@   r   r9   r:   c              3       K   | ]	\  }}|V  
d S 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   FFHH	UUUVVV	aggii  $G$G$GGGGGGGIISSS
 
 	
 	
 	
 //AHHJJ/////3H3H3HHHHHahhjjc*** /
 /
 /
 
 
 
 
 akk#&&''C:5555b&S999				!!$$))))!!$$))))))r"   c                     t          j                    }t          j                    }|                    g           }t          j        ||          sJ d S r   )r   r   r   is_isomorphic)r(   	nullgraphr   r)   s       r    test_null_subgraphz"HistoricalTests.test_null_subgraph  sF    MOO	MOOJJrNN9-------r"   c                 0   t          j                    }t          j        d          }t          j        d          }|                    g           }t          j        ||          sJ |                    g d          }t          j        ||          sJ d S )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  s    MOO	^AnR  LL9-----LL))2&&&&&&&r"   c                     t          j        d          }t          j        d          }t          j        d          }|                    g d          }t          j        ||          sJ d S )Nr	   r   r   )r	   r;   r   )r   r   r   r   )r(   r   r   r   r)   s        r    test_complete_subgraphz&HistoricalTests.test_complete_subgraph  sf    q!!q!!q!!KK			""2&&&&&&&r"   c                 z   t          j                    }t          j        d          }t          j        d          }t          j        d          }|                    d          }t          j        ||          sJ |                    dh          }t          j        ||          sJ |                    t          |                    }t          j        ||          sJ |                    |          }t          j        ||          sJ |                    dg          }t          j        ||          sJ d S )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   MOO	q!!q!!q!!KKNN2&&&&&KK2&&&&&KKR!!2&&&&&KKOO2&&&&&KK9-------r"   c                     |                                  }t          j        t          j        |j        d           |                    dg           t          j        t          j        |j        d           d S )Nr   )r   rO   rP   r   rQ   r/   rE   r   r   s     r    test_node_tuple_issuez%HistoricalTests.test_node_tuple_issue  s]    FFHH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   
   sA       
 
 [
  # # #( ( (U U U,    B B B  T T TV V V,
 
 
*( ( (0	 	 	( ( ($
+ 
+ 
+( ( (  2 
  
  
D@ @ @A A A

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