
    fi^                     $   d dl Z d dlZd dlZd dlmZmZ ej                            dej	        ej
        f          d             Zej                            dg dg dg dg d	f          d
             Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N)arbitrary_elementgraphs_equalprefix_tree_fnc                 .   g d} | |          d\  }}fd}t          |         |          \  }}}t          |                   dk    sJ t          |                   }t          |                   dk    sJ t          |                   dk    sJ t          |         |          \  }}	t          |                   dk    sJ t          |	                   dk    sJ t          |	         |          \  }}
t          |                   dk    sJ t          |
                   dk    sJ t          |
                   }t          |                   dk    sJ t          |         |          \  }}t          |                   dk    sJ t          |                   }t          |                   dk    sJ t          |         |          \  }}}t          |                   dk    sJ t          |                   dk    sJ t          |                   dk    sJ t          |                   }t          |                   dk    sJ t          |                   }t          |                   dk    sJ t          |                   }t          |                   dk    sJ  ||          J  ||          dk    sJ  ||          d	k    sJ  ||          d
k    sJ  ||	          dk    sJ  ||
          dk    sJ  ||          dk    sJ  ||          dk    sJ  ||          dk    sJ  ||          dk    sJ  ||          dk    sJ  ||          dk    sJ d S )Natoteatedteniininn)r   c                 *    j         |          d         S )Nsource)nodes)vTs    |/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/generators/tests/test_trees.pysource_labelz,test_basic_prefix_tree.<locals>.source_label   s    wqz(##    )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,///GAq!qt99>>>>
AaD
!
!Cqv;;!qt99>>>>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333MCc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                 r    t          t          j        |           t          j        |                     sJ dS )zBEnsure results are consistent between prefix_tree implementations.N)r   nxprefix_treeprefix_tree_recursive)r$   s    r   test_implementations_consistentr6   I   s5     w//1I'1R1RSSSSSSSr   c                  *   t          dd          D ]} t          j        | d          }t          j        | d          }t          j        j                            ||          sJ t          j        |          sJ d|j        v sJ d|j        vsJ d S Nr   
   *   seedr%   roots)ranger3   random_labeled_rooted_treeutilsmiscr   is_treegraph)r   t1t2s      r   test_random_labeled_rooted_treerF   W   s    1b\\ ' '*12666*12666x}))"b11111z"~~!!!!bh&&&&&' 'r   c                  8   t          j        t          j                  5  t          j        dd          } ddd           n# 1 swxY w Y   t          j        t          j                  5  t          j        dd          } ddd           dS # 1 swxY w Y   dS zETests if n = 0 then the NetworkXPointlessConcept exception is raised.r     r;   N)pytestraisesr3   NetworkXPointlessConceptrandom_labeled_treer?   r   s    r   test_random_labeled_tree_n_zerorO   a   s   	r2	3	3 1 1"140001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	r2	3	3 8 8)!$7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8#   AA	A+BBBc                  ~   t          dd          D ]} t          j        | d          }t          j        | d          }t          j        j                            ||          sJ t          j        |          D ]+}t          j        |                    |                    sJ ,d|j	        vsJ d|j	        v sJ d S r8   )
r>   r3   random_labeled_rooted_forestr@   rA   r   connected_componentsrB   subgraphrC   )r   rD   rE   cs       r   !test_random_labeled_rooted_forestrV   i   s    1b\\ # #,QR888,QR888x}))"b11111(,, 	. 	.A:bkk!nn------RX%%%%"("""""# #r   c                      t          j        dd          } t          |           dk    sJ t          | j        d                   dk    sJ dS )z*Tests generation of empty labeled forests.r   rI   r;   r=   N)r3   rR   r#   rC   Fs    r   (test_random_labeled_rooted_forest_n_zerorZ   t   sP    
'555Aq66Q;;;;qww  A%%%%%%r   c                     t          dd          D ]} t          j        | d          }t          j        | d          }t          j        j                            ||          sJ t          j        |          sJ d|j        v sJ d|j        vsJ t          j        ddd	          }t          j	        d           t          j        ddt          	          }t          d          D ]s} t          j        j                            ||          ||                    sJ t          j        ||                    sJ d||          j        v sJ d||          j        vsJ td S )
Nr   r9   r:   r;   r%   r=      +   number_of_treesr<   )
r>   r3   random_unlabeled_rooted_treer@   rA   r   rB   rC   randomr<   r   rD   rE   r   ss        r   !test_random_unlabeled_rooted_treerd   {   sm   1b\\ ' ',QR888,QR888x}))"b11111z"~~!!!!bh&&&&&
'BRHHHA
KOOO
'BVLLLA2YY ) )x}))!A$!55555z!A$1####adj(((((	) )r   c                  8   t          j        t          j                  5  t          j        dd          } ddd           n# 1 swxY w Y   t          j        t          j                  5  t          j        dd          } ddd           dS # 1 swxY w Y   dS rH   )rJ   rK   r3   rL   random_unlabeled_treer`   rN   s    r   !test_random_unlabeled_tree_n_zerorg      s   	r2	3	3 3 3$QT2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	r2	3	3 : :+AD999: : : : : : : : : : : : : : : : : :rP   c                  \   t          j        t                    5  t          j        ddd           d d d            n# 1 swxY w Y   t          dd          D ]} t          d| dz             D ]}t          j        | |d          }t          j        | |d          }t          j        j                            ||          sJ t          j	        |          D ]@}t          j
        |                    |                    sJ t          |          |k    sJ Ad|j        vsJ d|j        v sJ Ìt          j        ddd	
          }t          j        d	           t          j        ddt          
          }t          d          D ]} t          j        j                            ||          ||                    sJ t          j	        ||                    D ]1}t          j
        ||                              |                    sJ 2d||          j        vsJ d||          j        v sJ d S )Nr9   r   r:   )qr<   r   r%   r=   r\   r]   )number_of_forestsr<   )rJ   rK   
ValueErrorr3   random_unlabeled_rooted_forestr>   r@   rA   r   rS   rB   rT   r#   rC   ra   r<   )r   ri   rD   rE   rU   r   rc   s          r   #test_random_unlabeled_rooted_forestrm      sx   	z	"	" < <
)";;;;< < < < < < < < < < < < < < <1b\\ 	' 	'q!a% 	' 	'A21CCCB21CCCB8=--b"55555,R00 # #z"++a..111111vv{{{{{))))bh&&&&&	' 	)"LLLA
KOOO
)"PPPA2YY % %x}))!A$!55555(1.. 	0 	0A:admmA..//////QqTZ''''!A$*$$$$$% %s   >AAc                      t          j        dd          } t          |           dk    sJ t          | j        d                   dk    sJ dS )z,Tests generation of empty unlabeled forests.r   rI   r;   r=   N)r3   rl   r#   rC   rX   s    r   #test_random_unlabeled_forest_n_zeroro      sP    
)!$777Aq66Q;;;;qww  A%%%%%%r   c                     t          dd          D ]} t          j        | d          }t          j        | d          }t          j        j                            ||          sJ t          j        |          sJ d|j        vsJ d|j        vsJ t          j        ddd          }t          j	        d           t          j        ddt                    }t          d          D ]s} t          j        j                            ||          ||                    sJ t          j        ||                    sJ d||          j        vsJ d||          j        vsJ td S )	Nr   r9   r:   r;   r%   r=   r]   r^   )
r>   r3   rf   r@   rA   r   rB   rC   ra   r<   rb   s        r   test_random_unlabeled_treerq      sm   1b\\ ' '%ab111%ab111x}))"b11111z"~~RX%%%%bh&&&&&
 RbAAAA
KOOO
 RfEEEA2YY ) )x}))!A$!55555z!A$QqTZ''''adj(((((	) )r   )ra   rJ   networkxr3   networkx.utilsr   r   markparametrizer4   r5   r)   r6   rF   rO   rV   rZ   rd   rg   rm   ro   rq    r   r   <module>rw      sf         : : : : : : : : )BNB<T+UVV<& <& WV<&~ :::@@@	 T T T
' ' '8 8 8# # #& & &) ) )$: : :% % %0& & &) ) ) ) )r   