HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //proc/self/root/opt/alt/python312/lib64/python3.12/test/__pycache__/test_call.cpython-312.pyc
�

~h�e������ddlZddlmZmZmZ	ddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
Gd�de�ZGd�dej �ZeGd�dej ��ZGd	�d
ej �ZGd�de�ZGd
�de�ZGd�de�ZGd�de�Zd�Zd�ZGd�d�Ze�Ze�ZGd�dej �ZdZdZ d�Z!d�Z"dZ#Gd�dej �Z$Gd �d!�Z%eGd"�d#ej ��Z&eGd$�d%ej ��Z'Gd&�d'ej �Z(e)d(k(rejT�yy#e$rdZY��`wxYw))�N)�cpython_only�requires_limited_api�
skip_on_s390xc��eZdZd�Zd�Zy)�BadStrc��y)NT�)�self�others  �5/opt/alt/python312/lib64/python3.12/test/test_call.py�__eq__z
BadStr.__eq__s���c�2�tj|�dzS)N�)�str�__hash__�r
s rrzBadStr.__hash__s���|�|�D�!�A�%�%rN)�__name__�
__module__�__qualname__r
rr	rrrrs���&rrc��eZdZd�Zd�Zy)�
FunctionCallsc��tjddg�}|jd�t|j	��}d�}|di|��}|j|t�|jt|j	��|�y)N)�a�)�b�rc��|S�Nr	)�kws r�fnz+FunctionCalls.test_kwargs_order.<locals>.fn s���Irr	)�collections�OrderedDict�move_to_end�list�items�assertIsInstance�dict�assertEqual)r
�od�expectedr!�ress     r�test_kwargs_orderzFunctionCalls.test_kwargs_ordersp��
�
$�
$�h��%9�
:��
���s������
�#��	��h�2�h�����c�4�(�����c�i�i�k�*�H�5rc�Z�d�}td�D]}	|d��
y#t$rY�wxYw)Nc��yrr	r	rr�fzBFunctionCalls.test_frames_are_popped_after_failed_calls.<locals>.f*s��r��)�range�	TypeError)r
r0�_s   r�)test_frames_are_popped_after_failed_callsz7FunctionCalls.test_frames_are_popped_after_failed_calls's:��	��t��	�A�
��$��	���
��
�s��	*�*N)rrrr-r5r	rrrrs��6�	rrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+y*)+�CFunctionCallsErrorMessagesc�J�d}|jt|ij�y)Nz7__contains__\(\) takes exactly one argument \(0 given\)��assertRaisesRegexr3�__contains__�r
�msgs  r�
test_varargs0z)CFunctionCallsErrorMessages.test_varargs07s��H�����y�#�r���?rc�N�d}|jt|ijdd�y)Nz7__contains__\(\) takes exactly one argument \(2 given\)rrr9r<s  r�
test_varargs2z)CFunctionCallsErrorMessages.test_varargs2;s!��H�����y�#�r����1�Erc�X�d}|jt|tjddd�y)Nz@^from_bytes\(\) takes at most 2 positional arguments \(3 given\)�a�littleF)r:r3�int�
from_bytesr<s  r�
test_varargs3z)CFunctionCallsErrorMessages.test_varargs3?s#��Q�����y�#�s�~�~�t�X�u�Urc��d}|jt|ij�d}|jt|ij�y)Nz'get expected at least 1 argument, got 0zexpected 1 argument, got 0)r:r3�get�__delattr__r<s  r�test_varargs1minz,CFunctionCallsErrorMessages.test_varargs1minCs8��8�����y�#�r�v�v�6�+�����y�#�r�~�~�>rc�>�d}|jt|t�y)Nz,getattr expected at least 2 arguments, got 0�r:r3�getattrr<s  r�test_varargs2minz,CFunctionCallsErrorMessages.test_varargs2minJs��=�����y�#�w�7rc�B�d}|jt|tdd�y)Nz(input expected at most 1 argument, got 2rr)r:r3�inputr<s  r�test_varargs1maxz,CFunctionCallsErrorMessages.test_varargs1maxNs��9�����y�#�u�a��;rc�P�d}|jt|ijddd�y)Nz'get expected at most 2 arguments, got 3rrr)r:r3rHr<s  r�test_varargs2maxz,CFunctionCallsErrorMessages.test_varargs2maxRs#��8�����y�#�r�v�v�q�!�Q�?rc�N�d}|jt|ijd��y)N�+__contains__\(\) takes no keyword argumentsr��xr9r<s  r�test_varargs1_kwz,CFunctionCallsErrorMessages.test_varargs1_kwVs"��<�����y�#�r���!��Drc�P�d}|jt|ijdd��y)NrUr�rW�yr9r<s  r�test_varargs2_kwz,CFunctionCallsErrorMessages.test_varargs2_kwZs$��<�����y�#�r���!�q��Irc�B�d}|jt|td��y)Nz#bool\(\) takes no keyword argumentsrrV)r:r3�boolr<s  r�test_varargs3_kwz,CFunctionCallsErrorMessages.test_varargs3_kw^s��4�����y�#�t�q��9rc�N�d}|jt|gjd��y)Nz-^list[.]index\(\) takes no keyword arguments$rrV)r:r3�indexr<s  r�test_varargs4_kwz,CFunctionCallsErrorMessages.test_varargs4_kwbs"��>�����y�#�r�x�x�1��=rc�B�d}|jt|td��y)Nz(^hasattr\(\) takes no keyword arguments$rrV)r:r3�hasattrr<s  r�test_varargs5_kwz,CFunctionCallsErrorMessages.test_varargs5_kwf���9�����y�#�w�!��<rc�B�d}|jt|td��y)Nz(^getattr\(\) takes no keyword arguments$rrVrLr<s  r�test_varargs6_kwz,CFunctionCallsErrorMessages.test_varargs6_kwjrfrc�B�d}|jt|td��y)Nz%^next\(\) takes no keyword arguments$rrV)r:r3�nextr<s  r�test_varargs7_kwz,CFunctionCallsErrorMessages.test_varargs7_kwns��6�����y�#�t�q��9rc�V�d}|jt|tjd��y)Nz/^_struct[.]pack\(\) takes no keyword arguments$rrV)r:r3�struct�packr<s  r�test_varargs8_kwz,CFunctionCallsErrorMessages.test_varargs8_kwrs"��@�����y�#�v�{�{�a��@rc�V�d}|jt|tjd��y)Nz4^_struct[.]pack_into\(\) takes no keyword arguments$rrV)r:r3rm�	pack_intor<s  r�test_varargs9_kwz,CFunctionCallsErrorMessages.test_varargs9_kwvs$��E�����y�#�v�/?�/?�1��Erc�r�d}|jt|tj�jd��y)Nz.^deque[.]index\(\) takes no keyword arguments$rrV)r:r3r"�dequerar<s  r�test_varargs10_kwz-CFunctionCallsErrorMessages.test_varargs10_kwzs-��?�����y�#�{�/@�/@�/B�/H�/H�A��Nrc��d}|jt|tjjtjd�d��y)Nz.^Struct[.]pack\(\) takes no keyword arguments$�rrV)r:r3rm�Structrnr<s  r�test_varargs11_kwz-CFunctionCallsErrorMessages.test_varargs11_kw~s5��?�����y�#�v�}�}�/A�/A�6�=�=�QS�CT�XY��Zrc�J�d}|jt|tt��y)Nz-^staticmethod\(\) takes no keyword arguments$��func)r:r3�staticmethod�idr<s  r�test_varargs12_kwz-CFunctionCallsErrorMessages.test_varargs12_kw�s��>�����y�#�|�"��Erc�J�d}|jt|tt��y)Nz,^classmethod\(\) takes no keyword arguments$r{)r:r3�classmethodr~r<s  r�test_varargs13_kwz-CFunctionCallsErrorMessages.test_varargs13_kw�s��=�����y�#�{���Drc�Z�d}|jt|tjddd��y)Nz:^product\(\) takes at most 1 keyword argument \(2 given\)$rrr)�repeat�foo)r:r3�	itertools�productr<s  r�test_varargs14_kwz-CFunctionCallsErrorMessages.test_varargs14_kw�s.��K�����y�#�(�0�0�!�A�1�	�	Frc
�J�d}|jt|tddddd��y)Nz?^ImportError\(\) takes at most 3 keyword arguments \(4 given\)$rrrr)�name�path�	name_fromr�)r:r3�ImportErrorr<s  r�test_varargs15_kwz-CFunctionCallsErrorMessages.test_varargs15_kw�s-��P�����y�#�*�A�A�A��PQ�	�	Src	�H�d}|jt|tdddd��y)Nz7^min\(\) takes at most 2 keyword arguments \(3 given\)$rrrr)�default�keyr�)r:r3�minr<s  r�test_varargs16_kwz-CFunctionCallsErrorMessages.test_varargs16_kw�s*��H�����y�#�"�A�q�a�Q�	�	@rc�L�d}|jt|tdddddd��	y)	Nz3'foo' is an invalid keyword argument for print\(\)$rrrr��)�sep�end�file�flushr�)r:r3�printr<s  r�test_varargs17_kwz-CFunctionCallsErrorMessages.test_varargs17_kw�s.��D�����y�#�$�a�Q�A�A�Q�A�	�	Orc��d}|jt|�5tditd�di��ddd�y#1swYyxYw)Nz'invalid keyword argument for print\(\)$r��,)rr)r:r3r�rr<s  r�test_varargs18_kwz-CFunctionCallsErrorMessages.test_varargs18_kw�s@��8��
�
#�
#�I�s�
3�	0��/�6�%�=�#�.�/�	0�	0�	0��	�9�Ac��d}|jt|�5tditd�di��ddd�y#1swYyxYw)Nz'invalid keyword argument for round\(\)$r�r)g�?)r:r3�roundrr<s  r�test_varargs19_kwz-CFunctionCallsErrorMessages.test_varargs19_kw�s@��8��
�
#�
#�I�s�
3�	.��-�6�%�=�!�,�-�	.�	.�	.�r�c�L�d}|jt|ijd�y)Nz'keys\(\) takes no arguments \(1 given\)r�r:r3�keysr<s  r�test_oldargs0_1z+CFunctionCallsErrorMessages.test_oldargs0_1�s��8�����y�#�r�w�w��:rc�N�d}|jt|ijdd�y)Nz'keys\(\) takes no arguments \(2 given\)rrr�r<s  r�test_oldargs0_2z+CFunctionCallsErrorMessages.test_oldargs0_2�s!��8�����y�#�r�w�w��1�=rc�N�d}|jt|ijd��y)N�#keys\(\) takes no keyword argumentsrrVr�r<s  r�test_oldargs0_1_kwz.CFunctionCallsErrorMessages.test_oldargs0_1_kw�s"��4�����y�#�r�w�w�!��<rc�P�d}|jt|ijdd��y)Nr�rrZr�r<s  r�test_oldargs0_2_kwz.CFunctionCallsErrorMessages.test_oldargs0_2_kw�s$��4�����y�#�r�w�w�!�q��Arc�J�d}|jt|gj�y)Nz0count\(\) takes exactly one argument \(0 given\)�r:r3�countr<s  r�test_oldargs1_0z+CFunctionCallsErrorMessages.test_oldargs1_0�s��A�����y�#�r�x�x�8rc�N�d}|jt|gjdd�y)Nz0count\(\) takes exactly one argument \(2 given\)rrr�r<s  r�test_oldargs1_2z+CFunctionCallsErrorMessages.test_oldargs1_2�s!��A�����y�#�r�x�x��A�>rc�N�d}|jt|gjd��y�N�$count\(\) takes no keyword argumentsrrVr�r<s  r�test_oldargs1_0_kwz.CFunctionCallsErrorMessages.test_oldargs1_0_kw�s"��5�����y�#�r�x�x�1��=rc�P�d}|jt|gjid��yr�r�r<s  r�test_oldargs1_1_kwz.CFunctionCallsErrorMessages.test_oldargs1_1_kw�s$��5�����y�#�r�x�x��q��Arc�P�d}|jt|gjdd��y)Nr�rrZr�r<s  r�test_oldargs1_2_kwz.CFunctionCallsErrorMessages.test_oldargs1_2_kw�s$��5�����y�#�r�x�x�1���Brc�F�d}|jt|t��y)Nz!^'object' object is not callable$)r:r3�objectr<s  r�test_object_not_callablez4CFunctionCallsErrorMessages.test_object_not_callable�s��2�����y�#�v�x�8rc�\�d}|jt|tjd��y�N�!^'module' object is not callable$�mod)r:r3�types�
ModuleTyper<s  r�(test_module_not_callable_no_suggestion_0zDCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_0�s$��2�����y�#�u�/?�/?��/F�Grc�n�d}tjd�}d|_|jt||�y�Nr�r��*�r�r�r�r:r3�r
r=r�s   r�(test_module_not_callable_no_suggestion_1zDCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_1�s0��2�����u�%��������y�#�s�3rc�d�d}tjd�}|`|jt||�yr��r�r�rr:r3r�s   r�(test_module_not_callable_no_suggestion_2zDCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_2�s.��2�����u�%���L����y�#�s�3rc�n�d}tjd�}d|_|jt||�yr�r�r�s   r�(test_module_not_callable_no_suggestion_3zDCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_3�s0��2�����u�%��������y�#�s�3rc�p�d}tjd�}d�|_|jt||�y)NzH^'module' object is not callable\. Did you mean: 'mod\.mod\(\.\.\.\)'\?$r�c��y)N.r	r	rr�<lambda>zQCFunctionCallsErrorMessages.test_module_not_callable_suggestion.<locals>.<lambda>���rr�r�s   r�#test_module_not_callable_suggestionz?CFunctionCallsErrorMessages.test_module_not_callable_suggestion�s0��Y�����u�%��������y�#�s�3rN),rrrr>r@rFrJrNrQrSrXr\r_rbrerhrkrorrruryrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	rrr7r74s���@�F�V�?�8�<�@�E�J�:�>�=�=�:�A�F�O�[�F�E�F�
S�
@�
O�
0�.�;�>�=�B�9�?�>�B�C�9�H�4�4�4�4rr7c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestCallingConventionsa�Test calling using various C calling conventions (METH_*) from Python

    Subclasses test several kinds of functions (module-level, methods,
    class methods static methods) using these attributes:
      obj: the object that contains tested functions (as attributes)
      expected_self: expected "self" argument to the C function

    The base class tests module-level functions.
    c�(�tx|_|_yr)�	_testcapi�obj�
expected_selfrs r�setUpzTestCallingConventions.setUp�s��(1�1���4�%rc�v�|j|jjddd�|jdf�y�Nrrr�rrr�r)r��meth_varargsr�rs r�test_varargsz#TestCallingConventions.test_varargs�s4������H�H�!�!�!�Q��*�
�
�
��+�	
rc�n�|j|jjd�|jdf�y�Nr�r�rs r�test_varargs_extz'TestCallingConventions.test_varargs_exts2�����!�D�H�H�!�!�9�-�
�
�
��+�	
rc�>��d}�jt|�fd��y)Nz+meth_varargs\(\) takes no keyword argumentsc�<���jjd��S�Nr)�k)r�r�rs�rr�z>TestCallingConventions.test_varargs_error_kw.<locals>.<lambda>s���D�H�H�$9�$9�A�$9�$>�r�r:r3r<s` r�test_varargs_error_kwz,TestCallingConventions.test_varargs_error_kw	s���<������s�>�	
rc��|j|jjdddd��|jdddd�f�y�Nrrrr��rr�rr�r)r��meth_varargs_keywordsr�rs r�test_varargs_keywordsz,TestCallingConventions.test_varargs_keywordss@������H�H�*�*�1�a�1��*�:�
�
�
��q�q�)9�:�	
rc	��|j|jjddgiddd���|jdddd�f�yr�r�rs r�test_varargs_keywords_extz0TestCallingConventions.test_varargs_keywords_extsG�����*�D�H�H�*�*�Q��F�G�A�A�6F�G�
�
�
��q�q�)9�:�	
rc�r�|j|jjd�|jdf�y�Nr�r)r��meth_or�rs r�test_ozTestCallingConventions.test_os*�����������+�d�.@�.@�!�-D�Erc�p�|j|jjdg�|jdf�yr�r�rs r�
test_o_extz!TestCallingConventions.test_o_exts.�����������1�#�.��1C�1C�Q�0G�Hrc�^�d}|jt||jj�y)Nz1meth_o\(\) takes exactly one argument \(0 given\))r:r3r�r�r<s  r�test_o_error_no_argz*TestCallingConventions.test_o_error_no_arg!s!��B�����y�#�t�x�x���?rc�>��d}�jt|�fd��y)Nz1meth_o\(\) takes exactly one argument \(2 given\)c�<���jjdd�S�Nrr�r�r�rs�rr�z>TestCallingConventions.test_o_error_two_args.<locals>.<lambda>(s���D�H�H�O�O�A�q�$9�rr�r<s` r�test_o_error_two_argsz,TestCallingConventions.test_o_error_two_args%s���B������s�9�	
rc�>��d}�jt|�fd��y)Nz1meth_o\(\) takes exactly one argument \(3 given\)c�6���jjd�Sr�rrs�rr�z9TestCallingConventions.test_o_error_ext.<locals>.<lambda>.s���O�D�H�H�O�O�Y�$?�rr�r<s` r�test_o_error_extz'TestCallingConventions.test_o_error_ext+s���B������s�?�	
rc�>��d}�jt|�fd��y)N�%meth_o\(\) takes no keyword argumentsc�<���jjd��Sr�rrs�rr�z8TestCallingConventions.test_o_error_kw.<locals>.<lambda>4����D�H�H�O�O�a�O�$8�rr�r<s` r�test_o_error_kwz&TestCallingConventions.test_o_error_kw1����6������s�8�	
rc�>��d}�jt|�fd��y)Nrc�<���jjd��Sr�rrs�rr�z<TestCallingConventions.test_o_error_arg_kw.<locals>.<lambda>:r
rr�r<s` r�test_o_error_arg_kwz*TestCallingConventions.test_o_error_arg_kw7rrc�l�|j|jj�|j�yr�r)r��meth_noargsr�rs r�test_noargsz"TestCallingConventions.test_noargs=s%��������-�-�/��1C�1C�Drc�j�|j|jjg�|j�yrrrs r�test_noargs_extz&TestCallingConventions.test_noargs_ext@s*�����-����-�-�r�2�D�4F�4F�Grc�>��d}�jt|�fd��y)Nz.meth_noargs\(\) takes no arguments \(1 given\)c�:���jjd�Sr��r�rrs�rr�z>TestCallingConventions.test_noargs_error_arg.<locals>.<lambda>Fs���D�H�H�$8�$8��$;�rr�r<s` r�test_noargs_error_argz,TestCallingConventions.test_noargs_error_argCs���?������s�;�	
rc�>��d}�jt|�fd��y)Nz.meth_noargs\(\) takes no arguments \(2 given\)c�<���jjdd�Srrrs�rr�z?TestCallingConventions.test_noargs_error_arg2.<locals>.<lambda>Ls���D�H�H�$8�$8��A�$>�rr�r<s` r�test_noargs_error_arg2z-TestCallingConventions.test_noargs_error_arg2Is���?������s�>�	
rc�>��d}�jt|�fd��y)Nz.meth_noargs\(\) takes no arguments \(3 given\)c�6���jjd�Sr�rrs�rr�z>TestCallingConventions.test_noargs_error_ext.<locals>.<lambda>Rs���$8�D�H�H�$8�$8�)�$D�rr�r<s` r�test_noargs_error_extz,TestCallingConventions.test_noargs_error_extOs���?������s�D�	
rc�>��d}�jt|�fd��y)Nz*meth_noargs\(\) takes no keyword argumentsc�<���jjd��Sr�rrs�rr�z=TestCallingConventions.test_noargs_error_kw.<locals>.<lambda>Xs���D�H�H�$8�$8�1�$8�$=�rr�r<s` r�test_noargs_error_kwz+TestCallingConventions.test_noargs_error_kwUs���;������s�=�	
rc�v�|j|jjddd�|jdf�yr��r)r��
meth_fastcallr�rs r�
test_fastcallz$TestCallingConventions.test_fastcall[s4������H�H�"�"�1�a��+�
�
�
��+�	
rc�n�|j|jjd�|jdf�yr�r$rs r�test_fastcall_extz(TestCallingConventions.test_fastcall_extas2�����"�D�H�H�"�"�I�.�
�
�
��+�	
rc�>��d}�jt|�fd��y)Nz,meth_fastcall\(\) takes no keyword argumentsc�<���jjd��Sr�)r�r%rs�rr�z?TestCallingConventions.test_fastcall_error_kw.<locals>.<lambda>js���D�H�H�$:�$:�Q�$:�$?�rr�r<s` r�test_fastcall_error_kwz-TestCallingConventions.test_fastcall_error_kwgs���=������s�?�	
rc��|j|jjdddd��|jdddd�f�yr��r)r��meth_fastcall_keywordsr�rs r�test_fastcall_keywordsz-TestCallingConventions.test_fastcall_keywordsms@������H�H�+�+�A�q�A��+�;�
�
�
��q�q�)9�:�	
rc	��|j|jjdiddd���|jdddd�f�y)Nr�rr�r�r-rs r�test_fastcall_keywords_extz1TestCallingConventions.test_fastcall_keywords_extssC�����+�D�H�H�+�+�V�H�Q�Q�7G�H�
�
�
��q�q�)9�:�	
rN)rrr�__doc__r�r�r�r�r�r�r�r�r�rrrrrrrrrr"r&r(r+r/r1r	rrr�r��s����2�
�
�
�
�
�F�I�@�
�
�
�
�E�H�
�
�
�
�
�
�
�
�
rr�c��eZdZdZd�Zy)�TestCallingConventionsInstancez?Test calling instance methods using various calling conventionsc�D�tj�x|_|_yr)r��MethInstancer�r�rs rr�z$TestCallingConventionsInstance.setUp}s��(1�(>�(>�(@�@���4�%rN�rrrr2r�r	rrr4r4zs��I�Arr4c��eZdZdZd�Zy)�TestCallingConventionsClassz<Test calling class methods using various calling conventionsc�<�tjx|_|_yr�r��	MethClassr�r�rs rr�z!TestCallingConventionsClass.setUp�s��(1�(;�(;�;���4�%rNr7r	rrr9r9�s
��F�<rr9c��eZdZdZd�Zy)�#TestCallingConventionsClassInstancez&Test calling class methods on instancec�`�tj�|_tj|_yrr;rs rr�z)TestCallingConventionsClassInstance.setUp�s ���&�&�(���&�0�0��rNr7r	rrr>r>�s
��0�1rr>c��eZdZdZd�Zy)�TestCallingConventionsStaticz=Test calling static methods using various calling conventionsc�D�tj�|_d|_yr)r��
MethStaticr�r�rs rr�z"TestCallingConventionsStatic.setUp�s���'�'�)���!��rNr7r	rrrArA�s
��G�"rrAc�
�||gSrr	��arg1�arg2s  r�pyfuncrH�s���$�<�rc��y�N�noargr	r	rr�pyfunc_noargrL�s��rc�8�eZdZd�Zd�Zed��Zed��Zy)�PythonClassc�
�||gSrr	)r
rFrGs   r�methodzPythonClass.method�s���d�|�rc��yrJr	rs r�method_noargzPythonClass.method_noarg�s��rc��y)Nr�r	)�clss r�class_methodzPythonClass.class_method�s��rc��y)Nr}r	r	rr�
static_methodzPythonClass.static_method�s��rN)	rrrrPrRr�rUr}rWr	rrrNrN�s4�����������rrNc�n�eZdZdZedddgfeddfejddfejddfe	jdddgfe	jddfe	jddfe	jddfgZed	d
diddgfedddd�ddgfe	jd	d
diddgfe	jdddd�ddgfgZ
ej�Zeefeefej"ej"fej"�ej"fej$dffD�]%\ZZej+ej,dedffej.dedeffej2dedffej2dedffej4dedeffej4dedeffej6defej8d
edffg�e
j+ej.dddiedddiffej.dddiedddiffej.diedeffej4dddiedddiffej4dddiedddiffej4diedeffg���(d�Zd�Zd�Zd�Z d�Z!y)�
FastCallTestsz0Test calling using various callables from C
    r�rrr	rKr�r})rrGrEN)�{rZrWr[c��t|t�r!|dtur|didfvr
g|dd�|d��}|j||�y)N���)�
isinstance�tuple�
NULL_OR_EMPTYr))r
�resultr+s   r�check_resultzFastCallTests.check_resultsP���h��&�8�B�<�=�+H��b�z�b�$�Z�'�7�X�c�r�]�7�F�2�J�7�������*rc�"�|jD]t\}}}|j||��5tj||�}|j	||�|s(tj|d�}|j	||�ddd��vy#1swY��xYw)N�r|�args)�
CALLS_POSARGS�subTestr��pyobject_fastcallra)r
r|rdr+r`s     rr&zFastCallTests.test_fastcall
s���%)�$6�$6�	8� �D�$�����4�d��3�
8�"�4�4�T�4�@���!�!�&�(�3��&�8�8��t�D�F��%�%�f�h�7�
8�
8�	8�
8�
8�s�AB�B	c��|jD]v\}}}|j||��5tj||d�}|j	||�|s)tj|dd�}|j	||�ddd��x|j
D]M\}}}}|j|||��5tj|||�}|j	||�ddd��Oy#1swY��xYw#1swY�fxYw)Nrc�r|rd�kwargs)rerfr��pyobject_fastcalldictra�CALLS_KWARGS)r
r|rdr+r`rjs      r�test_vectorcall_dictz"FastCallTests.test_vectorcall_dicts��%)�$6�$6�		8� �D�$�����4�d��3�
8�"�8�8��t�T�J���!�!�&�(�3��&�<�<�T�4��N�F��%�%�f�h�7�
8�
8�		8�-1�,=�,=�	4�(�D�$������4�d�6��B�
4�"�8�8��t�V�L���!�!�&�(�3�
4�
4�	4�
8�
8��
4�
4�s�AC#�.*C/�#C,	�/C8	c��|jD]�\}}}|j||��5tj||d�}|j	||�tj||d�}|j	||�|sRtj|dd�}|j	||�tj|dd�}|j	||�ddd���|j
D]�\}}}}|j|||��5t
|j��}|t
|j��z}tj|||�}|j	||�ddd���y#1swY��gxYw#1swY��xYw)Nrcr	ri)	rerfr��pyobject_vectorcallrarlr^r��values)r
r|rdr+r`rj�kwnamess       r�test_vectorcallzFastCallTests.test_vectorcall*sv��%)�$6�$6�	8� �D�$�����4�d��3�
8�"�6�6�t�T�4�H���!�!�&�(�3�#�6�6�t�T�2�F���!�!�&�(�3��&�:�:�4��t�L�F��%�%�f�h�7�'�:�:�4��r�J�F��%�%�f�h�7�!
8�
8�	8�&-1�,=�,=�	4�(�D�$������4�d�6��B�
4�����
�.���e�F�M�M�O�4�4��"�6�6�t�T�7�K���!�!�&�(�3�	
4�
4�	4�%
8�
8��&
4�
4�s�B'E*�AE7�*E4	�7F	c�f�Gd�d�}||���}tddd|fi|j��y)Nc��eZdZdgZd�Zd�Zy)�>FastCallTests.test_fastcall_clearing_dict.<locals>.IntWithDictrjc��||_yr)rj)r
rjs  r�__init__zGFastCallTests.test_fastcall_clearing_dict.<locals>.IntWithDict.__init__Ls	��$��rc�`�|jj�tj�y)Nr)rj�clear�gc�collectrs r�	__index__zHFastCallTests.test_fastcall_clearing_dict.<locals>.IntWithDict.__index__Ns�����!�!�#��
�
��rN)rrr�	__slots__rwr|r	rr�IntWithDictruJs��!�
�I�
%�
rr~)�optimize�passrw�exec)�compilerj)r
r~rWs   r�test_fastcall_clearing_dictz)FastCallTests.test_fastcall_clearing_dictGs3��	�	�
���/��	���F�A�2����2r)"rrrr2rHrLrNrUrW�PYTHON_INSTANCErPrRrerlr�r6�	_instancer<rCr�r��extendr�r�r_r%r.rr�rar&rmrrr�r	rrrYrY�s0���
��!�Q�� �
�r�7�#�
�	!�	!�2�}�5�	�	"�	"�B��7�
�	�	��!�Q��0�	�	%�	%�r�7�3�	�	%�	%�r�=�9�	�	&�	&��N�;�#�M�6
����{�Q��F�+�	��a��+�a��V�4�
�	�	����{�Q��F�;�	�	�	��a��%;�a��V�D��L�'�	�&�&�(�I�	�I��	�I��	�	�	�i�1�1�2�	��	�	�	�	� 3� 3�4�	�	�	�t�$��"���]�	���
�
�
�v�
�v�'>�?�
�
&�
&����
�>�
@�
�
�
����(?�@�
�
�
��]�B�$7�8�
�
'�
'����
�>�
@�
�
'�
'��]�B�
�6�
8�
�_�_�b�-�0�
�Z�Z��=�#�"6�7�
�	�	���
�
&�
&���c�
�]�F�S�#�J�$G�
I�
�
&�
&��S�#�J���S�#�J� ?�
A�
�
&�
&���]�F�M�B�
D�
�
'�
'���c�
�]�F�S�#�J�$G�
I�
�
'�
'��S�#�J���S�#�J� ?�
A�
�
'�
'���]�F�M�B�
D�

�
	�+"�H+�8�4�&4�:3rrYiic��|S�zsome docr	rs r�testfunctionr�]����Krc��|Sr�r	)r
r s  r�testfunction_kwr�br�rrc�r�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zed
��Z
ed��Zed��Zy
)�
TestPEP590c���ddl}|jd�t�}|jt	t
�jtz�|jt	tj�jtz�|jt	tj�jtz�|jt	t�jtz�|jt	|�jtz�|jtjjtz�|jtjjtz�|jtjjtz�Gd�dtj�}|j|jtz�y)Nrrc��eZdZy)�DTestPEP590.test_method_descriptor_flag.<locals>.MethodDescriptorHeapN�rrrr	rr�MethodDescriptorHeapr�{���rr�)�	functools�	lru_cacher��assertFalse�type�repr�	__flags__�Py_TPFLAGS_METHOD_DESCRIPTOR�
assertTruer%�append�__add__r��MethodDescriptorBase�MethodDescriptorDerived�MethodDescriptorNopGet)r
r��cachedr�s    r�test_method_descriptor_flagz&TestPEP590.test_method_descriptor_flagls>���'��$�$�Q�'��5������d��-�-�0L�L�M�����T�[�[�)�3�3�6R�R�S�����T�\�\�*�4�4�7S�S�T�����\�*�4�4�7S�S�T�����V��.�.�1M�M�N����	�6�6�@�@�C_�_�`����	�9�9�C�C�Fb�b�c�����9�9�C�C�Fb�b�c�	�9�#A�#A�	����-�7�7�:V�V�Wrc���|jtjjtz�|jtj
jtz�|j
tjjtz�|jtjjtz�Gd�dtj�}|j|jtz�t|_
|j
|jtz�Gd�dtj�}|j
|jtz�y)Nc��eZdZy)�=TestPEP590.test_vectorcall_flag.<locals>.MethodDescriptorHeapNr�r	rrr�r��r�rr�c��eZdZd�Zy)r�c��yrr	rs r�__call__zFTestPEP590.test_vectorcall_flag.<locals>.MethodDescriptorHeap.__call__�s��rN�rrrr�r	rrr�z=TestPEP590.test_vectorcall_flag.<locals>.MethodDescriptorHeap�s��
r)r�r�r�r��Py_TPFLAGS_HAVE_VECTORCALLr�r�r��MethodDescriptor2r�r�)r
r�s  r�test_vectorcall_flagzTestPEP590.test_vectorcall_flags������	�6�6�@�@�C]�]�^����	�9�9�C�C�F`�`�a�����9�9�C�C�F`�`�a����	�3�3�=�=�@Z�Z�[�	�9�#A�#A�	����,�6�6�9S�S�T�(-��%����-�7�7�:T�T�U�	�9�#A�#A�	�	
���-�7�7�:T�T�Urc�~�ttd��}tj�}|j	||�|�y)Nr�)r^r2r�r��assertIs)r
rdr0s   r�test_vectorcall_overridez#TestPEP590.test_vectorcall_override�s1���U�1�X����,�,�.���
�
�a��h��%rc��tj�}|�}|j|�d�|j|�|j|�d�d�|_|j|�d�y)z*Setting __call__ should disable vectorcall�tp_call�
vectorcallc��y�N�customr	rs rr�zFTestPEP590.test_vectorcall_override_on_mutable_class.<locals>.<lambda>�r�rr�N)r��make_vectorcall_classr)�set_vectorcallr�)r
�TestType�instances   r�)test_vectorcall_override_on_mutable_classz4TestPEP590.test_vectorcall_override_on_mutable_class�sc���2�2�4���:�������Y�/�����)������\�2�1��������X�.rc�D�tj�}Gd�d|�}|�}tj|�}tj|�}|jt||��|jt||��|j	|�d�|j	tj
|�d�|j	tj
|�d�|j	tj
|�d�|j	tj
|�d�|j
|�|j	|�d�|j	tj
|�d�|j	tj
|�d�|j	tj
|�d�|j	tj
|�d�d�|_|j	|�d�|j	tj
|�d�|j	tj
|�d�|j	tj
|�d�|j	tj
|�d�y	)
z:Setting __call__ on a superclass should disable vectorcallc��eZdZy)�FTestPEP590.test_vectorcall_override_with_subclass.<locals>.DerivedTypeNr�r	rr�DerivedTyper��r�rr�r�Tr�c��yr�r	rs rr�zCTestPEP590.test_vectorcall_override_with_subclass.<locals>.<lambda>�r�rr�FN)r�r�r��
issubclassr)�has_vectorcall_flagr�r�)r
�	SuperTyper�r��UnaffectedType1�UnaffectedType2s      r�&test_vectorcall_override_with_subclassz1TestPEP590.test_vectorcall_override_with_subclass�s���3�3�5�	�	�)�	��=��$�9�9�+�F��#�9�9�)�D��	
���
�?�K�@�A����
�?�I�>�?�	
�����Y�/�����6�6�y�A�4�H�����6�6�{�C�T�J�����6�6��G��N�����6�6��G��N�	���	�*������\�2�����6�6�y�A�4�H�����6�6�{�C�T�J�����6�6��G��N�����6�6��G��N�3�	�������X�.�����6�6�y�A�5�I�����6�6�{�C�U�K�����6�6��G��N�����6�6��G��Nrc����ttd�fidftjgdfidfgjdidftdgfddidft
didftdddidftj�did	ftj�did	ftj�did
fg	}ddlm�m}ddl
m}dd
lm}�fd�}|D]_\}}}}	|j#t%|��5|s|j'|	|||��|j'|	||||��ddd��aGd�dtj�}
Gd�dtj�}Gd�d�}Gd�d|tj�}
|t(j*ifdd	idfij*ifdd	idf|
�did	f|�didf|
�did	fgz
}|D�]\}}}}	|j#t%|��5|dd}|||d�}||�}|sY|j'|	||��|j'|	�||d��|j'|	||��|j'|	||��|j'|	||i|���|j'|	||||��|j'|	||i|���|j'|	||i|���ddd���y#1swY��xYw#1swY��xYw)Nr�r)r�$�start�)r�r TF)ro�pyvectorcall_call)�
MethodType)�partialc�X��g|�|j���}t|�}�|||�Sr)rpr^)r|rdrjrqros    �rr�z.TestPEP590.test_vectorcall.<locals>.vectorcall�s0���*�D�*�6�=�=�?�*�D��F�m�G�&�t�T�7�;�;rc��eZdZy)�8TestPEP590.test_vectorcall.<locals>.MethodDescriptorHeapNr�r	rrr�r��r�rr�c��eZdZd�Zy)�>TestPEP590.test_vectorcall.<locals>.MethodDescriptorOverriddenc��y)N�newr	)r
�ns  rr�zGTestPEP590.test_vectorcall.<locals>.MethodDescriptorOverridden.__call__�s��rNr�r	rr�MethodDescriptorOverriddenr��s��
rr�c���eZdZ�fd�Z�xZS)�-TestPEP590.test_vectorcall.<locals>.SuperBasec���t�|�|�Sr��superr��r
rd�	__class__s  �rr�z6TestPEP590.test_vectorcall.<locals>.SuperBase.__call__�����w�'��.�.r�rrrr��
__classcell__�r�s@r�	SuperBaser���
���
/�
/rr�c���eZdZ�fd�Z�xZS)�9TestPEP590.test_vectorcall.<locals>.MethodDescriptorSuperc���t�|�|�Srr�r�s  �rr�zBTestPEP590.test_vectorcall.<locals>.MethodDescriptorSuper.__call__r�rr�r�s@r�MethodDescriptorSuperr�r�rr�r�r�r)�lenr2r%r��sumr�r�r�r�r�r�ror�r�r�r�r�rfrr)r(�update)r
�callsr�r�r�r�r|rdrjr+r�r�r�r��args1�meth�wrappedros                 @rrrzTestPEP590.test_vectorcall�s�����b�	�|�R��,��+�+��A�w��D�1��)�)�T�2�t�,����w����R�0���r�2�.�!�5�4��+�r�:��0�0�2�D�"�d�C��3�3�5�t�R��F��-�-�/��r�5�A�C��	E�$�%�	<�
/4�	R�*�T�4������c�$�i�(�
R���$�$�X�/@��t�/L�M�� � ��+<�T�4��+P�Q�
R�
R�	R�	�9�#A�#A�	�	��)G�)G�	�	/�	/�	/�I�y�/M�/M�	/�	�
�[�[�2�%�%���t�4�
�Y�Y����d�|�T�2�
!�
#�T�2�t�4�
'�
)�4��U�;�
"�
$�d�B��5�
�	
��/4�
	E�*�T�4������c�$�i�(�
E��Q�R���!�$��Q��0��!�$�-����$�$�X�t�T�{�;��$�$�X�/B�4��t�/T�U��$�$�X�t�U�|�<��$�$�X�w��~�>�� � ��4��+@��+@�A�� � ��:�d�D�&�+I�J�� � ��4��+A�&�+A�B�� � ��7�D�+C�F�+C�D�
E�
E�
	E�?
R�
R��@
E�
E�s�6K�$CK�K	�K	c��ddlm}d�}|j}d}|d||��||�tdtz�D]}|d||���y)Nr��function_setvectorcallc��|dzSr�r	)�nums rr0z(TestPEP590.test_setvectorcall.<locals>.f s
��3��7�Nr�
��
overridden)r�r�r)r2�ADAPTIVE_WARMUP_DELAY)r
r�r0�assert_equalr�r4s      r�test_setvectorcallzTestPEP590.test_setvectorcallsV��4�"��'�'�����R��3�� ��q�!��r�1�1�2�	/�A���q��v�.�	/rc���ddlm}Gd�d�}|j}|�}|d|j�||j�tt�D]}|d|j��y)Nrr�c��eZdZd�Zy)�FTestPEP590.test_setvectorcall_load_attr_specialization_skip.<locals>.Xc��|Srr	�r
�attrs  r�__getattribute__zWTestPEP590.test_setvectorcall_load_attr_specialization_skip.<locals>.X.__getattribute__-����rN�rrrrr	rr�Xr�,���
rrrr�)r�r�r)rrr2r�)r
r�rr�rWr4s      r�0test_setvectorcall_load_attr_specialization_skipz;TestPEP590.test_setvectorcall_load_attr_specialization_skip)sd��4�	�	��'�'��
�C���S�!�#�#���q�1�1�2��,�-�	,�A���q�s�s�+�	,rc��ddlm}Gd�d�}d�}|j}|�}tt�D]}|d||���||j
�tt�D]}|d||���y)Nrr�c��eZdZd�Zy)�GTestPEP590.test_setvectorcall_load_attr_specialization_deopt.<locals>.Xc��|Srr	r�s  rrzXTestPEP590.test_setvectorcall_load_attr_specialization_deopt.<locals>.X.__getattribute__=rrNrr	rrrr<rrrc��|jSr)rrVs r�get_azKTestPEP590.test_setvectorcall_load_attr_specialization_deopt.<locals>.get_a@s���3�3�Jrrr�)r�r�r)r2r�r)r
r�rrr�rWr4s       r�1test_setvectorcall_load_attr_specialization_deoptz<TestPEP590.test_setvectorcall_load_attr_specialization_deopt9s~��4�	�	�	��'�'��
�C���,�-�	(�A���e�A�h�'�	(��q�1�1�2��,�-�	1�A���u�Q�x�0�	1rc�l�ddlm}tj�}|j||dd�d�y)Nr)ror	zvectorcall called)r�ro�LimitedVectorCallClassr))r
ror�s   r� test_vectorcall_limited_incomingz+TestPEP590.test_vectorcall_limited_incomingNs.��1��.�.�0�����,�S�"�b�9�;N�Orc����ddlm}g�g���fd�}|j||�d�|j�dg�|j�ddig�y)Nr)�call_vectorcallc�J���j|��j|�y�N�success�r�)rdrj�
args_captured�kwargs_captureds  ��rr0z6TestPEP590.test_vectorcall_limited_outgoing.<locals>.f[s"���� � ��&��"�"�6�*�rr�r��baz�bar)r�rr))r
rr0rrs   @@r� test_vectorcall_limited_outgoingz+TestPEP590.test_vectorcall_limited_outgoingTsU���-��
���	�
	
�����+�Y�7������
�3�����E�5�>�*:�;rc����ddlm}g�g�G��fd�d�}|j||��d�|j�dg�|j�ddig�y)	Nr)�call_vectorcall_methodc���eZdZ��fd�Zy)�HTestPEP590.test_vectorcall_limited_outgoing_method.<locals>.TestInstancec�J���j|��j|�yrr)r
rdrjrrs   ��rr0zJTestPEP590.test_vectorcall_limited_outgoing_method.<locals>.TestInstance.fls"����$�$�T�*��&�&�v�.� rN)rrrr0)rrs��r�TestInstancerks���
!rr!rrrr)r�rr))r
rr!rrs   @@r�'test_vectorcall_limited_outgoing_methodz2TestPEP590.test_vectorcall_limited_outgoing_methodds]���4��
���	!�	!�	
���/���?��K������
�3�����E�5�>�*:�;rN)rrrr�r�r�r�r�rrr�rrrrrr"r	rrr�r�jst��X�&V�*&�/�'O�TJE�X	/�,� 1�*�P��P�
�
<��
<��<��<rr�c�2�eZdZd�Zed��Zed��Zy)�Ac��yrr	)r
rWr[s   r�method_two_argszA.method_two_argsvs��rc��yrr	r	rr�static_no_argszA.static_no_argsy���rc��yrr	��args r�positional_onlyzA.positional_only}r)rN)rrrr&r}r(r-r	rrr$r$us/��
��
��
��
��
rr$c�N�eZdZejd��Zd�Zd�Zd�Zd�Z	d�Z
y)�!TestErrorMessagesUseQualifiedNamec#�K�|jt�5}d��ddd�|jtj�|�y#1swY�/xYw�wr)�assertRaisesr3r)r�	exception)r
�message�cms   r�check_raises_type_errorz9TestErrorMessagesUseQualifiedName.check_raises_type_error�sF����
�
�
�y�
)�	�R��	�����R�\�\�*�G�4�	�	�s�A�A�.A�A�Ac��d}|j|�5t�jd�ddd�y#1swYyxYw)Nz?A.method_two_args() missing 1 required positional argument: 'y'rW�r5r$r&r<s  r�test_missing_argumentsz8TestErrorMessagesUseQualifiedName.test_missing_arguments�s:��O��
�
)�
)�#�
.�	%�
�C����$�	%�	%�	%�s	�7�Ac�~�d}|j|�5tjd�ddd�y#1swYyxYw)Nz?A.static_no_args() takes 0 positional arguments but 1 was givenzoops it's an arg)r5r$r(r<s  r�test_too_many_positionalz:TestErrorMessagesUseQualifiedName.test_too_many_positional�s9��O��
�
)�
)�#�
.�	1�
���/�0�	1�	1�	1�s�3�<c��d}|j|�5tjd��ddd�y#1swYyxYw)NzYA.positional_only() got some positional-only arguments passed as keyword arguments: 'arg'rWr+)r5r$r-r<s  r�&test_positional_only_passed_as_keywordzHTestErrorMessagesUseQualifiedName.test_positional_only_passed_as_keyword�s;��i��
�
)�
)�#�
.�	'�
���#��&�	'�	'�	'�s�4�=c��d}|j|�5t�jd��ddd�y#1swYyxYw)Nz<A.method_two_args() got an unexpected keyword argument 'bad'rW)�badr7r<s  r�test_unexpected_keywordz9TestErrorMessagesUseQualifiedName.test_unexpected_keyword�s=��L��
�
)�
)�#�
.�	)�
�C���C��(�	)�	)�	)�s	�8�Ac��d}|j|�5t�jddd��ddd�y#1swYyxYw)Nz8A.method_two_args() got multiple values for argument 'x'rWr[�oopsrVr7r<s  r�test_multiple_valuesz6TestErrorMessagesUseQualifiedName.test_multiple_values�sA��H��
�
)�
)�#�
.�	4�
�C����S�F��3�	4�	4�	4�s	�:�AN)rrr�
contextlib�contextmanagerr5r8r:r<r?rBr	rrr/r/�s5�����5��5�
%�
1�
'�
)�
4rr/c��eZdZed��Zy)�
TestRecursionc�D������fd����fd���fd���fd��tj�}tjd�	�d�|jt�5�d�ddd��d�|jt�5�d�ddd��d	�|jt�5�d�ddd�tj|�y#1swY�{xYw#1swY�YxYw#1swY�7xYw#tj|�wxYw)
Nc�"��|r�|dz
�yyr�r	)r��recurses �rrIz.TestRecursion.test_super_deep.<locals>.recurse�s������!���rc�:��|r
�|dz
|�y�|dz
�yr�r	)r��m�c_py_recurse�
py_recurses  ��rrMz1TestRecursion.test_super_deep.<locals>.py_recurse�s �����1�Q�3��"��Q�q�S�!rc�@��|rtj�|dz
f�yyr��r�rg)r��	c_recurses �rrPz0TestRecursion.test_super_deep.<locals>.c_recurse�s!�����+�+�I��!��v�>�rc�<��|rtj�d|f�yy)Nr1rO)rKrMs �rrLz3TestRecursion.test_super_deep.<locals>.c_py_recurse�s�����+�+�J��q�	�B�ri��i�_i���d�Z)�sys�getrecursionlimit�setrecursionlimitr1�RecursionError)r
�depthrLrPrMrIs  @@@@r�test_super_deepzTestRecursion.test_super_deep�s����	�	"�	?�	C��%�%�'�����g�&�	)��F�O��"�"�>�2�
!��� �
!��c�N��"�"�>�2�
"��&�!�
"�����"�"�>�2�
&��W�%�
&�
�!�!�%�(�
!�
!��
"�
"��
&�
&��
�!�!�%�(�sT�D�!	C$�*%D�	C0�%D�=	C<�D�$C-�)D�0C9�5D�<D�D�DN)rrrrrYr	rrrFrF�s���!)��!)rrFc��eZdZd�Zy)�TestFunctionWithManyArgsc	�<�dD]�}|j|��5djt|�D�cgc]}d|����	c}�}d|�d|dz��}i}t|i|�|j	|dt|��|dz�ddd���ycc}w#1swY��xYw)	N)r�i�r1)�Nr�rzdef f(z) : return arr0)rf�joinr2r�r))r
r]�ird�src�ls      r�test_function_with_many_argsz5TestFunctionWithManyArgs.test_function_with_many_args�s��� �	:�A������"�
:��x�x�%��(� ;�Q�1�Q�C�� ;�<���t�f�L��A���7�����S�"�a� �� � ���3���q��!2�A�q�D�9�
:�
:�	:�� ;�
:�
:�s�B�B
�AB�
B�B	N)rrrrbr	rrr[r[�s��:rr[�__main__)+�unittest�test.supportrrrr�r�rmr"r�rzrCrTr�rr�TestCaserr7r�r4r9r>rArHrLrNr�r�r_rYr�r�r�r�r�r�r$r/rFr[r�mainr	rr�<module>rhs����J�J������	��
��&�S�&��H�%�%��8�w4�(�"3�"3�w4��w4�tH
�X�.�.�H
�VA�%;�A�<�"8�<�1�*@�1�"�#9�"���
�
� �-����
�b3�H�%�%�b3�J%��&���
�
��I<��"�"�I<�V

�

��4��(9�(9�4��4�B�$)�H�%�%�$)��$)�L:�x�0�0�:��z���H�M�M�O���a���I��s�E*�*E5�4E5