o
    3ήc                     @   s   d dl Z d dlZd dlmZmZ e jdejej	fdd Z
e jdg dg dg d	g d
fdd Zdd Zdd Zdd ZdS )    N)arbitrary_elementgraphs_equalprefix_tree_fnc                    s  g d}| | d\}} fdd}t  | |d\}}}t | dks'J t | }t | dks7J t | dksAJ t  | |d\}}	t | dksUJ t |	 dks_J t  |	 |d\}}
t | dkssJ t |
 dks}J t |
 }t | dksJ t  | |d\}}t | dksJ t | }t | dksJ t  | |d\}}}t | dksJ t | dksJ t | dksJ t | }t | dksJ t | }t | dksJ t | }t | dksJ ||d u sJ ||d	ksJ ||d
ks&J ||dks/J ||	dks8J ||
dksAJ ||dksJJ ||dksSJ ||d	ks\J ||dkseJ ||dksnJ ||dkswJ d S )Natoteatedteniininn)r   c                    s    j |  d S )Nsource)nodes)vT K/tmp/pip-target-vg8gfxp4/lib/python/networkx/generators/tests/test_trees.pysource_label   s   z,test_basic_prefix_tree.<locals>.source_label)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   r   r   test_basic_prefix_tree   sV   r'   r"   r   )ababsad)r(   r)   r*    )distantdisparagingr,   diamondrubyc                 C   s   t t| t| sJ dS )zBEnsure results are consistent between prefix_tree implementations.N)r   nxprefix_treeprefix_tree_recursive)r"   r   r   r   test_implementations_consistentG   s   r3   c                  C   s    t jddd} t | sJ dS )z+Tests that a random tree is in fact a tree.
     seedN)r0   random_treeis_treer   r   r   r   test_random_treeU   s   r:   c                  C   s@   t tj tjddd} W d   dS 1 sw   Y  dS )zETests if n = 0 then the NetworkXPointlessConcept exception is raised.r   r5   r6   N)pytestraisesr0   NetworkXPointlessConceptr8   r   r   r   r   test_random_tree_n_zero[   s   "r>   c                  C   s*   t  } t jdd| d}t |sJ dS )z8Tests that creating a ramdom tree with a generator worksr4   r5   )r7   create_usingN)r0   Graphr8   r9   )Gr   r   r   r    test_random_tree_using_generatora   s   rB   )r;   networkxr0   networkx.utilsr   r   markparametrizer1   r2   r'   r3   r:   r>   rB   r   r   r   r   <module>   s"    
?
	