relateby-pattern 0.4.2

Core pattern data structures
Documentation
�

��}i���d�dZddlZddlmcmZddlZddlZd�Z	d�Z
d�Zd�Zd�Z
d�Zd	�Zd
�ZdS)z*
Tests for Subject combination strategies
�Nc�
�tjddhdtj�d��i���}tjddhdtj�d	��i���}tj�|��}tj�|��}|�|��}|j}|j}d}||k}|s�tj
d
|fd||f��dtj��vstj
|��rtj|��ndtj|��tj|��d
�z}	dd|	iz}
ttj|
�����dx}x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}dS)z<Test merge strategy (default) combines labels and properties�alice�Person�name�Alice��identity�labels�
properties�bob�Employee�role�Engineer��==�z0%(py2)s
{%(py2)s = %(py0)s.identity
} == %(py5)s�result_subject��py0�py2�py5�assert %(py7)s�py7N��in�zI%(py1)s in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.get_labels
}()
}��py1�py3rr�assert %(py9)s�py9�zM%(py1)s in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.get_properties
}()
}��pattern_core�Subject�Value�string�Pattern�point�combine�valuer	�
@pytest_ar�_call_reprcompare�@py_builtins�locals�_should_repr_global_name�	_saferepr�AssertionError�_format_explanation�
get_labels�get_properties)�subject1�subject2�p1�p2�mergedr�@py_assert1�@py_assert4�@py_assert3�@py_format6�@py_format8�@py_assert0�@py_assert6�@py_assert2�@py_format10s               �j/Users/akollegger/Developer/gram-data/gram-rs/crates/pattern-core/tests/python/test_subject_combination.py�'test_subject_combination_merge_strategyrEs����#���z��L�.�5�5�g�>�>�?����H�
�#���|��L�.�5�5�j�A�A�B����H�
�	�	#�	#�H�	-�	-�B�	�	�	#�	#�H�	-�	-�B��Z�Z��^�^�F��\�N��"�-�g�-�"�g�-�-�-�-�-�-�-�-�-�-�"�g�-�-�-�-�-�-�-�-�-�-�-�-�>�-�-�-�-�-�>�-�-�-�-�-�-�"�-�-�-�-�g�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-��2�~�0�2�0�0�2�2�2�8�2�2�2�2�2�2�2�2�2�2�2�8�2�2�2�2�2�2�8�2�2�2�2�2�2�2�2�2�2�2�~�2�2�2�2�2�~�2�2�2�2�2�2�0�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2��4��2�4�2�2�4�4�4�:�4�4�4�4�4�4�4�4�4�4�4�:�4�4�4�4�4�4�:�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4��4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�^�2�4�2�2�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�6�4�4�4�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�^�4�4�4�4�4�^�4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�^�2�4�2�2�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�6�4�4�4�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�^�4�4�4�4�4�^�4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�c�
�tjddhdtj�d��i���}tjddhdtj�d	��i���}tj�|��}tj�|��}|�|d
���}|j}|j}d}||k}|s�tj
d|fd
||f��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}	dd|	iz}
ttj|
�����dx}x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}dS)zTest first wins strategyrrrrrrr
rr�first��strategyrrrrrrNrrrr r!��not in�zM%(py1)s not in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.get_labels
}()
}r"�zQ%(py1)s not in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.get_properties
}()
}r#)r6r7r8r9rHrr;r<r=r>r?r@rArBrCs               rD�'test_subject_combination_first_strategyrO#s����#���z��L�.�5�5�g�>�>�?����H�
�#���|��L�.�5�5�j�A�A�B����H�
�	�	#�	#�H�	-�	-�B�	�	�	#�	#�H�	-�	-�B�
�J�J�r�G�J�,�,�E��[�N��"�-�g�-�"�g�-�-�-�-�-�-�-�-�-�-�"�g�-�-�-�-�-�-�-�-�-�-�-�-�>�-�-�-�-�-�>�-�-�-�-�-�-�"�-�-�-�-�g�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-��2�~�0�2�0�0�2�2�2�8�2�2�2�2�2�2�2�2�2�2�2�8�2�2�2�2�2�2�8�2�2�2�2�2�2�2�2�2�2�2�~�2�2�2�2�2�~�2�2�2�2�2�2�0�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2��8�^�6�8�6�6�8�8�8�:�8�8�8�8�8�8�8�8�8�8�8�:�8�8�8�8�8�8�:�8�8�8�8�8�8�8�8�8�8�8�^�8�8�8�8�8�^�8�8�8�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8��4�^�2�4�2�2�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�6�4�4�4�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�^�4�4�4�4�4�^�4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��8��6�8�6�6�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8�6�8�8�8�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8��8�8�8�8�8��8�8�8�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8rFc�
�tjddhdtj�d��i���}tjddhdtj�d	��i���}tj�|��}tj�|��}|�|d
���}|j}|j}d}||k}|s�tj
d|fd
||f��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}	dd|	iz}
ttj|
�����dx}x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}d}|j}|��}||v}
|
s�tj
d|
fd||f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}
x}}dS)zTest last wins strategyrrrrrrr
rr�lastrIrrrrrrNrKrMrr r!rrrNr"r#)r6r7r8r9rQrr;r<r=r>r?r@rArBrCs               rD�&test_subject_combination_last_strategyrR>s����#���z��L�.�5�5�g�>�>�?����H�
�#���|��L�.�5�5�j�A�A�B����H�
�	�	#�	#�H�	-�	-�B�	�	�	#�	#�H�	-�	-�B��:�:�b�6�:�*�*�D��Z�N��"�+�e�+�"�e�+�+�+�+�+�+�+�+�+�+�"�e�+�+�+�+�+�+�+�+�+�+�+�+�>�+�+�+�+�+�>�+�+�+�+�+�+�"�+�+�+�+�e�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+��6�>�4�6�4�4�6�6�6�8�6�6�6�6�6�6�6�6�6�6�6�8�6�6�6�6�6�6�8�6�6�6�6�6�6�6�6�6�6�6�>�6�6�6�6�6�>�6�6�6�6�6�6�4�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6��4��2�4�2�2�4�4�4�:�4�4�4�4�4�4�4�4�4�4�4�:�4�4�4�4�4�4�:�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4��4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��8��6�8�6�6�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8�6�8�8�8�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8��8�8�8�8�8��8�8�8�8�8�8�6�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8��4�^�2�4�2�2�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�6�4�4�4�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�^�4�4�4�4�4�^�4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4rFc	�P�tjddhdtj�d��i���}tjddhdtj�d	��i���}tj�|��}tj�|��}|�|d
���}|j}|j}d}||k}|s�tj
d
|fd||f��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}	dd|	iz}
ttj|
�����dx}x}}|j}|��}t%|��}d}
||
k}|�stj
d
|fd||
f��dtj��vstj
t$��rtjt$��nddtj��vstj
|��rtj|��ndtj|��tj|��tj|��tj|
��d�z}dd|iz}ttj|�����dx}x}x}x}}
|j}|��}t%|��}d}
||
k}|�stj
d
|fd||
f��dtj��vstj
t$��rtjt$��nddtj��vstj
|��rtj|��ndtj|��tj|��tj|��tj|
��d�z}dd|iz}ttj|�����dx}x}x}x}}
dS)z-Test empty strategy returns anonymous subjectrrrrrrr
rr�emptyrI�_rrrrrrNr)zh%(py7)s
{%(py7)s = %(py0)s(%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.get_labels
}()
})
} == %(py10)s�len)rrrrr�py10�assert %(py12)s�py12)zl%(py7)s
{%(py7)s = %(py0)s(%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.get_properties
}()
})
} == %(py10)s)r$r%r&r'r(r)r*r+r	r,r-r.r/r0r1r2r3r4rVr5)r6r7r8r9rTrr;r<r=r>r?rBrA�@py_assert9�@py_assert8�@py_format11�@py_format13s                 rD�'test_subject_combination_empty_strategyr^Ysk���#���z��L�.�5�5�g�>�>�?����H�
�#���|��L�.�5�5�j�A�A�B����H�
�	�	#�	#�H�	-�	-�B�	�	�	#�	#�H�	-�	-�B�
�J�J�r�G�J�,�,�E��[�N��"�)�c�)�"�c�)�)�)�)�)�)�)�)�)�)�"�c�)�)�)�)�)�)�)�)�)�)�)�)�>�)�)�)�)�)�>�)�)�)�)�)�)�"�)�)�)�)�c�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)��(�0�(�(�*�*�0�3�*�+�+�0�q�0�+�q�0�0�0�0�0�0�0�0�0�0�+�q�0�0�0�0�0�0�0�0�0�0�0�0�3�0�0�0�0�0�3�0�0�0�0�0�0�0�0�0�0�0�0�0�~�0�0�0�0�0�~�0�0�0�0�0�0�(�0�0�0�0�*�0�0�0�0�+�0�0�0�0�q�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��,�4�,�,�.�.�4�3�.�/�/�4�1�4�/�1�4�4�4�4�4�4�4�4�4�4�/�1�4�4�4�4�4�4�4�4�4�4�4�4�3�4�4�4�4�4�3�4�4�4�4�4�4�4�4�4�4�4�4�4�~�4�4�4�4�4�~�4�4�4�4�4�4�,�4�4�4�4�.�4�4�4�4�/�4�4�4�4�1�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4rFc�
�tjddhdtj�d��i���}tjddhdtj�d	��i���}tj�|��}tj�|��}d
�}|�||���}|j}|j}d}||k}	|	s�tj
d|	fd
||f��dtj��vstj
|��rtj|��ndtj|��tj|��d�z}
dd|
iz}ttj|�����dx}x}	}d}|j}|��}
||
v}|s�tj
d|fd||
f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|
��d�z}dd|iz}ttj|�����dx}x}x}}
d}|j}|��}
||
v}|s�tj
d|fd||
f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|
��d�z}dd|iz}ttj|�����dx}x}x}}
d}|j}|��}
||
v}|s�tj
d|fd||
f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|
��d�z}dd|iz}ttj|�����dx}x}x}}
d}|j}|��}
||
v}|s�tj
d|fd||
f��tj|��dtj��vstj
|��rtj|��ndtj|��tj|
��d�z}dd|iz}ttj|�����dx}x}x}}
dS)z Test custom combination functionrrrrrrr
rrc���tj|j|���|���zi|����|�������S)Nr)r$r%r	r4r5)�s1�s2s  rD�custom_mergez>test_subject_combination_custom_function.<locals>.custom_merge�s^���#��[��=�=�?�?�R�]�]�_�_�4�E�"�+�+�-�-�E��1B�1B�1D�1D�E�
�
�
�	
rF)�combine_funcrrrrrrNrrrr r!r"r#)r6r7r8r9rc�customrr;r<r=r>r?r@rArBrCs                rD�(test_subject_combination_custom_functionrfrs����#���z��L�.�5�5�g�>�>�?����H�
�#���|��L�.�5�5�j�A�A�B����H�
�	�	#�	#�H�	-�	-�B�	�	�	#�	#�H�	-�	-�B�
�
�
��Z�Z���Z�
6�
6�F��\�N��"�+�e�+�"�e�+�+�+�+�+�+�+�+�+�+�"�e�+�+�+�+�+�+�+�+�+�+�+�+�>�+�+�+�+�+�>�+�+�+�+�+�+�"�+�+�+�+�e�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+��2�~�0�2�0�0�2�2�2�8�2�2�2�2�2�2�2�2�2�2�2�8�2�2�2�2�2�2�8�2�2�2�2�2�2�2�2�2�2�2�~�2�2�2�2�2�~�2�2�2�2�2�2�0�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2��4��2�4�2�2�4�4�4�:�4�4�4�4�4�4�4�4�4�4�4�:�4�4�4�4�4�4�:�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4��4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�^�2�4�2�2�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�6�4�4�4�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�^�4�4�4�4�4�^�4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�^�2�4�2�2�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�6�4�4�4�4�4�4�6�4�4�4�4�4�4�4�4�4�4�4�^�4�4�4�4�4�^�4�4�4�4�4�4�2�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4rFc���tjdt��i���}tjdt��i���}tjdt��i���}tjdt��i���}tj�|tj�|��g��}tj�|tj�|��g��}|�|��}|j}|��}d}	||	k}
|
s�tj	d|
fd||	f��d	tj��vstj|��rtj
|��nd	tj
|��tj
|��tj
|	��d
�z}dd|iz}ttj|�����d
x}x}x}
}	|j}
|
d}|j}|j}d}||k}	|	s�tj	d|	fd||f��tj
|��tj
|��tj
|��tj
|��d�z}dd|iz}ttj|�����d
x}x}x}x}	}|
d}|j}|j}d}||k}	|	s�tj	d|	fd||f��tj
|��tj
|��tj
|��tj
|��d�z}dd|iz}ttj|�����d
x}x}x}x}	}d
S)z+Test that combination concatenates elementsrarrb�s3�s4�r)zE%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.length
}()
} == %(py7)sr:)rr�py4rr r!Nr)zK%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.value
}.identity
} == %(py8)s)rrr�py8zassert %(py10)srW�)r$r%�setr(�patternr)r*�lengthr,r-r.r/r0r1r2r3�elementsr+r	)r6r7�subject3�subject4r8r9r:r;r=rA�@py_assert5r?rCrqr@rBr<�@py_assert7�@py_format9r\s                    rD�&test_subject_combination_with_elementsrw�s����#�T�#�%�%�B�O�O�O�H��#�T�#�%�%�B�O�O�O�H��#�T�#�%�%�B�O�O�O�H��#�T�#�%�%�B�O�O�O�H�	�	�	%�	%��	�	�	#�	#�H�	-�	-�.�
�
�B�
�	�	%�	%��	�	�	#�	#�H�	-�	-�.�
�
�B�
�Z�Z��^�^�F��=��=�=�?�?��a��?�a�����������?�a�������������6������6�������=�����?�����a��������������������������������H��A�;�-�;��-��%�-��-�%��-�-�-�-�-�-�-�-�-�-�%��-�-�-�-�-�;�-�-�-�-��-�-�-�-�%�-�-�-�-��-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-��A�;�-�;��-��%�-��-�%��-�-�-�-�-�-�-�-�-�-�%��-�-�-�-�-�;�-�-�-�-��-�-�-�-�%�-�-�-�-��-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-rFc�`�tjddhi���}tjddhi���}tjddhi���}tj�|��}tj�|��}tj�|��}|�|���|��}|�|�|����}|j}|j}	|j}
|
j}|	|k}|�stjd|fd	|	|f��d
tj
��vstj|��rtj|��nd
tj|��tj|	��dtj
��vstj|��rtj|��ndtj|
��tj|��d�z}
d
d|
iz}ttj|�����dx}x}	x}x}
}|j}|j}	|	��}|j}|j}|��}||k}
|
�s4tjd|
fd||f��d
tj
��vstj|��rtj|��nd
tj|��tj|	��tj|��dtj
��vstj|��rtj|��ndtj|��tj|��tj|��d�z}dd|iz}ttj|�����dx}x}	x}x}
x}x}}dS)z7Test that combination is associative for merge strategy�a�L1r�b�L2�c�L3r)z�%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.value
}.identity
} == %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.value
}.identity
}�left�right)rrrk�py6rlrWrXrYN)z�%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.value
}.get_labels
}()
} == %(py14)s
{%(py14)s = %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s.value
}.get_labels
}()
})rrrkr�rlrWrY�py14zassert %(py16)s�py16)r$r%r(r)r*r+r	r,r-r.r/r0r1r2r3r4)rarbrhr8r9�p3rr�r;r=rurZrtr\r]�@py_assert11�@py_assert13�@py_format15�@py_format17s                   rD�&test_subject_combination_associativityr��s���	�	�s�D�6�b�	I�	I�	I�B�	�	�s�D�6�b�	I�	I�	I�B�	�	�s�D�6�b�	I�	I�	I�B�	�	�	#�	#�B�	'�	'�B�	�	�	#�	#�B�	'�	'�B�	�	�	#�	#�B�	'�	'�B��:�:�b�>�>�!�!�"�%�%�D�
�J�J�r�z�z�"�~�~�&�&�E��:�6�:��6�%�+�6�+�"6�6��"6�6�6�6�6�6�6�6�6�6�6��"6�6�6�6�6�6�6�6�6�6�6�6�6�4�6�6�6�6�6�4�6�6�6�6�6�6�:�6�6�6�6��6�6�6�6�6�6�6�6�6�6�6�%�6�6�6�6�6�%�6�6�6�6�6�6�+�6�6�6�6�"6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6��:�>�:� �>� � �"�"�>�e�k�>�k�&<�>�&<�&<�&>�&>�>�"�&>�>�>�>�>�>�>�>�>�>�>�"�&>�>�>�>�>�>�>�>�>�>�>�>�>�4�>�>�>�>�>�4�>�>�>�>�>�>�:�>�>�>�>� �>�>�>�>�"�>�>�>�>�>�>�>�>�>�>�>�e�>�>�>�>�>�e�>�>�>�>�>�>�k�>�>�>�>�&<�>�>�>�>�&>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>rFc��tjdt��i���}tjdt��i���}tj�|��}tj�|��}tjtd���5|�|d���ddd��dS#1swxYwYdS)	z'Test that invalid strategy raises errorrarrbzUnknown combination strategy)�match�invalidrIN)	r$r%rnr(r)�pytest�raises�RuntimeErrorr*)r6r7r8r9s    rD�)test_subject_combination_invalid_strategyr��s����#�T�#�%�%�B�O�O�O�H��#�T�#�%�%�B�O�O�O�H�	�	�	#�	#�H�	-�	-�B�	�	�	#�	#�H�	-�	-�B�	��|�+I�	J�	J�	J�+�+�
�
�
�2�	�
�*�*�*�+�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�+�+s� C�C	�C	)�__doc__�builtinsr.�_pytest.assertion.rewrite�	assertion�rewriter,r�r$rErOrRr^rfrwr�r��rFrD�<module>r�s������������������
�
�
�
�����5�5�5�69�9�9�65�5�5�65�5�5�25�5�5�D.�.�.�2?�?�?�*	+�	+�	+�	+�	+rF