
    9 j)                     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      t/root/GenerationalWealth/GenerationalWealth/venv/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/SS9(       d   eg )Nr9   r:   )r;   r%   r#   r   )r?   r;   Tdirectedr   MultiDiGraphr   r   r5   r   s      r   test_multidigraph1$TestGeneratorLine.test_multidigraph1<   sJ    OOVV,-MM!GGI.0FGRV
 	
 
r   c                     [         R                  " / SQ5      n[         R                  " U5      n[        UR	                  5       / SQSS9(       d   eg )N)r"   r"   r"   r9   ))r.   r;   )r1   r;   )r2   r;   Tr@   rB   r   s      r   test_multidigraph2$TestGeneratorLine.test_multidigraph2C   s@    OO<=MM!GGIT
 	
 
r   c                     [         R                  " / SQ5      n[         R                  " U5      n[        UR	                  5       SS/SS9(       d   eg )Nr"   r9   r%   r'   r"   r9   r9   rK   Tr@   )r   r(   r   r   r5   r   s      r   test_digraph2TestGeneratorLine.test_digraph2L   sE    JJ/0MM!GGI(*:;d
 	
 
r   c                     [         R                  " / SQ5      n[         R                  " U[         R                  " 5       S9n[	        UR                  5       SS/5      (       d   eg )NrJ   create_usingrL   rM   )r   r(   r   Graphr   r5   r   s      r   test_create1TestGeneratorLine.test_create1S   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/SS9(       d   eg )NrJ   rQ   rL   rM   Tr@   )r   rS   r   r(   r   r5   r   s      r   test_create2TestGeneratorLine.test_create2X   sM    HH-.MM!"**,7GGI(*:;d
 	
 
r    N)__name__
__module____qualname____firstlineno__r   r   r   r*   r6   r<   rD   rG   rN   rT   rW   __static_attributes__rY   r   r   r   r      s;    9
5
&
=
2@



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)TestGeneratorInverseLine`   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re   c)re   d)re   erh   ri   )rj   f)rj   g)rl   rm   r   rS   add_edges_frominverse_line_graphr   r   r   G_edgesHsolutionsolution_edgess         r   test_example%TestGeneratorInverseLine.test_examplea   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
   )rg   )rf   rh   rk   )ri   rj   )ri   rl   rn   rq   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   rp   r   r   r   rs   rt   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
   rc   r|   )r   r   rt   rs   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   rp   rS   ro   r   )r   r   rs   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   rp   r   r   r   rs   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   rS   rp   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   rp   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NetworkXErrorrp   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   rp   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'   rc   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   rp   wheel_graphr   remove_edgecomposer   complete_bipartite_graphdiamond_graphro   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(   ro   r   r   NetworkXNotImplementedrp   r4   )r   r   rr   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   rp   r   r   r   rs   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   rp   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   rp   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   rp   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   rp   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   rp   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   rp   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'   re   rf   rh   r   r   s       r   test_line_different_node_types7TestGeneratorInverseLine.test_line_different_node_types  sF    MM23MM!!!!$%%%%r   rY   N)rZ   r[   r\   r]   rv   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r^   rY   r   r   r`   r`   `   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_error1  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)NrY   ).0uvr   cells      r   	<genexpr>CTestGeneratorPrivateFunctions.test_diamond_graph.<locals>.<genexpr><  s'     G$Q1QyqAaDyy$s   )))r   r   r5   r   r   lenall)r   edger   r   s     @@r   test_diamond_graph0TestGeneratorPrivateFunctions.test_diamond_graph6  sX    GGD--atDDt9>!>G$GGGGG	 r   rY   N)	rZ   r[   r\   r]   r   r   r   r   r^   rY   r   r   r   r   &  s    D
J
O
Hr   r   )
r   networkxr   networkx.generatorsr   networkx.utilsr   r   r`   r   rY   r   r   <module>r      s7      $ &U
 U
pC& C&LH Hr   