�
��}i�
� �^ � d Z ddlZddlmc mZ ddlZddlZd� Z d� Z
d� Zd� Zd� Z
d� Zd � ZdS )
z5
Tests for Pattern validation and structure analysis
� Nc �X � t j dd�� � } | j }d}||k }|s�t j d|fd||f� � dt j � � v st j | � � rt j | � � ndt j |� � t j |� � d�z }dd |iz }t t j
|� � � � �d
x}x}}| j }d}||k }|s�t j d|fd||f� � dt j � � v st j | � � rt j | � � ndt j |� � t j |� � d�z }dd |iz }t t j
|� � � � �d
x}x}}t j � � }|j }d
}||u }|s�t j d|fd
||f� � dt j � � v st j |� � rt j |� � ndt j |� � t j |� � d�z }dd |iz }t t j
|� � � � �d
x}x}}|j }d
}||u }|s�t j d|fd||f� � dt j � � v st j |� � rt j |� � ndt j |� � t j |� � d�z }dd |iz }t t j
|� � � � �d
x}x}}d
S )zTest creating validation rules�
�d �� max_depth�max_elements)�==)z1%(py2)s
{%(py2)s = %(py0)s.max_depth
} == %(py5)s�rules��py0�py2�py5�assert %(py7)s�py7N)z4%(py2)s
{%(py2)s = %(py0)s.max_elements
} == %(py5)s)�is)z1%(py2)s
{%(py2)s = %(py0)s.max_depth
} is %(py5)s�rules2)z4%(py2)s
{%(py2)s = %(py0)s.max_elements
} is %(py5)s)�pattern_core�ValidationRulesr �
@pytest_ar�_call_reprcompare�@py_builtins�locals�_should_repr_global_name� _saferepr�AssertionError�_format_explanationr )r
�@py_assert1�@py_assert4�@py_assert3�@py_format6�@py_format8r s �a/Users/akollegger/Developer/gram-data/gram-rs/crates/pattern-core/tests/python/test_validation.py�test_validation_rules_creationr# s� � ��(�2�C�H�H�H�E��?� �b� �?�b� � � � � � � � � � �?�b� � � � � � � � � � � � �5� � � � � �5� � � � � � �?� � � � �b� � � � � � � � � � � � � � � � � � � � � � � � � � � ���$��$���$�$�$�$�$�$�$�$�$�$���$�$�$�$�$�$�$�$�$�$�$�$�5�$�$�$�$�$�5�$�$�$�$�$�$��$�$�$�$��$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$� �
)�
+�
+�F���#�t�#��t�#�#�#�#�#�#�#�#�#�#��t�#�#�#�#�#�#�#�#�#�#�#�#�6�#�#�#�#�#�6�#�#�#�#�#�#��#�#�#�#�t�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#���&�$�&��$�&�&�&�&�&�&�&�&�&�&��$�&�&�&�&�&�&�&�&�&�&�&�&�6�&�&�&�&�&�6�&�&�&�&�&�&��&�&�&�&�$�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&� c � � t j � dt j � d� � t j � d� � g� � } t j dd�� � }| � |� � dS )z)Test validation passes for valid patterns�root�child1�child2� r r N)r �Pattern�pattern�pointr �validate�r+ r
s r"