File: //usr/local/lib/python3.10/test/__pycache__/test_graphlib.cpython-310.opt-1.pyc
o
�i_! � @ sZ d dl mZ d dlZd dlZd dlZd dlmZ G dd� dej�Ze dkr+e�
� dS dS )� )�chainN)�assert_python_okc @ s� e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#S )$�TestTopologicalSortc sp dd� }t �|�}| �t||��t|�� t �|�}t|�� �� |D ]}� fdd�|D �}| �t|�|� q"d S )Nc s sL � | � � | �� r$| �� }|D ]}| �|� qtt|��V | �� s d S d S �N)�prepare� is_active� get_ready�done�tuple�sorted)�ts�nodes�node� r �//usr/local/lib/python3.10/test/test_graphlib.py�static_order_with_groups
s ��zATestTopologicalSort._test_graph.<locals>.static_order_with_groupsc s h | ]}t � ��qS r )�next)�.0�element��itr r � <setcomp> s z2TestTopologicalSort._test_graph.<locals>.<setcomp>)�graphlib�TopologicalSorter�assertEqual�list�iter�static_order�set)�self�graphZexpectedr r �groupZtsgroupr r r �_test_graph s
�zTestTopologicalSort._test_graphc C s� t �� }|�� D ]
\}}|j|g|�R � qz|�� W � t jyI } z |j\}}| �d�t t
|��d�t t
|d ��� W Y d }~d S d }~ww )N� � )r r �items�addr Z
CycleError�argsZassertIn�join�map�str) r r �cycler r � dependson�e�msg�seqr r r �
_assert_cycle s
�
6��z!TestTopologicalSort._assert_cyclec
C s( | � dhddhddhddhddhd�g d�� | � di id g� | � d
d� td�D �d
d� tddd�D �� | � dhdhdhdhdhdhdhdhd�g d�� | � ddgdgddgdgdgdgdgdgdgg d�
g d�� | � ddgg dgg d�g d�� | � ddgg dgg dgdgg d�g d�� d S ) N� � � � � )r$ � �
r1 r2 ))r3 r5 r4 )r2 r1 )r$ r6 r7 � �r8 c S s i | ]}||d h�qS r9 r �r �xr r r �
<dictcomp>3 s z9TestTopologicalSort.test_simple_cases.<locals>.<dictcomp>r7 c S s g | ]}|f�qS r r r: r r r �
<listcomp>3 s z9TestTopologicalSort.test_simple_cases.<locals>.<listcomp>���� � �
� � )r$ r3 r? r5 r1 r@ rA rB ))r8 rC )r5 rB )r? rA )r3 r@ )r$ r1 r$ � r6 )
r r8 r$ r3 r? r5 rD r4 r2 r6 ))r6 )r? )r3 r2 )r8 r5 r4 )rD �r$ �r )r r8 r$ r3 ))r8 r3 rE rF )r r8 r$ r3 r? r5 rD ))r8 r3 rD )r$ r5 )r r? )r"