
    h8                     D    S SK r S SKrS SKJr  S SKJrJr   " S S5      rg)    N)empty_graph)edges_equalnodes_equalc                      \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	/ S
Q45      S 5       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#)$TestRelabel   c                    [        5       n[        R                  " US5      n[        UR	                  5       5      / :X  d   e[        UR                  5       5      / :X  d   eS Ha  n[        5       n[        R                  " USUS9n[        UR	                  5       5      / :X  d   e[        UR                  5       5      / :X  a  Ma   e   [        5       nUR                  / SQ5        [        R                  " U5      nS UR                  5        5       nS UR                  5        5       n[        U5      [        U5      :X  d   e[        R                  " US5      nS UR                  5        5       nS	 UR                  5        5       n[        U5      [        U5      :X  d   e[        UR	                  5       / S
Q5      (       d   e[        R                  " USS9nS UR                  5        5       nS UR                  5        5       n[        U5      [        U5      :X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   e[        R                  " USS9nS UR                  5        5       nS UR                  5        5       n[        U5      [        U5      :X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   e[        R                  " USSS9nS UR                  5        5       nS UR                  5        5       n[        U5      [        U5      :X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S   S   S:X  d   eUR                  S   S   S:X  d   eUR                  S   S   S:X  d  UR                  S   S   S:X  d   eUR                  S   S   S:X  d  UR                  S   S   S:X  d   eg g )Nd   )defaultsortedincreasing degreedecreasing degreeorderingABr   Cr   r   r   Dc              3   *   #    U  H	  u  pUv   M     g 7fN .0nds      M/var/www/html/env/lib/python3.13/site-packages/networkx/tests/test_relabel.py	<genexpr>CTestRelabel.test_convert_node_labels_to_integers.<locals>.<genexpr>        )jdaj   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#      r$   r%     c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#      r$   r%   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#      r$   r%   )r'   i  i  i  r   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#   $   r$   r%   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#   %   r$   r%   r            r   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#   -   r$   r%   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#   .   r$   r%   labelr   label_attributec              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#   8   r$   r%   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   r#   9   r$   r%   r   r   r   r   )
r   nxconvert_node_labels_to_integerslistnodesedgesadd_edges_fromdegreer   r   )selfGHoptdegHdegGs         r!   $test_convert_node_labels_to_integers0TestRelabel.test_convert_node_labels_to_integers	   s   M..q#6AGGI"$$$AGGI"$$$RCA221cCHA	?b(((	?b(((	 S M	IJ..q1)ahhj))ahhj)d|vd|+++..q$7)ahhj))ahhj)d|vd|+++1779&>????..q;NO)ahhj))ahhj)d|vd|+++xx{axx{axx{axx{a..q;NO)ahhj))ahhj)d|vd|+++xx{axx{axx{axx{a..+W
 *ahhj))ahhj)d|vd|+++xx{axx{axx{axx{a wwqz'"c)))wwqz'"c)))wwqz'"c)QWWQZ-@C-GGGwwqz'"c)QWWQZ-@C-GGG-G)    c                    [        5       nUR                  / SQ5        [        R                  " USS9nS UR	                  5        5       nS UR	                  5        5       n[        U5      [        U5      :X  d   e[        R                  " USSS9nUR                  S   S   S	:X  d   eUR                  S
   S   S:X  d   eUR                  S   S   S:X  d   eUR                  S   S   S:X  d   eg )N)r   r   r   r   r   r   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   8TestRelabel.test_convert_to_integers2.<locals>.<genexpr>J   r$   r%   c              3   *   #    U  H	  u  pUv   M     g 7fr   r   r   s      r!   r"   rH   K   r$   r%   r1   r2   r   r   r,   r   r-   r   r.   r   )r   r;   r6   r7   r<   r   r9   )r=   r>   r?   rA   rB   s        r!   test_convert_to_integers2%TestRelabel.test_convert_to_integers2F   s    M	IJ..q8D)ahhj))ahhj)d|vd|+++..'
 wwqz'"c)))wwqz'"c)))wwqz'"c)))wwqz'"c)))rE   c                     [         R                  " [        R                  5         [        R                  " 5       n[        R
                  " USS9nS S S 5        g ! , (       d  f       g = f)Nzincreasing ager   )pytestraisesr6   NetworkXErrorGraphr7   r=   r>   r?   s      r!   test_convert_to_integers_raise*TestRelabel.test_convert_to_integers_raiseV   s>    ]]2++,
A221?OPA -,,s   +A
A'c                     [         R                  " 5       nUR                  / SQ5        SSSSS.n[         R                  " X5      n[	        UR                  5       / SQ5      (       d   eg Nr   aardvarkbearcatdogr   r   r   r   rV   rW   rX   rY   r6   r   r;   relabel_nodesr   r9   r=   r>   mappingr?   s       r!   test_relabel_nodes_copy#TestRelabel.test_relabel_nodes_copy[   sU    NN	IJ"e%HQ(1779&HIIIIrE   c                     [         R                  " 5       nUR                  / SQ5        S n[         R                  " X5      n[	        UR                  5       / SQ5      (       d   eg )Nr   c                     [        U 5      $ r   )ord)r   s    r!   r_   8TestRelabel.test_relabel_nodes_function.<locals>.mappingg   s    q6MrE   )A   B   C   D   r\   r^   s       r!   test_relabel_nodes_function'TestRelabel.test_relabel_nodes_functionb   sN    NN	IJ	 Q(1779&67777rE   c                     [         R                  " S5      n[         R                  " U[        5      n[	        UR
                  / SQ5      (       d   eg )N   0123)r6   
path_graphr]   strr   r9   rQ   s      r!    test_relabel_nodes_callable_type,TestRelabel.test_relabel_nodes_callable_typem   s:    MM!Q$177$89999rE   non_mc0123rn   c                     [         R                  " S5      n[        R                  " [        5         [         R
                  " X!5        SSS5        g! , (       d  f       g= f)zOIf `mapping` is neither a Callable or a Mapping, an exception
should be raised.rm   N)r6   rs   rM   rN   AttributeErrorr]   )r=   rw   r>   s      r!   *test_relabel_nodes_non_mapping_or_callable6TestRelabel.test_relabel_nodes_non_mapping_or_callabler   s8     MM!]]>*Q' +**s   A
Ac                     [         R                  " / SQ5      nSSSSS.n[         R                  " X5      n[        UR	                  5       / SQ5      (       d   eg rU   )r6   rP   r]   r   r9   r^   s       r!   test_relabel_nodes_graph$TestRelabel.test_relabel_nodes_graphz   sI    HHEF"e%HQ(1779&HIIIIrE   c                     [         R                  " 5       nUR                  / SQ5        UR                  SS/5        SSSS.n[         R                  " X5      n[        UR                  5      / SQ:X  d   eg )Nr,   r-   r.   )r,   r.   r-   r.   abc)r   r   r   )r6   rP   add_nodes_fromr;   r]   r8   r9   r^   s       r!   test_relabel_nodes_orderedgraph+TestRelabel.test_relabel_nodes_orderedgraph   s`    HHJ	#	&&)*cc*Q(AGG}///rE   c                     [         R                  " / SQ5      nSSSSS.n[         R                  " XSS9n[        UR	                  5       / S	Q5      (       d   eg )
Nr   rV   rW   rX   rY   rZ   Fcopyr[   )r6   DiGraphr]   r   r9   r^   s       r!   test_relabel_nodes_digraph&TestRelabel.test_relabel_nodes_digraph   sK    JJGH"e%HQe41779&HIIIIrE   c                     [         R                  " SS/5      nSSS.n[         R                  " XSS9n[        UR	                  5       SS/5      (       d   e[        UR                  5       SS/5      (       d   eg N)r   r   rV   rW   Fr   )rV   rW   )r6   
MultiGraphr]   r   r9   r   r:   r=   r>   r_   s      r!   test_relabel_nodes_multigraph)TestRelabel.test_relabel_nodes_multigraph   so    MM:z23"0Qe41779z6&:;;;;1779';=Q&RSSSSrE   c                     [         R                  " SS/5      nSSS.n[         R                  " XSS9n[        UR	                  5       SS/5      (       d   e[        UR                  5       SS/5      (       d   eg r   )r6   MultiDiGraphr]   r   r9   r   r:   r   s      r!   test_relabel_nodes_multidigraph+TestRelabel.test_relabel_nodes_multidigraph   so    OOZ45"0Qe41779z6&:;;;;1779';=Q&RSSSSrE   c                     [         R                  " 5       nUR                  [        S5      5        SS0n[         R                  " XSS9n[        UR                  5       [        [        S5      5      5      (       d   eg Nrm   r,   Fr   )r6   rP   r   ranger]   r   r9   r8   r^   s       r!   #test_relabel_isolated_nodes_to_same/TestRelabel.test_relabel_isolated_nodes_to_same   s[    HHJ	q"a&Qe41779d58n5555rE   c                 L   [         R                  " / SQ5      nSS0n[         R                  " XSS9n[        UR                  UR                  5      (       d   eUR                  5       n[         R                  " XSS9  [        UR                  UR                  5      (       d   eg )Nr   r   rV   Tr   F)r6   rP   r]   r   r9   r   )r=   r>   r_   r?   GGs        r!   test_relabel_nodes_missing&TestRelabel.test_relabel_nodes_missing   s}    HHEFj/Qd3177AGG,,,,VVX
%0177BHH----rE   c                    [         R                  " 5       n[         R                  " U0 SS9nUR                  UR                  :X  d   e[         R                  " U0 SS9nUR                  UR                  :X  d   eSUl        [         R                  " U0 SS9nUR                  UR                  :X  d   e[         R                  " U0 SS9nUR                  UR                  :X  d   eg )NTr   Ffirst)r6   rP   r]   graphnamerQ   s      r!   test_relabel_copy_name"TestRelabel.test_relabel_copy_name   s    HHJQ.ww!''!!!Q/ww!''!!!Q.ww!''!!!Q/ww!''!!!rE   c           	         [         R                  " S5      n[         R                  " S5      n[         R                  " U[        S5       Vs0 s H  o3US-   _M
     snSS9n[         R                  " X5      (       d   e[         R                  " S5      n[         R                  " U[        S5       Vs0 s H  o3US-
  _M
     snSS9n[         R                  " X5      (       d   eg s  snf s  snf r   )r6   complete_graphr]   r   is_isomorphic)r=   K5r>   is       r!   test_relabel_toposort!TestRelabel.test_relabel_toposort   s    q!a Q58 <8aAE8 <5I&&&&a Q58 <8aAE8 <5I&&&&	 != !=s   C$
1C)
c                    [         R                  " / SQ5      n[         R                  " USSSS.SS9n[        UR	                  5       / SQ5      (       d   e[         R
                  " / SQ5      n[         R                  " USSSS.SS9n[        UR	                  5       / SQ5      (       d   e[         R
                  " S	/5      n[         R                  " US
S0SS9n[        UR	                  5       S/5      (       d   eg )N)r,   r,   )r,   r-   r   OneTwoThreer   Fr   )r   r   r   r   r,   r   )r6   r   r]   r   r9   r   )r=   r>   s     r!   test_relabel_selfloop!TestRelabel.test_relabel_selfloop   s    JJ/0QEe @uM1779&=>>>>OO45QEe @uM1779&=>>>>OOVH%QAU31779qc****rE   c           	         [         R                  [         R                  4 GH  nS GH  nU" / SQ5      nSUS   S   S   S'   SUS   S   S   S'   S	US   S
   S   S'   SUS   S   S   S'   UR                  SSSSS9  UR                  SSSSS9  SSSSS.n[         R                  " X4US9nSS0US   S   R                  5       ;   d   eSS0US   S   R                  5       ;   d   eSS	0US   S   R                  5       ;   d   eUR                  5       (       a  [        US   S   5      S:X  d   e SS0US   S   R                  5       ;   d   eSS0US   S   R                  5       ;   d   eSS0US   S   R                  5       ;   d   eUR                  5       (       a  [        US   S   5      S:X  a  GM   eGM     GM     g )NTF)r   rm   )r,   rm   )rm   r-   )rm   r.   r   r   rm   valuer   r,   r   r-   r    r.   xekeyr   f	   r   r,   r-   r.   r   )r6   r   r   add_edger]   valuesis_directedlen)r=   MGccr>   r_   r?   s         r!   +test_relabel_multidigraph_inout_merge_nodes7TestRelabel.test_relabel_multidigraph_inout_merge_nodes   s   =="//2B#78&)!Q
7#&)!Q
7#&)!Q
7#&)!Q
7#

1aS
4

1aS
4A!2$$Qb9~1a)9999~1a)9999~1a)9999,-MMOOs1Q47|q(BB~1a)9999~1a)9999~1a)9999,-MMOOs1Q47|q(BB% $ 3rE   c                 r   [         R                  " / SQ5      nSUS   S   S   S'   SUS   S   S   S'   SUS   S	   S   S'   S
S
S
S.n[         R                  " XSS9  SS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eg )N)r   r,   r   r-   r   r.   r   r   r   r   r   r,   r   r   r-   r   r.   rm   r   Fr   r6   r   r]   r   r   s      r!   %test_relabel_multigraph_merge_inplace1TestRelabel.test_relabel_multigraph_merge_inplace   s    MMJK!!Q
7!!Q
7!!Q
7A!$
%0~1a!1111~1a!1111~1a!1111rE   c                 r   [         R                  " / SQ5      nSUS   S   S   S'   SUS   S   S   S'   SUS   S	   S   S'   S
S
S
S.n[         R                  " XSS9  SS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eg )Nr   r   r   r   r   r,   r   r   r-   r   r.   rm   r   Fr   r6   r   r]   r   r   s      r!   'test_relabel_multidigraph_merge_inplace3TestRelabel.test_relabel_multidigraph_merge_inplace   s    OO45!!Q
7!!Q
7!!Q
7A!$
%0~1a!1111~1a!1111~1a!1111rE   c                    [         R                  " / SQ5      nSUS   S   S   S'   SUS   S   S   S'   SUS   S	   S   S'   S
US   S   S   S'   UR                  SSSSS9  UR                  SSSSS9  SSSSS.n[         R                  " XSS9nSS0US   S   R	                  5       ;   d   eSS0US   S   R	                  5       ;   d   eSS0US   S   R	                  5       ;   d   e[        US   S   5      S:X  d   eSS
0US   S   R	                  5       ;   d   eSS0US   S   R	                  5       ;   d   eSS0US   S   R	                  5       ;   d   e[        US   S   5      S:X  d   eg )Nr   r   r   rm   r   r   r,   r   r-   r    r.   r   r   r   r   r   r   Tr   )r6   r   r   r]   r   r   r^   s       r!   $test_relabel_multidigraph_inout_copy0TestRelabel.test_relabel_multidigraph_inout_copy   s   OO<=!!Q
7!!Q
7!!Q
7!!Q
7	

1aS
,	

1aS
,A!*Qd3~1a!1111~1a!1111~1a!11111Q47|q   ~1a!1111~1a!1111~1a!11111Q47|q   rE   c                 r   [         R                  " / SQ5      nSUS   S   S   S'   SUS   S   S   S'   SUS   S	   S   S'   S
S
S
S.n[         R                  " XSS9nSS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eg Nr   r   r   r,   r   r   r-   r   r.   rm   r   Tr   r   r^   s       r!   "test_relabel_multigraph_merge_copy.TestRelabel.test_relabel_multigraph_merge_copy  s    MM23!!Q
7!!Q
7!!Q
7A!$Qd3~1a!1111~1a!1111~1a!1111rE   c                 r   [         R                  " / SQ5      nSUS   S   S   S'   SUS   S   S   S'   SUS   S	   S   S'   S
S
S
S.n[         R                  " XSS9nSS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eSS0US   S
   R                  5       ;   d   eg r   r   r^   s       r!   $test_relabel_multidigraph_merge_copy0TestRelabel.test_relabel_multidigraph_merge_copy  s    OO45!!Q
7!!Q
7!!Q
7A!$Qd3~1a!1111~1a!1111~1a!1111rE   c           	      8   [         R                  [         R                  4 H  nS H  n[         R                  " 5       nUR                  SSSSS9  UR                  SSSS	S9  UR                  SS
SSS9  SSSS.n[         R                  " X4SS9  SS0US   S   R                  5       ;   d   eSS	0US   S   R                  5       ;   d   eSS0US   S   R                  5       ;   d   eSUS   S   ;   d   eSUS   S   ;   d   eSUS   S   ;   a  M   e   M     g )Nr   r   r,   Ir   r   r-   IIr   r.   r   rm   r   Fr   r   )r6   r   r   r   r]   r   )r=   r   r   r>   r_   s        r!   &test_relabel_multigraph_nonnumeric_key2TestRelabel.test_relabel_multigraph_nonnumeric_key&  s%   =="//2B#MMO

1aS
4

1aT
5

1aT
5A!,  %8~1a)9999~1a)9999~1a)9999AaDG|#|ad1g~%~qtAw& $ 3rE   c                 
   [         R                  " S5      nSSS.n[         R                  " XSS9n[        R                  " [         R
                  5         [         R                  " XSS9nS S S 5        g ! , (       d  f       g = f)Nr.   r,   r   r   Tr   F)r6   rs   r]   rM   rN   NetworkXUnfeasibler^   s       r!   test_relabel_circular!TestRelabel.test_relabel_circular6  s[    MM!A,Qd3]]2001  %8A 211s   A44
Bc                 "   [         R                  " S5      n[        UR                  5       5      nSSSS.n[         R                  " XSS9n[        UR                  5       5      nU Vs/ s H  ocR                  Xf5      PM     snU:X  d   eg s  snf )Nr.   r   r   r   r-   r,   r   Tr   )r6   rs   r8   r9   r]   getr=   r>   original_orderr_   r?   	new_orderr   s          r!   <test_relabel_preserve_node_order_full_mapping_with_copy_trueHTestRelabel.test_relabel_preserve_node_order_full_mapping_with_copy_true=  ss    MM!aggicc*Qd3O	+9:>aA!>:iGGG:s   (Bc                     [         R                  " S5      n[        U5      nSSSS.n[         R                  " XSS9n[        U5      nU Vs/ s H  ocR	                  Xf5      PM     snU:X  d   eg s  snf )Nr.   r   r   r   r   Fr   r6   rs   r8   r]   r   r   s          r!   =test_relabel_preserve_node_order_full_mapping_with_copy_falseITestRelabel.test_relabel_preserve_node_order_full_mapping_with_copy_falseE  sg    MM!acc*Qe4G	+9:>aA!>:iGGG:s   A0c                     [         R                  " S5      n[        U5      nSSS.n[         R                  " XSS9n[        U5      nU Vs/ s H  ocR	                  Xf5      PM     snU:X  d   eg s  snf )Nr.   r   r   r,   r   Tr   r   r   s          r!   ?test_relabel_preserve_node_order_partial_mapping_with_copy_trueKTestRelabel.test_relabel_preserve_node_order_partial_mapping_with_copy_trueM  se    MM!ac"Qd3G	+9:>aA!>:iGGG:   A/c                     [         R                  " S5      n[        U5      nSSS.n[         R                  " XSS9n[        U5      nU Vs/ s H  ocR	                  Xf5      PM     snU:w  d   eg s  snf )Nr.   r   r   r   Fr   r   r   s          r!   @test_relabel_preserve_node_order_partial_mapping_with_copy_falseLTestRelabel.test_relabel_preserve_node_order_partial_mapping_with_copy_falseU  se    MM!ac"Qe4G	+9:>aA!>:iGGG:r   r   N)%__name__
__module____qualname____firstlineno__rC   rJ   rR   r`   rj   ru   rM   markparametrizer{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   rE   r!   r   r      s    ;Hz* Q
J	8:
 [[X0D'EF( G(J0JTT6	.
"'	+C,
2
2!(	2	2' 9HHHHrE   r   )	rM   networkxr6   networkx.generators.classicr   networkx.utilsr   r   r   r   rE   r!   <module>r     s      3 3SH SHrE   