�
��iu � �� � d Z ddlZddlmc mZ ddlZd� Zd� Z d� Z
d� Zd� Zd� Z
d � Zd
� Zedk( rA e� e � e
� e� e� e
� e� e� ed� yy)
zu
Tests for Pattern.para() - paramorphism operation
Validates structure-aware fold with access to pattern structure.
� Nc �� � t j j d� } | j d� � }d}||k( }|s�t j
d|fd||f� dt
j � v st j |� rt j |� ndt j |� d�z }t j d|� �� dz d |iz }t t j |� � �d
x}}y
)zATest para on atomic pattern - receives empty element_results list� c �2 � | j t |� z S �N��value�sum��p�rss �e/Users/akollegger/Developer/relateby/pattern-rs/crates/pattern-core/tests/python/test_paramorphism.py�<lambda>z*test_para_atomic_pattern.<locals>.<lambda> s � �q�w�w��R��'8� ��==�z%(py0)s == %(py3)s�result��py0�py3zExpected 5, got �
>assert %(py5)s�py5N)
�pattern_core�Pattern�point�para�
@pytest_ar�_call_reprcompare�@py_builtins�locals�_should_repr_global_name� _saferepr�_format_assertmsg�AssertionError�_format_explanation)�atomicr �@py_assert2�@py_assert1�@py_format4�@py_format6s r
�test_para_atomic_patternr+
s� � �
�
!�
!�
'�
'��
*�F� �[�[�8�
9�F��3�6�Q�;�3�3�3�6�Q�3�3�3�3�3�3�6�3�3�3�6�3�3�3�Q�3�3�3�*�6�(�3�3�3�3�3�3�3r c �^ � t j j dt j j d� t j j d� g� } | j d� � }d}||k( }|s�t j d|fd||f� dt j � v st j |� rt j |� ndt j |� d �z }t j d
|� �� dz d|iz }t t j |� � �d
x}}y
)z0Test para on simple pattern with atomic elements� � � c �2 � | j t |� z S r r r
s r
r z*test_para_simple_pattern.<locals>.<lambda> � � ����#�b�'�(9r � r r r r zExpected 6, got r r N�r r �patternr r r r r r r! r"