403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.1
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/test_clinic.cpython-315.opt-1.pyc
R
>lqj��c���]QHGs]QHGsGs]QHGs]QHGs]QH G	s	G
s
Gs]QH0G
s
]QH8Gs]PH@s]PHDs]PHLs]PHPs]PH8s\O*Q2\O,Q29^tt^2]PH\s]Q	H\GsGsGsGs]Q
HpGsGsGs]QH�G!s!G"s"G#s#G$s$G%s%G&s&G's'G(s(]PH�s)]QH�G+s+]Q
H�G-s-G.s.]QH�G0s0G1s1]QH�G3s3G4s4]QH�G6s6G7s7]QH�G9s9]QH�G;s;G<s<PPP2Qs=QQQP
-Qks>QPQPQP	-Qks?Qs@QsAQQ\2sBQQ \2sCQ!Q"\2sDQ#Q$\2sEQ%Q&2sFQ'Q(2sGQ)Q*\2sHQ+Q,\2sI\Q-Q.\22sJ]PCH.sL\O�\LPIQ/2Q0Q1\O22sOQ2Q3\O2sP]PCHFsQ\O�\QPIQ42Q5Q6\O22sRQ7Q8\O2sSQ9Q:\O2sTQ;Q<\O2sU\VQ=6Xc\O�2P!P!)%fhCKj9h\McPsLK�h9h\McPsQK�h9h)>�)�partial)�support�
test_tools)�force_not_colorized_test_class)�	os_helper)�TESTFN�unlink�rmtree��dedent)�TestCase�clinic)�ClinicError�unspecified�NULL�fail)�
int_converter�
str_converter�self_converter)�Module�Class�Function�FunctionKind�	Parameter�permute_optional_groups�permute_right_option_groups�permute_left_option_groups)�	CLanguage)�
converters�legacy_converters)�return_converters�int_return_converter)�Block�BlockParser)�BlockPrinter�Destination)�	DSLParser)�
parse_file�Clinicc�`�U1QkoU!)c�:`�UU1QkoU!)c	�:�RFD.oUOUQ59^tt^2RV2PPP2J0	P!)%fhJE9h))�fn)�subTest)�selfr,�	functions�tests& ���%C:\Python315\\Lib\test\test_clinic.py�wrapped�+repeat_fn.<locals>.wrapper.<locals>.wrapped's7������\�\�R�\�(�(���N�)�(� �(�(�(�s�	:	�A
�A
�)r0r2r/sf �r1�wrapper�repeat_fn.<locals>.wrapper&s���	#���r4)r/r5sj r1�	repeat_fnr8%s�����Nr7�filename�clinic_tests�limited_capic�Z�[U2o[V UQ5o[PU2UmU!)�r9r;)rr(r#�block_parser)r9r;�clang�cs$$  r1�_make_clinicrA.s+���h��E��u�l�C�A� ��U�+�A�N��Hr7�lineno�stripc��[U2oU%cUO2o[OU2oUO	[
U29^tt^2oUU2PPP2Ud'UO
WOOU2Ud'UO
WOOU2WO!)%fhKp9h)aHelper for the parser tests.

tc: unittest.TestCase; passed self in the wrapper
parser: the clinic parser used for this test case
code: a str with input text (clinic code)
errmsg: the expected error message
filename: str, optional filename
lineno: int, optional line number
)
rrC�re�escape�assertRaisesRegexr�assertEqual�	exceptionr9rB)�tc�parser�code�errmsgr9rBrC�cms&&&&$$$ r1�_expect_failurerO5s����$�<�D���z�z�|��
�Y�Y�v�
�F�	�	�	�k�6�	2�	2�b��t��
3���
���r�|�|�,�,�h�7�
��
���r�|�|�*�*�F�3�
�<�<��

3�	2�s�	C
�
C	�C	c�N�UO2UOU2P!�N)�clear�update)r�old_converterss&&r1�restore_dictrUMs���������n�%r7c��UO[[[O22UO[[[O22UO[[
[
O22P!rQ)�
addCleanuprUr�copyrr )�testcases&r1�save_restore_convertersrZRs\������j�"���)�+�����&7�)�.�.�0�2�����&7�)�.�.�0�2r7c�X`�\sQs][snPsQPQP-QksQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQs Qs!Q s"Q!s#Q"s$Q#s%Q$s&Q%s'Q&s(Q's)Q(s*Q)s+Q*s,Q+s-Q,s.Q-s/Q.s0Q/s1Q0s2Q1s3Q2s4Q3s5Q4s6Us7P!)5�ClinicWholeFileTestr9rBc	�L�[VOOVV4Q5P!)�r9rB)rOr
�parse)r.�rawrMr9rBs&&&$$r1�expect_failure�"ClinicWholeFileTest.expect_failure^s����k�k�/�/��!)�	:r7c�@�[U2[QQ5UmP!)�test.c�r9)rZrAr
�r.s&r1�setUp�ClinicWholeFileTest.setUpbs����%�"�H�5��r7c���QoUOOU2O2oU]*O2oUO	UQ2UOUQ2P!)z/*[clinic]
foo
[clinic]*/z[clinic]*/[clinic]*/z
[clinic]*/)r
r_�
splitlines�rstrip�assertNotEqualrH)r.r`�cooked�end_lines&   r1�test_eol�ClinicWholeFileTest.test_eolfs[��,�����"�"�3�'�2�2�4���!�9�#�#�%��	
���H�&<�=�����<�0r7c�8�QoQoUOVQ]Q5P!)z�
            /*[clinic input]
            [clinic start generated code]*/
            /*[clinic end generated code: foo]*/
        zKMangled Argument Clinic marker line: '/*[clinic end generated code: foo]*/'rdr^�ra�r.r`�errs&  r1�test_mangled_marker_line�,ClinicWholeFileTest.test_mangled_marker_linews*����
5�	�	
���C�x���Br7c�8�QoQoUOVQ]Q5P!)z�
            /*[clinic input]
            [clinic start generated code]*/
            /*[clinic end generated code: output=0123456789abcdef input=fedcba9876543210]*/
        zKChecksum mismatch! Expected '0123456789abcdef', computed 'da39a3ee5e6b4b0d'rdr^rrrss&  r1�test_checksum_mismatch�*ClinicWholeFileTest.test_checksum_mismatch�s&����
J�����C�x���Br7c�8�QoQoUOVQ]Q5P!)z_
            /*[clinic input]
            [clinic start generated code]*/foobarfoobar!
        z(Garbage after stop line: 'foobarfoobar!'rdr^rrrss&  r1�test_garbage_after_stop_line�0ClinicWholeFileTest.test_garbage_after_stop_line�s%����9�����C�x���Br7c�8�QoQoUOVQ]Q5P!)zS
            /*[clinic input]
             [clinic start generated code]*/
        zRWhitespace is not allowed before the stop line: ' [clinic start generated code]*/'rdr^rrrss&  r1� test_whitespace_before_stop_line�4ClinicWholeFileTest.test_whitespace_before_stop_line�s*����

1�	�	
���C�x���Br7c��[P2oQUmQUmQUm[	UQP
Q5o[Q2O
2oUOU2o[Q2O2oUOVE2P!)Nz//z//[{dsl_name} start]z//[{dsl_name} stop]rdr=z\
            //[clinic start]
            //module test
            //[clinic stop]
        z�
            //[clinic start]
            //module test
            //
            //[clinic stop]
            /*[clinic end generated code: output=da39a3ee5e6b4b0d input=65fab8adff58cf08]*/
        )
r�body_prefix�
start_line�	stop_liner(rrCr_�lstriprH)r.r?�clr`�out�expecteds&     r1�test_parse_with_body_prefix�/ClinicWholeFileTest.test_parse_with_body_prefix�s����$��� ���1���/���
�E�H�5�
A����
��U�W�		�
�h�h�s�m����
��V�X�
	�	
����'r7c�8�QoQoUOVQ]Q5P!)zR
            /* start
            /* nested
            */
            */
        zNested block comment!rdr^rrrss&  r1�*test_cpp_monitor_fail_nested_block_comment�>ClinicWholeFileTest.test_cpp_monitor_fail_nested_block_comment�s%����&�����C�x���Br7c�8�QoQoUOVQ]Q5P!)z<
            #if
            a()
            #endif
        z)Invalid format for #if line: no argument!rdr^rrrss&  r1�*test_cpp_monitor_fail_invalid_format_noarg�>ClinicWholeFileTest.test_cpp_monitor_fail_invalid_format_noarg�s%����
:�����C�x���Br7c�8�QoQoUOVQ]Q5P!)zC
            #ifdef A B
            a()
            #endif
        z?Invalid format for #ifdef line: should be exactly one argument!rdr^rrrss&  r1�0test_cpp_monitor_fail_invalid_format_toomanyargs�DClinicWholeFileTest.test_cpp_monitor_fail_invalid_format_toomanyargs�s&����
P�����C�x���Br7c�8�QoQoUOVQ]Q5P!)z#elsez.#else without matching #if / #ifdef / #ifndef!rdr^rrrss&  r1�$test_cpp_monitor_fail_no_matching_if�8ClinicWholeFileTest.test_cpp_monitor_fail_no_matching_if�s!����>�����C�x���Br7c�2�QoQoUOV2P!)zy
            /*[clinic input]
            output preset nosuchpreset
            [clinic start generated code]*/
        zUnknown preset 'nosuchpreset'rrrss&  r1�$test_directive_output_unknown_preset�8ClinicWholeFileTest.test_directive_output_unknown_preset�s����
.�����C�%r7c�2�QoQoUOV2P!)zi
            /*[clinic input]
            output pop
            [clinic start generated code]*/
        z"Can't 'output pop', stack is emptyrrrss&  r1�test_directive_output_cant_pop�2ClinicWholeFileTest.test_directive_output_cant_pop�s����
3�����C�%r7c	��[Q2oUOOU2oUOU[Q22.QloSFD7oUO	UQ59^tt^2UOVB2PPP2J9	UO
2OQ2P*oUOUQ2P!)%fhJ�9h)z~
            /*[clinic input]
            output print 'I told you once.'
            [clinic start generated code]*/
        )�field�
z%/*[clinic end generated code: output=>
�cpp_if�	cpp_endif�impl_prototype�impl_definition�methoddef_define�methoddef_ifndef�parser_prototype�parser_definition�docstring_prototype�docstring_definition)rr
r_�assertStartsWithr-�assertInrk�split)r.r`r��fieldsr��	last_lines&     r1�test_directive_output_print�/ClinicWholeFileTest.test_directive_output_print�s�����
��
�k�k����$��	
���c�6�+�$
�	�

���E����E��*�*��
�
�e�)�+�*���J�J�L�&�&�t�,�R�0�	����i�)P�Q�+�*�*�s�'B?	�?C
�C
c�D�[Q2oQoUOV2P!)z�
            /*[clinic input]
            preserve foo bar baz eggs spam ham mushrooms
            [clinic start generated code]*/
        z,takes 1 positional argument but 8 were given)rrarss&  r1�test_directive_wrong_arg_number�3ClinicWholeFileTest.test_directive_wrong_arg_number	s&����
��
=�����C�%r7c�2�QoQoUOV2P!)z
            /*[clinic input]
            destination buffer nosuchcommand
            [clinic start generated code]*/
        z+unknown destination command 'nosuchcommand'rrrss&  r1� test_unknown_destination_command�4ClinicWholeFileTest.test_unknown_destination_commands����
<�����C�%r7c�2�QoQoUOV2P!)a�
            /*[python input]
            class Custom_converter(CConverter):
                converter = "some_c_function"
                def converter_init(self):
                    self.function.noaccess
            [python start generated code]*/
            /*[clinic input]
            module test
            test.fn
                a: Custom
            [clinic start generated code]*/
        z<accessing self.function inside converter_init is disallowed!rrrss&  r1�+test_no_access_to_members_in_converter_init�?ClinicWholeFileTest.test_no_access_to_members_in_converter_inits$����
K�	�	
���C�%r7c�6�QoQoUOV!]	Q5P!)z3'kind' of function and cloned function don't match!a&
            /*[clinic input]
            module m
            @classmethod
            m.f1
                a: object
            [clinic start generated code]*/
            /*[clinic input]
            @staticmethod
            m.f2 = m.f1
            [clinic start generated code]*/
        �rBrr�r.rt�blocks&  r1�test_clone_mismatch�'ClinicWholeFileTest.test_clone_mismatch.s#��C����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z+Badly formed annotation for 'm.f': 'Custom'aW
            /*[python input]
            class Custom_return_converter(CReturnConverter):
                def __init__(self):
                    raise ValueError("abc")
            [python start generated code]*/
            /*[clinic input]
            module m
            m.f -> Custom
            [clinic start generated code]*/
        r�rrr�s&  r1�#test_badly_formed_return_annotation�7ClinicWholeFileTest.test_badly_formed_return_annotation>s#��;��
��	
���E�q��1r7c�6�QoQoUOV!]Q5P!)�''my_test_func' uses '*' more than once.z�
            /*[clinic input]
            my_test_func

                pos_arg: object
                *args: tuple
                *
                kw_arg: object
            [clinic start generated code]*/
        r�rrr�s&  r1�test_star_after_vararg�*ClinicWholeFileTest.test_star_after_varargM�#��7��	��	
���E�q��1r7c�6�QoQoUOV!]Q5P!)r�z�
            /*[clinic input]
            my_test_func

                pos_arg: object
                *
                *args: tuple
                kw_arg: object
            [clinic start generated code]*/
        r�rrr�s&  r1�test_vararg_after_star�*ClinicWholeFileTest.test_vararg_after_star[r�r7c�6�QoQoUOV!]Q5P!)zXFunction 'my_test_func' has an invalid parameter declaration (**kwargs?): '**kwds: dict'z�
            /*[clinic input]
            my_test_func

                pos_arg: object
                **kwds: dict
                **
            [clinic start generated code]*/
        r�rrr�s&  r1�"test_double_star_after_var_keyword�6ClinicWholeFileTest.test_double_star_after_var_keywordis#��h����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)zBFunction 'my_test_func' has an invalid parameter declaration: '**'z�
            /*[clinic input]
            my_test_func

                pos_arg: object
                **
                **kwds: dict
            [clinic start generated code]*/
        r�rrr�s&  r1�test_var_keyword_after_star�/ClinicWholeFileTest.test_var_keyword_after_starvs#��R����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)zAlready defined module 'm'!z|
            /*[clinic input]
            module m
            module m
            [clinic start generated code]*/
        r�rrr�s&  r1�test_module_already_got_one�/ClinicWholeFileTest.test_module_already_got_one�s#��+����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z"Destination already exists: 'test'z�
            /*[clinic input]
            destination test new buffer
            destination test new buffer
            [clinic start generated code]*/
        r�rrr�s&  r1� test_destination_already_got_one�4ClinicWholeFileTest.test_destination_already_got_one�s#��2����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z'Destination does not exist: '/dev/null'zz
            /*[clinic input]
            output everything /dev/null
            [clinic start generated code]*/
        r�rrr�s&  r1�test_destination_does_not_exist�3ClinicWholeFileTest.test_destination_does_not_exist�s#��7����
	
���E�q��1r7c�6�QoQoUOV!]Q5P!)zAlready defined class 'C'!z�
            /*[clinic input]
            class C "" ""
            class C "" ""
            [clinic start generated code]*/
        r�rrr�s&  r1�test_class_already_got_one�.ClinicWholeFileTest.test_class_already_got_one�s#��*����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z#Can't nest a module inside a class!z�
            /*[clinic input]
            class C "" ""
            module C.m
            [clinic start generated code]*/
        r�rrr�s&  r1�"test_cant_nest_module_inside_class�6ClinicWholeFileTest.test_cant_nest_module_inside_class�s#��3����	
���E�q��1r7c�D�Qo[Q2o[Q2o[O29^tt^2oUOO	U2oPPP2UOUWO
22UOWU2P!)%fhKD9h)z?Destination buffer 'buffer' not empty at end of file, emptying.a
            /*[clinic input]
            output everything buffer
            fn
                a: object
                /
            [clinic start generated code]*/
            /*[clinic end generated code: output=da39a3ee5e6b4b0d input=1c4668687f5fd002]*/

            /*[clinic input]
            dump buffer
            [clinic start generated code]*/

            PyDoc_VAR(fn__doc__);

            PyDoc_STRVAR(fn__doc__,
            "fn($module, a, /)\n"
            "--\n"
            "\n");

            #define FN_METHODDEF    \
                {"fn", (PyCFunction)fn, METH_O, fn__doc__},

            static PyObject *
            fn(PyObject *module, PyObject *a)
            /*[clinic end generated code: output=be6798b148ab4e53 input=524ce2e021e4eba6]*/
        z�
            /*[clinic input]
            output everything buffer
            fn
                a: object
                /
            [clinic start generated code]*/
        )rr�captured_stdoutr
r_r��getvaluerH)r.�expected_warning�expected_generatedr��stdout�	generateds&     r1�!test_dest_buffer_not_empty_at_eof�5ClinicWholeFileTest.test_dest_buffer_not_empty_at_eof�s���5��#�%�
��6��
���
$�
$�
&�
&�&����)�)�%�0�I�'��
�
�&����(9�:�����$6�7�'�
&�s�B�B	�B	c�6�QoQoUOV!]Q5P!)z9Can't clear destination 'file': it's not of type 'buffer'zu
            /*[clinic input]
            destination file clear
            [clinic start generated code]*/
        r�rrr�s&  r1�test_dest_clear�#ClinicWholeFileTest.test_dest_clear�s#��I����
	
���E�q��1r7c�6�QoQoUOV!]Q5P!)zunknown variable 'ets'zj
            /*[clinic input]
            set ets tse
            [clinic start generated code]*/
        r�rrr�s&  r1�test_directive_set_misuse�-ClinicWholeFileTest.test_directive_set_misuse�s#��&����
	
���E�q��1r7c�z�[Q2oUOOU2oQoUOV22P!)a�
            /*[clinic input]
            set line_prefix '// '
            output everything suppress
            output docstring_prototype buffer
            fn
                a: object
                /
            [clinic start generated code]*/
            /* We need to dump the buffer.
             * If not, Argument Clinic will emit a warning */
            /*[clinic input]
            dump buffer
            [clinic start generated code]*/
        z// PyDoc_VAR(fn__doc__);�rr
r_r��r.r�r��expected_docstring_prototypes&   r1�test_directive_set_prefix�-ClinicWholeFileTest.test_directive_set_prefix�s:����
���K�K�%�%�e�,�	�'A�$��
�
�2�>r7c�z�[Q2oUOOU2oQoUOV22P!)a�
            /*[clinic input]
            set line_suffix '  // test'
            output everything suppress
            output docstring_prototype buffer
            fn
                a: object
                /
            [clinic start generated code]*/
            /* We need to dump the buffer.
             * If not, Argument Clinic will emit a warning */
            /*[clinic input]
            dump buffer
            [clinic start generated code]*/
        zPyDoc_VAR(fn__doc__);  // testr�r�s&   r1�test_directive_set_suffix�-ClinicWholeFileTest.test_directive_set_suffixs:����
���K�K�%�%�e�,�	�'G�$��
�
�2�>r7c�z�[Q2oUOOU2oQoUOV22P!)a
            /*[clinic input]
            set line_prefix '{block comment start} '
            set line_suffix ' {block comment end}'
            output everything suppress
            output docstring_prototype buffer
            fn
                a: object
                /
            [clinic start generated code]*/
            /* We need to dump the buffer.
             * If not, Argument Clinic will emit a warning */
            /*[clinic input]
            dump buffer
            [clinic start generated code]*/
        z/* PyDoc_VAR(fn__doc__); */r�r�s&   r1�$test_directive_set_prefix_and_suffix�8ClinicWholeFileTest.test_directive_set_prefix_and_suffixs:����
�� �K�K�%�%�e�,�	�'D�$��
�
�2�>r7c��[Q2o[Q2oUOOU2oUOV22P!)z�
            /*[clinic input]
            output everything buffer
            printout test
            [clinic start generated code]*/
        z�
            /*[clinic input]
            output everything buffer
            printout test
            [clinic start generated code]*/
            test
            /*[clinic end generated code: output=4e1243bd22c66e76 input=898f1a32965d44ca]*/
        �rr
r_rH)r.r�r�r�s&   r1�test_directive_printout�+ClinicWholeFileTest.test_directive_printout.sF����
����
���K�K�%�%�e�,�	�����-r7c�6�QoQoUOV!]Q5P!)z)Can't have 'preserve' twice in one block!z|
            /*[clinic input]
            preserve
            preserve
            [clinic start generated code]*/
        r�rrr�s&  r1�test_directive_preserve_twice�1ClinicWholeFileTest.test_directive_preserve_twice@s#��9����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z?'preserve' only works for blocks that don't produce any output!z�
            /*[clinic input]
            preserve
            fn
                a: object
                /
            [clinic start generated code]*/
        r�rrr�s&  r1�test_directive_preserve_input�1ClinicWholeFileTest.test_directive_preserve_inputJs#��O����	
���E�q��1r7c�v�[Q2oUOOU2oUOV!2P!)a�
            /*[clinic input]
            output everything buffer
            preserve
            [clinic start generated code]*/
            // Preserve this
            /*[clinic end generated code: output=eaa49677ae4c1f7d input=559b5db18fddae6a]*/
            /*[clinic input]
            dump buffer
            [clinic start generated code]*/
            /*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/
        r��r.r�r�s&  r1�test_directive_preserve_output�2ClinicWholeFileTest.test_directive_preserve_outputVs5����
���K�K�%�%�e�,�	�����*r7c�d�[Q2O2oQoUOV!]Q5P!)a
            Invalid command or destination name 'cmd'. Must be one of:
             - 'preset'
             - 'push'
             - 'pop'
             - 'print'
             - 'everything'
             - 'cpp_if'
             - 'docstring_prototype'
             - 'docstring_definition'
             - 'methoddef_define'
             - 'impl_prototype'
             - 'parser_prototype'
             - 'parser_definition'
             - 'cpp_endif'
             - 'methoddef_ifndef'
             - 'impl_definition'
        zp
            /*[clinic input]
            output cmd buffer
            [clinic start generated code]*/
        r�)rrCrar�s&  r1�%test_directive_output_invalid_command�9ClinicWholeFileTest.test_directive_output_invalid_commandfs9����
�"�U�W�#	�$��
	
���E�q��1r7c�6�QoQoUOV]Q5P!)a
            /*[clinic input]
            class C "void *" ""
            C.meth
              a: int
            [clinic start generated code]*/
            /*[clinic input]
            @classmethod
            C.__init__ = C.meth
            [clinic start generated code]*/
        zD'__init__' must be a normal method; got 'FunctionKind.CLASS_METHOD'!r�rr�r.r�rts&  r1�test_validate_cloned_init�-ClinicWholeFileTest.test_validate_cloned_init�s$��
��U�����E�q��1r7c�6�QoQoUOV]Q5P!)a
            /*[clinic input]
            class C "void *" ""
            C.meth
              a: int
            [clinic start generated code]*/
            /*[clinic input]
            C.__new__ = C.meth
            [clinic start generated code]*/
        z '__new__' must be a class methodr�rrrs&  r1�test_validate_cloned_new�,ClinicWholeFileTest.test_validate_cloned_new�s#��	��1�����E�q��1r7c�6�QoQoUOV]Q5P!)z�
            /*[clinic input]
            foo2
            [clinic start generated code]*/
            /*[clinic input]
            foo as = foo2
            [clinic start generated code]*/
        �)No C basename provided after 'as' keywordr�rrrs&  r1�test_no_c_basename_cloned�-ClinicWholeFileTest.test_no_c_basename_cloned�s#����:�����E�q��1r7c�B�[Q2oUOOU2UOOoUO	[U2]2UO	U]*OQ2UO	U]*OQ2P!)a9
            /*[clinic input]
            # Make sure we don't create spurious clinic/ directories.
            output everything suppress
            foo2
            [clinic start generated code]*/

            /*[clinic input]
            foo as foo1 = foo2
            [clinic start generated code]*/
        �foo�foo1)rr
r_r/rH�len�name�
c_basename)r.r`�funcss&  r1�"test_cloned_with_custom_c_basename�6ClinicWholeFileTest.test_cloned_with_custom_c_basename�sz���
�

��	
�����#�����%�%������U��Q�'�����q�����.�����q��,�,�f�5r7c�6�QoQoUOV]Q5P!)z�
            /*[clinic input]
            class C "void *" ""
            foo1
            [clinic start generated code]*/

            /*[clinic input]
            foo2 as .illegal. = foo1
            [clinic start generated code]*/
        zIllegal C basename: '.illegal.'r�rrrs&  r1�#test_cloned_with_illegal_c_basename�7ClinicWholeFileTest.test_cloned_with_illegal_c_basename�s#��	��0�����E�q��1r7c�^�[Q2oUOOU2UO[Q2UOO
oUO
[U2]2U]*OOQ2oU]*OOQ2oUO
U]*Q2UO
U]*Q2UOQU2UOQU2UOQU2UOQU2P!)ar
            /*[clinic input]
            @text_signature "($module, a[, b])"
            src
                a: object
                    param a
                b: object = NULL
                /

            docstring
            [clinic start generated code]*/

            /*[clinic input]
            dst = src
            [clinic start generated code]*/
        r
r�zsrc($module, a[, b])zdst($module, a[, b])z    param a�	docstring)rr
r_rWr	r/rHrr#r�r��assertNotIn)r.r�r�src_docstring_lines�dst_docstring_liness&    r1�!test_cloned_forced_text_signature�5ClinicWholeFileTest.test_cloned_forced_text_signature�s�����
�� 	
�����%� ������)����%�%������U��Q�'�#�A�h�0�0�6�6�t�<��#�A�h�0�0�6�6�t�<��	
���,�Q�/�1G�H����,�Q�/�1G�H�	
�
�
�m�%8�9��
�
�m�%8�9�	
�
�
�k�#6�7�����&9�:r7c�6�QoQoUOV]Q5P!)ax
            /*[clinic input]
            @text_signature "($module, a[, b])"
            src
                a: object
                b: object = NULL
                /
            [clinic start generated code]*/

            /*[clinic input]
            @text_signature "($module, a_override[, b])"
            dst = src
            [clinic start generated code]*/
        z2Cannot use @text_signature when cloning a functionr�rrrs&  r1�)test_cloned_forced_text_signature_illegal�=ClinicWholeFileTest.test_cloned_forced_text_signature_illegal�s$��
��C�����E�r��2r7c	�v�QFD0o[QUQUQ02oUOOU2J2	P!)r
z                /*[z| input]
                # CPP directives, valid or not, should be ignored in C comments.
                #
                [z% start generated code]*/
            )r
�python)rr
r_)r.�dslr`s&  r1�$test_ignore_preprocessor_in_comments�8ClinicWholeFileTest.test_ignore_preprocessor_in_commentssJ��%�C����5����
�	��C�
�K�K���c�"�&r7c�6�QoQoUOV!]Q5P!)z-'var_keyword_object' is not a valid converterz�
            /*[clinic input]
            my_test_func

                **kwds: object
            [clinic start generated code]*/
        r�rrr�s&  r1�test_var_keyword_non_dict�-ClinicWholeFileTest.test_var_keyword_non_dict
s#��=����	
���E�q��1r7�r
)8�__name__�
__module__�__qualname__�__firstlineno__�maxDiffrargrorurxr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	r
rrrr r'r*r/r2�__static_attributes__�__classdictcell__��
__classdict__s@r1r\r\[s�����G�:�d�:�4�:�6�1�"
C�C�C�	C�(�*C�C�C�C�
&�&�R�B&�&�&�&2� 
2�2�2�2�2�2�2�2�2�2�)8�V2�2�?�(?�(?�*.�$2�
2�+� 2�4
2�2�
2�6�$2�#;�J3�$#�	2�	2r7r\c�X`�\sQsQsnQP	QP-QksU1QkQksU1QkQksQ	sUsP!)
�ParseFileUnitTest��verify�outputc���[O[U2O22oUO	[
U29^tt^2[
UP
Q5PPP2P!)%fhP!9h)F�r;)rErFrrCrGrr')r.r9�expected_errorrArBrMs&$$$$ r1�expect_parsing_failure�(ParseFileUnitTest.expect_parsing_failuresL�����6�.�1�7�7�9�:��
�
#�
#�K��
8�
8��x�e�4�9�
8�
8�
8�s�
A%�%A6	�.A6	c� :�U]6�cPgQP-!���returnr4)�formatr=s"�r1�__annotate__�;ParseFileUnitTest.test_parse_file_no_extension.__annotate__s���
�
�d�
r7c�.�UOQQQ5P!)rz&Can't extract file type for file 'foo'�r9rE)rFrfs&r1�test_parse_file_no_extension�.ParseFileUnitTest.test_parse_file_no_extensions���#�#��C�	$�	
r7c� :�U]6�cPgQP-!rIr4)rLr=s"�r1rM�@ParseFileUnitTest.test_parse_file_strange_extension.__annotate__#s���V�V�4�Vr7c	���QQQQQQ-oUO2FD:vq#UOUQ59^tt^2UOV#Q5PPP2J<	P!)%fhJQ9h)zfoo.rsz*Can't identify file type for file 'foo.rs'zfoo.hsz*Can't identify file type for file 'foo.hs'zfoo.jsz*Can't identify file type for file 'foo.js'rerP)�itemsr-rF)r.�filenames_to_errorsr9rMs&   r1�!test_parse_file_strange_extension�3ParseFileUnitTest.test_parse_file_strange_extension#sh���B��B��B�
��
!4� 9� 9� ;��H����x��0�0��+�+�X�+�U�1�0�!<�0�0�0�s�A	�A,
�$A,
r4)	r5r6r7r8rFrQrXr:r;r<s@r1r?r?s0����5�26�5�?C�5�
�
�V�Vr7r?c�F`�\sQsQsnQsQsQsQsQsQs	Qs
UsP!)	�ClinicGroupPermuterTest�.c�B�[VU2oUOVE2P!rQ)rrH)r.�l�m�rrB�computeds&&&&& r1�_test�ClinicGroupPermuterTest._test/s��*�1��3������*r7c�:�UOQ,,Q,Q,,Q2P!)�start�stop�step))rf)rerf)rerfrg�rbrfs&r1�
test_range�"ClinicGroupPermuterTest.test_range3s#���
�
�W�I�;���F�8�*��	
r7c�<�UOQQ,,Q,Q,,Q2P!)�x�y�ch�attr))rn)rnro)rlrmrn)rlrmrnrorhrfs&r1�test_add_window�'ClinicGroupPermuterTest.test_add_window;s%���
�
�S�#�J�<�$��6�(���	
r7c�J�UO,QNQQ,,Q,QQ,,QN,Q2P!)	�a1�b1�b2�c1�d1�d2)rs�a2�a3)�e1�e2�e3))rv)rtrurv)rtrurvrwrx)rsryrzrtrurv)rsryrzrtrurvrwrx)rsryrzrtrurvrwrxr{r|r}rhrfs&r1�test_ludicrous�&ClinicGroupPermuterTest.test_ludicrousDs/���
�
�&��t��5��v��t��N`�?a��	
r7c�<�UO,,Q,Q,Q,,Q2P!)�a�br@)r4�r��r�r��r�r�r@rhrfs&r1�test_right_only�'ClinicGroupPermuterTest.test_right_onlyOs&���
�
�2�r�S�E�3�%���.��	
r7c�:�QoUO[U2P!)c�$�[Q,,,2P!r�)rr4r7r1r,�PClinicGroupPermuterTest.test_have_left_options_but_required_is_empty.<locals>.fnYs��#�S�E�2�r�2r7)�assertRaises�
ValueError�r.r,s& r1�,test_have_left_options_but_required_is_empty�DClinicGroupPermuterTest.test_have_left_options_but_required_is_emptyXs��	3����*�b�)r7r4)r5r6r7r8rbrirpr~r�r�r:r;r<s@r1r[r[.s(����+�
�
�	
�
�*�*r7r[c�X`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
UsP!)�ClinicLinearFormatTest�^c�Z�[OU1-U@oUOV$2P!rQ)�	libclinic�
linear_formatrH)r.�inputrB�kwargsras&&&, r1rb�ClinicLinearFormatTest._test_s%���*�*�5�;�F�;������*r7c�,�UOPP2P!)�rhrfs&r1�test_empty_strings�)ClinicLinearFormatTest.test_empty_stringscs���
�
�2�r�r7c�,�UOQQ2P!)r�rhrfs&r1�test_solo_newline�(ClinicLinearFormatTest.test_solo_newlinefs���
�
�4��r7c�,�UOQQ2P!)z
          abc
        rhrfs&r1�test_no_substitution�+ClinicLinearFormatTest.test_no_substitutionis���
�
���	
r7c�0�UOQQPQ5P!)�6
          abc
          {name}
          def
        z%
          abc
          def
        �rrhrfs&r1�test_empty_substitution�.ClinicLinearFormatTest.test_empty_substitutionps"���
�
����	�	r7c�0�UOQQQQ5P!)r�z6
          abc
          GARGLE
          def
        �GARGLEr�rhrfs&r1�test_single_line_substitution�4ClinicLinearFormatTest.test_single_line_substitutionzs"���
�
����	�	r7c�0�UOQQQQ5P!)r�zH
          abc
          bingle
          bungle

          def
        zbingle
bungle
r�rhrfs&r1�test_multiline_substitution�2ClinicLinearFormatTest.test_multiline_substitution�s"���
�
���%�	�
	&r7c���[OQ2oUO[U29^tt^2[O
QQQ5PPP2P!)%fhP!9h)zfound before '{marker}'z'no text before marker for you! {marker}�not allowed!��marker�rErFrGrr�r��r.�regexs& r1�test_text_before_block_marker�4ClinicLinearFormatTest.test_text_before_block_marker�sG���	�	�3�4��
�
#�
#�K��
7�
7��#�#�$M�+9�
;�8�
7�
7�
7���A�A*	�"A*	c���[OQ2oUO[U29^tt^2[O
QQQ5PPP2P!)%fhP!9h)zfound after '{marker}'z&{marker} no text after marker for you!r�r�r�r�s& r1�test_text_after_block_marker�3ClinicLinearFormatTest.test_text_after_block_marker�sG���	�	�2�3��
�
#�
#�K��
7�
7��#�#�$L�+9�
;�8�
7�
7�
7�r�r4)r5r6r7r8rbr�r�r�r�r�r�r�r�r:r;r<s@r1r�r�^s7����+���
��	�&�;�;�;r7r�c�.`�\sQsQsnQsQsQsUsP!)�InertParser�c��P!rQr4�r.r
s&&r1�__init__�InertParser.__init__����r7c��P!rQr4�r.r�s&&r1r_�InertParser.parse�r�r7r4�r5r6r7r8r�r_r:r;r<s@r1r�r��s����
�
�
r7r�c�.`�\sQsQsnQsQsQsUsP!)�
CopyParser�c��P!rQr4r�s&&r1r��CopyParser.__init__�r�r7c�*�UOUmP!rQ)r�rBr�s&&r1r_�CopyParser.parse�s
���{�{��r7r4r�r<s@r1r�r��s����
�#�#r7r�c�F`�\sQsQsnQsQsQsQsQsQs	Qs
UsP!)	�ClinicBlockParserTest�c���[P2o[[V22o[U2oSFDoUO	U2J	UO
O
2oP!rQ)r�listr#r$�print_block�fr�)r.r�rB�language�blocks�writerr�s&&&    r1rb�ClinicBlockParserTest._test�sN���T�?���k�%�2�3���h�'���E����u�%�����"�"�$�r7c�&�UOV2!rQrh)r.r�s&&r1�
round_trip� ClinicBlockParserTest.round_trip�s���z�z�%�'�'r7c�*�UOQ2P!)z@
            verbatim text here
            lah dee dah
        �r�rfs&r1�test_round_trip_1�'ClinicBlockParserTest.test_round_trip_1�s������	
r7c�*�UOQ2P!)z�
    verbatim text here
    lah dee dah
/*[inert]
abc
[inert]*/
def
/*[inert checksum: 7b18d017f89f61cf17d47f92749ea6930a3f1deb]*/
xyz
r�rfs&r1�test_round_trip_2�'ClinicBlockParserTest.test_round_trip_2�s�����	�		r7c���[P2o[UQP
Q5o[U2UOQ$[	U2UOQ$UOU2oUO
V%2P!)N�filer=�inertrX)rr(r��parsersr�r_rH)r.r�rBr�r@ras&&&   r1�_test_clinic�"ClinicBlockParserTest._test_clinic�sX���T�?���8�f�5�A��(��^��	�	�'��&�q�M��	�	�&���7�7�5�>������*r7c�,�UOQQ2P!)z�
    verbatim text here
    lah dee dah
/*[copy input]
def
[copy start generated code]*/
abc
/*[copy end generated code: output=03cfd743661f0797 input=7b18d017f89f61cf]*/
xyz
z�
    verbatim text here
    lah dee dah
/*[copy input]
def
[copy start generated code]*/
def
/*[copy end generated code: output=7b18d017f89f61cf input=7b18d017f89f61cf]*/
xyz
)r�rfs&r1�
test_clinic_1�#ClinicBlockParserTest.test_clinic_1�s�����	�	�	r7r4)r5r6r7r8rbr�r�r�r�r�r:r;r<s@r1r�r��s)����k�(�
�

�+��r7r�c�Z`�\sQsQsnQsQ�QksQPQPQP	-QksQsQ	sQ
s	Qs
QsQ
sQs
QsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQ sQ!s Q"s!Q#s"Q$s#Q%s$Q&s%Q's&Q(s'Q)s(Q*s)Q+s*Q,s+Q-s,Q.s-Q/s.Q0s/Q1s0Q2s1Q3s2Q4s3Q5s4Q6s5Q7s6Q8s7Q9s8Q:s9Q;s:Q<s;Q=s<Q>s=Q?s>Q@s?QAs@QBsAQCsBQDsCQEsDQFsEQGsFQHsGQIsHQJsIQKsJQLsKQMsLQNsMQOsNQPsOQQsPQRsQQSsRQTsSQUsTQVsUQWsVQXsWQYsXQZsYQ[sZQ\s[Q]s\Q^s]Q_s^Q`s_Qas`QbsaQcsbQdscQesdQfseQgsfQhsgQishQjsiQksjQlskQmslQnsmQosnQpsoQqspQrsqQssrQtssQustQvsuQwsvQxswQysxQzsyQ{szQ|s{Q}s|Q~s}Qs~Q�sQ�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Us�P!)��ClinicParserTest��c�j�[2o[U2o[U2oUOU2U!rQ)rAr&r"r_)r.�textr@rKr�s&&   r1r_�ClinicParserTest.parse�s,���N���1����d������U���r7c��UOU2oUOoUO[U2U2VS*!rQ)r_�
signaturesrHr)r.r��signatures_in_block�function_indexr��ss&&&&  r1�parse_function�ClinicParserTest.parse_function�s;���
�
�4� ����������Q��!4�5�� � r7r9rBrCc
�6�[VOVV4UQ5!))r9rBrC)rOr�)r.r�rtr9rBrCs&&&$$$r1ra�ClinicParserTest.expect_failure�s ���t�%8�%8�%�(0�u�N�	Nr7c��UO[UQ22UO[U2O	2UO
O	22P!)r#)�
assertTrue�hasattrrHrrCr#)r.r,r�s&&&r1�checkDocstring�ClinicParserTest.checkDocstringsC�������K�0�1������)�/�/�1����+�+�-�	/r7c���[[22o[Q2oUOU2UOvq4UOQUO2UOQUO2P!)z5
            module os
            os.access
        �access�os)r&rAr"r_r�rHr)r.rKr��module�functions&    r1�test_trivial�ClinicParserTest.test_trivialsa���<�>�*����
��	���U�� �+�+�������8�=�=�1�����v�{�{�+r7c���UO[Q22oUOvq#UOQUO2UOQUO2P!)zC
            #
            module os
            os.access
        rr)r_rr�rHr)r.r�rrs&   r1�test_ignore_line�!ClinicParserTest.test_ignore_linesT���
�
�6�#�
���
!�+�+�������8�=�=�1�����v�{�{�+r7c�J�UOQ2oUOQUO2UO][UO22UOQ*oUOQUO2UOUO[2P!)zO
            module os
            os.access
                path: int
        r�path)r�rHrr�
parameters�assertIsInstance�	converterr�r.r�ps&  r1�
test_param�ClinicParserTest.test_params����&�&�(�
��
	
����8�=�=�1�����C�� 3� 3�4�5�����'���������(����a�k�k�=�9r7c��UOQ2oUOQ*oUOP	UO2P!)zb
            module os
            os.access
                follow_symlinks: bool = True
        �follow_symlinks�r�r
rH�defaultrs&  r1�test_param_default�#ClinicParserTest.test_param_default's>���&�&�(�
��

��� 1�2������q�y�y�)r7c��UOQ2oUOQ*oUOP	UO2P!)z�
            module os
            os.access
                follow_symlinks: \
                bool \
                = \
                True
        rrrs&  r1�test_param_with_continuations�.ClinicParserTest.test_param_with_continuations0s>���&�&�(�
��
��� 1�2������q�y�y�)r7c��UOQ2oUOQ*oUOUOP2UO	UO
OQ2UO	UO
OQ2UOQ*oUOUOP2UO	UO
OQ2UO	UO
OQ2UOQ*oUOUOP2UO	UO
OQ2UO	UO
OQ2P!)z�
            module test
            test.func
                obj: object = None
                str: str(accept={str, NoneType}) = None
                buf: Py_buffer(accept={str, buffer, NoneType}) = None
            �obj�None�Py_None�strr�buf�{NULL, NULL}�r�r
�assertIsrrHr�
py_default�	c_defaultrs&  r1�test_param_default_none�(ClinicParserTest.test_param_default_none<s���&�&�(���
����&���
�
�a�i�i��&�������/�/��8�������.�.�	�:�����&���
�
�a�i�i��&�������/�/��8�������.�.��7�����&���
�
�a�i�i��&�������/�/��8�������.�.��?r7c� �UOQ2oUOQ*oUOUO[2UOUOOQ2UOUOOQ2UOQ*oUOUO[2UOUOOQ2UOUOOQ2UOQ*oUOUO[2UOUOOQ2UOUOOQ2UOQ*oUOUO[2UOUOOQ2UOUOOQ2UOQ*oUOUO[2UOUOOQ2UOUOOQ2P!)	a
            module test
            test.func
                obj: object = NULL
                str: str = NULL
                buf: Py_buffer = NULL
                fsencoded: unicode_fs_encoded = NULL
                fsdecoded: unicode_fs_decoded = NULL
            rz<unrepresentable>rr!r"r#�	fsencoded�	fsdecoded)	r�r
r%rrrHrr&r'rs&  r1�test_param_default_null�(ClinicParserTest.test_param_default_nullSs����&�&�(���
����&���
�
�a�i�i��&�������/�/�1D�E�������.�.��7�����&���
�
�a�i�i��&�������/�/�1D�E�������.�.��7�����&���
�
�a�i�i��&�������/�/�1D�E�������.�.��?�����,���
�
�a�i�i��&�������/�/�1D�E�������.�.��7�����,���
�
�a�i�i��&�������/�/�1D�E�������.�.��7r7c��UOQ2oUOQ*oUOUOQ2UOUOO
Q2UOUOOQ2UOQ*oUOUOQ2UOUOO
Q2UOUOOQ2P!)z�
            module test
            test.func
                str: str = ' \t\n\r\v\f\xa0'
                buf: Py_buffer(accept={str, buffer}) = ' \t\n\r\v\f\xa0'
            r!u 	

 z' \t\n\r\x0b\x0c\xa0'z" \t\n\r\v\f\u00a0"r"z5{.buf = " \t\n\r\v\f\302\240", .obj = NULL, .len = 8}�r�r
rHrrr&r'rs&  r1�test_param_default_str_literal�/ClinicParserTest.test_param_default_str_literalvs����&�&�(���
����&��������$5�6�������/�/�1I�J�������.�.�0F�G�����&��������$5�6�������/�/�1I�J�������.�.�Q�	Sr7c��UOQ2oUOQ*oUOUOQ2UOUOO
Q2UOUOOQ2UOQ*oUOUOQ2UOUOO
Q2UOUOOQ2P!)z�
            module test
            test.func
                str: str(accept={robuffer}) = b' \t\n\r\v\f\xa0'
                buf: Py_buffer = b' \t\n\r\v\f\xa0'
            r!s 	

�zb' \t\n\r\x0b\x0c\xa0'z" \t\n\r\v\f\240"r"z1{.buf = " \t\n\r\v\f\240", .obj = NULL, .len = 7}r0rs&  r1� test_param_default_bytes_literal�1ClinicParserTest.test_param_default_bytes_literal�s����&�&�(���
����&��������$6�7�������/�/�1J�K�������.�.�0D�E�����&��������$6�7�������/�/�1J�K�������.�.�M�	Or7c��UOQ2oUOQ*oUOUOQ2UOUOO
Q2UOUOOQ2UOQ*oUOUOQ2UOUOO
Q2UOUOOQ2UOQ	*oUOUOQ
2UOUOO
Q2UOUOOQ2UOQ
*oUOUOQ2UOUOO
Q2UOUOOQ2P!)z�
            module test
            test.func
                zero: char = b'\0'
                one: char = b'\1'
                lf: char = b'\n'
                nbsp: char = b'\xa0'
            �zero�zb'\x00'z'\0'�one�zb'\x01'z'\001'�lf�
zb'\n'�'\n'�nbsp��zb'\xa0'z'\240'r0rs&  r1�test_param_default_byte_literal�0ClinicParserTest.test_param_default_byte_literal�sy���&�&�(���
����'��������E�*�������/�/��<�������.�.��8�����&��������E�*�������/�/��<�������.�.�	�:�����%��������E�*�������/�/��:�������.�.��8�����'��������G�,�������/�/��<�������.�.�	�:r7c��UOQ2oUOQ*oUOUOQ2UOUOO
Q2UOUOOQ2UOQ*oUOUOQ2UOUOO
Q2UOUOOQ2UOQ	*oUOUOQ
2UOUOO
Q2UOUOOQ2UOQ*oUOUOQ
2UOUOO
Q2UOUOOQ2UOQ*oUOUOQ2UOUOO
Q2UOUOOQ2P!)a.
            module test
            test.func
                zero: int(accept={str}) = '\0'
                one: int(accept={str}) = '\1'
                lf: int(accept={str}) = '\n'
                nbsp: int(accept={str}) = '\xa0'
                snake: int(accept={str}) = '\U0001f40d'
            r7�z'\x00'�0r9�z'\x01'�0x01r;r�r=r>� z'\xa0'�0xa0�snake�🐍u'🐍'�0x1f40dr0rs&  r1�test_param_default_unicode_char�0ClinicParserTest.test_param_default_unicode_char�s����&�&�(���
����'��������D�)�������/�/��;�������.�.��4�����&��������D�)�������/�/��;�������.�.��7�����%��������D�)�������/�/��9�������.�.��8�����'��������F�+�������/�/��;�������.�.��7�����(��������L�1�������/�/��@�������.�.�	�:r7c��UOQ2oUOQ*oUOUOP	2UO	UO
OQ2UO	UO
OQ2UOQ*oUOUOP	2UO	UO
OQ2UO	UO
OQ2UOQ*oUO	UO]2UO	UO
OQ2UO	UO
OQ2P!)z�
            module test
            test.func
                bool: bool = True
                intbool: bool(accept={int}) = True
                intbool2: bool(accept={int}) = 2
            �bool�True�1�intbool�intbool2�2r$rs&  r1�test_param_default_bool�(ClinicParserTest.test_param_default_bool�s���&�&�(���
����'���
�
�a�i�i��&�������/�/��8�������.�.��4����	�*���
�
�a�i�i��&�������/�/��8�������.�.��4����
�+��������A�&�������/�/��5�������.�.��4r7c��UOQ2oUOQ*oUO[OUO
2UOQUOO2QoQoUOVC]Q5P!)z�
            module os
            os.access
                follow_symlinks: int(c_default='MAXSIZE') = sys.maxsize
            r�MAXSIZEzlWhen you specify a named constant ('sys.maxsize') as your default value, you MUST specify a valid c_default.zh
            module os
            os.access
                follow_symlinks: int = sys.maxsize
        r�)	r�r
rH�sys�maxsizerrr'ra)r.rrrtr�s&    r1�&test_param_default_expr_named_constant�7ClinicParserTest.test_param_default_expr_named_constant�s����&�&�(���

��� 1�2��������a�i�i�0�����A�K�K�$9�$9�:�
2�	���
	
���E�q��1r7c
���QoQoQFDKoUOUQ59^tt^2UOUQ5oUOVB]Q5PPP2JM	P!)%fhJb9h)zf
            module os
            os.access
                follow_symlinks: int = {default}
        z'Unsupported expression as default value)�bad_default)rr�)z	{1, 2, 3}z3 if bool() else 4z[x for x in range(42)])r-rLra)r.�templatert�bad_default_valuer�s&    r1�/test_param_with_bizarre_default_fails_correctly�@ClinicParserTest.test_param_with_bizarre_default_fails_correctlysi����
8��"
��
���*;��<�<� ���0A��B���#�#�E�q�#�9�=�<�"
�
=�<�<�s�&A	�A+
�#A+
c�l�QoQoUOV]Q5oUOQ[U22P!)z}
            module os
            os.access
                follow_symlinks: int(c_default='MAXSIZE') = unspecified
        z+'unspecified' is not a legal default value!r��+Malformed expression given as default value)rar$r!)r.r�rt�excs&   r1�-test_unspecified_not_allowed_as_default_value�>ClinicParserTest.test_unspecified_not_allowed_as_default_values:����
<���!�!�%�Q�!�7�����F��C��Qr7c�6�QoQoUOV]Q5P!)zu
            module os
            os.access
                follow_symlinks: int(c_default='MAXSIZE') = 1/0
        rdr�rrrs&  r1�*test_malformed_expression_as_default_value�;ClinicParserTest.test_malformed_expression_as_default_value s#����
<�����E�q��1r7c�6�QoQoUOV!]Q5P!)zcWhen you specify an expression ('a + b') as your default value, you MUST specify a valid c_default.zE
            fn
                follow_symlinks: int = a + b
        r�rrr�s&  r1�test_param_default_expr_binop�.ClinicParserTest.test_param_default_expr_binop)s(��
2�	���	
���E�q��1r7c���UOQ2oUO][UO22UOQ*OoUOU[2P!)z�
            module os
            os.access
                follow_symlinks: bool = True
                something_else: str = ''
        �something_else)r�rHrr
rrr)r.r�convs&  r1�test_param_no_docstring�(ClinicParserTest.test_param_no_docstring4s[���&�&�(�
��	
����C�� 3� 3�4�5��"�"�#3�4�>�>�����d�M�2r7c�6�QoQoUOV!]Q5P!)z]Can't have a parameter without a default ('something_else') after a parameter with a default!z�
            module os
            os.access
                follow_symlinks: bool = True
                something_else: str
        r�rrr�s&  r1�*test_param_default_parameters_out_of_order�;ClinicParserTest.test_param_default_parameters_out_of_order?s(��
0�	���	
���E�q��1r7c��UOQ2oUOQ*oUO]UOOQ*2P!)z^
            module os
            os.access
                path: path_t(allow_fd=1)
        r�allow_fd)r�r
rHr�argsrs&  r1�!disabled_test_converter_arguments�2ClinicParserTest.disabled_test_converter_argumentsLsH���&�&�(�
��

����'������A�K�K�,�,�Z�8�9r7c�N�UOQ2oUOUQ2P!)a�
            module os
            os.stat as os_stat_fn

               path: str
                   Path to be examined
                   Ensure that multiple lines are indented correctly.

            Perform a stat system call on the given path.

            Ensure that multiple lines are indented correctly.
            Ensure that multiple lines are indented correctly.
        ap
            stat($module, /, path)
            --

            Perform a stat system call on the given path.

              path
                Path to be examined
                Ensure that multiple lines are indented correctly.

            Ensure that multiple lines are indented correctly.
            Ensure that multiple lines are indented correctly.
        �r�r��r.rs& r1�test_function_docstring�(ClinicParserTest.test_function_docstringUs.���&�&�(�
��	
���H�'�	
r7c�N�UOQ2oUOUQ2P!)z�module t
t.s
   a: object
      Param docstring with trailing whitespace  
Func docstring summary with trailing whitespace  
  
Func docstring body with trailing whitespace  
z�
            s($module, /, a)
            --

            Func docstring summary with trailing whitespace

              a
                Param docstring with trailing whitespace

            Func docstring body with trailing whitespace
        r|r}s& r1�"test_docstring_trailing_whitespace�3ClinicParserTest.test_docstring_trailing_whitespaceqs.���&�&�
?�
��	
���H�
'�
	
r7c�`�UO[Q22oUOUQ2P!)z�
            module foo
            foo.bar
              x: int
                 Documentation for x.
              y: int

            This is the documentation for foo.

            Okay, we're done here.
        ��
            bar($module, /, x, y)
            --

            This is the documentation for foo.

              x
                Documentation for x.

            Okay, we're done here.
        �r�rr�r}s& r1�%test_explicit_parameters_in_docstring�6ClinicParserTest.test_explicit_parameters_in_docstring�s5���&�&�v�
/�
(
�
��	
���H�
'�
	
r7c�`�UO[Q22oUOUQ2P!)a

            module foo
            foo.bar
              x: int
                 # We're about to have
                 # the documentation for x.
                 Documentation for x.
                 # We've just had
                 # the documentation for x.
              y: int

            # We're about to have
            # the documentation for foo.
            This is the documentation for foo.
            # We've just had
            # the documentation for foo.

            Okay, we're done here.
        r�r�r}s& r1�test_docstring_with_comments�-ClinicParserTest.test_docstring_with_comments�s5���&�&�v�/�(
���&	
���H�
'�
	
r7c�`�UO[Q22oUOUQ2P!)zt
            module os
            os.stat
                path: str
            This/used to break Clinic!
        zc
            stat($module, /, path)
            --

            This/used to break Clinic!
        r�r}s& r1�Ttest_parser_regression_special_character_in_parameter_column_of_docstring_first_line�eClinicParserTest.test_parser_regression_special_character_in_parameter_column_of_docstring_first_line�s5���&�&�v�/�(
���	
���H�'�	
r7c�b�UOQ2oUOQUO2P!)zA
            module os
            os.stat as os_stat_fn
        �
os_stat_fn)r�rHrr}s& r1�test_c_name�ClinicParserTest.test_c_name�s/���&�&�(�
��	
����x�':�':�;r7c�6�QoQoUOV]Q5P!)z\
            module os
            os.stat
                invalid syntax: int = 42
        zPFunction 'stat' has an invalid parameter declaration: 'invalid syntax: int = 42'r�rrrs&  r1�test_base_invalid_syntax�)ClinicParserTest.test_base_invalid_syntax�s$����
a�����E�q��1r7c�6�QoQoUOV]Q5P!)z[
            module os
            os.stat
                x: int = invalid syntax
        z5Function 'stat' has an invalid parameter declaration:r�rrrs&  r1�!test_param_default_invalid_syntax�2ClinicParserTest.test_param_default_invalid_syntax�s$����
F�����E�q��1r7c��QoQo[O29^tt^2oUOV]Q5PPP2[Q2oWO	2oUOVC2P!)%fhK>9h)zn
            cloned = fooooooooooooooooo
            This is trying to clone a nonexistent function!!
        z5Couldn't find existing function 'fooooooooooooooooo'!r�z�            cls=None, module=<clinic.Clinic object>, existing='fooooooooooooooooo'
            (cls or module).functions=[]
        )r�captured_stderrrarr�r�)r.r�rt�stderr�expected_debug_prints&    r1�1test_cloning_nonexistent_function_correctly_fails�BClinicParserTest.test_cloning_nonexistent_function_correctly_fails�sn����F��
�
$�
$�
&�
&�&�����1��5�'�%�'� 
�����"���
�
�*�3�'�
&�s�A-�-A=	�6A=	c�j�UOQ2oUOUO[2P!)z:
            module os
            os.stat -> int
        )r�r�return_converterr!r}s& r1�test_return_converter�&ClinicParserTest.test_return_converter�s0���&�&�(�
��	
���h�7�7�9M�Nr7c�2�QoQoUOV2P!)zE
            module os
            os.stat -> invalid syntax
        z7Badly formed annotation for 'os.stat': 'invalid syntax'rrrs&  r1�$test_return_converter_invalid_syntax�5ClinicParserTest.test_return_converter_invalid_syntax�s����H�����E�'r7c�2�QoQoUOV2P!)z:
            module os
            os.stat -> "s"
        z6Legacy converter 's' not allowed as a return converterrrrs&  r1�5test_legacy_converter_disallowed_in_return_annotation�FClinicParserTest.test_legacy_converter_disallowed_in_return_annotations����G�����E�'r7c�2�QoQoUOV2P!)zO
            module os
            os.stat -> fooooooooooooooooooooooo
        z?No available return converter called 'fooooooooooooooooooooooo'rrrs&  r1�test_unknown_return_converter�.ClinicParserTest.test_unknown_return_converters����P�����E�'r7c���UOQ2oUOQ*oUO[OO
UO2UO]UO2P!)zt
            module os
            os.access
                *
                follow_symlinks: bool = True
        r)r�r
rH�inspectr�KEYWORD_ONLY�kind�grouprs&  r1�	test_star�ClinicParserTest.test_stars^���&�&�(�
��
��� 1�2������*�*�7�7����@�����A�G�G�$r7c��UOQ2oUOQ*oUO]UO2P!)z�
            module window
            window.border
                [
                ls: int
                ]
                /
        �ls)r�r
rHr�rs&  r1�
test_group�ClinicParserTest.test_groups=���&�&�(�
��
����%������A�G�G�$r7c	��UOQ2oQoSFD�vq4UOV4Q59^tt^2UOU*oUOUOU2UOUO
[OO2PPP2J�	UOUQ2P!)%fhJ�9h)a�
            module curses
            curses.addch
                [
                y: int
                    Y-coordinate.
                x: int
                    X-coordinate.
                ]
                ch: char
                    Character to add.
                [
                attr: long
                    Attributes for the character.
                ]
                /
        �rr�a
            addch([y, x,] ch, [attr])


              y
                Y-coordinate.
              x
                X-coordinate.
              ch
                Character to add.
              attr
                Attributes for the character.
        ))rm���)rlr��rnr)ro��
r�r-r
rHr�r�r�r�POSITIONAL_ONLYr��r.r�datasetrr�rs&     r1�test_left_group� ClinicParserTest.test_left_group+s����&�&�(�
��"
��
#�K�D����4��5�5��'�'��-��� � ����%�0�� � �����):�):�)J�)J�K�6�5�#�
	
���H�'�	
�	6�5�5���A$B;	�;C
�C
c	��UOQ2oQoSFD�vq4UOV4Q59^tt^2UOU*oUOUOU2UOUO
[OO2PPP2J�	UOUQ2P!)%fhJ�9h)a�
            module curses
            curses.imaginary
               [
               [
               y1: int
                 Y-coordinate.
               y2: int
                 Y-coordinate.
               ]
               x1: int
                 X-coordinate.
               x2: int
                 X-coordinate.
               ]
               ch: char
                 Character to add.
               [
               attr1: long
                 Attributes for the character.
               attr2: long
                 Attributes for the character.
               attr3: long
                 Attributes for the character.
               [
               attr4: long
                 Attributes for the character.
               attr5: long
                 Attributes for the character.
               attr6: long
                 Attributes for the character.
               ]
               ]
               /
        r�a�
            imaginary([[y1, y2,] x1, x2,] ch, [attr1, attr2, attr3, [attr4, attr5,
                      attr6]])


              y1
                Y-coordinate.
              y2
                Y-coordinate.
              x1
                X-coordinate.
              x2
                X-coordinate.
              ch
                Character to add.
              attr1
                Attributes for the character.
              attr2
                Attributes for the character.
              attr3
                Attributes for the character.
              attr4
                Attributes for the character.
              attr5
                Attributes for the character.
              attr6
                Attributes for the character.
        ))�y1���)�y2r�)�x1r�)�x2r�r�)�attr1r�)�attr2r�)�attr3r�)�attr4rJ)�attr5rJ)�attr6rJr�r�s&     r1�test_nested_groups�#ClinicParserTest.test_nested_groupsUs����&�&�"(�"
��F
��#�K�D����4��5�5��'�'��-��� � ����%�0�� � �����):�):�)J�)J�K�6�5�#�	
���H�'�	
�6�5�5�r�c�6�QoQoUOV!]Q5P!)z`Function 'two_top_groups_on_left' has an unsupported group configuration. (Unexpected state 2.b)z�
            module foo
            foo.two_top_groups_on_left
                [
                group1 : int
                ]
                [
                group2 : int
                ]
                param: int
        r�rrr�s&  r1�0test_disallowed_grouping__two_top_groups_on_left�AClinicParserTest.test_disallowed_grouping__two_top_groups_on_left�s(��
4�	�
��	
���E�q��1r7c�2�QoQoUOV2P!)z�
            module foo
            foo.two_top_groups_on_right
                param: int
                [
                group1 : int
                ]
                [
                group2 : int
                ]
        zaFunction 'two_top_groups_on_right' has an unsupported group configuration. (Unexpected state 6.b)rrrs&  r1�1test_disallowed_grouping__two_top_groups_on_right�BClinicParserTest.test_disallowed_grouping__two_top_groups_on_right��#��
��
4�	�	
���E�'r7c�2�QoQoUOV2P!)z�
            module foo
            foo.parameter_after_group_on_right
                param: int
                [
                [
                group1 : int
                ]
                group2 : int
                ]
        zfFunction parameter_after_group_on_right has an unsupported group configuration. (Unexpected state 6.a)rrrs&  r1�8test_disallowed_grouping__parameter_after_group_on_right�IClinicParserTest.test_disallowed_grouping__parameter_after_group_on_right�r�r7c�2�QoQoUOV2P!)z�
            module foo
            foo.group_after_parameter_on_left
                [
                group2 : int
                [
                group1 : int
                ]
                ]
                param: int
        zgFunction 'group_after_parameter_on_left' has an unsupported group configuration. (Unexpected state 2.b)rrrs&  r1�7test_disallowed_grouping__group_after_parameter_on_left�HClinicParserTest.test_disallowed_grouping__group_after_parameter_on_left�r�r7c�2�QoQoUOV2P!)z�
            module foo
            foo.empty_group
                [
                [
                ]
                group2 : int
                ]
                param: int
        �ZFunction 'empty_group' has an empty group. All groups must contain at least one parameter.rrrs&  r1�-test_disallowed_grouping__empty_group_on_left�>ClinicParserTest.test_disallowed_grouping__empty_group_on_left��#��	��
>�	�	
���E�'r7c�2�QoQoUOV2P!)z�
            module foo
            foo.empty_group
                param: int
                [
                [
                ]
                group2 : int
                ]
        r�rrrs&  r1�.test_disallowed_grouping__empty_group_on_right�?ClinicParserTest.test_disallowed_grouping__empty_group_on_right�r�r7c�2�QoQoUOV2P!)z�
            module foo
            foo.empty_group
                param: int
                ]
                group2: int
                ]
        z7Function 'empty_group' has a ']' without a matching '['rrrs&  r1�-test_disallowed_grouping__no_matching_bracket�>ClinicParserTest.test_disallowed_grouping__no_matching_bracket
s����H�����E�'r7c	��QoQoSFD7oUOUQ59^tt^2UOV22PPP2J9	P!)%fhJN9h)�o
            with_kwds
                [
                *
                a: object
                ]
        z\You cannot use optional groups ('[' and ']') unless all parameters are positional-only ('/')�r�)r�z]
            with_kwds
                [
                a: object
                ]
        z`
            with_kwds
                [
                **kwds: dict
                ]
        �r-ra�r.r�rtr�s&   r1�/test_disallowed_grouping__must_be_position_only�@ClinicParserTest.test_disallowed_grouping__must_be_position_onlysP��
��$
3�	��E����E��*�*��#�#�E�/�+�*��*�*�*���A	�A
�A
c��UOQ2oUOQUO2UO][UO22P!)zL
            module foo
            foo.bar

            Docstring

        zbar($module, /)
--

Docstring�r�rHr#rr
r}s& r1�test_no_parameters�#ClinicParserTest.test_no_parameters3sK���&�&�(�
��	
���;�X�=O�=O�P�����C�� 3� 3�4�5r7c��UOQ]]Q5oUOQUO2UO][UO22P!)z�
            module foo
            class foo.Bar "unused" "notneeded"
            foo.Bar.__init__

            Docstring

        �r�r�zBar()
--

Docstringr�r}s& r1�test_init_with_no_parameters�-ClinicParserTest.test_init_with_no_parameters>sW���&�&�(�"#�1�'�6��	
���1�8�3E�3E�F�����C�� 3� 3�4�5r7c�2�QoQoUOV2P!)zM
            module foo
            foo.bar => int
                /
        z'Illegal function name: 'foo.bar => int'rrrs&  r1�test_illegal_module_line�)ClinicParserTest.test_illegal_module_lineMs����
8�����E�'r7c�2�QoQoUOV2P!)zM
            module foo
            foo.bar as 935
                /
        zIllegal C basename: '935'rrrs&  r1�test_illegal_c_basename�(ClinicParserTest.test_illegal_c_basenameVs����
*�����E�'r7c�6�QoQoUOVP
Q5P!)zfoo as r)rCrrrs&  r1�test_no_c_basename�#ClinicParserTest.test_no_c_basename_s����9�����E�e��4r7c�2�QoQoUOV2P!)zX
            module foo
            foo.bar
                *
                *
        �'Function 'bar' uses '*' more than once.rrrs&  r1�test_single_star�!ClinicParserTest.test_single_stards����8�����E�'r7c	��QoQoSFD7oUOUQ59^tt^2UOV22PPP2J9	P!)%fhJN9h)�module foo
foo.bar
  *z:Function 'bar' specifies '*' without following parameters.r�)rz&module foo
foo.bar
  *
Docstring here.z"module foo
foo.bar
  this: int
  *z-module foo
foo.bar
  this: int
  *
Docstring.r�r�s&   r1�#test_parameters_required_after_star�4ClinicParserTest.test_parameters_required_after_starnsL��
��K���E����E��*�*��#�#�E�/�+�*��*�*�*�r�c	��QoSFDhvq#UOV#Q59^tt^2UOU2oUOP*oUOUOU2PPP2Jj	P!)%fhJ9h)�T�rrL))r
zL
                class T "void *" ""
                T.__init__
            )zm.Tz�
                module m
                class m.T "void *" ""
                @classmethod
                m.T.__new__
            )zm.T.Cz�
                module m
                class m.T "void *" ""
                class m.T.C "void *" ""
                m.T.C.__init__
            �r-r_r�rH�fulldisplayname�r.r�rrLr��funcs&     r1�test_fulldisplayname_class�+ClinicParserTest.test_fulldisplayname_classzsn��
��$"�J�D����4��3�3��
�
�4�(���'�'��+��� � ��!5�!5�t�<�4�3�"�3�3�3���AA5	�5B
�>B
c	��QoSFDhvq#UOV#Q59^tt^2UOU2oUOP*oUOUOU2PPP2Jj	P!)%fhJ9h)rr))rr)zm.funcz=
                module m
                m.func
            )zT.methzH
                class T "void *" ""
                T.meth
            )zm.T.methze
                module m
                class m.T "void *" ""
                m.T.meth
            )z
m.T.C.methz�
                module m
                class m.T "void *" ""
                class m.T.C "void *" ""
                m.T.C.meth
            rrs&     r1�test_fulldisplayname_meth�*ClinicParserTest.test_fulldisplayname_meth�sn��
��,"�J�D����4��3�3��
�
�4�(���'�'��+��� � ��!5�!5�t�<�4�3�"�3�3�3�rc�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                this: int
                * [from 3]
            Docstring.
        zdFunction 'bar': expected format '[from major.minor]' where 'major' and 'minor' are integers; got '3'r�rrrs&  r1�test_depr_star_invalid_format_1�0ClinicParserTest.test_depr_star_invalid_format_1�s(����
>�	�	
���E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                this: int
                * [from a.b]
            Docstring.
        zfFunction 'bar': expected format '[from major.minor]' where 'major' and 'minor' are integers; got 'a.b'r�rrrs&  r1�test_depr_star_invalid_format_2�0ClinicParserTest.test_depr_star_invalid_format_2�s)����
@�	�	
���E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                this: int
                * [from 1.2.3]
            Docstring.
        zhFunction 'bar': expected format '[from major.minor]' where 'major' and 'minor' are integers; got '1.2.3'r�rrrs&  r1�test_depr_star_invalid_format_3�0ClinicParserTest.test_depr_star_invalid_format_3�s)����
B�	�	
���E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                this: int
                * [from 3.14]
            Docstring.
        �EFunction 'bar' specifies '* [from ...]' without following parameters.r�rrrs&  r1�(test_parameters_required_after_depr_star�9ClinicParserTest.test_parameters_required_after_depr_star�s(����
$�	�	
���E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                * [from 3.14]
                *
                b: int
            Docstring.
        r r�rrrs&  r1�)test_parameters_required_after_depr_star2�:ClinicParserTest.test_parameters_required_after_depr_star2��(����
$�	�	
���E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                * [from 3.14]
                *args: tuple
                b: int
            Docstring.
        r r�rrrs&  r1�)test_parameters_required_after_depr_star3�:ClinicParserTest.test_parameters_required_after_depr_star3�r&r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                *
                * [from 3.14]
                b: int
            Docstring.
        �/Function 'bar': '* [from ...]' must precede '*'r�rrrs&  r1�$test_depr_star_must_come_before_star�5ClinicParserTest.test_depr_star_must_come_before_star�$����@�����E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                *args: tuple
                * [from 3.14]
                b: int
            Docstring.
        r+r�rrrs&  r1�&test_depr_star_must_come_before_vararg�7ClinicParserTest.test_depr_star_must_come_before_varargr.r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                * [from 3.14]
                b: int
                * [from 3.14]
                c: int
            Docstring.
        z3Function 'bar' uses '* [from 3.14]' more than once.r�rrrs&  r1�test_depr_star_duplicate�)ClinicParserTest.test_depr_star_duplicate"�$��	��D�����E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                * [from 3.14]
                b: int
                * [from 3.15]
                c: int
            Docstring.
        z<Function 'bar': '* [from 3.15]' must precede '* [from 3.14]'r�rrrs&  r1�test_depr_star_duplicate2�*ClinicParserTest.test_depr_star_duplicate20�$��	��M�����E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                / [from 3.14]
                b: int
                / [from 3.14]
                c: int
            Docstring.
        z3Function 'bar' uses '/ [from 3.14]' more than once.r�rrrs&  r1�test_depr_slash_duplicate�*ClinicParserTest.test_depr_slash_duplicate>r5r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                / [from 3.15]
                b: int
                / [from 3.14]
                c: int
            Docstring.
        z<Function 'bar': '/ [from 3.14]' must precede '/ [from 3.15]'r�rrrs&  r1�test_depr_slash_duplicate2�+ClinicParserTest.test_depr_slash_duplicate2Lr9r7c�2�QoQoUOV2P!)zX
            module foo
            foo.bar
                /
                /
        �MFunction 'bar' has an unsupported group configuration. (Unexpected state 0.d)rrrs&  r1�test_single_slash�"ClinicParserTest.test_single_slashZ�#����
%�	�	
���E�'r7c�6�QoQoUOV]Q5P!)zi
            module foo
            foo.bar
                / [from 3.14]
            Docstring.
        �EFunction 'bar' specifies '/ [from ...]' without preceding parameters.r�rrrs&  r1�*test_parameters_required_before_depr_slash�;ClinicParserTest.test_parameters_required_before_depr_slashgs(����
$�	�	
���E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                /
                / [from 3.14]
            Docstring.
        rFr�rrrs&  r1�+test_parameters_required_before_depr_slash2�<ClinicParserTest.test_parameters_required_before_depr_slash2ts(����
$�	�	
���E�q��1r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
                a: int
                /
                b: int
                /
        z'Function 'bar' uses '/' more than once.rrrs&  r1�test_double_slash�"ClinicParserTest.test_double_slash�s����8�����E�'r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               y: int
               *
               z: int
               /
        �$Function 'bar': '/' must precede '*'rrrs&  r1�test_slash_after_star�&ClinicParserTest.test_slash_after_star������5�����E�'r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               y: int
               *args: tuple
               z: int
               /
        rPrrrs&  r1�test_slash_after_vararg�(ClinicParserTest.test_slash_after_vararg�rSr7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               y: int
               **kwds: dict
               z: int
               /
        �OFunction 'bar' has an invalid parameter declaration (**kwargs?): '**kwds: dict'rrrs&  r1�test_slash_after_var_keyword�-ClinicParserTest.test_slash_after_var_keyword������`�����E�'r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               y: int
               **kwds: dict
               z: int
               *
        rXrrrs&  r1�test_star_after_var_keyword�,ClinicParserTest.test_star_after_var_keyword�r[r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               y: int
               **kwds: dict
               z: int
        rXrrrs&  r1� test_parameter_after_var_keyword�1ClinicParserTest.test_parameter_after_var_keyword�s����`�����E�'r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                * [from 3.14]
                /
                b: int
            Docstring.
        z/Function 'bar': '/' must precede '* [from ...]'r�rrrs&  r1�$test_depr_star_must_come_after_slash�5ClinicParserTest.test_depr_star_must_come_after_slash�r.r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                * [from 3.14]
                / [from 3.14]
                b: int
            Docstring.
        z:Function 'bar': '/ [from ...]' must precede '* [from ...]'r�rrrs&  r1�)test_depr_star_must_come_after_depr_slash�:ClinicParserTest.test_depr_star_must_come_after_depr_slash�s$����K�����E�q��1r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                *
                / [from 3.14]
                b: int
            Docstring.
        �/Function 'bar': '/ [from ...]' must precede '*'r�rrrs&  r1�$test_star_must_come_after_depr_slash�5ClinicParserTest.test_star_must_come_after_depr_slash�r.r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                *args: tuple
                / [from 3.14]
                b: int
            Docstring.
        rir�rrrs&  r1�&test_vararg_must_come_after_depr_slash�7ClinicParserTest.test_vararg_must_come_after_depr_slash�r.r7c�6�QoQoUOV]Q5P!)z�
            module foo
            foo.bar
                a: int
                / [from 3.14]
                /
                b: int
            Docstring.
        z/Function 'bar': '/' must precede '/ [from ...]'r�rrrs&  r1�%test_depr_slash_must_come_after_slash�6ClinicParserTest.test_depr_slash_must_come_after_slash	r.r7c�2�QoQoUOV2P!)z]
            module foo
            foo.bar
                /
                x: int
        rArrrs&  r1�1test_parameters_not_permitted_after_slash_for_now�BClinicParserTest.test_parameters_not_permitted_after_slash_for_now	rDr7c�6�QoQoUOV!]Q5P!)rzr
            module foo
            foo.bar
               *vararg1: tuple
               *vararg2: tuple
        r�rrr�s&  r1�'test_parameters_no_more_than_one_vararg�8ClinicParserTest.test_parameters_no_more_than_one_vararg	�#��7����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)zOEncountered parameter line when not expecting parameters: **var_keyword_2: dictz~
            module foo
            foo.bar
               **var_keyword_1: dict
               **var_keyword_2: dict
        r�rrr�s&  r1�,test_parameters_no_more_than_one_var_keyword�=ClinicParserTest.test_parameters_no_more_than_one_var_keyword'	s#��_����	
���E�q��1r7c�N�UOQ2oUOUQ2P!)z�
              module foo
              foo.bar
                x: int
                  Nested docstring here, goeth.
                *
                y: str
              Not at column 0!
        z�
            bar($module, /, x, *, y)
            --

            Not at column 0!

              x
                Nested docstring here, goeth.
        r|r}s& r1�test_function_not_at_column_0�.ClinicParserTest.test_function_not_at_column_01	s.���&�&�(�
��	
���H�'�	
r7c�N�UOQ2oUOUQ2P!)zH
              module m
              m.f
              summary
        zG
            f($module, /)
            --

            summary
        r|r}s& r1�test_docstring_only_summary�,ClinicParserTest.test_docstring_only_summaryE	s.���&�&�(�
��
	
���H�'�	
r7c�N�UOQ2oUOUQ2P!)z4
              module m
              m.f


        z2
            f($module, /)
            --
        r|r}s& r1�test_docstring_empty_lines�+ClinicParserTest.test_docstring_empty_linesR	s.���&�&�(�
��	
���H�'�	
r7c�N�UOQ2oUOUQ2P!)a�
              module m
              m.f
                a: int
                    Param docstring for 'a' will be included
                b: int
                c: int
                    Param docstring for 'c' will be included
              This is the summary line.

              We'll now place the params section here:
              {parameters}
              And now for something completely different!
              (Note the added newline)
        a�
            f($module, /, a, b, c)
            --

            This is the summary line.

            We'll now place the params section here:
              a
                Param docstring for 'a' will be included
              c
                Param docstring for 'c' will be included

            And now for something completely different!
            (Note the added newline)
        r|r}s& r1�(test_docstring_explicit_params_placement�9ClinicParserTest.test_docstring_explicit_params_placement^	s.���&�&�(�
��	
���H�'�	
r7c�2�QoQoUOV2P!)zp
            module foo
            foo.bar
               *vararg1: tuple
            	*vararg2: tuple
        zATab characters are illegal in the Clinic DSL: '\t*vararg2: tuple'rrrs&  r1�test_indent_stack_no_tabs�*ClinicParserTest.test_indent_stack_no_tabs~	s����&�����E�'r7c�2�QoQoUOV2P!)zc
            module foo
            foo.bar
              a: object
             b: object
        zIllegal outdentrrrs&  r1�!test_indent_stack_illegal_outdent�2ClinicParserTest.test_indent_stack_illegal_outdent�	s���� �����E�'r7c��`�[[22nP
RmU1QkROQ$[	Q2oROU2UO
RO2P!)Fc� :�[RQP	2!)�flag)�setattr)rKs�r1�<lambda>�1ClinicParserTest.test_directive.<locals>.<lambda>�	s�������0Mr7�setflag)r&rAr��
directivesr"r_r�)r.r�rKs& @r1�test_directive�ClinicParserTest.test_directive�	sL����<�>�*�����'M����)�$��i� �����U��������$r7c��UOQ2oUOvq#UOQ*OoUO	U[
2P!)z module os
os.access
   path: "s"r)r_r�r
rrr)r.r�rrrps&    r1�test_legacy_converters�'ClinicParserTest.test_legacy_converters�	sE���
�
�?�@�� �+�+����#�#�F�+�6�6�����d�M�2r7c
��QoQoSFD9oUOUQ59^tt^2UOV1]Q5PPP2J;	P!)%fhJP9h)�?Annotations must be either a name, a function call, or a stringr�r�)zmodule os
os.access
   path: 42z"module os
os.access
   path: 42.42z module os
os.access
   path: 42jz"module os
os.access
   path: b"42"r��r.rtr�r�s&   r1�5test_legacy_converters_non_string_constant_annotation�FClinicParserTest.test_legacy_converters_non_string_constant_annotation�	sP��O��
���E����E��*�*��#�#�E�q�#�9�+�*��*�*�*���A	�A
�A
c
��QoQoSFD9oUOUQ59^tt^2UOV1]Q5PPP2J;	P!)%fhJP9h)r�r�r�)z3module os
os.access
   path: {"some": "dictionary"}z6module os
os.access
   path: ["list", "of", "strings"]z3module os
os.access
   path: (x for x in range(42))r�r�s&   r1�-test_other_bizarre_things_in_annotations_fail�>ClinicParserTest.test_other_bizarre_things_in_annotations_fail�	sP��O��
��
�E����E��*�*��#�#�E�q�#�9�+�*��*�*�*�r�c	��QoQoSFD7oUOUQ59^tt^2UOV12PPP2J9	P!)%fhJN9h)z6Cannot use a kwarg splat in a function-call annotationr�)z1module fo
fo.barbaz
   o: bool(**{None: "bang!"})z.module fo
fo.barbaz -> bool(**{None: "bang!"})z+module fo
fo.barbaz -> bool(**{"bang": 42})z0module fo
fo.barbaz
   o: bool(**{"bang": None})r�r�s&   r1�9test_kwarg_splats_disallowed_in_function_call_annotations�JClinicParserTest.test_kwarg_splats_disallowed_in_function_call_annotations�	sK��F��
���E����E��*�*��#�#�E�/�+�*��*�*�*�r�c�6�QoQoUOV!]Q5P!)zVA 'self' parameter, if specified, must be the very first thing in the parameter block.zz
            module foo
            foo.func
                a: int
                self: self(type="PyObject *")
        r�rrr�s&  r1�test_self_param_placement�*ClinicParserTest.test_self_param_placement�	s(��
&�	���	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z-A 'self' parameter cannot be marked optional.zj
            module foo
            foo.func
                self: self(type="PyObject *") = None
        r�rrr�s&  r1�"test_self_param_cannot_be_optional�3ClinicParserTest.test_self_param_cannot_be_optional�	s#��=����
	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z}A 'defining_class' parameter, if specified, must either be the first thing in the parameter block, or come just after 'self'.z�
            module foo
            foo.func
                self: self(type="PyObject *")
                a: int
                cls: defining_class
        r�rrr�s&  r1�#test_defining_class_param_placement�4ClinicParserTest.test_defining_class_param_placement�	s)��
M�	���	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z7A 'defining_class' parameter cannot be marked optional.zs
            module foo
            foo.func
                cls: defining_class(type="PyObject *") = None
        r�rrr�s&  r1�,test_defining_class_param_cannot_be_optional�=ClinicParserTest.test_defining_class_param_cannot_be_optional�	s#��G����
	
���E�q��1r7c��QoQoUO[U29^tt^2UOU2PPP2P!)%fhP!9h)z�
            module foo
            class Foo "" ""
            Foo.__init__
                cls: defining_class
                a: object
        z0Slot methods cannot access their defining class.)rGr�r�rs&  r1�.test_slot_methods_cannot_access_defining_class�?ClinicParserTest.test_slot_methods_cannot_access_defining_class�	sA����A��
�
#�
#�J��
4�
4�����&�5�
4�
4�
4�s�A�A	�	A	c�6�QoQoUOV!]Q5P!)z!'__new__' must be a class method!zT
            module foo
            class Foo "" ""
            Foo.__new__
        r�rrr�s&  r1�test_new_must_be_a_class_method�0ClinicParserTest.test_new_must_be_a_class_method�	s#��1����
	
���E�q��1r7c
��QoQQQQQQ-oUO2FDRvq4UOV4Q59^tt^2QUQ	0oUOU2oUOVV]Q
5PPP2JT	P!)%fhJi9h)z:'__init__' must be a normal method; got 'FunctionKind.{}'!z@classmethod�CLASS_METHODz
@staticmethod�
STATIC_METHOD�@getter�GETTER)�
annotation�invalid_kind�X
                    module foo
                    class Foo "" ""
                    z2
                    Foo.__init__
                r�)rVr-rLra)r.�err_template�annotationsr�r�r�rEs&      r1�!test_init_must_be_a_normal_method�2ClinicParserTest.test_init_must_be_a_normal_method
s���S���N��_��x�
��
)4�(9�(9�(;�$�J������O�O�� �L�!���".�!4�!4�\�!B���#�#�E�!�#�D�P�O�)<�O�O�O�s�+A5	�5B
�>B
c�6�QoQoUOV]Q5P!)zF
            class Foo "" ""
            Foo.__init__ -> long
        z,__init__ methods cannot define a return typer�rr�r.r�rEs&  r1�%test_init_cannot_define_a_return_type�6ClinicParserTest.test_init_cannot_define_a_return_type
s$����H�����E�!��<r7c
��QQ,oSFD`oUOUQ59^tt^2QUQ0oUQ0oUOV4]Q5QUQ0oUQ	0oUOV42PPP2Jb	P!)%fhJw9h)
r��@setter�r�r��9
                    Foo.property -> int
                z# method cannot define a return typer�zU
                   module foo
                   class Foo "" ""
                   zj
                   Foo.property
                       obj: int
                       /
                z! methods cannot define parametersr��r.r�r�r�rEs&    r1�test_invalid_getset�$ClinicParserTest.test_invalid_getset 
s��� �)�,��%�J������4�4�� �L�!���%/�<�/R�!S���#�#�E�!�#�D���<� ���%/�<�/P�!Q���#�#�E�:�'5�4�&�4�4�4�s�;A/	�/B
�8B
c�2�QoQoUOV2P!)z�
            module foo
            class Foo "" ""
            @setter
            Foo.property

            foo

            bar
            [clinic start generated code]*/
        z6docstrings are only supported for @getter, not @setterrrr�s&  r1�test_setter_docstring�&ClinicParserTest.test_setter_docstring8
s��
��R�����E�2r7c
���QQ,oSFDHoUOUQ59^tt^2QUQUQ0oQUQ0oUOV4]Q5PPP2JJ	P!)%fhJ_9h)	r�r�r�r��
                    r�z
Cannot apply z twice to the same function!r�r�r�s&    r1�test_duplicate_getset�&ClinicParserTest.test_duplicate_getsetG
s�� �)�,��%�J������4�4�� �L�!��L�!�	��$1���<X�!Y���#�#�E�!�#�D�5�4�&�4�4�4�s�#A	�A(
� A(
c
���QQ,oSFDRoUOUQ59^tt^2QU]*QU]*Q0oQoUOV4]Q5PPP2JT	P!)%fhJi9h)	r�)�dupr�r�r�z;Cannot apply both @getter and @setter to the same function!r��r�r�)r�r�r�)r.�dup_annotationsr�r�rEs&    r1�2test_getter_and_setter_disallowed_on_same_function�CClinicParserTest.test_getter_and_setter_disallowed_on_same_functionU
s��1�3I�J��"�C����#��&�&����V�H����V�H��	��"_���#�#�E�!�#�D�'�&�#�&�&�&�s�-A!	�!A2
�*A2
c
��QFDAoUOUQ59^tt^2QUQ0oQoUOV#]Q5PPP2JC	P!)%fhJX9h)r�r�z2
                    module m
                    z,
                    m.func
                z#@getter and @setter must be methodsr�r�r�)r.r�r�rEs&   r1�test_getset_no_class�%ClinicParserTest.test_getset_no_classc
s`��.�J������4�4���L�!���
"G���#�#�E�!�#�D�5�4�/�4�4�4�s�A	�A
�A
c�6�QoQoUOV!]Q5P!)zCalled @coexist twicezY
            module m
            @coexist
            @coexist
            m.fn
        r�rrr�s&  r1�test_duplicate_coexist�'ClinicParserTest.test_duplicate_coexistn
s#��%����	
���E�q��1r7c	�T`�UOQ2oUO]*oUOnU1QkoQQQP
-QQQP
-QQQP	-QQQP	-1oSFD�oUO2vqgUO	VgQ59^tt^2UU2oUOVxO2UOP
Q	5o	U%cUOQ
U	2LUOQ
U	2UOP	Q	5o
UOQ
U
2PPP2J�	P!)%fhJ�9h)z�
            module foo
            foo.func
                fn: object
                k: float
                i: float(unused=True)
                /
                *
                flag: bool(unused=True) = False
        c�,:�RU*O!rQ�r)r,�paramss&�r1r��4ClinicParserTest.test_unused_param.<locals>.<lambda>�
s���&��*�.�.r7rr,�unused�k�ir�)rr�)�	in_parser�	Py_UNUSED)
r_r�r
�valuesr-rHr��simple_declarationr�r$)r.r��sigrpr��paramrr�r�decl�parser_declr�s&          @r1�test_unused_param�"ClinicParserTest.test_unused_paramx
s����
�
�	�	
�����q�!������.��
�T�8�U�+�
�S�(�E�*�
�S�(�D�)�
�V�X�t�,�	
���E� �<�<�>�L�D����4��7�7���J��� � ����2��+�+�e�+�<����M�M�+�t�4��$�$�[�$�7� �2�2�T�2�B��� � ��k�:�8�7��7�7�7�s�=D	�?A	D	�D'
�D'
c
�T�UO[[2Q2UO[[2Q2[O
29^tt^2oQoUO
[U29^tt^2o[UQ]EQ5PPP2WOoUOUOQ2UOUO]E2UOUO2P2PPP2P!)%fhK~9h)%fhP!9h)z
<Unspecified>z<Null>zThe igloos are meltingz	clown.txt)r9�line_number)
rH�reprrrrr�rGrrrIr9rBr�)r.r�rMrNres&    r1�test_scaffolding�!ClinicParserTest.test_scaffolding�
s�������k�*�O�<�����d��X�.��
$�
$�
&�
&�&�-�F��'�'��V�<�<���V�k�r�B�=��,�,�C����S�\�\�;�7����S�Z�Z��,����V�_�_�.��3�'�
&�<�<��'�
&�
&�s1�!D�>D	�
A,D�D
�D
�D�D'	�D'	c��Qo[O29^tt^2oUOU2PPP2[Q2oUO	WO2U2P!)%fhK=9h)u�
            module test
            test.fn
                a: int
                    á param docstring
            docstring fü bár baß
        u�            Warning:
            Non-ascii characters are not allowed in docstrings: 'á'

            Warning:
            Non-ascii characters are not allowed in docstrings: 'ü', 'á', 'ß'

        )rr�r_rrHr�)r.r�r�r�s&   r1�%test_non_ascii_character_in_docstring�6ClinicParserTest.test_non_ascii_character_in_docstring�
s`�����
$�
$�
&�
&�&��J�J�u��'���
��	
������*�H�5�'�
&�s�A(�(A8	�1A8	c�6�QoQoUOV!]Q5P!)zIllegal C identifier: 17azS
            module test
            test.fn
                a as 17a: int
        r�rrr�s&  r1�test_illegal_c_identifier�*ClinicParserTest.test_illegal_c_identifier�
s#��)����
	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z5'__len__' is a special method and cannot be convertedz9
            class T "" ""
            T.__len__
        r�rrr�s&  r1�"test_cannot_convert_special_method�3ClinicParserTest.test_cannot_convert_special_method�
s#��E����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z@You can't specify py_default without specifying a default value!zE
            fn
                a: object(py_default='NULL')
        r�rrr�s&  r1�-test_cannot_specify_pydefault_without_default�>ClinicParserTest.test_cannot_specify_pydefault_without_default�
s#��P����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)�3Function 'fn' has an invalid parameter declaration:z<
            fn
                *args: tuple = None
        r�rrr�s&  r1�%test_vararg_cannot_take_default_value�6ClinicParserTest.test_vararg_cannot_take_default_value�
�#��C����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)rz<
            fn
                **kwds: dict = None
        r�rrr�s&  r1�*test_var_keyword_cannot_take_default_value�;ClinicParserTest.test_var_keyword_cannot_take_default_value�
r
r7c�6�QoQoUOV!]Q5P!)zCint_converter: default value 2.5 for field 'a' is not of type 'int'z5
            fn
                a: int = 2.5
        r�rrr�s&  r1�#test_default_is_not_of_correct_type�4ClinicParserTest.test_default_is_not_of_correct_type�
s%��&����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z%'fhi' is not a valid legacy converterz1
            fn
                a: 'fhi'
        r�rrr�s&  r1�test_invalid_legacy_converter�.ClinicParserTest.test_invalid_legacy_converter�
s#��5����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z+Parent class or module 'baz' does not existz3
            module m
            baz.func
        r�rrr�s&  r1�*test_parent_class_or_module_does_not_exist�;ClinicParserTest.test_parent_class_or_module_does_not_exist�
s#��;����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z'You can't have two parameters named 'a'za
            module m
            m.func
                a: int
                a: float
        r�rrr�s&  r1�test_duplicate_param_name�*ClinicParserTest.test_duplicate_param_namerxr7c�6�QoQoUOV!]Q5P!)z+Parameter 'module' requires a custom C namezM
            module m
            m.func
                module: int
        r�rrr�s&  r1�!test_param_requires_custom_c_name�2ClinicParserTest.test_param_requires_custom_c_names#��;����
	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z0Function 'func' has a ']' without a matching '['zY
            module m
            m.func
                ]
            docstring
        r�rrr�s&  r1�)test_state_func_docstring_assert_no_group�:ClinicParserTest.test_state_func_docstring_assert_no_groups#��@����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z4Docstring for 'm.func' does not have a summary line!z_
            module m
            m.func
            docstring1
            docstring2
        r�rrr�s&  r1�$test_state_func_docstring_no_summary�5ClinicParserTest.test_state_func_docstring_no_summary!s#��D����	
���E�q��1r7c�6�QoQoUOV!]Q5P!)z?You may not specify {parameters} more than once in a docstring!z�
            module m
            m.func
            docstring summary

            these are the params:
                {parameters}
            these are the params again:
                {parameters}
        r�rrr�s&  r1�1test_state_func_docstring_only_one_param_template�BClinicParserTest.test_state_func_docstring_only_one_param_template+s#��O��	��	
���E�q��1r7c��UOQ]]Q5oUOQ*oUOUO[O
O2P!)z}
            module m
            class m.C "PyObject *" ""
            m.C.meth
                cls: defining_class
        r��cls)r�r
rHr�r�rr�rs&  r1�test_kind_defining_class�)ClinicParserTest.test_kind_defining_class9sU���&�&�(�
"#�1�'�6��
����&���������!2�!2�!B�!B�Cr7c�6�QoQoUOV!]Q5P!)z?A 'defining_class' parameter cannot be defined at module level.zU
            module m
            m.func
                cls: defining_class
        r�rrr�s&  r1�,test_disallow_defining_class_at_module_level�=ClinicParserTest.test_disallow_defining_class_at_module_levelCs#��O����
	
���E�q��1r7c�2�QoQoUOV2P!)zf
            module foo
            foo.bar
               x: int
               **kwds: dict
        rXrrrs&  r1�test_var_keyword_with_pos_or_kw�0ClinicParserTest.test_var_keyword_with_pos_or_kwLs����`�����E�'r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               /
               *
               y: int
               **kwds: dict
        rXrrrs&  r1�test_var_keyword_with_kw_only�.ClinicParserTest.test_var_keyword_with_kw_onlyVr[r7c�2�QoQoUOV2P!)z�
            module foo
            foo.bar
               x: int
               /
               y: int
               *
               z: int
               **kwds: dict
        rXrrrs&  r1�+test_var_keyword_with_pos_or_kw_and_kw_only�<ClinicParserTest.test_var_keyword_with_pos_or_kw_and_kw_onlycs��	��`�����E�'r7c���[OQ2o[O2Tt,tFDoUQ6wfJUMJ	ooSFDjoUO	UQ59^tt^2QUQ0oUO[[1U29^tt^2UOU2PPP2PPP2Jl	P!ttoh)%fhK#9h)%fhJ�9h)zDconverter_init() got an unexpected keyword argument 'allow_negative'�
Py_ssize_tr�zT
                    module m
                    m.func
                        a: z&(allow_negative=True)
                )	rErFr�keysr-rG�AssertionError�	TypeErrorr�)r.rM�converter_name�unsupported_convertersrr�s&     r1�9test_allow_negative_accepted_by_py_ssize_t_converter_only�JClinicParserTest.test_allow_negative_accepted_by_py_ssize_t_converter_onlyqs������a�b��GQ���GX�"E�GX�^�%3�|�%C�#1�.�GX��"E�/�I����	��2�2��&�;�'���
�+�+�^�Y�,G��P�P��'�'��.�Q�
3�2�0��"E�Q�P��
3�2�2�s:�B9�B9�&+C	�B>
�#C	�>C�C�	C	�C"
�C"
r4)rJr�)�r5r6r7r8r_r�rar�rr	rrrr(r-r1r4r@rLrUr[rarfrirlrqrtryr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr!r$r(r,r0r3r7r;r>rBrGrJrMrQrUrYr]r`rcrfrjrmrprsrvrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrr!r$r(r+r.r1r4r=r:r;r<s@r1r�r��s������!�N� $�N�-1�N�9=�N�
/�
	,�,�
:�*�
*�@�.!8�FS�$O�$;�:!;�F5�.2�*:� R�2�	2�	3�2�:�
�8
�,
�0
�@
�<�2�2�
4�O�(�(�(�	%�
%�(
�TL
�\2�$(�$(�$(�$(�"(�"
(�0�4	6�
6�(�(�5�
(�
0�=�2=�:2�2�2�2�2� 2� 2�2�2�2�2�2�(�2�
2�
(�(�(�(�(�
(�2�2�2�2�2�(�2�2�
�(
�

�
�@	(�(�%�3�
:�	:�
0�2�2�2�2�
'�2�E�$=�;�0
3�E�E�	E�2�$;�L
4�6�*2�2�2�2�2�2�2�2�2�2�2�2�2�D�2�(�(�(�/�/r7r�c�`�\sQsQsnPsQsQsQsQsQs	Qs
QsQ	sQ
s
Qs\O Q2sQ
sQsQsQsQsQsQsQsUsP!)�ClinicExternalTestic��[U2P!rQ)rZrfs&r1rg�ClinicExternalTest.setUp�s
����%r7c���[O29^tt^2o[O29^tt^2oUO[29^tt^2o[
OU2PPP2PPP2PPP2WO2WO2WOO1!)%fhKU9h)%fhK`9h)%fhKk9hrQ)
rr�r�r��
SystemExitr
�mainr�rIrL)r.rxr�rtrNs&*   r1�
run_clinic�ClinicExternalTest.run_clinic�s����#�#�%�%���#�#�%�%�����j�)�)�R��K�K���
*�
&�
&�
�|�|�~�s�|�|�~�r�|�|�/@�/@�@�@�
*�)��
&�%��
&�%�sL�C%�C	�B?
�2C	�:C%�?C�C�
C	�C"
�C"
�C%�%C5	�.C5	c��UOUvq#oU]6wc'UOQOQU80V#,22UOUP2U!)rr�zUnexpected failure: args=)rFr�joinrH�r.rxr�rtrLs&*   r1�expect_success�!ClinicExternalTest.expect_success�sR�����$�/���$��1�9��I�I�d�i�i�#=��w�!?�� J�K�L�����b�!��
r7c�`�UOUvq#oUOU]QU802V#1!)rzUnexpected success: args=)rFrlrJs&*   r1ra�!ClinicExternalTest.expect_failure�s5�����$�/���$����D�!�'A�D�7�%C�D��x�r7c���Qo[OU2o[UQQ59^tt^2oUO2oPPP2UO	[
[2UOQQ[U2oUOUP2[[QQ59^tt^2oUO2oPPP2UOWW2P!)%fhK�9h)%fhK79h)z
clinic.test.c�utf-8��encoding�-f�-o)	r�findfile�open�readrWrrrKrH)r.�CLINIC_TEST�sourcer��
orig_contentsr��new_contentss&      r1�
test_external� ClinicExternalTest.test_external�s���%���!�!�+�.��
�&�7�
+�
+�q��F�F�H�M�,�	
�����'��!�!�$��f�f�=������b�!�
�&�7�
+�
+�q��6�6�8�L�,�	
����}�5�,�
+��,�
+�s#�C�%C%�C"	�C"	�%C5	�.C5	c	��[Q2o[O29^tt^2o[OOUQ2o[
UQQQ59^tt^2oUOU2PPP2[OU2OoUOU2[OU2OoPPP2UOWW2P!)%fhK}9h)%fhK79h)z�
            /*[clinic input]
            [clinic start generated code]*/
            /*[clinic end generated code: output=da39a3ee5e6b4b0d input=da39a3ee5e6b4b0d]*/
        rd�wrPrQ)rr�temp_dirrrrIrV�write�stat�st_mtime_nsrKrH)r.rL�tmp_dirr,r��	pre_mtime�
post_mtimes&      r1�test_no_change�!ClinicExternalTest.test_no_change�s�����
��
�
�
�
!�
!�W������g�x�0�B��b�#��0�0�A�����
�1������/�/�I�����#������0�0�J�
"�	
����J�/�1�0��"�
!�s0�7C;�!C(	�3AC;�(C8
�1C8
�3C;�;D	�D	c	��[Q2oQo[O29^tt^2o[OOUQ2o[
UQQQ59^tt^2oUOU2PPP2UOU2vqgUOVr2UOQU2oUOUP2Qo	[
UQQ59^tt^2oUO2o
PPP2UOW
U	2PPP2P!)%fhK�9h)%fhK?9h)%fhP!9h)aA
            /*[clinic input]
            output preset block
            module test
            test.fn
                a: int
            [clinic start generated code]*/

            const char *hand_edited = "output block is overwritten";
            /*[clinic end generated code: output=bogus input=bogus]*/
        z�Checksum mismatch! Expected 'bogus', computed '2ed19'. Suggested fix: remove all generated code including the end marker, or use the '-f' option.
rdr_rPrQrSzP/*[clinic end generated code: output=a2957bc4d43a3c2f input=9543a8d2da235301]*/
)
rrr`rrrIrVrara�assertEndsWithrKrHrW)r.�
invalid_input�fail_msgrdr,r��_rtr��checksumr�s&          r1�test_cli_force�!ClinicExternalTest.test_cli_force�s���
 �

�
�
(�	�
�
�
�
!�
!�W������g�x�0�B��b�#��0�0�A����
�&�1�
�(�(��,�F�A�����.��%�%�d�B�/�C����S�"�%�F�
��b�7�+�+�q��F�F�H�	�,����	�8�4�'"�
!�0�0��,�+��#"�
!�
!�sN�7D7�#D	�5A'D7�D$	�-D7�D!
�D!
�D7�$D4
�-D4
�/D7�7E	�E	c�h�[Q2oQoQ	oQ
oQo[O29^tt^2oUV6U2UVFU2[OOUQ2o[OUQ59^tt^2oUV8U2UO
QQQU2o	PPP2SFDWo
UOU
Q59^tt^2[OOVj2oUOUW	2PPP2JY	SFDWo
UOU
Q59^tt^2[OOVj2oUOUW	2PPP2JY	SFDWo
UOU
Q59^tt^2[OOVz2oUOUW	2PPP2JY	PPP2P!)%fhCK59h)%fhCJG9h)%fhJ�9h)%fhJ�9h)%fhP!9h)�R
            /*[clinic input]
            [clinic start generated code]*/
        �passc	���SFDRo[OOV2o[UQQQ59^tt^2oUO	U2PPP2JT	P!)%fhJi9h)r_rPrQ)rrrIrVra)�files�srcdirrLr,rr�s&&&   r1�create_files�6ClinicExternalTest.test_cli_make.<locals>.create_files�sL�����w�w�|�|�F�/���$��g�6�6�!��G�G�D�M�7�6��6�6�6�s�A	�A.
�&A.
�	externals)r�-v�--make�--srcdirre)�file1.c�file2.c)zfile1.pyzfile2.py)
rrr`rrrIrKr-r�r$)r.�c_code�py_code�c_files�py_filesrwrd�ext_pathryr�r9rs&           r1�
test_cli_make� ClinicExternalTest.test_cli_make�s�����
����&��)��	"��
�
�
!�
!�W���6�2���G�4��w�w�|�|�G�[�9�H��#�#��2�2�i��W��8��)�)�$��*�g�N��	3�$���\�\�8�\�4�4��7�7�<�<��:�D��M�M�$��,�5�4�$�%���\�\�8�\�4�4��7�7�<�<��:�D��$�$�T�3�/�5�4�%�
$���\�\�8�\�4�4��7�7�<�<��;�D��$�$�T�3�/�5�4�$�/"�
!�3�2�2��5�4�4��5�4�4��
5�4�4��1"�
!�
!�s��AH �G	�#(H �2G#
�=,H �)2G8
�,H �2H
�9H �G 
�G 
�	H �#G5�,G5�.
H �8H	�H	�	H �H�H�	H � H1	�)H1	c��[Q2o[OP
Q59^tt^2oQFDRo[OOV#2o[
UQQQ59^tt^2oUOU2PPP2JT	UOQ	Q
QUQ[OOUQ2Q[OOUQ
2QQ2
oUOQU2UOQU2UOQU2UOQU2PPP2P!)%fhCJ9h)%fhP!9h)rr)�quietr}r~�file3.c�file4.cr_rPrQrzr{r|z	--excludez	./file3.c)r}r~r�r�)rrr`rrrIrVrarKr�r$)r.rLrdr,rr�r�s&      r1�test_cli_make_exclude�(ClinicExternalTest.test_cli_make_excludes����
���
�
�e�
,�
,��@���w�w�|�|�G�0���$��g�6�6�!��G�G�D�M�7�6�A��%�%��h�
�G��R�W�W�\�\�'�9�=��R�W�W�\�\�'�;�?��Y�
�C�
�M�M�)�S�)����Y��,����Y��,����Y��,�--�
,�7�6�6��	-�
,�
,�s0�<E�(D.
�:B*E�.E�7E�9
E�E	�E	c	��[O29^tt^2o[OO	UQ2o[UQQQ59^tt^2oUO
P2PPP2UOQU2oUOUO2U2PPP2P!)%fhKL9h)%fhP!9h)rdr_rPrQrz)
rr`rrrIrVrarKrHrC)r.rdr,r�r�s&    r1�test_cli_verbose�#ClinicExternalTest.test_cli_verbose-s���
�
�
�
!�
!�W������g�x�0�B��b�#��0�0�A������1��%�%�d�B�/�C����S�Y�Y�[�"�-�"�
!�0�0��"�
!�
!�s/�7B?�B,	�(:B?�,B<
�5B<
�7B?�?C	�C	c�N�UOQ2oUOQU2P!)z-hzusage: clinic.py)rKr�)r.r�s& r1�
test_cli_help� ClinicExternalTest.test_cli_help5s!���!�!�$�'���
�
�(�#�.r7c	���[Q2oQo[Q2oUOQ2oUOVA2UOVC2UO	U2oUOU2oUO
Q2o[V%2FDIvqgUO2oUOUQ59^tt^2UOVv2PPP2JK	P!)%fhJ`9h)z�
            Legacy converters:
                B C D L O S U Y Z Z#
                b c d f h i l p s s# s* u u# w* y y# y* z z# z*

            Converters:
        a�
            Return converters:
                bool()
                double()
                float()
                int()
                long()
                object()
                Py_ssize_t()
                size_t()
                unsigned_int()
                unsigned_long()

            All converters also accept (c_default=None, py_default=None, annotation=None).
            All return converters also accept (py_default=None).
        �--convertersr�r�)"rO�byte�char�defining_class�double�fildes�float�int�long�	long_long�object�	Py_buffer�
Py_complexr7�
Py_UNICODE�PyByteArrayObject�
PyBytesObjectr.�short�size_t�slice_indexr!�uint16�uint32�uint64�uint8�unicode�unicode_fs_decoded�unicode_fs_encoded�
unsigned_char�unsigned_int�
unsigned_long�unsigned_long_long�unsigned_short)
rrKr�rj�removeprefix�removesuffixr��zipr�r-)r.�prelude�expected_converters�finaler��linesr�lines&       r1�test_cli_converters�&ClinicExternalTest.test_cli_converters:s�����
��#
��H��
�� �!�!�.�1��
	
���c�+����C�(����w�'�����v�&���	�	�$���"�#6�>�O�I��;�;�=�D����	��2�2��%�%�d�6�3�2� ?�2�2�2�s�;C	�C,
�$C,
c�V�UOQQ2vqQoUOV22P!)r�rdz:can't specify --converters and a filename at the same time�rar��r.rmrt�msgs&   r1�%test_cli_fail_converters_and_filename�8ClinicExternalTest.test_cli_fail_converters_and_filename�s'���$�$�^�X�>���J���
�
�c�r7c�P�UO2vqUOQU2P!)zno input filesr�)r.rmrts&  r1�test_cli_fail_no_filename�,ClinicExternalTest.test_cli_fail_no_filename�s!���$�$�&����
�
�&��,r7c�Z�UOQQQQ2vqQoUOV22P!)rT�out.czinput.czmoreinput.cz+error: can't use -o with multiple filenamesr�r�s&   r1�'test_cli_fail_output_and_multiple_files�:ClinicExternalTest.test_cli_fail_output_and_multiple_files�s+���$�$�T�7�I�}�M���;���
�
�c�r7c	���QoQFDNoUOUQ59^tt^2UOQ,UN3vq4UOV2PPP2JP	P!)%fhJe9h)z%can't use -o or filenames with --make)�optsr{))rTr�)z
filename.c)r-rar�)r.r�r�rmrts&    r1�)test_cli_fail_filename_or_output_and_make�<ClinicExternalTest.test_cli_fail_filename_or_output_and_make�sW��5��4�D����4��(�(��,�,�X�=��=����
�
�c�'�)�(�5�(�(�(�s�)A	�A,
�$A,
c�X�UOQQP2vqQoUOV22P!)r{r|z-error: --srcdir must not be empty with --maker�r�s&   r1�!test_cli_fail_make_without_srcdir�4ClinicExternalTest.test_cli_fail_make_without_srcdir�s)���$�$�X�z�2�>���=���
�
�c�r7c	��[Q2oQo[Q2o[O29^tt^2o[OOUQ2o[OOUQ2o[
UQQQ59^tt^2oUOU2PPP2[
UQQQ59^tt^2oUOP2PPP2UOU2vq�QU8Q	0o
UOV�2UOQ
U2o[
UQQ59^tt^2oUO2oUU0oUOV�2PPP2[
UQQ59^tt^2oUO2oUOV�2PPP2PPP2P!)%fhCK9h)%fhK�9h)%fhK�9h)%fhKT9h)%fhP!9h)z�
            /*[clinic input]
            destination test new file {path}.h
            output everything test
            func
                a: object
                /
            [clinic start generated code]*/
        zP/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b602ab8e173ac3bd]*/
a            /*[clinic input]
            preserve
            [clinic start generated code]*/

            PyDoc_VAR(func__doc__);

            PyDoc_STRVAR(func__doc__,
            "func($module, a, /)\n"
            "--\n"
            "\n");

            #define FUNC_METHODDEF    \
                {"func", (PyCFunction)func, METH_O, func__doc__},

            static PyObject *
            func(PyObject *module, PyObject *a)
            /*[clinic end generated code: output=3dde2d13002165b9 input=a9049054013a1b77]*/
        rdztest.c.hr_rPrQzModified destination file z; not overwriting!rS)
rrr`rrrIrVrarar�rKrWrH)
r.r��expected_checksum_line�expected_outputrd�in_fn�out_fnr�rmrt�expected_err�data�expected_blocks
&            r1�test_file_dest�!ClinicExternalTest.test_file_dest�s�����
��
B�	�!�"�
��&�
�
�
!�
!�W��G�G�L�L��(�3�E��W�W�\�\�'�:�6�F��e�S�7�3�3�q������4��f�c�G�4�4�������5��(�(��/�F�A�8��
�C/�/�L��M�M�,�,��#�#�D�%�0�A��e�g�.�.�!��v�v�x��$)�7�+A�*B�!C��� � ��6�/��f�w�/�/�1��v�v�x��� � ��7�0�'"�
!�4�3�3��4�4��/�.��0�/��'"�
!�
!�s��AG0�F#	� G0�>F7	�AG0�*(G
	�G0�/"G	�G0�#F4
�,F4
�.	G0�7G
�G
�G0�
G
�G
�G0�G-
�&G-
�(G0�0H	�9H	r4)r5r6r7r8r9rgrFrKrar\rgror�r�r�r�force_not_colorizedr�r�r�r�r�r�r�r�r:r;r<s@r1r@r@s������G�&�A���
6� 0�($5�L)0�V-�:.�
� � �/�!�/�J7�X �
-� �
(� �
68�68r7r@z_testclinic is missingc�`�\sQsQsn\2OQ\\222QsQP-Qks	QP-Qks
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQsQsQsQsQsQsQsQsQsQs Qs!Qs"Qs#Q s$Q!s%Q"s&Q#s'Q$s(Q%s)Q&s*Q's+Q(s,Q)s-Q*s.Q+s/Q,s0Q-s1Q.s2Q/s3\Cd5\4\Oj\Ol\OnOp\OnOr2Q02s:\4\Ov\Ox\OnOz\OnO|2Q12s?\4\O�\O�\OnO�\OnO�2Q22sD\4\O�\O�\OnO�\OnO�2Q32sIQ4sJQ5sKQ6sLQ7sMQ8sNQ9sOQ:sPQ;sQQ<sRQ=sSQ>sTQ?sUQ@sVQAsWQBsXQCsYQDsZQEs[QFs\QGs]QHs^QIs_QJs`QKsaQLsbQMscQNsdQOseQPsfQQsgQRshQSsiQTsjQUskQVslQWsmQXsnQYsoQZspQ[sqQ\srQ]ssQ^stQ_suQ`svQaswQbsxQcsyQdszQes{Us|P!)f�ClinicFunctionalTesti�c#��SF �D0pOQ2%fJU[[U21w�	J2	P!3h��test_)�
startswith�getattr�	ac_tester��.0rs& r1�	<genexpr>�ClinicFunctionalTest.<genexpr>�s-�� .��� .��/�/�'�2J�5�T�7�9�d�3�4� .���?�?c�B�UO[U29^tt^2oUU-U@[O2OqvPPP2UOWO[2UOUOW2P!)%fhKN9hrQ)	�assertWarnsRegex�DeprecationWarningrY�	_getframe�f_linenorHr9�__file__rB)r.r�r,rx�kwdsrNrmrBs"""*,   r1�
check_depr�ClinicFunctionalTest.check_depr�so��
�
"�
"�#5�u�
=�
=���D�)�D�)�3�=�=�?�+C�+C�v�>�	
������h�/�������F�+�>�
=�s�(B�B	�B	rc���Ue4UOo[U[2%cUOQU0oQ[O
U2QUQ0oUOVb,UN3-U@P!)N�.z:Passing( more than)?( [0-9]+)? positional argument(s)? to z \(\) is deprecated. Parameters? z: will become( a)? keyword-only parameters? in Python 3\.14�r7�
isinstance�typer6rErFr�)r.�pnamesr,rrxr�r�s"""$*, r1�check_depr_star�$ClinicFunctionalTest.check_depr_star�ss���<��?�?�D��"�d�#�#��-�-���$��0��I��	�	�$�� � @���ID�
E�	�
	
����1�D�1�D�1r7c��Ue4UOo[U[2%cUOQU0oQU7cQLPoQUQUQ[O
U2QUQUQ0oUOVr,UN3-U@P!)Nr�� r�zPassing keyword argumentz to z\(\) is deprecated. Parameterz- will become positional-only in Python 3\.14.r�)r.r�r,rrxr��plr�s&&&$*,  r1�check_depr_kwd�#ClinicFunctionalTest.check_depr_kwd�s����<��?�?�D��"�d�#�#��-�-���$��0���6�M�S�r��'��t�1�V�H�D��	�	�$�� � =�b�T��6�(�K<�
=�	�
	
����1�D�1�D�1r7c��UO[29^tt^2[O2PPP2UO	[O]]2Q2UO	[O,Q2,Q12UO	[O]2Q2P!)%fhK�9h)Nzwhatever class�r�rJ)r�N)r�r:r��objects_converterrHrfs&r1�test_objects_converter�+ClinicFunctionalTest.test_objects_converter
s���
�
�
�y�
)�
)��'�'�)�*�����4�4�Q��:�F�C�����4�4�R�9I�J�R�Qa�Lb�c�����4�4�Q�7��C�	*�
)�s�B5�5C	�>C	c���UO[29^tt^2[O]2PPP2UO	[OQ2Q2P!)%fhK89h)r��BytesObject)r)r�r:r��bytes_object_converterrHrfs&r1�test_bytes_object_converter�0ClinicFunctionalTest.test_bytes_object_converter

sK��
�
�
�y�
)�
)��,�,�Q�/�*�����9�9�.�I�K\�]�*�
)���A&�&A6	�/A6	c�
�UO[29^tt^2[O]2PPP2[	Q2oUO[OU2U12P!)%fhKD9h)r�sByteArrayObject)r�r:r��byte_array_object_converter�	bytearrayrH)r.�byte_arrs& r1� test_byte_array_object_converter�5ClinicFunctionalTest.test_byte_array_object_converter
sW��
�
�
�y�
)�
)��1�1�!�4�*��/�0������>�>�x�H�8�+�V�*�
)�s�A2�2B	�;B	c���UO[29^tt^2[O]2PPP2UO	[OQ2Q2P!)%fhK89h)r�r�)r�)r�r:r��unicode_converterrHrfs&r1�test_unicode_converter�+ClinicFunctionalTest.test_unicode_converter
sJ��
�
�
�y�
)�
)��'�'��*�*�����4�4�Y�?��N�*�
)�rc��UO[29^tt^2[OP
P
Q2PPP2UO	[O2Q2UO	[OP,]2Q2UO	[OQ]]-]2Q2P!)%fhK�9h)Fz	not a int)TTT)FFT)z	not empty)TTF)r�r:r��bool_converterrHrfs&r1�test_bool_converter�(ClinicFunctionalTest.test_bool_converter
s���
�
�
�y�
)�
)��$�$�U�E�;�?�*�����1�1�3�5G�H�����1�1�"�b�!�<�>R�S�����1�1�.�1�a�&�!�L�Na�b�	*�
)�s�B9�9C		�C		c��UO[O2Q2UO[OP
P	P
P	2Q2P!)r�)r�rr����)rr�rr�)rHr��bool_converter_c_defaultrfs&r1�test_bool_converter_c_default�2ClinicFunctionalTest.test_bool_converter_c_default!
s@������;�;�=�~�N�����;�;�E�4��PT�U�%�	'r7c��UO[29^tt^2[O]2PPP2UO[29^tt^2[OQ2PPP2,QNo[9PIc,QU2DMJ	3LQU22oUO[O2U2,QNo[9PIc,QU2DMJ	3LQU22oUO[OUU2P!)%fhK�9h)%fhK�9h)r�sabc3�D�SF �Do[U2w�	J	P!3hrQ��ord�r�r@s& r1r��;ClinicFunctionalTest.test_char_converter.<locals>.<genexpr>,
�������A��Q������ c3�D�SF �Do[U2w�	J	P!3hrQrr s& r1r�r!/
r"r#)�A���	r<���
�"�'�?�\r8��)�1�2�3�4�5�6�7�8�9�0�a�b�c�d)r�r:r��char_converter�tuplerH)r.�charsr�s&  r1�test_char_converter�(ClinicFunctionalTest.test_char_converter&
s���
�
�
�y�
)�
)��$�$�Q�'�*�
�
�
�y�
)�
)��$�$�U�+�*�r���5�/��/�5�5�/��/�/������1�1�3�X�>�d���5�/��/�5�5�/��/�/������1�1�5�9�8�D�*�
)��
)�
)�s#�D$�D7�$D4	�-D4	�7E	�E	c
��]QHGoU]*oV!*
oUO[29^tt^2[O
P2PPP2UO[29^tt^2[O
U]*2PPP2UO[29^tt^2[O
]U]*2PPP2UO[29^tt^2[O
,2PPP2UO[O
2Q2UO[29^tt^2UO[O
]]U]*2Q2PPP2UO[O
]]U2]]U]*12UO[29^tt^2UO[O
]]U]*
2]]U12PPP2UO[29^tt^2UO[O
]]U]*]*]{*2Q2PPP2P!)%fhCK=9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCKP9h)%fhK�9h)%fhP!9h)r)�	UCHAR_MAX���"�8�rrr�rr�{)
�	_testcapirEr��
OverflowErrorr��unsigned_char_converterr:rH�assertWarnsr�)r.rE�	SCHAR_MAX�	SCHAR_MINs&   r1�test_unsigned_char_converter�1ClinicFunctionalTest.test_unsigned_char_converter2
s��'���N�	��)�	�
�
�
�}�
-�
-��-�-�b�1�.�
�
�
�}�
-�
-��-�-�i�!�m�<�.�
�
�
�}�
-�
-��-�-�a��Q��?�.�
�
�
�y�
)�
)��-�-�b�1�*�����:�:�<�l�K�
�
�
�0�
1�
1����Y�>�>�q�!�Y�QR�]�S�U^�_�2�����:�:�1�a��K�a�QR�T]�`a�Ta�Mb�c�
�
�
�0�
1�
1����Y�>�>�q�!�Y�QR�]�S�VW�YZ�\e�Uf�g�2�
�
�
�0�
1�
1����Y�>�>�q�!�i�RS�m�WX�EX�[^�E^�_�al�m�2�
1�.�
-�
-��
-�
-�
-��
-�
-�
-��
)�
)�
)��2�
1�
1��2�
1��
1�
1�
1�s}�J�2J�5J)�9J=�0K�!3K%�9>K8�J	�
J	�J&	�J&	�)J:	�2J:	�=K	�K	�K"	�K"	�%K5	�.K5	�8L		�L		c��]QHGoGoUO[29^tt^2[
OU]*
2PPP2UO[29^tt^2[
OU]*2PPP2UO[29^tt^2[
O,2PPP2UO[
OQ2Q2UO[
OQ2Q2P!)%fhK�9h)%fhK�9h)%fhK�9h)r)�SHRT_MIN�SHRT_MAX���.����rY)rX)	rMrVrWr�rNr��short_converterr:rH)r.rVrWs&  r1�test_short_converter�)ClinicFunctionalTest.test_short_converterG
s���0�
�
�
�}�
-�
-��%�%�h��l�3�.�
�
�
�}�
-�
-��%�%�h��l�3�.�
�
�
�y�
)�
)��%�%�b�)�*�����2�2�5�9�8�D�����2�2�4�8�'�B�.�
-��
-�
-��
)�
)�s5�D�*D-�-E�D*	�#D*	�-D=	�6D=	�E	�	E	c
��]QHGoGoGoUO	[
29^tt^2[OP2PPP2UO	[29^tt^2[OU]*2PPP2UO	[29^tt^2[O]U]*2PPP2UO	[29^tt^2[O,2PPP2UO[O2Q2UO[29^tt^2UO[O]]U]*2Q2PPP2UO[O]]U2]]U]*12UO[29^tt^2UO[O]]U]*
2]]U12PPP2UO[29^tt^2UO[O]]U]*]*]{*2Q2PPP2P!)%fhCK=9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCKP9h)%fhK�9h)%fhP!9h)r)rVrW�	USHRT_MAXrFrJrK)
rMrVrWr_r�r�r��unsigned_short_converterrNr:rHrPr�)r.rVrWr_s&   r1�test_unsigned_short_converter�2ClinicFunctionalTest.test_unsigned_short_converterR
s���;�;�
�
�
�z�
*�
*��.�.�r�2�+�
�
�
�}�
-�
-��.�.�y�1�}�=�.�
�
�
�}�
-�
-��.�.�q�)�a�-�@�.�
�
�
�y�
)�
)��.�.�r�2�*�����;�;�=�|�L�
�
�
�0�
1�
1����Y�?�?��1�i�RS�m�T�V_�`�2�����;�;�A�q�(�K�a�QR�T\�_`�T`�Ma�b�
�
�
�0�
1�
1����Y�?�?��1�h�QR�l�S�VW�YZ�\d�Ue�f�2�
�
�
�0�
1�
1����Y�?�?��1�y�ST�}�XY�FY�\_�F_�`�bm�n�2�
1�+�
*�
*��
-�
-�
-��
-�
-�
-��
)�
)�
)��2�
1�
1��2�
1��
1�
1�
1��}�I4�%J�(J�,J0�
0K�3K�,>K+�4J	�=J	�J	�J	�J-	�%J-	�0K	�9K	�K	�
K	�K(	�!K(	�+K<	�4K<	c�d�]QHGoGoUO[29^tt^2[
OU]*
2PPP2UO[29^tt^2[
OU]*2PPP2UO[29^tt^2[
O]]]2PPP2UO[29^tt^2[
O,2PPP2UO[
O2Q2UO[
O]]Q2]][Q212P!)%fhCK)9h)%fhK�9h)%fhK�9h)%fhK�9h)r)�INT_MIN�INT_MAX�3)rGrH�-)
rMrerfr�rNr�rr:rHr)r.rerfs&  r1�test_int_converter�'ClinicFunctionalTest.test_int_convertere
s��.�
�
�
�}�
-�
-��#�#�G�a�K�0�.�
�
�
�}�
-�
-��#�#�G�a�K�0�.�
�
�
�y�
)�
)��#�#�A�q�!�,�*�
�
�
�y�
)�
)��#�#�B�'�*�����0�0�2�L�A�����0�0��A�s�;�a��C��H�=M�N�.�
-�
-��
-�
-��
)�
)��
)�
)�sG�E%�*E9�-F�+F�%E6	�.E6	�9F		�F		�F	�F	�F/	�(F/	c
��]QHGoGoGoUO	[
29^tt^2[OP2PPP2UO	[29^tt^2[OU]*2PPP2UO	[29^tt^2[O]U]*2PPP2UO	[29^tt^2[O,2PPP2UO[O2Q2UO[29^tt^2UO[O]]U]*2Q2PPP2UO[O]]U2]]U]*12UO[29^tt^2UO[O]]U]*
2]]U12PPP2UO[29^tt^2UO[O]]U]*]*]{*2Q2PPP2P!)%fhCK=9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCKP9h)%fhK�9h)%fhP!9h)r)rerf�UINT_MAXrFrJrK)
rMrerfrlr�r�r��unsigned_int_converterrNr:rHrPr�)r.rerfrls&   r1�test_unsigned_int_converter�0ClinicFunctionalTest.test_unsigned_int_converterr
s���8�8�
�
�
�z�
*�
*��,�,�R�0�+�
�
�
�}�
-�
-��,�,�X��\�:�.�
�
�
�}�
-�
-��,�,�Q��1��=�.�
�
�
�y�
)�
)��,�,�R�0�*�����9�9�;�\�J�
�
�
�0�
1�
1����Y�=�=�a��H�q�L�Q�S\�]�2�����9�9�!�Q��H�1�a�QX�[\�Q\�J]�^�
�
�
�0�
1�
1����Y�=�=�a��G�a�K�P�ST�VW�Y`�Ra�b�2�
�
�
�0�
1�
1����Y�=�=�a��X�PQ�\�UV�DV�Y\�D\�]�_j�k�2�
1�+�
*�
*��
-�
-�
-��
-�
-�
-��
)�
)�
)��2�
1�
1��2�
1��
1�
1�
1�rcc��]QHGoGoUO[29^tt^2[
OU]*
2PPP2UO[29^tt^2[
OU]*2PPP2UO[29^tt^2[
O,2PPP2UO[
O2Q2UO[
OQ2Q2P!)%fhK�9h)%fhK�9h)%fhK�9h)r)�LONG_MIN�LONG_MAX�rGrYrZ)	rMrqrrr�rNr��long_converterr:rH)r.rqrrs&  r1�test_long_converter�(ClinicFunctionalTest.test_long_converter�
s���0�
�
�
�}�
-�
-��$�$�X��\�2�.�
�
�
�}�
-�
-��$�$�X��\�2�.�
�
�
�y�
)�
)��$�$�R�(�*�����1�1�3�U�;�����1�1�%�8�(�C�.�
-��
-�
-��
)�
)��5�D�*D,�-D?�D)	�"D)	�,D<	�5D<	�?E	�E	c
��]QHGoGoGoUO	[
29^tt^2[OP2PPP2UO	[29^tt^2[OU]*2PPP2UO	[29^tt^2[O]U]*2PPP2UO	[29^tt^2[O,2PPP2UO[O2Q2UO[29^tt^2UO[O]]U]*2Q2PPP2UO[O]]U2]]U]*12UO[29^tt^2UO[O]]U]*
2]]U12PPP2UO[29^tt^2UO[O]]U]*]*]{*2Q2PPP2P!)%fhCK=9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCKP9h)%fhK�9h)%fhP!9h)r)rqrr�	ULONG_MAXrFrJrK)
rMrqrrryr�r�r��unsigned_long_converterrNr:rHrPr�)r.rqrrrys&   r1�test_unsigned_long_converter�1ClinicFunctionalTest.test_unsigned_long_converter�
s���;�;�
�
�
�z�
*�
*��-�-�b�1�+�
�
�
�}�
-�
-��-�-�i�!�m�<�.�
�
�
�}�
-�
-��-�-�a��Q��?�.�
�
�
�y�
)�
)��-�-�b�1�*�����:�:�<�l�K�
�
�
�0�
1�
1����Y�>�>�q�!�Y�QR�]�S�U^�_�2�����:�:�1�a��J�Q�PQ�S[�^_�S_�L`�a�
�
�
�0�
1�
1����Y�>�>�q�!�X�PQ�\�R�UV�XY�[c�Td�e�2�
�
�
�0�
1�
1����Y�>�>�q�!�i�RS�m�WX�EX�[^�E^�_�al�m�2�
1�+�
*�
*��
-�
-�
-��
-�
-�
-��
)�
)�
)��2�
1�
1��2�
1��
1�
1�
1�rcc��]QHGoGoUO[29^tt^2[
OU]*
2PPP2UO[29^tt^2[
OU]*2PPP2UO[29^tt^2[
O,2PPP2UO[
O2Q2UO[
OQ2Q2P!)%fhK�9h)%fhK�9h)%fhK�9h)r)�	LLONG_MIN�	LLONG_MAXrsrYrZ)	rMr~rr�rNr��long_long_converterr:rH)r.r~rs&  r1�test_long_long_converter�-ClinicFunctionalTest.test_long_long_converter�
s���2�
�
�
�}�
-�
-��)�)�)�a�-�8�.�
�
�
�}�
-�
-��)�)�)�a�-�8�.�
�
�
�y�
)�
)��)�)�"�-�*�����6�6�8�%�@�����6�6�u�=�x�H�.�
-��
-�
-��
)�
)�rwc
��]QHGoGoGoUO	[
29^tt^2[OP2PPP2UO	[29^tt^2[OU]*2PPP2UO	[29^tt^2[O]U]*2PPP2UO	[29^tt^2[O,2PPP2UO[O2Q2UO[29^tt^2UO[O]]U]*2Q2PPP2UO[O]]U2]]U]*12UO[29^tt^2UO[O]]U]*
2]]U12PPP2UO[29^tt^2UO[O]]U]*]*]{*2Q2PPP2P!)%fhCK=9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCKP9h)%fhK�9h)%fhP!9h)r)r~r�
ULLONG_MAXrFrJrK)
rMr~rr�r�r�r��unsigned_long_long_converterrNr:rHrPr�)r.r~rr�s&   r1�!test_unsigned_long_long_converter�6ClinicFunctionalTest.test_unsigned_long_long_converter�
s���>�>�
�
�
�z�
*�
*��2�2�2�6�+�
�
�
�}�
-�
-��2�2�:��>�B�.�
�
�
�}�
-�
-��2�2�1�j�1�n�E�.�
�
�
�y�
)�
)��2�2�2�6�*�����?�?�A�<�P�
�
�
�0�
1�
1����Y�C�C�A�q�*�WX�.�Y�[d�e�2�����?�?��1�i�P�ST�VW�Yb�ef�Yf�Rg�h�
�
�
�0�
1�
1����Y�C�C�A�q�)�VW�-�X�[\�^_�aj�Zk�l�2�
�
�
�0�
1�
1����Y�C�C�A�q�:�XY�>�]^�J^�ad�Jd�e�gr�s�2�
1�+�
*�
*��
-�
-�
-��
-�
-�
-��
)�
)�
)��2�
1�
1��2�
1��
1�
1�
1�rcc��]QHGoGoUO[29^tt^2[
OU]*
2PPP2UO[29^tt^2[
OU]*2PPP2UO[29^tt^2[
O,2PPP2UO[29^tt^2[
O]]"]8P2PPP2UO[29^tt^2[
O]]"]8]NP2PPP2UO[
O2Q2UO[
O]]P]P]P2Q2P!)%fhCKb9h)%fhCK39h)%fhCK9h)%fhK�9h)%fhK�9h)r��PY_SSIZE_T_MIN�PY_SSIZE_T_MAX)rGrHrI�N�Zi�����)r�rJrI�r��r�)
rMr�r�r�rNr��py_ssize_t_converterr:r�rH�r.r�r�s&  r1�test_py_ssize_t_converter�.ClinicFunctionalTest.test_py_ssize_t_converter�
sB��<�
�
�
�}�
-�
-��*�*�>�A�+=�>�.�
�
�
�}�
-�
-��*�*�>�A�+=�>�.�
�
�
�y�
)�
)��*�*�2�.�*�
�
�
�z�
*�
*��*�*�2�r�2�r�:�+�
�
�
�z�
*�
*��*�*�2�r�2�r�2�>�+�����7�7�9�;Y�Z�����7�7��1�d�A�t�Q�PT�U�Wp�q�.�
-�
-��
-�
-�
-��
)�
)�
)��
*�
*��
*�
*�sY�F�*F2�-G�)G�(G-�F/	�'F/	�2G	�;G	�G	�G	�G*	�#G*	�-G=	�6G=	c�,�]QHGoGoUO[29^tt^2[
O,2PPP2UO[
O2Q2UO[
O]]P2Q2UO[
OV"]*UQ*2V"U12UO[
OV]*
UQ*
2VU12P!)%fhK�9h)rr�i�rF)r�rJrI)rMr�r�r�r:r��slice_index_converterrHr�s&  r1�test_slice_index_converter�/ClinicFunctionalTest.test_slice_index_converter�
s���<�
�
�
�y�
)�
)��+�+�B�/�*�����8�8�:�L�I�����8�8��A�t�D�j�Q�����8�8��Z[�I[�]k�nr�]r�s�(�.�I�	K�����8�8��Z[�I[�]k�nr�]r�s�(�.�I�	K�
*�
)�s�D�D	�D	c��UO[29^tt^2[OP2PPP2UO[29^tt^2[O,2PPP2UO[O2Q2P!)%fhKs9h)%fhKJ9h)r�rs)r�r�r��size_t_converterr:rHrfs&r1�test_size_t_converter�*ClinicFunctionalTest.test_size_t_converter�
ss��
�
�
�z�
*�
*��&�&�r�*�+�
�
�
�y�
)�
)��&�&�r�*�*�����3�3�5�u�=�	+�
*��
)�
)�s#�B!�B4�!B1	�*B1	�4C	�=C	c�<�UO[29^tt^2[O,2PPP2UO	[O2Q2UO	[OQ2Q2P!)%fhK]9h�N)g)@�࿩r�)r�r:r��float_converterrHrfs&r1�test_float_converter�)ClinicFunctionalTest.test_float_converter�
sc��
�
�
�y�
)�
)��%�%�b�)�*�����2�2�4�g�>�����2�2�4�8�'�B�*�
)���B�B	�B	c�<�UO[29^tt^2[O,2PPP2UO	[O2Q2UO	[OQ2Q2P!)%fhK]9hr�)r�r:r��double_converterrHrfs&r1�test_double_converter�*ClinicFunctionalTest.test_double_converter�
sc��
�
�
�y�
)�
)��&�&�r�*�*�����3�3�5�w�?�����3�3�D�9�7�C�*�
)�r�c�&�UO[29^tt^2[O,2PPP2UO	[O[]]22[]]212UO	[O[Q22[Q212UO	[OQ2Q2UO	[O]
2Q2P!)%fhK�9h)Nz-1-2jr�r�)�
)r�r:r��py_complex_converterrH�complexrfs&r1�test_py_complex_converter�.ClinicFunctionalTest.test_py_complex_converter�
s���
�
�
�y�
)�
)��*�*�2�.�*�����7�7���1�
�F��QR�TU��HX�Y�����7�7���8H�I�G�T[�L\�K^�_�����7�7��=�w�G�����7�7��;�U�C�*�
)�s�D�D	�	D	c���UO[29^tt^2[O]2PPP2UO[29^tt^2[OQQQ2PPP2UO[29^tt^2[OQQQ2PPP2UO[OQQQ2Q2UO[OQQQ2Q2UO[OQQQ2Q	2P!)%fhCK9h)%fhK�9h)%fhK�9h)
r�r�r�r@�bbr<r=�ccr��r�r�r�)r�r:r�rr�rHrfs&r1�test_str_converter�'ClinicFunctionalTest.test_str_converter�
s���
�
�
�y�
)�
)��#�#�A�&�*�
�
�
�y�
)�
)��#�#�C��c�2�*�
�
�
�z�
*�
*��#�#�C��#�6�+�����0�0��d�C�@�/�R�����0�0��d�D�A�?�S�����0�0��d�F�C�EW�X�*�
)�
)��
)�
)��
*�
*�s5�D4�E�E�4E	�=E	�E	�E	�E+	�$E+	c
���UO[29^tt^2[O]2PPP2UO	[OQQQ2Q2UO[29^tt^2[OQQQ2PPP2UO	[OQQ[[
Q2,22Q2UO	[OQQ[[
Q2][
Q2,22Q2UO	[OQQQ2Q2P!)%fhCK"9h)%fhK�9h)	r�r�r�r@r�r<sccr�r�)r�r:r��str_converter_encodingrHrrrfs&r1�test_str_converter_encoding�0ClinicFunctionalTest.test_str_converter_encodings
��
�
�
�y�
)�
)��,�,�Q�/�*�����9�9�#�s�C�H�/�Z�
�
�
�y�
)�
)��,�,�S�'�3�?�*�����9�9�#�t�Y�PS�TW�PX�z�EZ�[�]l�m�����9�9�#�t�Y�PS�TW�PX�Z[�]`�ad�]e�Of�Eg�h�-�	/�����9�9�#�t�Y�O�Qe�f�*�
)�
)��*�
)�s#�E�E#�E 	�E 	�#E3	�,E3	c	��UO[29^tt^2[OQQ2PPP2UO	[OQ[,QN22Q2P!)%fhKD9h)r�r��abc�r�rJr�)�abcs)r�r:r��py_buffer_converterrHrrfs&r1�test_py_buffer_converter�-ClinicFunctionalTest.test_py_buffer_convertersT��
�
�
�y�
)�
)��)�)�#�s�3�*�����6�6�u�i�	�>R�S�Un�o�*�
)�s�A3�3B	�<B	c��UO[O]]2Q2UO[O]]Q5Q2UO[O]]Q5Q2P!�r��r�r�r�)rHr��keywordsrfs&r1�
test_keywords�"ClinicFunctionalTest.test_keywordssY������+�+�A�q�1�6�:�����+�+�A��3�V�<�����+�+�a�1�5�v�>r7c�H�UO[29^tt^2[O]]2PPP2UO	[O]]Q5Q2UO	[O]]Q5Q2P!)%fhKb9hr�)r�r:r��keywords_kwonlyrHrfs&r1�test_keywords_kwonly�)ClinicFunctionalTest.test_keywords_kwonlysk��
�
�
�y�
)�
)��%�%�a��+�*�����2�2�1��:�F�C�����2�2�Q�!�<�f�E�*�
)�s�B�B!	�B!	c�6�UO[O]2Q2UO[O]]2Q2UO[O]]]2Q2UO[O]]Q5Q2UO[O]]]Q5Q2UO[O]]Q5Q2UO[O]]]Q5Q2P!)	r�r��r@�r�r@r��r�NN�r�rJNr��r�Nr�)rHr��keywords_optrfs&r1�test_keywords_opt�&ClinicFunctionalTest.test_keywords_opts�������/�/��2�O�D�����/�/��1�5�|�D�����/�/��1�a�8�)�D�����/�/��Q�7��F�����/�/��1��:�I�F�����/�/�!�q�9�<�H�����/�/�!�q�A�>�	�Jr7c	��UO[O]2Q2UO[O]]2Q2UO[29^tt^2[O]]]2PPP2UO[O]]Q5Q2UO[O]]]Q5Q2UO[O]]Q5Q2UO[O]]]]Q5Q	2P!)%fhK�9h)
r�r�r�r��r�r�r@�d�r�NNN�r�rJNN�r�rJr�N)r�Nr�N�r�rJr�r�)rHr��keywords_opt_kwonlyr�r:rfs&r1�test_keywords_opt_kwonly�-ClinicFunctionalTest.test_keywords_opt_kwonly%s�������6�6�q�9�;P�Q�����6�6�q�!�<�>P�Q�
�
�
�y�
)�
)��)�)�!�Q��2�*�����6�6�q�A�>�@R�S�����6�6�q�!�q�A�?�S�����6�6��a�@�BT�U�����6�6��a�1��J�L�Y�*�
)�s�,D2�2E	�;E	c���UO[O]2Q2UO[29^tt^2[O]]2PPP2UO[O]]Q5Q2UO[O]]Q5Q2UO[O]]]Q5Q2P!)%fhK�9h)r�r�r�r�r�r�r�r�)rHr��keywords_kwonly_optr�r:rfs&r1�test_keywords_kwonly_opt�-ClinicFunctionalTest.test_keywords_kwonly_opt/s�������6�6�q�9�?�K�
�
�
�y�
)�
)��)�)�!�Q�/�*�����6�6�q�A�>��M�����6�6��a�@�,�O�����6�6��a�1�E�y�Q�	*�
)�s�C � C0	�)C0	c���UO[29^tt^2[O]2PPP2UO[29^tt^2[O]]Q5PPP2UO	[O]]2Q2UO	[O]]Q5Q2P!)%fhK�9h)%fhKt9h�r�r�r�r�)r�r:r��posonly_keywordsrHrfs&r1�test_posonly_keywords�*ClinicFunctionalTest.test_posonly_keywords7s���
�
�
�y�
)�
)��&�&�q�)�*�
�
�
�y�
)�
)��&�&��a�0�*�����3�3�A�q�9�6�B�����3�3�A��;�V�D�*�
)��
)�
)�s#�C
�C �
C	�C	� C0	�)C0	c�8�UO[29^tt^2[O]2PPP2UO[29^tt^2[O]]2PPP2UO[29^tt^2[O]]Q5PPP2UO	[O]]Q5Q2P!)%fhK�9h)%fhK�9h)%fhK`9hr�)r�r:r��posonly_kwonlyrHrfs&r1�test_posonly_kwonly�(ClinicFunctionalTest.test_posonly_kwonly?s���
�
�
�y�
)�
)��$�$�Q�'�*�
�
�
�y�
)�
)��$�$�Q��*�*�
�
�
�y�
)�
)��$�$�q�A�.�*�����1�1�!�q�9�6�B�
*�
)��
)�
)��
)�
)�s5�C#�C6�D	�#C3	�,C3	�6D	�?D	�	D	�D	c��UO[29^tt^2[O]2PPP2UO[29^tt^2[O]]]2PPP2UO[29^tt^2[O]]]Q5PPP2UO	[O]]]Q5Q2UO	[O]]]Q5Q2P!)%fhK�9h)%fhK�9h)%fhK�9h)r�r�r��r�r@r�)r�r:r��posonly_keywords_kwonlyrHrfs&r1�test_posonly_keywords_kwonly�1ClinicFunctionalTest.test_posonly_keywords_kwonlyHs���
�
�
�y�
)�
)��-�-�a�0�*�
�
�
�y�
)�
)��-�-�a��A�6�*�
�
�
�y�
)�
)��-�-��Q�!�<�*�����:�:�1�a�1�E�y�Q�����:�:�1��Q�G��S�*�
)��
)�
)��
)�
)�s5�D�D"�D5�D	�D	�"D2	�+D2	�5E	�>E	c	�4�UO[29^tt^2[O]2PPP2UO	[O]]2Q2UO	[O]]]2Q2UO	[O]]]]2Q2UO	[O]]Q5Q2UO	[O]]]Q5Q2UO[29^tt^2[O]]]]Q5PPP2UO	[O]]]]Q5Q2P!)%fhCKF9h)%fhKP9h)r�r�r�r��r�r@r�r�r�r�)r�r:r��posonly_keywords_optrHrfs&r1�test_posonly_keywords_opt�.ClinicFunctionalTest.test_posonly_keywords_optRs!��
�
�
�y�
)�
)��*�*�1�-�*�����7�7��1�=�?Q�R�����7�7��1�a�@�/�R�����7�7��1�a��C�\�R�����7�7��Q�?�AS�T�����7�7��1��B�O�T�
�
�
�y�
)�
)��*�*�Q�!�q�A�>�*�����7�7��Q�!�q�I�<�X�*�
)�
)��*�
)�s#�E3�$F�3F	�<F	�F	�F	c	�4�UO[O]2Q2UO[O]]2Q2UO[O]]]2Q2UO[O]]]]2Q2UO[29^tt^2[O]]Q5PPP2UO[O]]]Q5Q2UO[O]]]]Q5Q2UO[29^tt^2[O]]]]Q5PPP2P!)%fhK�9h)%fhP!9h)	r�r�r��r@r�r�r�r�r�r�)rHr��posonly_opt_keywords_optr�r:rfs&r1�test_posonly_opt_keywords_opt�2ClinicFunctionalTest.test_posonly_opt_keywords_opt^s$������;�;�A�>�@U�V�����;�;�A�q�A�CU�V�����;�;�A�q�!�D�o�V�����;�;�A�q�!�Q�G��V�
�
�
�y�
)�
)��.�.�q�A�6�*�����;�;�A�q�A�F��X�����;�;�A�q�A��K�\�Z�
�
�
�y�
)�
)��.�.��a�1��B�*�
)�	*�
)��*�
)�
)�s$�=E3�F�3F	�<F	�F	�F	c	���UO[29^tt^2[O]2PPP2UO[29^tt^2[O]]2PPP2UO	[O]]Q5Q2UO	[O]]]Q5Q2UO	[O]]]]Q5Q2UO[29^tt^2[O]]]]Q5PPP2P!)%fhCK9h)%fhK�9h)%fhP!9h)r�r�r�r�r�r�r�r�)r�r:r��posonly_kwonly_optrHrfs&r1�test_posonly_kwonly_opt�,ClinicFunctionalTest.test_posonly_kwonly_optjs���
�
�
�y�
)�
)��(�(��+�*�
�
�
�y�
)�
)��(�(��A�.�*�����5�5�a�1�=�?Q�R�����5�5�a�1��B�O�T�����5�5�a�1��Q�G��V�
�
�
�y�
)�
)��(�(�1��Q�!�<�*�
)�*�
)�
)��
)�
)��
*�
)�
)�s5�D8�E�E�8E		�E		�E	�E	�E0	�(E0	c	��UO[O]2Q2UO[O]]2Q2UO[29^tt^2[O]]]2PPP2UO[29^tt^2[O]]Q5PPP2UO[O]]]Q5Q2UO[O]]]]Q5Q2P!)%fhK�9h)%fhKx9h)r�r�r�r�r�r�r�r�)rHr��posonly_opt_kwonly_optr�r:rfs&r1�test_posonly_opt_kwonly_opt�0ClinicFunctionalTest.test_posonly_opt_kwonly_optus�������9�9�!�<�>S�T�����9�9�!�Q�?�AS�T�
�
�
�y�
)�
)��,�,�Q��1�5�*�
�
�
�y�
)�
)��,�,�Q�!�4�*�����9�9�!�Q�!�D�o�V�����9�9�!�Q�!�q�I�<�X�*�
)��
)�
)�s$�,D �*D3� D0	�)D0	�3E	�<E	c
��UO[29^tt^2[O]2PPP2UO[29^tt^2[O]]2PPP2UO[29^tt^2[O]]Q5PPP2UO[29^tt^2[O]]]2PPP2UO[29^tt^2[O]]]Q5PPP2UO	[O]]]Q5Q2UO	[O]]]Q5Q2UO	[O]]]]Q5Q2UO	[O]]]]]Q5Q	2P!)%fhCK�9h)%fhCK�9h)%fhCK_9h)%fhCK59h)%fhCK
9h)
r�r�r�r�r�r��r@r��e�r�rJr�NN�r�rJr�r�N�r�rJr�r��)r�r:r��posonly_keywords_kwonly_optrHrfs&r1� test_posonly_keywords_kwonly_opt�5ClinicFunctionalTest.test_posonly_keywords_kwonly_opts}��
�
�
�y�
)�
)��1�1�!�4�*�
�
�
�y�
)�
)��1�1�!�Q�7�*�
�
�
�y�
)�
)��1�1�!�q�9�*�
�
�
�y�
)�
)��1�1�!�Q��:�*�
�
�
�y�
)�
)��1�1�A��a�@�*�����>�>�q�!�q�I�K`�a�����>�>�q�A��K�Mb�c�����>�>�q�!�q�A�N�Pb�c�����>�>�q�!�q�A�QR�S�Ud�e�*�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)�sY�G�G3�H�H�H/�G0	�(G0	�3H	�<H	�H	�H	�H,	�$H,	�/I	�8I	c
��UO[29^tt^2[O]2PPP2UO	[O]]2Q	2UO	[O]]Q5Q	2UO[29^tt^2[O]]]]2PPP2UO[29^tt^2[O]]Q5PPP2UO	[O]]]Q5Q
2UO	[O]]]Q5Q
2UO	[O]]]]Q5Q2UO	[O]]]]Q5Q2UO	[O]]]]]Q5Q2UO	[O]]]]]Q5Q2P!)%fhCK�9h)%fhCKa9h)%fhCK79h)
r�r�r�r�r��r�r��r�rr)r�rJNNNrrr)r�r:r��posonly_keywords_opt_kwonly_optrHrfs&r1�$test_posonly_keywords_opt_kwonly_opt�9ClinicFunctionalTest.test_posonly_keywords_opt_kwonly_opt�s���
�
�
�y�
)�
)��5�5�a�8�*�����B�B�1�a�H�Jb�c�����B�B�1��J�Ld�e�
�
�
�y�
)�
)��5�5�a��A�q�A�*�
�
�
�y�
)�
)��5�5��Q�?�*�����B�B�1�a�1�M�Od�e�����B�B�1��Q�O�Qf�g�����B�B�1�a��a�P�Rd�e�����B�B�1�a�1�PQ�R�Tf�g�����B�B�1�a��a�ST�U�Wf�g�����B�B�1�a�1�PQ�UV�W�Yh�i�*�
)�
)��*�
)�
)��
)�
)�
)�s5�H�*H�)H0�H	�H	�H-	�%H-	�0I	�9I	c	�4�UO[O]2Q2UO[O]]2Q2UO[29^tt^2[O]]Q5PPP2UO[O]]]2Q2UO[O]]]Q5Q2UO[O]]]]Q5Q2UO[O]]]]Q5Q2UO[29^tt^2[O]]]]2PPP2P!)%fhK�9h)%fhP!9h)	r�r�r�rr�r�r�r�r�)rHr��#posonly_opt_keywords_opt_kwonly_optr�r:rfs&r1�(test_posonly_opt_keywords_opt_kwonly_opt�=ClinicFunctionalTest.test_posonly_opt_keywords_opt_kwonly_opt�s*������F�F�q�I�K`�a�����F�F�q�!�L�N`�a�
�
�
�y�
)�
)��9�9�!�q�A�*�����F�F�q�!�Q�O�Q`�a�����F�F�q�!�q�Q�Sb�c�����F�F�q�!�Q�RS�T�Vb�c�����F�F�q�!�q�TU�V�Xd�e�
�
�
�y�
)�
)��9�9�!�Q��1�E�*�
)�
*�
)��*�
)�
)�s$�,E3�F�3F	�<F	�F	�F	c��UO[29^tt^2[O2PPP2UO[29^tt^2[O]2PPP2UO	[O]Q5Q2P!)%fhKu9h)%fhKL9h)Nr��r�)r�r:r��keyword_only_parameterrHrfs&r1�test_keyword_only_parameter�0ClinicFunctionalTest.test_keyword_only_parameter�ss��
�
�
�y�
)�
)��,�,�.�*�
�
�
�y�
)�
)��,�,�Q�/�*�����9�9�A�>��E�	*�
)��
)�
)�s#�B"�B5�"B2	�+B2	�5C	�>C	c�h�UOU2Q2UOU]]2Q2P!�r�r4r�)rHr�s&&r1�test_varpos� ClinicFunctionalTest.test_varpos�s,��
���R�T�2�&����R��1�X�v�.r7c��UO[U2UO[U]2UO[U]]Q5UOU]]2Q2UOU]]]]2Q2P!)r�r��r�rJr4�r�rJ�r�r��r�r:rHr�s&&r1�test_posonly_varpos�(ClinicFunctionalTest.test_posonly_varpos�sm��
���i��,����i��Q�/����i��Q�!��4����R��1�X�z�2����R��1�a��^�^�<r7c��UO[U2UO[U]Q5UOU]2Q2UOU]]2Q2UOU]]]]2Q2P!)r�r�)r�Fr4rr r"r�s&&r1�test_posonly_req_opt_varpos�0ClinicFunctionalTest.test_posonly_req_opt_varpos�sm��
���i��,����i��q��1����R��U�N�3����R��1�X�z�2����R��1�a��^�^�<r7c
�b�UO[U2UOU]]2Q2UOU]]Q5Q2UOU]]]]2Q2UO[U]Q5[OQ2oUO[V!]]]]Q5P!)r�r�z$given by name ('b') and position (2)rr )r�r:rHrErFrG�r.r,rMs&& r1�test_posonly_poskw_varpos�.ClinicFunctionalTest.test_posonly_poskw_varpos�s���
���i��,����R��1�X�z�2����R��Q�Z��4����R��1�a��^�^�<����i��q��1��Y�Y�E�F�F��"�"�9�f�!�Q��Q�"�Gr7c�|�[OoUO[U2UO[U]]Q5UO	U]Q5Q2[
OQ2oUO[V!]]Q5UO	U]2Q2UO	U]]]]2Q2P!)r�r�r��$given by name ('a') and position (1))r�r4)r��rJr�r�)r��poskw_varposr�r:rHrErFrGr)s&  r1�test_poskw_varpos�&ClinicFunctionalTest.test_poskw_varpos�s���
�
#�
#�����)�R�(����)�R��a��0�����a��'�*����A�B�����y�&�a�1��=�����A���(�����A�q�!�Q���8r7c
��[OoUO[U2[O
Q2oUO
[V!]]Q5UOU]]Q5Q2UOU]]]]2Q2UOU]]]]]Q5Q2UOU]Q5Q2UOU]]Q5Q2P!)r-r�r�r�)r�r4T)r�r.F)r�r.T)r�r4F)r��poskw_varpos_kwonly_optr�r:rErFrGrHr)s&  r1�test_poskw_varpos_kwonly_opt�1ClinicFunctionalTest.test_poskw_varpos_kwonly_opt�s���
�
.�
.�����)�R�(����A�B�����y�&�a�1��=�����A���]�3�����A�q�!�Q��)>�?�����A�q�!�Q�!�,�.B�C�����a��.�1�����a�1��}�5r7c
�^�[OoUO[U2[O
Q2oUO
[V!]]Q5UOU]]Q5Q2UOU]]]Q5Q2UOU]]]2Q2UOU]]]]Q5Q	2UOU]]]]]Q5Q
2UOU]Q5Q2UOU]]Q5Q2UOU]]]Q5Q2P!)r-r�r�r�r�r�)r�r4rJF)r�r4rJr�)r��rJr�FF)r�r7r�F)r�r7r�r)r�r4FF)r��poskw_varpos_kwonly_opt2r�r:rErFrGrHr)s&  r1�test_poskw_varpos_kwonly_opt2�2ClinicFunctionalTest.test_poskw_varpos_kwonly_opt2�s
��
�
/�
/�����)�R�(����A�B�����y�&�a�1��=�����A���%6�7�����A��a��-�8�����A�q�!��&?�@�����A�q�!�q�)�+@�A�����A�q�!�q�A�.�0A�B�����a��"7�8�����a�1��'8�9�����a�1��*�M�:r7c
�,�[OoUOU2Q2UOU]Q5Q2UOU]]Q5Q2UOU]]]]2Q2UOU]]]]]Q5Q2P!)Fr�)r4F)r4rJ)rrJ)r�F)r�r)r��varpos_kwonly_optrHr�s& r1�test_varpos_kwonly_opt�+ClinicFunctionalTest.test_varpos_kwonly_opts���
�
(�
(�������{�+�����a��'�*�����A���Z�0�����A�q�!�Q��)>�?�����A�q�!�Q�!�,�.?�@r7c	��[OoUO[U2UO	U]Q5Q2UO	U]]Q5Q2UO	U]]]Q5Q2UO[U]2UO	U]]Q5Q2UO	U]]]Q5Q2UO	U]]]]Q5Q	2P!)
r�r�r�r�)r4r�FF)r4r�rJF)r4r�rJr�)rrJFF)rrJr�F)rrJr�r�)r��varpos_kwonly_req_optr�r:rHr�s& r1�test_varpos_kwonly_req_opt�/ClinicFunctionalTest.test_varpos_kwonly_req_opts���
�
,�
,�����)�R�(�����a��"7�8�����a�1��'8�9�����a�1��*�M�:����)�R��+�����A���%<�=�����A��a��*=�>�����A��a�1�-��?r7c	�@�[O]]]]]]Q5P!)r�)�kw1�kw2)r��gh_32092_oobrfs&r1�test_gh_32092_oob�&ClinicFunctionalTest.test_gh_32092_oobs�����q�!�Q��q�a�8r7c�8�[O]]]2P!r)r��gh_32092_kw_passrfs&r1�test_gh_32092_kw_pass�*ClinicFunctionalTest.test_gh_32092_kw_passs���"�"�1�a��+r7c��Qo[OU2o[OU2[OU2oUO	V#2P!)z5*A unique string is not referenced by anywhere else.*)rY�getrefcountr��gh_99233_refcountrH)r.�arg�arg_refcount_origin�arg_refcount_afters&   r1�test_gh_99233_refcount�+ClinicFunctionalTest.test_gh_99233_refcount"sB��E��!�o�o�c�2���#�#�C�(� �_�_�S�1�����,�Ar7c���[OQ2oUO[U29^tt^2[O
QQ2PPP2P!)%fhP!9h)zTgh_99240_double_free() argument 2 must be encoded string without null bytes, not strr�zb)rErFrGr:r��gh_99240_double_free)r.rts& r1�test_gh_99240_double_free�.ClinicFunctionalTest.test_gh_99240_double_free)sI���i�i�
*�
���
#�
#�I�s�
3�
3��*�*�3��6�4�
3�
3�
3�s�A�A)	�!A)	c�*�[OoUOUQ2Q2UOUQ]]]P	Q5Q2UOUQQ5Q2UOUQP	Q5Q2UOUP	QQ5Q2UO[UP	Q5[
OQ2oUO[V!]QQ5UO[V!]]]QP	Q5UO[V!]]]P	QQ5P!)	r�)�	covariantr�)rrZ)rZrz'given by name ('name') and position (1))r�r4F)r�r�T)r�r4T)r��null_or_tuple_for_varargsrHr�r:rErFrGr)s&  r1�test_null_or_tuple_for_varargs�3ClinicFunctionalTest.test_null_or_tuple_for_varargs1s���
�
0�
0������C��"2�3�����C��A�q�D�9�;Q�R�������'7�8�������5��G�����d��5��G����)�R�4��8����D�E�����y�&�a�c��B����y�&�a��A�C�SW��X����y�&�a��A��TW��Xr7c�N�PoUO[Q29^tt^2[OU2PPP2UO[Q29^tt^2[OU2PPP2P!)%fhKO9h)%fhP!9h)r��clone_f1�clone_f2)rGr:r�r_r`)r.�
incorrect_args& r1�"test_cloned_func_exception_message�7ClinicFunctionalTest.test_cloned_func_exception_messageAsi���
�
�
#�
#�I�z�
:�
:����}�-�;�
�
#�
#�I�z�
:�
:����}�-�;�
:�;�
:��
:�
:�
:�s#�B�B�B	�	B	�B$	�B$	c	���QFDMoUOUQ59^tt^2[[U2oUOU2U2PPP2JO	P!)%fhJd9h)�clone_with_conv_f1r�)re�clone_with_conv_f2)r-r�r�rH)r.rrs&  r1�1test_cloned_func_with_converter_exception_message�FClinicFunctionalTest.test_cloned_func_with_converter_exception_messageHsM��>�D����4��(�(��y�$�/��� � ����.�)�(�?�(�(�(�s�(A	�A)
�!A)
c��[O2oUOoUOUO2[O2UO	[
29^tt^2UO
[OQ5PPP2[UO[
Q2oUU]2UU]Q5P!)%fhK@9h))r'�no argumentsr�)	r��	TestClass�get_defining_classr%r�r:�get_defining_class_argrrG)r.r�meth�checks&   r1�test_get_defining_class�,ClinicFunctionalTest.test_get_defining_classNs����!�!�#���%�%���
�
�c�,�,�.�	�0C�0C�D��
�
�y�
)�
)��&�&�9�+>�+>�&�?�*���.�.�	�>�J��
�d�A��
�d�a��*�
)�s�.!C�C	�C	c�T�]QHGo[O2oUOoUUPP2UUQP2UUQQ2UUPQ2UOUUQQ2[O2[
UO[Q2oUVQP2UVQQ2P!)r)�pyobject_vectorcallrjr4rr�)	rMrsr�rkrlr%rrGr:)r.rsrrnros&    r1�test_get_defining_class_capi�1ClinicFunctionalTest.test_get_defining_class_capi[s���1��!�!�#���%�%���D�$��-��D�"�d�+��D�"�b�)��D�$��+��
�
�)�$��B�7��9L�9L�M���.�.�	�>�J��
�!��t�4�
�!��v�6r7c���[O2oUOUOQ2[OQ12UOUO]{Q5[O]{12UO	[
29^tt^2UO[OQQ5PPP2UO	[
29^tt^2UO2PPP2UO	[
29^tt^2UOQQ2PPP2P!)%fhK�9h)%fhK]9h)%fhP!9h)rP)rP)r'rP�arg1�arg2)r�rkrHrmr�r:)r.rs& r1�test_get_defining_class_arg�0ClinicFunctionalTest.test_get_defining_class_argis����!�!�#������3�3�E�:�#�-�-�u�5�	7�����3�3��3�<�#�-�-�s�3�	5��
�
�y�
)�
)��&�&�9�+>�+>�E�&�J�*��
�
�y�
)�
)��&�&�(�*�
�
�
�y�
)�
)��&�&�v�v�6�*�
)�
*�
)��*�
)��
)�
)�
)�s6�"D1�E�E�1E	�:E	�E	�
E	�E(	� E(	c�f�[OoU2oUOoUOU2UQ12UOU]]2UQ12UOoUO	[
U2UOUU2UQ12UOUU]]2UQ12P!r)r�rk�defclass_varposrHr�r:)r.r'rr,s&   r1�test_defclass_varpos�)ClinicFunctionalTest.test_defclass_varposzs����!�!���e��
�
 �
 ��������R�y�)�����A�q��C��=�1�
�
 �
 �����)�R�(�����C��3��)�,�����C��A���f�
�6r7c	�B�[OoU2oUOoQoUO[VC2UO[VC]2UOU]]2U]]Q12UOU]]]]2U]]Q12UOoUO
[U2UO[VCU2UO[VCU]2UOUU]]2U]]Q12UOUU]]]]2U]]Q12P!)z%takes at least 2 positional argumentsr4r!)r�rk�defclass_posonly_varposrGr:rHr�)r.r'rr,rMs&    r1�test_defclass_posonly_varpos�1ClinicFunctionalTest.test_defclass_posonly_varpos�s���!�!���e��
�
(�
(��8�����y�&�5����y�&�a�8�����A�q��C��A�r�?�3�����A�q�!�Q��#�q�!�V�)<�=�
�
(�
(�����)�R�(����y�&�c�:����y�&�c�1�=�����C��A���a��B��8�����C��A�q�!�,�s�A�q�&�.A�Br7c�n�[OoU2UPQ5UOQUP2P!�Nr��'a')r��DeprStarNewr��r.r's& r1�test_depr_star_new�'ClinicFunctionalTest.test_depr_star_new�s+���#�#�����d�����U�C��.r7c��[O2OoU2UPQ5UOQUPQQ5P!)Nr�r�z_testclinic.DeprStarNew.clonedr�)r�r��clonedr�r�s& r1�test_depr_star_new_cloned�.ClinicFunctionalTest.test_depr_star_new_cloned�s:��
�
"�
"�
$�
+�
+��
��
�T�
����U�B��3S��Tr7c�n�[OoU2UPQ5UOQUP2P!r�)r��DeprStarInitr�r�s& r1�test_depr_star_init�(ClinicFunctionalTest.test_depr_star_init�s+���$�$�����d�����U�C��.r7c��[O2OoU2UPQ5UOQUPQQ5P!)Nr�r�z_testclinic.DeprStarInit.clonedr�)r�r�r�r�r�s& r1�test_depr_star_init_cloned�/ClinicFunctionalTest.test_depr_star_init_cloned�s:��
�
#�
#�
%�
,�
,��
��
�T�
����U�B��3T��Ur7c�H�[OoUO[UQ2UQQQ5UQQQQ5UQQQ5UQQQQ5[	UO
QU2oUQQ2UQQQ2UQQQQ5UO[UQQQQ	2P!�
r�r�r�r@r�r�r��'b' and 'c'r�r�)r��DeprStarInitNoInliner�r:rr��r.r'ros&  r1�test_depr_star_init_noinline�1ClinicFunctionalTest.test_depr_star_init_noinline�s����,�,�����)�S�#�.��c�S���c�S�C� ��C�3���C�3�#����,�,�m�S�A��
�c�3��
�c�3���
�c�3�#�����)�S�#�s�C��=r7c�n�[OoU2UP2UOQUPQ5P!�Nr�r�)r��
DeprKwdNewr�r�s& r1�test_depr_kwd_new�&ClinicFunctionalTest.test_depr_kwd_new�s.���"�"�����D�	����E�3�$��/r7c�n�[OoU2UP2UOQUPQ5P!r�)r��DeprKwdInitr�r�s& r1�test_depr_kwd_init�'ClinicFunctionalTest.test_depr_kwd_init�s.���#�#�����D�	����E�3�$��/r7c�h�[Oo[OoUO[UQ2UQQQ5UQQQQ5UQQQ5UQQQQ5[UOQU2oUQQ2UQQQ2UQQQQ5UO[UQQQQ	2P!r�)r��DeprKwdInitNoInline�depr_star_noinliner�r:rr�r�s&  r1�test_depr_kwd_init_noinline�0ClinicFunctionalTest.test_depr_kwd_init_noinline�s����+�+���*�*�����)�S�#�.��c�S���c�S�C� ��C�3���C�3�#����,�,�m�S�A��
�c�3��
�c�3���
�c�3�#�����)�S�#�s�C��=r7c�`�[OoUPQ5UOQUQ2P!)Nr�r�r�)r��depr_star_pos0_len1r�r�s& r1�test_depr_star_pos0_len1�-ClinicFunctionalTest.test_depr_star_pos0_len1�s&��
�
*�
*��
�T�
����U�B��,r7c��[OoU]]Q5[UOQU2oUQ]Q5UQQ2P!)rr�z'a' and 'b'r�r�r�)r��depr_star_pos0_len2rr��r.r,ros&  r1�test_depr_star_pos0_len2�-ClinicFunctionalTest.test_depr_star_pos0_len2�s<��
�
*�
*��
�Q�!����,�,�m�R�@��
�c�Q��
�c�3�r7c��[OoU]]]]Q5[UOQU2oUQ]]]Q5UQQ]]Q5UQQQ]Q5P!)	rr��'a', 'b' and 'c'r�r�r�r�r@r)r��depr_star_pos0_len3_with_kwdrr�r�s&  r1�!test_depr_star_pos0_len3_with_kwd�6ClinicFunctionalTest.test_depr_star_pos0_len3_with_kwd�sZ��
�
3�
3��
�Q�!�q�A����,�,�.@�"�E��
�c�Q�!�q�!�
�c�3�!�q�!�
�c�3��q�!r7c��[OoU]]Q5UQ]Q5U]Q5[UOQU2oUQQ2P!)rr�r�r�r��'b'r�)r��depr_star_pos1_len1_optrr�r�s&  r1�test_depr_star_pos1_len1_opt�1ClinicFunctionalTest.test_depr_star_pos1_len1_opt�sC��
�
.�
.��
�Q�!��
�3�!��
�Q����,�,�e�R�8��
�c�3�r7c��[OoU]]Q5UQ]Q5[UOQU2oUQQ2P!)rr�r�r�r�r�)r��depr_star_pos1_len1rr�r�s&  r1�test_depr_star_pos1_len1�-ClinicFunctionalTest.test_depr_star_pos1_len1�s<��
�
*�
*��
�Q�!��
�3�!����,�,�e�R�8��
�c�3�r7c��[OoU]]]]Q51UQ]]]Q51[UOQU2oUQQ]]Q51UQQQ]Q51P!)	rr�r�r�r�r�r�r@r)r��depr_star_pos1_len2_with_kwdrr�r�s&  r1�!test_depr_star_pos1_len2_with_kwd�6ClinicFunctionalTest.test_depr_star_pos1_len2_with_kwd�se��
�
3�
3��
�Q�!�q�A���
�3�!�q�A�����,�,�m�R�@��
�c�3�!�q�!�"�
�c�3��q�!�"r7c��[OoU]]]Q5UQ]]Q5UQQ]Q5[UOQU2oUQQQ2P!)rr�r�r�r�r�z'c'r@)r��depr_star_pos2_len1rr�r�s&  r1�test_depr_star_pos2_len1�-ClinicFunctionalTest.test_depr_star_pos2_len1sQ��
�
*�
*��
�Q�!�q��
�3�!�q��
�3��q����,�,�e�R�8��
�c�3��r7c���[OoU]]]]Q5UQ]]]Q5UQQ]]Q5[UOQU2oUQQQ]Q5UQQQQ	2P!)
rr�r�r�r�r��'c' and 'd'r@rr�)r��depr_star_pos2_len2rr�r�s&  r1�test_depr_star_pos2_len2�-ClinicFunctionalTest.test_depr_star_pos2_len2	sg��
�
*�
*��
�Q�!�q�A��
�3�!�q�A��
�3��q�A����,�,�m�R�@��
�c�3��q�!�
�c�3��S�!r7c���[OoU]]]]]Q5UQ]]]]Q5UQQ]]]Q5[UOQU2oUQQQ]]Q5UQQQQ	]Q
5P!)r�r�r�r@r�rr��r�r@r�rr�rr�r@r
r�)r)r��depr_star_pos2_len2_with_kwdrr�r�s&  r1�!test_depr_star_pos2_len2_with_kwd�6ClinicFunctionalTest.test_depr_star_pos2_len2_with_kwdsq��
�
3�
3��
�Q�!�q�A��#�
�3�!�q�A��#�
�3��q�A��#���,�,�m�R�@��
�c�3��q�A�&�
�c�3��S�A�&r7c�H�[OoUO[UQ2UQQQ5UQQQQ5UQQQ5UQQQQ5[	UO
QU2oUQQ2UQQQ2UQQQQ5UO[UQQQQ	2P!r�)r�r�r�r:rr�r�s&  r1�test_depr_star_noinline�,ClinicFunctionalTest.test_depr_star_noinlines���
�
)�
)�����)�R��-�
�S�C��
�S�C�3��
�3�#��
�3�#�����,�,�m�R�@��
�c�3��
�c�3���
�c�3�#�����)�R��c�3��<r7c���[OoUO[UQ2UQQQQQQQQQ5Q	o[	UO
[OU2U2oUQQQQQQQQQ
5UQQQQQQQQQ5UQQQQQQQQQ5UQQQQQQQQQ
5UQQQQQQQQQ5UQQQQQQQQQ5UO[UQQQQQQQQ2
P!)r�r�r@r�rr��g�h�r�r@r�rr�r�r�a)Passing more than 1 positional argument to depr_star_multi() is deprecated. Parameter 'b' will become a keyword-only parameter in Python 3.16. Parameters 'c' and 'd' will become keyword-only parameters in Python 3.15. Parameters 'e', 'f' and 'g' will become keyword-only parameters in Python 3.14.�r@r�rr�r�r��r�rr�r�r��rr�r�r��r�r�r��r�r��r�)r��depr_star_multir�r:rr�rErF�r.r,rMros&   r1�test_depr_star_multi�)ClinicFunctionalTest.test_depr_star_multi(s��
�
&�
&�����)�R��-�
�3�#���s�c�S�C�@�
^�	�
�������6�):�B�?��
�c�3�#���s�c�S�A�
�c�3��s�c�S�C�3�?�
�c�3��S�C�3�#��=�
�c�3��S�#���s�;�
�c�3��S�#�s�c�S�9�
�c�3��S�#�s�C�3�7����)�R��c�3��S�#�s�C�Pr7c��[OoUQQ2UO[UQ2UO[UQQQ2[	UO
QU2oUQQQ5UO[UQQQ5P!�r�r�r@r�r�r�)r��depr_kwd_required_1r�r:rr�r�s&  r1�test_depr_kwd_required_1�-ClinicFunctionalTest.test_depr_kwd_required_1:ss��
�
*�
*��
�3������)�R��-����)�R��c�3�7���+�+�U�B�7��
�c�S�����)�R�3�#��6r7c�.�[OoUQQQ2UO[UQQ2UO[UQQQQ2[	UO
QU2oUQQQQ5UQQQQ5UO[UQQQQ5P!)r�r�r@r�r�r�r�r�)r��depr_kwd_required_2r�r:rr�r�s&  r1�test_depr_kwd_required_2�-ClinicFunctionalTest.test_depr_kwd_required_2Cs���
�
*�
*��
�3��S�����)�R��c�2����)�R��c�3��<���+�+�]�B�?��
�c�3�#��
�c�S�C� ����)�R�3�#���=r7c��[OoUQ2UQQ2UO[U2UO[UQQQ2[	UO
QU2oUQQQ5UO[UQQQ5P!r�)r��depr_kwd_optional_1r�r:rr�r�s&  r1�test_depr_kwd_optional_1�-ClinicFunctionalTest.test_depr_kwd_optional_1Msx��
�
*�
*��
�3��
�3������)�R�(����)�R��c�3�7���+�+�U�B�7��
�c�S�����)�R�3�#��6r7c��[OoUQ2UQQ2UQQQ2UO[U2UO[UQQQQ2[	UO
QU2oUQQQ5UQQQ5UQQQQ5UQQQQ5UQQQQ5UO[UQQQQ	5P!)
r�r�r@r�r�r�r�r��r@r�r�)r��depr_kwd_optional_2r�r:rr�r�s&  r1�test_depr_kwd_optional_2�-ClinicFunctionalTest.test_depr_kwd_optional_2Ws���
�
*�
*��
�3��
�3���
�3��S�����)�R�(����)�R��c�3��<���+�+�]�B�?��
�c�S��
�c�S��
�c�S�C� �
�c�S�C� �
�c�3�#�����)�R�3�#���=r7c�
�[OoU2UQ2UQQ2UQQQ2UO[UQQQQ2[	UO
QU2oUQQQQ5UQQQ5UQQ5P!)r�r�r@r�r�r�r�r�)r��depr_kwd_optional_3r�r:rr�r�s&  r1�test_depr_kwd_optional_3�-ClinicFunctionalTest.test_depr_kwd_optional_3fsx��
�
*�
*��
��
�3��
�3���
�3��S�����)�R��c�3��<���+�+�-?��D��
�c�3�#��
�c�S��
��r7c���[OoUQQ2UQQQ2UO[U2UO[UQ2UO[UQQQQ2[	UO
QU2oUQQQ5UQQQQ5UQQQQ5UQQQQ5UO[UQQQ5UO[UQQQQ	5P!)
r�r�r@r�r�r�r�r�r�r�)r��depr_kwd_required_optionalr�r:rr�r�s&  r1�test_depr_kwd_required_optional�4ClinicFunctionalTest.test_depr_kwd_required_optionalrs���
�
1�
1��
�3���
�3��S�����)�R�(����)�R��-����)�R��c�3��<���+�+�]�B�?��
�c�S��
�c�S�C� �
�c�S�C� �
�c�3�#�����)�R����4����)�R�3�#���=r7c�f�[OoUQQ2UQQQ2UO[UQ2[	UO
QU2oUQQQ5UQQQQ5UQQQQ5UQQQQ5UO[UQQQ5UO[UQQQQ5P!)	r�r�r@r�r�r�r�r�r�)r��depr_kwd_noinliner�r:rr�r�s&  r1�test_depr_kwd_noinline�+ClinicFunctionalTest.test_depr_kwd_noinline�s���
�
(�
(��
�3���
�3��S�����)�R��-���+�+�]�B�?��
�c�S��
�c�S�C� �
�c�S�C� �
�c�3�#�����)�R����4����)�R�3�#���=r7c
��[OoUQQQQQQQQQ5Q	o[UO[O
U2U2oUQQQQQQQQQ
5UQQQQQQQQQ5UQQQQQQQQQ5UQQQQQQQQQ
5UQQQQQQQQQ5UQQQQQQQQQ5UO
[UQQQQQQQQQ5
P!)r�r�r@r�rr�r�r�r�a!Passing keyword arguments 'b', 'c', 'd', 'e', 'f' and 'g' to depr_kwd_multi() is deprecated. Parameter 'b' will become positional-only in Python 3.14. Parameters 'c' and 'd' will become positional-only in Python 3.15. Parameters 'e', 'f' and 'g' will become positional-only in Python 3.16.r�r�r�r�r�r�)r�r�r@r�rr�r�r�)r��depr_kwd_multirr�rErFr�r:r�s&   r1�test_depr_kwd_multi�(ClinicFunctionalTest.test_depr_kwd_multi�s���
�
%�
%��
�3��S�#�s�C���4�
V�	�
�������6�):�B�?��
�c�3��S�#�s�c�S�9�
�c�3��S�#���s�;�
�c�3��S�C�3�#��=�
�c�3��s�c�S�C�3�?�
�c�3�#���s�c�S�A�
�c�S�C�3�#���s�C����)�R�3�#���s�c�UX�\_��`r7c��[OoUO[UQQQQQQQ2	Qo[	UO
[OU2U2oUQQQQQQQQ5UQQQQQQQQ	5UQQQQQQQQ
5UQQQQQQQQ5Qo[	UO
[OU2U2oUQQQQQQQQ
5UQQQQQQQQ5UO[UQQQQQQQQ5	P!)r�r�r@r�rr�r�z�Passing more than 4 positional arguments to depr_multi() is deprecated. Parameter 'e' will become a keyword-only parameter in Python 3.15. Parameter 'f' will become a keyword-only parameter in Python 3.14.)r�)r�r�)rr�r�)r�rr�r�z�Passing keyword arguments 'b' and 'c' to depr_multi() is deprecated. Parameter 'b' will become positional-only in Python 3.14. Parameter 'c' will become positional-only in Python 3.15.)r@r�rr�r�)r�r@r�rr�r�)r�r�r@r�rr�r�)r��
depr_multir�r:rr�rErFr�s&   r1�test_depr_multi�$ClinicFunctionalTest.test_depr_multi�s��
�
!�
!�����)�R��c�3��S�#�s�K�
Q�	��������6�):�B�?��
�c�3��S�#�s�c�2�
�c�3��S�#���4�
�3��S�#���s�3�
�3��S�C�3�#��5�
H�	��������6�):�B�?��
�c�3�#���s�c�:�
�c�S�C�3�#���<����)�R�3�#���s�c�UX��Yr7c��UO[29^tt^2[O]]2PPP2UO	[O2-12UO	[OQQ5QQ-12QQQQ-oUO	[OQQQ5U12UO	[OQ-U@U12P!)%fhK�9h)r�rm�rm�z�rmr
r4)r�r:r��	lone_kwdsrH�r.r�s& r1�test_lone_kwds�#ClinicFunctionalTest.test_lone_kwds�s���
�
�
�y�
)�
)�����1�%�*�����,�,�.���6�����,�,�s�3�s�C�j�]�C��S�#�s�#������,�,�s�c�:�T�G�D�����,�,�4�t�4�t�g�>�
*�
)�s�C(�(C8	�1C8	c	�T�UO[29^tt^2[O2PPP2UO[29^tt^2[OQQ5PPP2UO[29^tt^2[O]QQ5PPP2UO	[O]]2]]-12UO	[O]]QQ5]]QQ-12QQQQ-oUO	[O]]QQQ5]]U12UO	[OQ-U@]]U12P!)%fhCKC9h)%fhCK9h)%fhK�9h)Nrmrr
rr�)r�r:r��kwds_with_pos_onlyrHrs& r1�test_kwds_with_pos_only�,ClinicFunctionalTest.test_kwds_with_pos_only�s3��
�
�
�y�
)�
)��(�(�*�*�
�
�
�y�
)�
)��(�(�3�/�*�
�
�
�y�
)�
)��(�(��c�2�*�����5�5�a��;�a��B�Z�H�����5�5�a��c�B�Q��C�QT�:�DV�W��S�#�s�#������5�5�a��c�S�I�A�q�RV�<�X�����5�5�C�d�C�a��D�\�R�*�
)�
)��
)�
)�
)��
)�
)�s5�E/�F�F�/F	�8F	�F	�F	�F'	� F'	c	��UO[O2Q-12UO[O]]2Q-12UO[OQQ5QQQ-12QoQQQQ-oUO[O]]QQQ5V12UO[OU-U@V12P!)r�rmrr
rr4r�)rHr��kwds_with_stararg�r.rxr�s&  r1�test_kwds_with_stararg�+ClinicFunctionalTest.test_kwds_with_stararg�s�������4�4�6��R��A�����4�4�Q��:�V�R�L�I�����4�4�s�;�b�3��*�=M�N����S�#�s�#������4�4�Q��S�C�H�4�,�W�����4�4�d�C�d�C�d�\�Rr7c���UO[29^tt^2[O2PPP2UO[29^tt^2[OQQ5PPP2UO	[O]]2]]Q-12UO	[O]]QQ5]]QQQ-12QoQQQQ-oUO	[O]]QQQQQ5]]V12UO	[O]],UN3-U@]]V12P!)%fhCK9h)%fhK�9h)	Nrmr�lobster�	thermidorr
rr4)rr)r�r:r��kwds_with_pos_only_and_starargrHrs&  r1�#test_kwds_with_pos_only_and_stararg�8ClinicFunctionalTest.test_kwds_with_pos_only_and_stararg�s2��
�
�
�y�
)�
)��4�4�6�*�
�
�
�y�
)�
)��4�4�s�;�*�����A�A�!�Q�G�!�Q�PR�TV��X�����A�A�!�Q�#�N�QR�TU�WY�\_�ad�[e�Pf�g�'���S�#�s�#������A�A�!�Q�	�S^�be�il�m�pq�st�vz�pB�	C�����A�A�!�Q�V��V�QU�V�YZ�\]�_c�Xj�k�*�
)�
)��
)�
)�s#�D<�E�<E
	�E
	�E 	�E 	r4)}r5r6r7r8�localsrS�dirr�r�r�r�rrr
rrrrBrSr\rarirnrur{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	rrrr8�varpos�varpos_arrayrk�varpos_no_fastcall�varpos_array_no_fastcallr�posonly_varpos�posonly_varpos_array�posonly_varpos_no_fastcall� posonly_varpos_array_no_fastcallr#�posonly_req_opt_varpos�posonly_req_opt_varpos_array�"posonly_req_opt_varpos_no_fastcall�(posonly_req_opt_varpos_array_no_fastcallr&�posonly_poskw_varpos�posonly_poskw_varpos_array� posonly_poskw_varpos_no_fastcall�&posonly_poskw_varpos_array_no_fastcallr*r0r4r9r=rArGrKrSrWr\rbrgrprtryr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	rrrr r:r;r<s@r1r�r��sn����
�H�O�O�L� #�I��L�L�,�
2��
2�2�T�2�D�^�
W�O�
c�'�

E�n�*	C�o�&O�l�&	D�n�&	I�t�&
r�	K�>�C�D�D�	Y�	g�p�
?�
F�K�Z�R�E�C�T�
Y�
C�	=�Y�f� j� 
F�F���	�9�#�#��)�)��&�&�9�9��&�&�?�?�
A�	/�	
A�	/�

�9�+�+��1�1��&�&�A�A��&�&�G�G�
I�	=�	
I�	=�
�9�3�3��9�9��&�&�I�I��&�&�O�O�
Q�	=�	
Q�	=�
�9�1�1��7�7��&�&�G�G��&�&�M�M�
O�	H�	
O�	H�	9�
6�
;�A�	@�9�,�B�7�Y� .�/��7�7�"
7�C�"/�U�/�V�>�0�0�>�-�
�"���#��"�'�=�Q�$7�>�7�
>�
�
>�>�a�"Z�*?�S�S�
l�
lr7r�c�D`�\sQsQsnQs\Q2sQsQsQs	Us
P!)�LimitedCAPIOutputTestsi�c�*�[P	Q5UmP!)TrD)rAr
rfs&r1rg�LimitedCAPIOutputTests.setUp�s��"��5��r7c�"�[QUQ02!)zO
            /*[clinic input]
            output everything buffer
            z�
            [clinic start generated code]*/
            /*[clinic input]
            dump buffer
            [clinic start generated code]*/
        r
r�s&r1�wrap_clinic_input�(LimitedCAPIOutputTests.wrap_clinic_input�s%���
��G�	��
�	
r7c���UOQ2oUOOU2oUOQU2UO	QU2UO	QU2P!)zE
            func
                f: float
                /
        �PyFloat_AS_DOUBLEzfloat f;zf = (float) PyFloat_AsDouble�r9r
r_r$r�rs&  r1�test_limited_capi_float�.LimitedCAPIOutputTests.test_limited_capi_float�s[���&�&�(�
��
�K�K�%�%�e�,�	����,�i�8��
�
�j�)�,��
�
�4�i�@r7c���UOQ2oUOOU2oUOQU2UO	QU2UO	QU2P!)zF
            func
                f: double
                /
        r<z	double f;zf = PyFloat_AsDoubler=rs&  r1�test_limited_capi_double�/LimitedCAPIOutputTests.test_limited_capi_double�s[���&�&�(�
��
�K�K�%�%�e�,�	����,�i�8��
�
�k�9�-��
�
�,�i�8r7r4)r5r6r7r8rg�staticmethodr9r>rAr:r;r<s@r1r5r5�s.����6��	
��	
�	A�	9�	9r7r5z_testclinic_limited is missingc�~`�\sQsQsn\2OQ\\222QsQs	Qs
QsQsUs
P!)�LimitedCAPIFunctionalTesti
c#��SF �D0pOQ2%fJU[[U21w�	J2	P!3hr�)r�r��_testclinic_limitedr�s& r1r��#LimitedCAPIFunctionalTest.<genexpr>s.�� 8��� 8��O�O�G�<T�?�T�7�#6��=�>� 8�r�c�.�UO[29^tt^2[O2PPP2UO	[O]2]2UO[29^tt^2[OQ2PPP2UO[29^tt^2[OQ2PPP2P!)%fhK�9h)%fhKa9h)%fhP!9h)N��?�xyz)r�r:rG�my_int_funcrHrfs&r1�test_my_int_func�*LimitedCAPIFunctionalTest.test_my_int_funcs���
�
�
�y�
)�
)��+�+�-�*����,�8�8��;�Q�?�
�
�
�y�
)�
)��+�+�C�0�*�
�
�
�y�
)�
)��+�+�E�2�*�
)�*�
)��*�
)��
)�
)�
)�s5�C�C0�<D�C-	�&C-	�0D	�9D	�D	�D	c���UO[29^tt^2[O2PPP2UO[29^tt^2[O]2PPP2UO	[O]]2]2UO[29^tt^2[OQ]2PPP2UO[29^tt^2[O]Q2PPP2P!)%fhK�9h)%fhK�9h)%fhKu9h)%fhP!9h)NrJr!)r�r:rG�
my_int_sumrHrfs&r1�test_my_int_sum�)LimitedCAPIFunctionalTest.test_my_int_sums���
�
�
�y�
)�
)��*�*�,�*�
�
�
�y�
)�
)��*�*�1�-�*����,�7�7��1�=�q�A�
�
�
�y�
)�
)��*�*�3��2�*�
�
�
�y�
)�
)��*�*�1�e�4�*�
)�*�
)��
)�
)��*�
)��
)�
)�
)�sG�D�D/�=E�:E�D,	�%D,	�/D?	�8D?	�E	�E	�E&	�E&	c��[O[O1FD�oUOUOQ59^tt^2UOUQQ2Q2UO
[29^tt^2U2PPP2UO
[29^tt^2U]2PPP2UO
[29^tt^2UQQ2PPP2PPP2J�	P!)%fhK{9h)%fhK`9h)%fhKD9h)%fhCJ$9h))rrJg@g@rT)rG�my_float_sum�
my_double_sumr-r5rHr�r:)r.rs& r1�test_my_double_sum�,LimitedCAPIFunctionalTest.test_my_double_sum&s����,�,��-�-�
�D����4�=�=��1�1�� � ��c�3���5��&�&�y�1�1��F�2��&�&�y�1�1���G�2��&�&�y�1�1���S�M�2�
2�1�	
�2�1��1�1��1�1��
2�1�1�sl�
7D5	�C<
�	%D5	�.	D
�7%D5	�
D"
�&D5	�<D�D�D5	�D�D�D5	�"D2�+D2�-D5	�5E
�>E
c��[OoQQ[2oQQ2oQFD[oUOUU2U2UU2oUOUU2U2UU2oUOUU2U2J]	UO	[
29^tt^2U]Q*2PPP2UO
[Q29^tt^2UP	2PPP2UO	[29^tt^2UQ2PPP2UO	[29^tt^2UQ2PPP2UO	[29^tt^2UP2PPP2P!)%fhK�9h)%fhK�9h)%fhK�9h)%fhKy9h)%fhP!9h)	c��\sQsQsQsP!)�ALimitedCAPIFunctionalTest.test_get_file_descriptor.<locals>.MyInti8r4)r5r6r7r8r:r4r7r1�MyIntrZ8s��r7r[c�.`�\sQsQsnQsQsQsUsP!)�BLimitedCAPIFunctionalTest.test_get_file_descriptor.<locals>.MyFilei;c��VmP!rQ��_fd)r.�fds&&r1r��KLimitedCAPIFunctionalTest.test_get_file_descriptor.<locals>.MyFile.__init__<s���r7c��UO!rQr_rfs&r1�fileno�ILimitedCAPIFunctionalTest.test_get_file_descriptor.<locals>.MyFile.fileno>s���x�x�r7r_)r5r6r7r8r�rdr:r;r<s@r1�MyFiler];s����
�
 �
 r7rf�z!bool is used as a file descriptorrJr�)rr�rJri@�)	rG�get_file_descriptorr�rHr�rNr��RuntimeWarningr:)r.�get_fdr[rfra�myint�myfiles&      r1�test_get_file_descriptor�2LimitedCAPIFunctionalTest.test_get_file_descriptor4sS��$�8�8��	�C�	�	 �	 �(�B����V�B�Z��,��"�I�E����V�E�]�B�/��B�Z�F����V�F�^�R�0�(��
�
�}�
-�
-��1�c�6�N�.�
�
"�
"�>�#F�H�H��4�L�H��
�
�y�
)�
)��3�K�*�
�
�
�y�
)�
)��5�M�*�
�
�
�y�
)�
)��4�L�*�
)�.�
-��H�H��*�
)��
)�
)��
)�
)�
)�sZ�*E=� 	F�	F#�<	F6�*	G	�=F
	�F
	�F 	�F 	�#F3	�,F3	�6G	�?G	�	G	�G	r4)r5r6r7r8r"rSr#rGrMrQrVrmr:r;r<s@r1rErE
sB����
�H�O�O�V� #�$7� 8�V�V�3�	5�"� � r7rEc�8`�\sQsQsnQsQsQsQsQsUs	P!)�PermutationTestsiWz#Test permutation support functions.c��Qo[[,QN22o[[U22oUO	V12P!)r�r�)r4)r�r7r�)r�r�r@rrH�r.r�r��actuals&   r1�test_permute_left_option_groups�0PermutationTests.test_permute_left_option_groupsZs7��
���C�	�N�#���1�$�7�8������*r7c��Qo[[,QN22o[[U22oUO	V12P!)r�r�)r4rr�r�)r�r�r@rrHrrs&   r1� test_permute_right_option_groups�1PermutationTests.test_permute_right_option_groupses7��
���C�	�N�#���2�4�8�9������*r7c	���QQQQQQQQ-oQQQQQQQQ	-oQQQQQQ
QQ-oQQQQQQQQ
-oQQQQQQQQ-oQQQQQQQQ-oQQQQQQQQ-oQQQQQQQQ-oQQQQQQQQ-o	UV#UVVUV�1	o
S
FDcoUOQ-U@9^tt^2UO2vq�q�[V�U2o[U2oUO	UU2PPP2Je	P!)%fhJz9h)�left�required�rightr�r4)r4r�r�r�)r�r�r)r�r�r
)r�r�r�r�r�)r�r�)r�r�)r�r�r�)r�r�r�r�)rr�)r�r�r�r�)r�r�r@r�rr�)r-r�rr@rH)r.�empty�noleft1�noleft2�noleft3�noright1�noright2�noright3�
leftandright1�
leftandright2r�r�rzr{r|r��permutationsrss&                 r1�test_permute_optional_groups�-PermutationTests.test_permute_optional_groupsps����B�
�B�����
��

�B�
�F�G�V���
��
�B�
�K��&���
��
�B�
�K��*���
��
�F�J������
��
�F�J�
�G�R���
��
�J�
�F�G�R���
��
�F�J������
�
�
�J�
�J�����	
�
�
��g����	
���F����'��'�'�28�-�-�/�/���6�t�u�M���|�,��� � ���2�	(�'��'�'�'�s�=C	�C!
�C!
r4)
r5r6r7r8�__doc__rtrwr�r:r;r<s@r1rprpWs����-�	+�	+�N3�N3r7rpc�X`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
UsP!)�FormatHelperTestsi�c	���QoSFDOvq#UOV#Q59^tt^2[OU2oUOVC2PPP2JQ	P!)%fhJf9h)�a
b)r�r�)	)r�r�)za
b
r�)za
b r�)z
a
b

r�)z

a
b

r�)z

a

b

za

b)� a
br�)z a
b r�)z
 
 
 a
b 
 
 r�)r-r��normalize_snippetrH)r.r�r�r�r�s&    r1�+test_strip_leading_and_trailing_blank_lines�=FormatHelperTests.test_strip_leading_and_trailing_blank_lines�sX��
�� '�O�E����E��=�=��1�1�%�8��� � ��/�>�=� '�=�=�=���(A	�A-
�%A-
c	��QoQoQoQo]U]U]U-oUO2FDPvqgUOUQ59^tt^2[OVQ5oUO	V�2PPP2JR	P!)%fhJg9h)z;
            one
            two
            three
        z
one
two
threez    one
    two
    threez%        one
        two
        three)�indent)rVr-r�r�rH)	r.�snippet�zero_indent�four_indent�eight_indent�expected_outputsr�r�rss	&        r1�test_normalize_snippet�(FormatHelperTests.test_normalize_snippet�s�����
�	�
�	�
�	�
�{�A�{�A�|�L�� 0� 6� 6� 8��F����V��,�,�"�4�4�W�L��� � ��2�-�,�!9�,�,�,�s�)A9	�9B

�B

c	���QoSFDOvq#UOV#Q59^tt^2[OU2oUOVC2PPP2JQ	P!)%fhJf9h)r�)r�r�))r��"abc")z\abcz"\\abc")z\a\bcz	"\\a\\bc")z\a\\bcz"\\a\\\\bc")r�z	"\"abc\"")r�z"\'a\'")r-r��docstring_for_c_stringrH)r.r�r�r�r�s&    r1�test_escaped_docstring�(FormatHelperTests.test_escaped_docstring�sX��
��&�N�D����4��;�;��6�6�t�<��� � ��/�<�;�&�;�;�;�r�c�^�QoQo[OU2oUOV22P!)z{}, {a}z{{}}, {{a}})r��
format_escaperH)r.r�r�r�s&   r1�test_format_escape�$FormatHelperTests.test_format_escapes*���� ���%�%�d�+������'r7c�h�[OoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2UOUQ
2Q2UOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2P!)r7�""r�r�s

	�"\a\b\f\n\r\t\v"s �" \000\177"r,�"\""r-�"'"r/�"\\"s??/�"?\?/"s???/�"?\?\?/"s/*****/ /*/ */*�"/\*****\/ /\*\/ *\/\*"r?z"\240"r0z"\377")r��c_bytes_reprrH)r.r�s& r1�test_c_bytes_repr�#FormatHelperTests.test_c_bytes_reprs
�� �-�-������c�*�D�1�����f�-�w�7�����&7�8�:M�N�����j�1�>�B�����d�+�W�5�����d�+�Z�8�����e�,�g�6�����f�-�y�9�����g�.��<�����&8�9�;U�V�����g�.�	�:�����g�.�	�:r7c���[OoUOUP2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2UOUQ
2Q2UOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2P!)r�r�r�r�z

	r�z r��"r��'r��\r�z??/r�z???/r�z/*****/ /*/ */*r�rGz"\u00a0"�ÿz"\u00ff"�€z"\u20ac"rJz"\U0001f40d")r��
c_str_reprrH)r.r�s& r1�test_c_str_repr�!FormatHelperTests.test_c_str_reprs4���)�)�
�����B���.�����E�*�G�4�����$4�5�7J�K�����I�.��?�����C��'�2�����C��*�5�����D�)�7�3�����E�*�I�6�����F�+�[�9�����$5�6�8R�S�����F�+�[�9�����F�+�[�9�����H�-�{�;�����L�1�?�Cr7c��[OoUOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q	2UOUQ
2Q2UOUQ2Q
2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2P!)r�r�r�r=�z'\b'rCrDrErF��0x7fr�z' 'r�z'"'r�z'\''r�z'\\'�?z'?'rGrHr��0xffr��0x20acrJrK)r��c_unichar_reprrH)r.r�s& r1�test_c_unichar_repr�%FormatHelperTests.test_c_unichar_repr(sH��"�1�1�������,�e�4������-�w�7������-�w�7������-�s�3������-�v�6������/��8������,�e�4������,�i�8������,�g�6������-�w�7������,�e�4������/��8������/��8������1�8�<������5�y�Ar7c��UO[OPQQ5P2QoQo[OUQQ5oUOV22QoQo[OUQQ5oUOV22P!)r��bar)�prefix�one
twoz
barone
bartwo�	
one
two
zbar
barone
bartwo
)rHr��indent_all_lines�r.r�r�r�s&   r1�test_indent_all_lines�'FormatHelperTests.test_indent_all_lines:�������3�3�B�u�E�r�J�
�	�

�	��(�(��u�=������'�
�	�
�	��(�(��u�=������'r7c��UO[OPQQ5P2QoQo[OUQQ5oUOV22QoQo[OUQQ5oUOV22P!)r�r)�suffixr�z
onefoo
twofoor�zfoo
onefoo
twofoo
)rHr��suffix_all_linesr�s&   r1�test_suffix_all_lines�'FormatHelperTests.test_suffix_all_linesYr�r7r4)r5r6r7r8r�r�r�r�r�r�r�r�r�r:r;r<s@r1r�r��s9����0�&3�:
0�(�
;�D�"B�$(�>(�(r7r�c�L`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sUsP!)
�ClinicReprTestsiyc�
�[Q2oQoUO[U2U2[QQ,QQ2oQoUO[U2U2[Q
Q,QPQ5oQ	oUO[U2U2P!)rz-<clinic.Block 'text' input='foo' output=None>r��baz�eggs�spamz.<clinic.Block 'baz' input='bar' output='eggs'>�wow_so_long)r��dsl_namer�rBr�zg<clinic.Block 'wow_so_long' input='longboi_longboi_longboi_l...' output='very_long_very_long_very_...'>� longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_longboi_��very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_very_long_)r"rHr�)r.r��
expected_repr�block2�expected_repr_2�block3�expected_repr_3s&      r1�test_Block_repr�ClinicReprTests.test_Block_reprzs����e���G�
�����e��m�4��u�e�R���8��J������f���7��"�"��%��
��
v�	�	
����f���7r7c���[2o[QQUQQ5oUO[U2Q2[QQUQ5oUO[U2Q2P!)	rr�)r�r
rxz2<clinic.Destination 'foo' type='file' file='eggs'>r��buffer)r�r
z(<clinic.Destination 'bar' type='buffer'>)r�)rAr%rHr�)r.r@�destination�destination2s&   r1�test_Destination_repr�%ClinicReprTests.test_Destination_repr�s]���N��!���q�y�
��	
������S�	
�#�5�x��B������l�+�-W�Xr7c�f�[Q[22oUO[U2Q2P!)rz<clinic.Module 'foo' at \d+>)rrA�assertRegexr�)r.rs& r1�test_Module_repr� ClinicReprTests.test_Module_repr�s%����|�~�.������f��'F�Gr7c�l�[Q[2PQQ2oUO[U2Q2P!)r�some_typedef�some_type_objectz<clinic.Class 'foo' at \d+>)rrAr�r�r�s& r1�test_Class_repr�ClinicReprTests.test_Class_repr�s,���E�<�>�4��AS�T������c��$B�Cr7c�Z�UO[[O2Q2P!)z"<clinic.FunctionKind.CLASS_METHOD>)rHr�rr�rfs&r1�test_FunctionKind_repr�&ClinicReprTests.test_FunctionKind_repr�s!�������*�*�+�-Q�	
r7c�>�[Q[2PPQ[2[OP
Q5oUO[
U2Q2[QQU2o[Q[OOUUQ5oUO[
U2Q2P!)r�foofoo)rrr'r�	full_namer�r��coexistz<clinic.Function 'foo'>r�)r�rrz<clinic.Parameter 'bar'>)rrAr!r�METHOD_INITrHr�rrr��POSITIONAL_OR_KEYWORD)r.rr�	parameters&   r1�!test_Function_and_Parameter_reprs�1ClinicReprTests.test_Function_and_Parameter_reprs�s������>����1�3��)�)��	
��	
����h��)B�C�"�5�%��:�	����"�"�8�8���	
�	�	
����i��*D�Er7c�b�[OOQ2oUO[	U2Q2]*UmUOOQ2UO[	U2Q2UOOQ2UO[	U2Q2P!)rdz(<clinic.Monitor \d+ line=0 condition=''>z3<clinic.Monitor \d+ line=42 condition='condition1'>zA<clinic.Monitor \d+ line=42 condition='condition1 && condition2'>)�token1�
condition1)�token2�
condition2)r��cpp�Monitorr�r�r��stack�append)r.�monitors& r1�test_Monitor_repr�!ClinicReprTests.test_Monitor_repr�s����-�-�'�'��1������g��(S�T� ����
�
���5�6������M�Q�	
�	�
�
���5�6������M�P�	
r7r4)
r5r6r7r8r�r�r�r�r�r�r
r:r;r<s@r1r�r�ys1����8�*Y�H�D�
�
F�,
�
r7r��__main__)X�	functoolsrr0rr�test.supportrr�test.support.os_helperrrr	�textwrapr�unittestrr��os.pathrrErY�skip_if_missing�imports_under_toolr�rrrr�libclinic.convertersrrr�libclinic.functionrrrrrrrrr
�libclinic.clanguager�libclinic.converterrr�libclinic.return_convertersr r!�libclinic.block_parserr"r#�libclinic.codegenr$r%�libclinic.dsl_parserr&�
libclinic.clir'r(r8rArOrUrZr\r?r[r�r�r�r�r�r@�_testclinicr��ImportError�skipIfr�r5rGrErpr�r�r5rEr4r7r1�<module>r!st��
�$�7�"�9�9�����	�
��
���8�$��"�"�8�,�,��>�>�Q�Q�$�$�$��-�A�S�9�;�.�0�-�$�
�^�
�%�
��$��t����0&�
2�x
2�(�x
2�tV��V�2-*�h�-*�`>;�X�>;�B
�
�#�#�:�H�:�zR/�x�R/�h< �V8��V8� �V8�p
�#�
����d�"�$<�=�l�8�,�,�l�>�l�D %9�X�.�.�%9�P��
���$��,�.N�O�F�� 1� 1�F�P�F�Rg3�x�(�(�g3�Tu(��)�)�u(�pT
�h�'�'�T
�n�z���M�M�O��{U-�,�,��Nf���I���`!�����sC�2A'H:�%I�-I�:I	�I	�I�I�I�I)�#I)�(I)

Youez - 2016 - github.com/yon3zu
LinuXploit