
    h(                     h    S SK r S SKrS SKJr  S SKJr   " S S5      r " S S5      r " S S	5      r	g)
    N)line)edges_equalc                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestGeneratorLine   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U[         R                  " S5      5      (       d   eg N   )nx
star_graph
line_graphis_isomorphiccomplete_graphselfGLs      U/var/www/html/env/lib/python3.13/site-packages/networkx/generators/tests/test_line.py	test_starTestGeneratorLine.test_star	   sB    MM!MM!2#4#4Q#78888    c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U[         R                  " S5      5      (       d   eg )Nr
      )r   
path_graphr   r   r   s      r   	test_pathTestGeneratorLine.test_path   s@    MM!MM!2==#34444r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " X!5      (       d   eg r	   )r   cycle_graphr   r   r   s      r   
test_cycleTestGeneratorLine.test_cycle   s5    NN1MM!%%%%r   c                     [         R                  " / SQ5      n[         R                  " U5      nUR                  0 0 0 S.:X  d   eg )N)r      r      r      )r   DiGraphr   adjr   s      r   test_digraph1TestGeneratorLine.test_digraph1   s8    JJ/0MM!uuR<<<<r   c                     [         R                  " / SQ5      n[         R                  " U5      n[        UR	                  5       / SQ5      (       d   eg )N)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#   r#   )r-   r   r#   r%   )r.   r1   )r.   r/   )r.   r2   )r.   r0   )r1   r2   )r1   r/   )r1   r0   )r2   r/   )r2   r0   )r/   r0   r   
MultiGraphr   r   edgesr   s      r   test_multigraph1"TestGeneratorLine.test_multigraph1   sD    MMJKMM!GGI
 
 	
 
r   c                     [         R                  " SS/5      n[         R                  " U5      n[        UR	                  5       S/5      (       d   eg )Nr#   r%   r%   r#   )r#   r%   r   )r#   r%   r#   r3   r   s      r   test_multigraph2"TestGeneratorLine.test_multigraph27   s@    MM66*+MM!1779'=&>????r   c                     [         R                  " SS/5      n[         R                  " U5      n[        UR	                  5       SS/5      (       d   eg )Nr9   r:   )r;   r%   r#   r   )r?   r;   r   MultiDiGraphr   r   r5   r   s      r   test_multidigraph1$TestGeneratorLine.test_multidigraph1<   sC    OOVV,-MM!1779'=?U&VWWWWr   c                     [         R                  " / SQ5      n[         R                  " U5      n[        UR	                  5       / SQ5      (       d   eg )N)r"   r"   r"   r9   ))r.   r;   )r1   r;   )r2   r;   r@   r   s      r   test_multidigraph2$TestGeneratorLine.test_multidigraph2A   sB    OO<=MM!GGIT
 
 	
 
r   c                     [         R                  " / SQ5      n[         R                  " U5      n[        UR	                  5       SS/5      (       d   eg )Nr"   r9   r%   r'   r"   r9   r9   rI   )r   r(   r   r   r5   r   s      r   test_digraph2TestGeneratorLine.test_digraph2I   s?    JJ/0MM!1779'79I&JKKKKr   c                     [         R                  " / SQ5      n[         R                  " U[         R                  " 5       S9n[	        UR                  5       SS/5      (       d   eg NrH   )create_usingrJ   rK   )r   r(   r   Graphr   r5   r   s      r   test_create1TestGeneratorLine.test_create1N   sG    JJ/0MM!"((*51779'79I&JKKKKr   c                     [         R                  " / SQ5      n[         R                  " U[         R                  " 5       S9n[	        UR                  5       SS/5      (       d   eg rO   )r   rQ   r   r(   r   r5   r   s      r   test_create2TestGeneratorLine.test_create2S   sG    HH-.MM!"**,71779'79I&JKKKKr    N)__name__
__module____qualname____firstlineno__r   r   r   r*   r6   r<   rB   rE   rL   rR   rU   __static_attributes__rW   r   r   r   r      s>    9
5
&
=
2@
X

L
L
Lr   r   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)TestGeneratorInverseLineY   c                 \   [         R                  " 5       nSS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//nUR                  U5        [         R                  " U5      n[         R                  " 5       n/ S	QnUR                  U5        [         R                  " X45      (       d   eg )
Nr#   r%   r'   r   r
         r   ))abrc   c)rc   d)rc   erf   rg   )rh   f)rh   g)rj   rk   r   rQ   add_edges_frominverse_line_graphr   r   r   G_edgesHsolutionsolution_edgess         r   test_example%TestGeneratorInverseLine.test_exampleZ   s    HHJFFFFFFFFFFFFF
 	
!!!!$88:	
 	/,,,,r   c                 2   [         R                  " 5       nSS/SS/SS/SS/SS/SS//nUR                  U5        [         R                  " U5      n[         R                  " 5       n/ SQnUR                  U5        [         R                  " X45      (       d   eg )Nr#   r%   r'   r   r
   )re   )rd   rf   ri   )rg   rh   )rg   rj   rl   ro   s         r   test_example_2'TestGeneratorInverseLine.test_example_2{   s    HHJq6Aq6Aq6Aq6Aq6Aq6B	!!!!$88:U/,,,,r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " S5      n[         R                  " X#5      (       d   eg )Nr%   r'   r   r   rn   r   r   r   rq   rr   s       r   	test_pair"TestGeneratorInverseLine.test_pair   sE    MM!!!!$==#,,,,r   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " U5      n[         R                  " X25      (       d   eg )Nr
   ra   rz   )r   r   rr   rq   s       r   	test_line"TestGeneratorInverseLine.test_line   sE    MM!==#!!!$,,,,r   c                 ,   [         R                  " S5      n[         R                  " U5      n[         R                  " 5       nUR	                  SS/SS/SS//5        [         R
                  " X!5      (       d  [         R
                  " X#5      (       d   eg g )Nr'   r   r#   r%   )r   r   rn   rQ   rm   r   )r   r   rq   alternative_solutions       r   test_triangle_graph,TestGeneratorInverseLine.test_triangle_graph   s~    a !!!$!xxz++aVaVaV,DE %%)9)9!)R)RRR)R%r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " X!5      (       d   eg r	   )r   r   rn   r   r   r   rq   s      r   r   #TestGeneratorInverseLine.test_cycle   s7    NN1!!!$%%%%r   c                     [         R                  " 5       n[         R                  " U5      n[         R                  " U[         R                  " S5      5      (       d   eg )Nr#   )r   rQ   rn   r   r   r   s      r   
test_empty#TestGeneratorInverseLine.test_empty   sA    HHJ!!!$2#4#4Q#78888r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " S5      n[         R                  " X#5      (       d   eg )Nr#   r%   )r   r   rn   r   r   r{   s       r   test_K1 TestGeneratorInverseLine.test_K1   sG    a !!!$==#,,,,r   c                     [         R                  " S5      n[        R                  " [         R                  SS9   [         R
                  " U5        S S S 5        g ! , (       d  f       g = f)Nr
   zedgeless graph)match)r   empty_graphpytestraisesNetworkXErrorrn   r   r   s     r   test_edgeless_graph,TestGeneratorInverseLine.test_edgeless_graph   s@    NN1]]2++3CD!!!$ EDDs   A
A(c                     [         R                  " S5      nUR                  SS5        [        R                  " [         R
                  [         R                  U5        g )Nr   r   )r   r   add_edger   r   r   rn   r   s     r   test_selfloops_error-TestGeneratorInverseLine.test_selfloops_error   s:    NN1	

1ab&&(=(=qAr   c                    [         R                  " S5      n[        R                  " [         R                  [         R
                  U5        [         R                  " S5      n[        R                  " [         R                  [         R
                  U5        [         R                  " S5      nUR                  SS5        [        R                  " [         R                  [         R
                  U5        [         R                  " [         R                  " S5      [         R                  " SS5      5      n[        R                  " [         R                  [         R
                  U5        [         R                  " 5       nUR                  SS/5        [        R                  " [         R                  [         R
                  U5        UR                  S	S5        [        R                  " [         R                  [         R
                  U5        [         R                  " 5       nUR                  SS
/5        [        R                  " [         R                  [         R
                  U5        [         R                  " 5       nUR                  / SQ5        [        R                  " [         R                  [         R
                  U5        UR                  SS/5        [        R                  " [         R                  [         R
                  U5        [         R                  " 5       nUR                  / SQ5        [        R                  " [         R                  [         R
                  U5        g )Nr'   ra   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   )r   r   r   r   r   rn   wheel_graphr   remove_edgecomposer   complete_bipartite_graphdiamond_graphrm   r   )r   clawwheelK5mr   s        r   test_non_line_graphs-TestGeneratorInverseLine.test_non_line_graphs   s'   
 }}Qb&&(=(=tD q!b&&(=(=uE "1b&&(=(=sC JJr}}Q')D)DQ)JKb&&(=(=qA
 	&&)*b&&(=(=qA	

1ab&&(=(=qA 	&&)*b&&(=(=qA 	9:b&&(=(=qA	&&)*b&&(=(=qA 	9:b&&(=(=qAr   c                    [         R                  " 5       nSS/SS/SS//nUR                  U5        [        R                  " [         R
                  [         R                  U5        [         R                  " 5       nSS/SS/SS//nUR                  U5        [        R                  " [         R
                  [         R                  U5        g )Nr   r#   r%   r'   )r   r(   rm   r   r   NetworkXNotImplementedrn   r4   )r   r   rp   s      r   test_wrong_graph_type.TestGeneratorInverseLine.test_wrong_graph_type   s    JJLq6Aq6Aq6*	!b//1F1FJMMOq6Aq6Aq6*	!b//1F1FJr   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg N
   )r   r   r   rn   r   r   r   rq   Js       r   test_line_inverse_line_complete8TestGeneratorInverseLine.test_line_inverse_line_complete   sG    b!MM!!!!$%%%%r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg r   r   r   r   rn   r   r   s       r   test_line_inverse_line_path4TestGeneratorInverseLine.test_line_inverse_line_path   E    MM"MM!!!!$%%%%r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg r	   )r   hypercube_graphr   rn   r   r   s       r    test_line_inverse_line_hypercube9TestGeneratorInverseLine.test_line_inverse_line_hypercube   sG    q!MM!!!!$%%%%r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg r   )r   r   r   rn   r   r   s       r   test_line_inverse_line_cycle5TestGeneratorInverseLine.test_line_inverse_line_cycle   sE    NN2MM!!!!$%%%%r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg )N   )r   r   r   rn   r   r   s       r   test_line_inverse_line_star4TestGeneratorInverseLine.test_line_inverse_line_star  r   r   c                     [         R                  " SSS5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg )Nr'   r   r
   )r   complete_multipartite_graphr   rn   r   r   s       r   #test_line_inverse_line_multipartite<TestGeneratorInverseLine.test_line_inverse_line_multipartite  sK    **1a3MM!!!!$%%%%r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg )Nr   )r    dorogovtsev_goltsev_mendes_graphr   rn   r   r   s       r   test_line_inverse_line_dgm3TestGeneratorInverseLine.test_line_inverse_line_dgm  sG    //2MM!!!!$%%%%r   c                     [         R                  " / SQ5      n[         R                  " U5      n[         R                  " U5      n[         R                  " X5      (       d   eg )N)r#   r%   r'   rc   rd   rf   r   r   s       r   test_line_different_node_types7TestGeneratorInverseLine.test_line_different_node_types  sF    MM23MM!!!!$%%%%r   rW   N)rX   rY   rZ   r[   rt   rw   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   rW   r   r   r^   r^   Y   sl    -B---S&
9
-%
B
-B^	K&&&&&&&&r   r^   c                   ,    \ rS rSrS rS rS rS rSrg)TestGeneratorPrivateFunctionsi  c                    [         R                  " 5       n[        R                  " [         R                  [
        R                  US5        [        R                  " [         R                  [
        R                  US5        g Nr   r&   )r   r   r   r   r   r   
_trianglesr   s     r   test_triangles_error2TestGeneratorPrivateFunctions.test_triangles_error   sH    b&&FCb&&FCr   c                    [         R                  " 5       n[        R                  " [         R                  [
        R                  US5        [        R                  " [         R                  [
        R                  US5        g )N)r   r#   r   )r   r#   r'   )r   r   r   r   r   r   _odd_triangler   s     r   test_odd_triangles_error6TestGeneratorPrivateFunctions.test_odd_triangles_error%  sL    b&&(:(:AyIb&&(:(:AyIr   c                    [         R                  " 5       n[        R                  " [         R                  [
        R                  US5        [        R                  " [         R                  [
        R                  US5        g r   )r   r   r   r   r   r   _select_starting_cellr   s     r   test_select_starting_cell_error=TestGeneratorPrivateFunctions.test_select_starting_cell_error*  sL    b&&(B(BAvNb&&(B(BAvNr   c                    ^^ [         R                  " 5       mTR                   HF  n[        R                  " TUS9m[        T5      S:X  d   e[        UU4S jT 5       5      (       a  MF   e   g )N)starting_edger'   c              3   V   >#    U  H  nT  H  o!U:w  d  M
  UTU   ;   v   M     M      g 7f)NrW   ).0uvr   cells      r   	<genexpr>CTestGeneratorPrivateFunctions.test_diamond_graph.<locals>.<genexpr>5  s'     G$Q1QyqAaDyy$s   )))r   r   r5   r   r   lenall)r   edger   r   s     @@r   test_diamond_graph0TestGeneratorPrivateFunctions.test_diamond_graph/  sX    GGD--atDDt9>!>G$GGGGG	 r   rW   N)	rX   rY   rZ   r[   r   r   r   r   r\   rW   r   r   r   r     s    D
J
O
Hr   r   )
r   networkxr   networkx.generatorsr   networkx.utilsr   r   r^   r   rW   r   r   <module>r      s9      $ &NL NLbC& C&LH Hr   