o
    ˷e                     @   sX   d dl mZ d dlZd dlZdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd ZdS )    )dedentNc                  C   s   t jddt jd} | jD ]}dttd|  | j| d< qtd }td }t j| dd	}t	| ||ks;J t j| d
d	}t	| ||ksLJ g }t j| |j
dd}|d u s]J ||dksfJ t j| t	d}|d u ssJ d S )N   rhcreate_usingnode_alabelu   
        ╙── 0
            ├─╼ 1
            │   ├─╼ 3
            │   └─╼ 4
            └─╼ 2
                ├─╼ 5
                └─╼ 6
        u   
        ╙── node_a
            ├─╼ node_b
            │   ├─╼ node_d
            │   └─╼ node_e
            └─╼ node_c
                ├─╼ node_f
                └─╼ node_g
        F)with_labelsT)writer   
r   )nxbalanced_treeDiGraphnodeschrordr   strip
forest_strprintappendsplit)graphnodenode_targetlabel_targetretlines r    Y/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/readwrite/tests/test_text.pytest_directed_tree_str   s2   
 

r"   c                   C   s0   t t  dksJ t t  dksJ d S )Nu   ╙)r   r   r   Graphr    r    r    r!   test_empty_graph=   s   r$   c                  C   s   t jddt jd} t jddt jd}t | |g}t |}t| td }||ks.J t jddt jd}t | ||g}t j|g dd}t| td }||ksXJ t j|g ddd}t| td	 }||ksrJ d S )
Nr   r   u  
        ╟── 0
        ╎   ├─╼ 1
        ╎   │   ├─╼ 3
        ╎   │   └─╼ 4
        ╎   └─╼ 2
        ╎       ├─╼ 5
        ╎       └─╼ 6
        ╙── 7
            ├─╼ 8
            │   ├─╼ 10
            │   └─╼ 11
            └─╼ 9
                ├─╼ 12
                └─╼ 13
        )r         sourcesux  
        ╟── 0
        ╎   ├─╼ 1
        ╎   │   ├─╼ 3
        ╎   │   └─╼ 4
        ╎   └─╼ 2
        ╎       ├─╼ 5
        ╎       └─╼ 6
        ╟── 14
        ╎   ├─╼ 15
        ╎   │   ├─╼ 17
        ╎   │   └─╼ 18
        ╎   └─╼ 16
        ╎       ├─╼ 19
        ╎       └─╼ 20
        ╙── 7
            ├─╼ 8
            │   ├─╼ 10
            │   └─╼ 11
            └─╼ 9
                ├─╼ 12
                └─╼ 13
        Tr(   
ascii_onlyu  
        +-- 0
        :   |-> 1
        :   |   |-> 3
        :   |   L-> 4
        :   L-> 2
        :       |-> 5
        :       L-> 6
        +-- 14
        :   |-> 15
        :   |   |-> 17
        :   |   L-> 18
        :   L-> 16
        :       |-> 19
        :       L-> 20
        +-- 7
            |-> 8
            |   |-> 10
            |   L-> 11
            L-> 9
                |-> 12
                L-> 13
        )r   r   r   disjoint_union_allr   r   r   r   )tree1tree2forestr   targettree3r    r    r!   test_directed_multi_tree_forestB   s:   
r1   c                     s   t jddt jd t jddt jd} t |  fdd| jD } t  | }t j|ddgd}t| td	 }||ks?J t j|ddgd	d
}t| td	 }||ksYJ d S )Nr   r   c                    s   i | ]	}||t   qS r    )len).0nr,   r    r!   
<dictcomp>   s    z5test_undirected_multi_tree_forest.<locals>.<dictcomp>r   r&   r'   u  
        ╟── 0
        ╎   ├── 1
        ╎   │   ├── 3
        ╎   │   └── 4
        ╎   └── 2
        ╎       ├── 5
        ╎       └── 6
        ╙── 7
            ├── 8
            │   ├── 10
            │   └── 11
            └── 9
                ├── 12
                └── 13
        Tr)   u5  
        +-- 0
        :   |-- 1
        :   |   |-- 3
        :   |   L-- 4
        :   L-- 2
        :       |-- 5
        :       L-- 6
        +-- 7
            |-- 8
            |   |-- 10
            |   L-- 11
            L-- 9
                |-- 12
                L-- 13
        )
r   r   r#   relabel_nodesr   unionr   r   r   r   )r-   r.   r   r/   r    r5   r!   !test_undirected_multi_tree_forest   s(   r9   c                  C   s   t jddt jd} t |  td }t j| dgd}t| ||ks&J td }t j| dgd}t| ||ks>J d S )Nr   r   u   
        ╙── 0
            ├── 1
            │   ├── 3
            │   └── 4
            └── 2
                ├── 5
                └── 6
        r   r'   u   
        ╙── 2
            ├── 0
            │   └── 1
            │       ├── 3
            │       └── 4
            ├── 5
            └── 6
        )r   r   r#   r   r   r   r   )r   node_target0r   node_target2r    r    r!   test_undirected_tree_str   s$   


r<   c                  C   s   t jdt jd} tt j t |  W d    n1 sw   Y  t jdt jd}tt j t | W d    d S 1 sBw   Y  d S )N   )r   )r   complete_graphr#   pytestraisesNetworkXNotImplementedr   r   )ugraphdgraphr    r    r!   test_forest_str_errors   s   "rD   c               	   C   s   t t jddt jdt jddt jdt jddt jdg} td }td }g }t j| |j| jd t	d
|}td t| g }t j| |jd	 t	d
|}td
 t| ||kscJ ||ksiJ dS )z
    When sources are directly specified, we wont be able to determine when we
    are in the last component, so there will always be a trailing, leftmost
    pipe.
    r      r   u   
        ╟── 0
        ╎   ├─╼ 1
        ╎   └─╼ 2
        ╟── 3
        ╎   └─╼ 4
        ╎       └─╼ 5
        ╟── 6
        ╎   ├─╼ 7
        ╎   └─╼ 8
        u   
        ╟── 0
        ╎   ├─╼ 1
        ╎   └─╼ 2
        ╟── 3
        ╎   └─╼ 4
        ╎       └─╼ 5
        ╙── 6
            ├─╼ 7
            └─╼ 8
        )r   r(   
   zgot1: r   zgot2: N)r   r+   r   r   r   r   r   r   r   r   joinr   )r   target1target2r   got1got2r    r    r!   test_overspecified_sources  s8   	rL   )textwrapr   r?   networkxr   r"   r$   r1   r9   r<   rD   rL   r    r    r    r!   <module>   s    5Z4)