
    h^                     .   S SK r S SKrS SKrS SKJrJr  \R                  R                  S\R                  \R                  45      S 5       r\R                  R                  S/ SQ/ SQ/ SQ/ 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g)    N)arbitrary_elementgraphs_equalprefix_tree_fnc                 >  ^ / SQnU " U5      mSu  p#U4S jn[        TU   US9u  pVn[        TU   5      S:X  d   e[        TU   5      n[        TU   5      S:X  d   e[        TU   5      S:X  d   e[        TU   US9u  p[        TU   5      S:X  d   e[        TU	   5      S:X  d   e[        TU	   US9u  p[        TU   5      S:X  d   e[        TU
   5      S:X  d   e[        TU
   5      n[        TU   5      S:X  d   e[        TU   US9u  p[        TU   5      S:X  d   e[        TU   5      n[        TU   5      S:X  d   e[        TU   US9u  pn[        TU   5      S:X  d   e[        TU   5      S:X  d   e[        TU   5      S:X  d   e[        TU   5      n[        TU   5      S:X  d   e[        TU   5      n[        TU   5      S:X  d   e[        TU   5      n[        TU   5      S:X  d   eU" U5      b   eU" U5      S:X  d   eU" U5      S	:X  d   eU" U5      S
:X  d   eU" U	5      S:X  d   eU" U
5      S:X  d   eU" U5      S:X  d   eU" U5      S:X  d   eU" U5      S:X  d   eU" U5      S:X  d   eU" U5      S:X  d   eU" U5      S:X  d   eg )Natoteatedteniininn)r   c                 (   > TR                   U    S   $ )Nsource)nodes)vTs    V/var/www/html/env/lib/python3.13/site-packages/networkx/generators/tests/test_trees.pysource_label,test_basic_prefix_tree.<locals>.source_label   s    wwqz(##    )key   r      r   r   tnoedNIL)sortedlenr   )r   stringsrootr"   r   r   r   r   nilin_r   ter	   r
   r   r   r   s                   @r   test_basic_prefix_treer*   	   s    AGwAID$ QtW,/GA!qt9>>
AaD
!Cqv;!qt9>>ad-HCqv;!qv;!af,/HCqv;!qv;!
AcF
#Cqv;!AaDl+FBqu:??
AbE
"Cqv;!1R5l3MCcqv;!qv;!qv;!
AcF
#Cqv;!
AcF
#Cqv;!
AcF
#Cqv;!
 %%%?c!!!?c!!!?c!!!######s"""s"""#########%%%r   r%   r   )ababsad)r+   r,   r-    )distantdisparagingr/   diamondrubyc                 z    [        [        R                  " U 5      [        R                  " U 5      5      (       d   eg)zBEnsure results are consistent between prefix_tree implementations.N)r   nxprefix_treeprefix_tree_recursive)r%   s    r   test_implementations_consistentr7   I   s+     w/1I1I'1RSSSSr   c                  `   [        SS5       H  n [        R                  " U SS9n[        R                  " U SS9n[        R                  R                  R                  X5      (       d   e[        R                  " U5      (       d   eSUR                  ;   d   eSUR                  ;  a  M   e   g Nr   
   *   seedr&   roots)ranger4   random_labeled_rooted_treeutilsmiscr   is_treegraph)r   t1t2s      r   test_random_labeled_rooted_treerG   W   s    1b\**126**126xx}}))"1111zz"~~~!!!bhh&&& r   c                  P   [         R                  " [        R                  5         [        R                  " SSS9n SSS5        [         R                  " [        R                  5         [        R
                  " SSS9n SSS5        g! , (       d  f       NQ= f! , (       d  f       g= fzETests if n = 0 then the NetworkXPointlessConcept exception is raised.r     r<   N)pytestraisesr4   NetworkXPointlessConceptrandom_labeled_treer@   r   s    r   test_random_labeled_tree_n_zerorP   a   sg    	r22	3""140 
4	r22	3))!$7 
4	3 
4	3	3	3   B'B
B
B%c                     [        SS5       H  n [        R                  " U SS9n[        R                  " U SS9n[        R                  R                  R                  X5      (       d   e[        R                  " U5       H/  n[        R                  " UR                  U5      5      (       a  M/   e   SUR                  ;  d   eSUR                  ;   a  M   e   g r9   )
r?   r4   random_labeled_rooted_forestrA   rB   r   connected_componentsrC   subgraphrD   )r   rE   rF   cs       r   !test_random_labeled_rooted_forestrW   i   s    1b\,,QR8,,QR8xx}}))"1111((,A::bkk!n---- -RXX%%%"((""" r   c                      [         R                  " SSS9n [        U 5      S:X  d   e[        U R                  S   5      S:X  d   eg)z*Tests generation of empty labeled forests.r   rJ   r<   r>   N)r4   rS   r$   rD   Fs    r   (test_random_labeled_rooted_forest_n_zeror[   t   s@    
''5Aq6Q;;qwww A%%%r   c                     [        SS5       H  n [        R                  " U SS9n[        R                  " U SS9n[        R                  R                  R                  X5      (       d   e[        R                  " U5      (       d   eSUR                  ;   d   eSUR                  ;  a  M   e   [        R                  " SSSS	9n[        R                  " S5        [        R                  " SS[        S	9n[        S5       H  n [        R                  R                  R                  X0   X@   5      (       d   e[        R                  " X0   5      (       d   eSX0   R                  ;   d   eSX0   R                  ;  a  M   e   g )
Nr   r:   r;   r<   r&   r>      +   number_of_treesr=   )
r?   r4   random_unlabeled_rooted_treerA   rB   r   rC   rD   randomr=   r   rE   rF   r   ss        r   !test_random_unlabeled_rooted_treere   {   s2   1b\,,QR8,,QR8xx}}))"1111zz"~~~!!!bhh&&&  	''BRHA
KKO
''BVLA2Yxx}}))!$5555zz!$###adjj(((	 r   c                  P   [         R                  " [        R                  5         [        R                  " SSS9n SSS5        [         R                  " [        R                  5         [        R
                  " SSS9n SSS5        g! , (       d  f       NQ= f! , (       d  f       g= frI   )rK   rL   r4   rM   random_unlabeled_treera   rO   s    r   !test_random_unlabeled_tree_n_zerorh      sg    	r22	3$$QT2 
4	r22	3++AD9 
4	3 
4	3	3	3rQ   c                     [         R                  " [        5         [        R                  " SSSS9  S S S 5        [        SS5       H  n [        SU S-   5       H  n[        R                  " XSS9n[        R                  " XSS9n[        R                  R                  R                  X#5      (       d   e[        R                  " U5       H@  n[        R                  " UR                  U5      5      (       d   e[        U5      U::  a  M@   e   SUR                  ;  d   eSUR                  ;   a  M   e   M     [        R                  " SSS	S
9n[        R                  " S	5        [        R                  " SS[        S
9n[        S5       H  n [        R                  R                  R                  XP   X`   5      (       d   e[        R                  " XP   5       H1  n[        R                  " XP   R                  U5      5      (       a  M1   e   SXP   R                  ;  d   eSXP   R                  ;   a  M   e   g ! , (       d  f       GN= f)Nr:   r   r;   )qr=   r   r&   r>   r]   r^   )number_of_forestsr=   )rK   rL   
ValueErrorr4   random_unlabeled_rooted_forestr?   rA   rB   r   rT   rC   rU   r$   rD   rb   r=   )r   rj   rE   rF   rV   r   rd   s          r   #test_random_unlabeled_rooted_forestrn      s   	z	"
))"; 
#1b\q!a%A221CB221CB88==--b5555,,R0zz"++a.11111v{"{ 1 )))bhh&&& !  	))"LA
KKO
))"PA2Yxx}}))!$5555((.A::admmA.//// /QTZZ'''!$**$$$  
#	"s   H>>
Ic                      [         R                  " SSS9n [        U 5      S:X  d   e[        U R                  S   5      S:X  d   eg)z,Tests generation of empty unlabeled forests.r   rJ   r<   r>   N)r4   rm   r$   rD   rY   s    r   #test_random_unlabeled_forest_n_zerorp      s@    
))!$7Aq6Q;;qwww A%%%r   c                     [        SS5       H  n [        R                  " U SS9n[        R                  " U SS9n[        R                  R                  R                  X5      (       d   e[        R                  " U5      (       d   eSUR                  ;  d   eSUR                  ;  a  M   e   [        R                  " SSSS9n[        R                  " S5        [        R                  " SS[        S9n[        S5       H  n [        R                  R                  R                  X0   X@   5      (       d   e[        R                  " X0   5      (       d   eSX0   R                  ;  d   eSX0   R                  ;  a  M   e   g )	Nr   r:   r;   r<   r&   r>   r^   r_   )
r?   r4   rg   rA   rB   r   rC   rD   rb   r=   rc   s        r   test_random_unlabeled_treerr      s2   1b\%%ab1%%ab1xx}}))"1111zz"~~~RXX%%%bhh&&&  	  RbAA
KKO
  RfEA2Yxx}}))!$5555zz!$QTZZ'''adjj(((	 r   )rb   rK   networkxr4   networkx.utilsr   r   markparametrizer5   r6   r*   r7   rG   rP   rW   r[   re   rh   rn   rp   rr    r   r   <module>rx      s       : )BNNB<T<T+UV<& W<&~ :@	TT
'8#&)$:%0&)r   