python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_clinic.cpython-311.opt-1.pyc

e-dddlmZmZddlmZddlmZmZddlmZm	Z	ddl
mZddlm
Z
ddlZddlZddlZddlZddlZddlZejdejd5ddlZdd	lmZdddn#1swxYwYGd
de
ZGdd
ZGddZGddZejddZGddZGddeZGdde
Z Gdde
Z!GddZ"Gdd Z#Gd!d"e
Z$Gd#d$eZ%Gd%d&e
Z&	ddl'Z(n
#e)$rdZ(YnwxYwej*e(dud'Gd(d)ej
Z+Gd*d+ej
Z,e-d,krej.dSdS)-)support
test_tools)	os_helper)
SHORT_TIMEOUTrequires_subprocess)TESTFNunlink)dedent)TestCaseNclinic)	DSLParserceZdZdZdZdZdS)_ParserBaseNctj5}|t5||dddn#1swxYwYdddn#1swxYwY|SN)rcaptured_stdoutassertRaises
SystemExitgetvalue)selfparser_inputstdouts    D/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_clinic.pyexpect_parser_failurez!_ParserBase.expect_parser_failures

$
&
&	&"":..

v














															   s3AAAA	AA	AA"%A"c8||j|Sr)rparse_function)rrs  rparse_function_should_failz&_ParserBase.parse_function_should_fail!s))$*=vFFF)__name__
__module____qualname__maxDiffrrrrrrs<G!!!GGGGGrrceZdZdZdS)
FakeConverterc"||_||_dSr)nameargsrr(r)s   r__init__zFakeConverter.__init__&s				rN)r r!r"r+r$rrr&r&%s#rr&ceZdZdZdZdS)FakeConverterFactoryc||_dSrr(rr(s  rr+zFakeConverterFactory.__init__,s
			rc,t|j|Sr)r&r()rr(defaultkwargss    r__call__zFakeConverterFactory.__call__/sTY///rN)r r!r"r+r4r$rrr-r-+s200000rr-ceZdZdZdZdS)FakeConvertersDictci|_dSr)used_convertersrs rr+zFakeConvertersDict.__init__4s!rcR|j|t|Sr)r8
setdefaultr-)rr(r2s   rgetzFakeConvertersDict.get7s$#..t5I$5O5OPPPrN)r r!r"r+r<r$rrr6r63s7"""QQQQQrr6Cfile)languagefilenamecDeZdZdZdZdZdZdZej	j
Z
dS)
FakeClinicct|_t|_tjd|_d|_i|_tjd|j|_	tj|_tj|_
|t_d|_dx|_|_i|_|dd|dd|dd|jj}tjd|dfd|dfd	|dfd
|dfd|dfd|dfd
|dff|_dS)NrBblockbufferr>suppressdocstring_prototypedocstring_definitionmethoddef_defineimpl_prototypeparser_prototypeparser_definitionimpl_definition)r6
converterslegacy_convertersr	CLanguager?r@destination_buffersBlockParserblock_parsercollectionsOrderedDictmodulesclassesr(line_prefixline_suffixdestinationsadd_destinationr<field_destinations)rds  rr+zFakeClinic.__init__=sx,..!3!5!5(..

#% ".r4=AA".00".00
 	.004+Wh///VX...Z444!"-"9
"AAjMM2
#QQwZZ0
7,
qqzz*
:/
 !!G**-
'

+;
##rc|j|}|s$tjdt	|z|S)NzDestination does not exist: )r[r<sysexitrepr)rr(r^s   rget_destinationzFakeClinic.get_destinationXsB!!$''	BH3d4jj@AAArc||jvr$tjdt|zt	j|||g|R|j|<dS)NzDestination already exists: )r[r`rarbrDestination)rr(typer)s    rr\zFakeClinic.add_destination^sV4$$$H3d4jj@AAA"("4T4"M"M"M"M$rc|dkS)Nmoduler$r0s  ris_directivezFakeClinic.is_directivecs
xrc||j|<dSr)called_directivesr*s   r	directivezFakeClinic.directivefs'+t$$$rN)r r!r"r+rcr\rirlrClinic_module_and_classr$rrrBrB<sk6NNN
   ,,,
7rrBcteZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdS)ClinicWholeFileTestc`tjtjdd|_dS)Ntest.cr@)rrmrQr9s rsetUpzClinicWholeFileTest.setUpms'mF$4T$:$:XNNNrct|}||jj|Sr)r
striprrparse)rrawrs   rexpect_failurez"ClinicWholeFileTest.expect_failureps4""$$))$+*;VDDDrcd}|j|}|d}||d||ddS)Nz/*[clinic]
foo
[clinic]*/z[clinic]*/[clinic]*/z
[clinic]*/)rrw
splitlinesrstripassertNotEqualassertEqual)rrxcookedend_lines    rtest_eolzClinicWholeFileTest.test_eoltst,""3''2244!9##%%	
H&<===<00000rcdd}d}||}|||dS)Nz
            /*[clinic input]
            [clinic start generated code]*/
            /*[clinic end generated code: foo]*/
        znError in file "test.c" on line 3:
Mangled Argument Clinic marker line: '/*[clinic end generated code: foo]*/'
ryrrrxmsgouts    rtest_mangled_marker_linez,ClinicWholeFileTest.test_mangled_marker_linesE
\	!!#&&c"""""rcdd}d}||}|||dS)Nz
            /*[clinic input]
            [clinic start generated code]*/
            /*[clinic end generated code: output=0123456789abcdef input=fedcba9876543210]*/
        zkError in file "test.c" on line 3:
Checksum mismatch!
Expected: 0123456789abcdef
Computed: da39a3ee5e6b4b0d
ryassertInrs    rtest_checksum_mismatchz*ClinicWholeFileTest.test_checksum_mismatchsB
+	!!#&&

c3rcdd}d}||}|||dS)Nz_
            /*[clinic input]
            [clinic start generated code]*/foobarfoobar!
        zKError in file "test.c" on line 2:
Garbage after stop line: 'foobarfoobar!'
rrs    rtest_garbage_after_stop_linez0ClinicWholeFileTest.test_garbage_after_stop_linesD

9	!!#&&c"""""rcdd}d}||}|||dS)NzS
            /*[clinic input]
             [clinic start generated code]*/
        zuError in file "test.c" on line 2:
Whitespace is not allowed before the stop line: ' [clinic start generated code]*/'
rrs    r test_whitespace_before_stop_linez4ClinicWholeFileTest.test_whitespace_before_stop_linesE

c	!!#&&c"""""rc^tjd}d|_d|_d|_tj|d}t
d}||}t
d	}|
||dS)Nz//z//[{dsl_name} start]z//[{dsl_name} stop]rrrsz\
            //[clinic start]
            //module test
            //[clinic stop]
        z
            //[clinic start]
            //module test
            //
            //[clinic stop]
            /*[clinic end generated code: output=da39a3ee5e6b4b0d input=65fab8adff58cf08]*/
        )rrQbody_prefix
start_line	stop_linermr
rvrwlstripr)rclangclrxrexpecteds      rtest_parse_with_body_prefixz/ClinicWholeFileTest.test_parse_with_body_prefixs && 1/
]58
4
4
4

UWW		
hhsmm

VXX
		
h'''''rcdd}d}||}|||dS)NzR
            /* start
            /* nested
            */
            */
        z8Error in file "test.c" on line 2:
Nested block comment!
rrs    r*test_cpp_monitor_fail_nested_block_commentz>ClinicWholeFileTest.test_cpp_monitor_fail_nested_block_commentsD
&	!!#&&c"""""rcdd}d}||}|||dS)Nz<
            #if
            a()
            #endif
        zLError in file "test.c" on line 1:
Invalid format for #if line: no argument!
rrs    r*test_cpp_monitor_fail_invalid_format_noargz>ClinicWholeFileTest.test_cpp_monitor_fail_invalid_format_noargsD
:	!!#&&c"""""rcdd}d}||}|||dS)NzC
            #ifdef A B
            a()
            #endif
        zbError in file "test.c" on line 1:
Invalid format for #ifdef line: should be exactly one argument!
rrs    r0test_cpp_monitor_fail_invalid_format_toomanyargszDClinicWholeFileTest.test_cpp_monitor_fail_invalid_format_toomanyargssE
P	!!#&&c"""""rcdd}d}||}|||dS)Nz#elsezQError in file "test.c" on line 1:
#else without matching #if / #ifdef / #ifndef!
rrs    r$test_cpp_monitor_fail_no_matching_ifz8ClinicWholeFileTest.test_cpp_monitor_fail_no_matching_ifsB
?	!!#&&c"""""rc`|d}d}|||dS)Nzy
            /*[clinic input]
            output preset nosuchpreset
            [clinic start generated code]*/
        zUnknown preset 'nosuchpreset'rrrrs   r$test_directive_output_unknown_presetz8ClinicWholeFileTest.test_directive_output_unknown_presets=!!#


.

c3rc`|d}d}|||dS)Nzi
            /*[clinic input]
            output pop
            [clinic start generated code]*/
        z"Can't 'output pop', stack is emptyrrs   rtest_directive_output_cant_popz2ClinicWholeFileTest.test_directive_output_cant_pops=!!#


3

c3rctd}|j|}||tdhd}|D]F}||5|||dddn#1swxYwYG|dd}||ddS)Nz~
            /*[clinic input]
            output print 'I told you once.'
            [clinic start generated code]*/
        >
cpp_if	cpp_endifrKrNrJmethoddef_ifndefrLrMrHrI)field
z%/*[clinic end generated code: output=)	r
rrw
assertTrue
startswithsubTestrr}split)rrxrfieldsr	last_lines      rtest_directive_output_printz/ClinicWholeFileTest.test_directive_output_printsX


k$$	
v/(
(
			



	*	*EE**
*
*

eS)))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*JJLL&&t,,R0	  !HII	
	
	
	
	
s=B  B$	'B$	c`|d}d}|||dS)Nz
            /*[clinic input]
            destination buffer nosuchcommand
            [clinic start generated code]*/
        z+unknown destination command 'nosuchcommand'rrs   r test_unknown_destination_commandz4ClinicWholeFileTest.test_unknown_destination_command4s=!!#


<

c3rc`|d}d}|||dS)Na
            /*[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{Stepped on a land mine, trying to access attribute 'noaccess':
Don't access members of self.function inside converter_init!rrs   r+test_no_access_to_members_in_converter_initz?ClinicWholeFileTest.test_no_access_to_members_in_converter_init=sC!!#


K		


c3rN)r r!r"rtryrrrrrrrrrrrrrrrr$rrrprplsOOOEEE111"###
 
 
 
#
#
#
#
#
#(((*############      !
!
!
F        rrpc2eZdZdZdZdZdZdZdZdS)ClinicGroupPermuterTestc^tj|||}|||dSr)rpermute_optional_groupsr)rlmroutputcomputeds      r_testzClinicGroupPermuterTest._testSs21!Q::*****rc@|dggdgdggddS)Nstartstopstep))r)rr)rrrrr9s r
test_rangez"ClinicGroupPermuterTest.test_rangeWs7

WI;F8*	
	
	
	
	
rcB|ddggdgdggddS)Nxychattr))r)rr)rrr)rrrrrr9s rtest_add_windowz'ClinicGroupPermuterTest.test_add_window_s9

S#J<$6(	
	
	
	
	
rcP|gdddggdgddggdgddS)	N)a1a2a3b1b2c1d1d2)e1e2e3))r)rrr)rrrrr)rrrrrr)rrrrrrrr)rrrrrrrrrrrrr9s rtest_ludicrousz&ClinicGroupPermuterTest.test_ludicroushsO

&&&t5vtN`N`N`?a	
	
	
	
	
rcB|ggdgdgdggddS)Nabc)r$rrrrrrrr9s rtest_right_onlyz'ClinicGroupPermuterTest.test_right_onlyss:

2rSE3%.	
	
	
	
	
rcBd}|t|dS)Nc4tjdgggdS)Nr)rrr$rrfnzPClinicGroupPermuterTest.test_have_left_options_but_required_is_empty.<locals>.fn}s*C5"b99999r)rAssertionError)rrs  r,test_have_left_options_but_required_is_emptyzDClinicGroupPermuterTest.test_have_left_options_but_required_is_empty|s-	:	:	:."-----rN)	r r!r"rrrrrrr$rrrrRsn+++





	
	
	



.....rrc8eZdZdZdZdZdZdZdZdZ	dS)	ClinicLinearFormatTestcVtj|fi|}|||dSr)r
linear_formatr)rinputrr3rs     rrzClinicLinearFormatTest._tests6'8888*****rc2|dddS)NrDrr9s rtest_empty_stringsz)ClinicLinearFormatTest.test_empty_stringss

2rrc2|dddS)Nrrr9s rtest_solo_newlinez(ClinicLinearFormatTest.test_solo_newlines

4rc2|dddS)Nz
          abc
        rr9s rtest_no_substitutionz+ClinicLinearFormatTest.test_no_substitutions,

	
	
	
	
	
rc6|ddddS)N6
          abc
          {name}
          def
        z%
          abc
          def
        rDr/rr9s rtest_empty_substitutionz.ClinicLinearFormatTest.test_empty_substitutions6

						rc6|ddddS)Nrz6
          abc
          GARGLE
          def
        GARGLEr/rr9s rtest_single_line_substitutionz4ClinicLinearFormatTest.test_single_line_substitutions6

						rc6|ddddS)NrzH
          abc
          bingle
          bungle

          def
        zbingle
bungle
r/rr9s rtest_multiline_substitutionz2ClinicLinearFormatTest.test_multiline_substitutions6

%	
	&
	&
	&
	&
	&rN)
r r!r"rrrrrrrr$rrrrs}+++


			&&&&&rrceZdZdZdZdS)InertParsercdSrr$rrs  rr+zInertParser.__init__rcdSrr$rrEs  rrwzInertParser.parserrNr r!r"r+rwr$rrrrs2







rrceZdZdZdZdS)
CopyParsercdSrr$rs  rr+zCopyParser.__init__rrc|j|_dSr)rrrs  rrwzCopyParser.parses{rNrr$rrrrs2


#####rrc2eZdZdZdZdZdZdZdZdS)ClinicBlockParserTestctjd}ttj||}tj|}|D]}|||j}dSr)rrQlistrSBlockPrinterprint_blockfr)rrrr?blockswriterrEs       rrzClinicBlockParserTest._testsy#D))f(99::$X..	&	&Eu%%%%""$$rc.|||Srr)rrs  r
round_tripz ClinicBlockParserTest.round_tripszz%'''rc0|ddS)Nz@
            verbatim text here
            lah dee dah
        rr9s rtest_round_trip_1z'ClinicBlockParserTest.test_round_trip_1s'	
	
	
	
	
rc0|ddS)Nz
    verbatim text here
    lah dee dah
/*[inert]
abc
[inert]*/
def
/*[inert checksum: 7b18d017f89f61cf17d47f92749ea6930a3f1deb]*/
xyz
rr9s rtest_round_trip_2z'ClinicBlockParserTest.test_round_trip_2s'											rctjd}tj|d}t||jd<t||jd<||}|||dS)Nr>rsinertcopy)rrQrmrparsersrrwr)rrrr?rrs      r_test_clinicz"ClinicBlockParserTest._test_clinicsu#D))M(V444(^^	'&qMM	&775>>*****rc2|dddS)Nz
    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
)rr9s r
test_clinic_1z#ClinicBlockParserTest.test_clinic_1s.							rN)	r r!r"rrrrrrr$rrr	r	sqkkk(((





+++rr	cZeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d;d8Z8d9Z9d:S)<ClinicParserTestc|t|d||jt|dS)N	docstring)rhasattrrr"rvr
)rrrs   rcheckDocstringzClinicParserTest.checkDocstringsgK00111++--))//11	3	3	3	3	3rctt}tjd}|||j\}}|d|j|d|jdS)Nz5
            module os
            os.access
        accessos)r
rBrBlockrw
signaturesrr()rrrErhfunctions     rtest_trivialzClinicParserTest.test_trivials:<<((

	U +8=111v{+++++rc|td}|j\}}|d|j|d|jdS)NzC
            #
            module os
            os.access
        r&r')rwr
r)rr()rrErhr*s    rtest_ignore_linez!ClinicParserTest.test_ignore_linesk

6#


!+8=111v{+++++rcP|d}|d|j|dt|j|jd}|d|j||jtjdS)NzO
            module os
            os.access
                path: int
        r&r{path)	rrr(len
parametersassertIsInstance	converterr
int_converterrr*ps   r
test_paramzClinicParserTest.test_params&&(


	
8=111C 344555'(((ak6+?@@@@@rc|d}|jd}|d|jdS)Nzb
            module os
            os.access
                follow_symlinks: bool = True
        follow_symlinksTrr1rr2r5s   rtest_param_defaultz#ClinicParserTest.test_param_default)sJ&&(



 12qy)))))rc|d}|jd}|d|jdS)Nz
            module os
            os.access
                follow_symlinks: \
                bool \
                = \
                True
        r9Tr:r5s   rtest_param_with_continuationsz.ClinicParserTest.test_param_with_continuations2sJ&&(


 12qy)))))rc.|d}|jd}|tj|j|d|jjd}|d}|||dS)Nz
            module os
            os.access
                follow_symlinks: int(c_default='MAXSIZE') = sys.maxsize
            r9MAXSIZEz~Error on line 0:
When 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
        )	rr1rr`maxsizer2r3	c_defaultr)rr*r6expected_msgrs     rtest_param_default_expressionz.ClinicParserTest.test_param_default_expression>s&&(

 12ai000AK$9:::
4	
--/


	
l+++++rc|d}|jd}|dt|j|jdj}||tjdS)Nz
            module os
            os.access
                follow_symlinks: bool = True
                something_else: str = ''
        r9something_else)rr1rr0r3r2r
str_converter)rr*r6convs    rtest_param_no_docstringz(ClinicParserTest.test_param_no_docstringTs}&&(


 12C 344555"#34>dF$899999rc`d}|d}|||dS)NzoError on line 0:
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: strrrrrBrs   r*test_param_default_parameters_out_of_orderz;ClinicParserTest.test_param_default_parameters_out_of_order`sF
2	
--/'((
	
l+++++rc|d}|jd}|d|jjddS)Nz^
            module os
            os.access
                path: path_t(allow_fd=1)
        r/allow_fd)rr1rr3r)r5s   r!disabled_test_converter_argumentsz2ClinicParserTest.disabled_test_converter_argumentsmsQ&&(



'AK,Z899999rc\|d}||ddS)Nz
            module os
            os.stat as os_stat_fn

               path: str
                   Path to be examined

            Perform a stat system call on the given path.
        z
            stat($module, /, path)
            --

            Perform a stat system call on the given path.

              path
                Path to be examined
        rr$rr*s  rtest_function_docstringz(ClinicParserTest.test_function_docstringvG&&(

	
H'	
	
	
	
	
rcv|td}||ddS)Nz
            module foo
            foo.bar
              x: int
                 Documentation for x.
              y: int

            This is the documentation for foo.

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

            This is the documentation for foo.

              x
                Documentation for x.

            Okay, we're done here.
        rr
r$rTs  r%test_explicit_parameters_in_docstringz6ClinicParserTest.test_explicit_parameters_in_docstringsS&&v
/
(

(


	
H
'
	

	

	

	

	
rcv|td}||ddS)Nzt
            module os
            os.stat
                path: str
            This/used to break Clinic!
        zc
            stat($module, /, path)
            --

            This/used to break Clinic!
        rXrTs  rTtest_parser_regression_special_character_in_parameter_column_of_docstring_first_linezeClinicParserTest.test_parser_regression_special_character_in_parameter_column_of_docstring_first_linesS&&v/(
(
	
H'	
	
	
	
	
rcf|d}|d|jdS)NzA
            module os
            os.stat as os_stat_fn
        
os_stat_fn)rr
c_basenamerTs  rtest_c_namezClinicParserTest.test_c_names=&&(

	
x':;;;;;rcz|d}||jtjdS)Nz:
            module os
            os.stat -> int
        )rr2return_converterrint_return_converterrTs  rtest_return_converterz&ClinicParserTest.test_return_converters@&&(

	
h79TUUUUUrc|d}|jd}|tjj|j|d|jdS)Nzt
            module os
            os.access
                *
                follow_symlinks: bool = True
        r9r)rr1rinspect	ParameterKEYWORD_ONLYkindgroupr5s   r	test_starzClinicParserTest.test_starsh&&(


 12*7@@@AG$$$$$rc|d}|jd}|d|jdS)Nz
            module window
            window.border
                [
                ls: int
                ]
                /
        lsrO)rr1rrir5s   r
test_groupzClinicParserTest.test_groupsI&&(


%AG$$$$$rcr|d}d}|D]\}}|||5|j|}||j|||jtjjdddn#1swxYwY|	|ddS)Na
            module curses
            curses.addch
                [
                y: int
                    Y-coordinate.
                x: int
                    X-coordinate.
                ]
                ch: char
                    Character to add.
                [
                attr: long
                    Attributes for the character.
                ]
                /
        ))rr)rrrr)rrOr(ria
            addch([y, x,] ch, [attr])


              y
                Y-coordinate.
              x
                X-coordinate.
              ch
                Character to add.
              attr
                Attributes for the character.
        
rrr1rrirhrerfPOSITIONAL_ONLYr$rr*datasetr(rir6s      rtest_left_groupz ClinicParserTest.test_left_groups%&&(

"

#	L	LKD%4u55
L
L'-  %000  ):)JKKK
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L	
H'	
	
	
	
	
ABB	B	cr|d}d}|D]\}}|||5|j|}||j|||jtjjdddn#1swxYwY|	|ddS)Na
            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.
               ]
               ]
               /
        ))y1)y2ry)x1r)x2rro)attr1rO)attr2rO)attr3rO)attr4r{)attr5r{)attr6r{rpa
            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.
        rqrss      rtest_nested_groupsz#ClinicParserTest.test_nested_groupss&&&"("
"
F
#	L	LKD%4u55
L
L'-  %000  ):)JKKK
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
	
H'	
	
	
	
	
rvctj5}|t5||dddn#1swxYwYdddn#1swxYwY|Sr)rrrrrr)rsrs   rrz+ClinicParserTest.parse_function_should_failMs

$
&
&	'&"":..
'
'##A&&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'   s4A(AA(A	A(A	A((A,/A,c`d}|d}|||dS)NzpError on line 0:
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
        rKrLs   r0test_disallowed_grouping__two_top_groups_on_leftzAClinicParserTest.test_disallowed_grouping__two_top_groups_on_leftSsF
6	
--
/



	
l+++++rc`|d}d}|||dS)Nz
            module foo
            foo.two_top_groups_on_right
                param: int
                [
                group1 : int
                ]
                [
                group2 : int
                ]
        z_Function two_top_groups_on_right has an unsupported group configuration. (Unexpected state 6.b)rrrs   r1test_disallowed_grouping__two_top_groups_on_rightzBClinicParserTest.test_disallowed_grouping__two_top_groups_on_rightfB--
/




4		


c3rc`|d}d}|||dS)Nz
            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)rrs   r8test_disallowed_grouping__parameter_after_group_on_rightzIClinicParserTest.test_disallowed_grouping__parameter_after_group_on_rightxrrc`|d}d}|||dS)Nz
            module foo
            foo.group_after_parameter_on_left
                [
                group2 : int
                [
                group1 : int
                ]
                ]
                param: int
        zeFunction group_after_parameter_on_left has an unsupported group configuration. (Unexpected state 2.b)rrs   r7test_disallowed_grouping__group_after_parameter_on_leftzHClinicParserTest.test_disallowed_grouping__group_after_parameter_on_leftrrc`|d}d}|||dS)Nz
            module foo
            foo.empty_group
                [
                [
                ]
                group2 : int
                ]
                param: int
        XFunction empty_group has an empty group.
All groups must contain at least one parameter.rrs   r-test_disallowed_grouping__empty_group_on_leftz>ClinicParserTest.test_disallowed_grouping__empty_group_on_leftB--	/	
	

>		


c3rc`|d}d}|||dS)Nz
            module foo
            foo.empty_group
                param: int
                [
                [
                ]
                group2 : int
                ]
        rrrs   r.test_disallowed_grouping__empty_group_on_rightz?ClinicParserTest.test_disallowed_grouping__empty_group_on_rightrrc`|d}d}|||dS)Nz
            module foo
            foo.empty_group
                param: int
                ]
                group2: int
                ]
        z2Function empty_group has a ] without a matching [.rrs   r-test_disallowed_grouping__no_matching_bracketz>ClinicParserTest.test_disallowed_grouping__no_matching_brackets>--/

C

c3rc|d}|d|j|dt|jdS)NzL
            module foo
            foo.bar

            Docstring

        zbar($module, /)
--

DocstringrOrrr"r0r1rTs  rtest_no_parametersz#ClinicParserTest.test_no_parameterss_&&(

	
;X=OPPPC 34455555rc|ddd}|d|j|dt|jdS)Nz
            module foo
            class foo.Bar "unused" "notneeded"
            foo.Bar.__init__

            Docstring

        rEr{)signatures_in_blockfunction_indexzBar()
--

DocstringrOrrTs  rtest_init_with_no_parametersz-ClinicParserTest.test_init_with_no_parameterssk&&("#1'66	
183EFFFC 34455555rc`|d}d}|||dS)NzM
            module foo
            foo.bar => int
                /
        z%Illegal function name: foo.bar => intrrs   rtest_illegal_module_linez)ClinicParserTest.test_illegal_module_lines=--/


6

c3rc`|d}d}|||dS)NzM
            module foo
            foo.bar as 935
                /
        zIllegal C basename: 935rrs   rtest_illegal_c_basenamez(ClinicParserTest.test_illegal_c_basenames=--/


(

c3rc\|d}|d|dS)NzX
            module foo
            foo.bar
                *
                *
        z%Function bar uses '*' more than once.rrrs  rtest_single_starz!ClinicParserTest.test_single_stars9--/

	


=sCCCCCrcd}d}|D][}||5||}|||dddn#1swxYwY\dS)N)zmodule foo
foo.bar
  *z&module foo
foo.bar
  *
Docstring here.z"module foo
foo.bar
  this: int
  *z-module foo
foo.bar
  this: int
  *
Docstring.z=Function bar specifies '*' without any parameters afterwards.rE)rrr)rrtrrErs     r#test_parameters_required_after_starz4ClinicParserTest.test_parameters_required_after_stars
N	(	(EE**
(
(55e<<

c3'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(	(	(,AA	A	c`|d}d}|||dS)NzX
            module foo
            foo.bar
                /
                /
        KFunction bar has an unsupported group configuration. (Unexpected state 0.d)rrs   rtest_single_slashz"ClinicParserTest.test_single_slashB--/


%		


c3rc`|d}d}|||dS)Nz
            module foo
            foo.bar
                a: int
                /
                b: int
                /
        z%Function bar uses '/' more than once.rrs   rtest_double_slashz"ClinicParserTest.test_double_slashs=--/

6

c3rc`|d}d}|||dS)Nz
            module foo
            foo.bar
               x: int
               y: int
               *
               z: int
               /
        zUFunction bar mixes keyword-only and positional-only parameters, which is unsupported.rrs   rtest_mix_star_and_slashz(ClinicParserTest.test_mix_star_and_slash%sB--/


$		


c3rc`|d}d}|||dS)Nz]
            module foo
            foo.bar
                /
                x: int
        rrrs   r1test_parameters_not_permitted_after_slash_for_nowzBClinicParserTest.test_parameters_not_permitted_after_slash_for_now5rrc`d}|d}|||dS)Nz#Error on line 0:
Too many var args
zt
            module foo
            foo.bar
               *vararg1: object
               *vararg2: object
        rKrLs   r'test_parameters_no_more_than_one_varargz8ClinicParserTest.test_parameters_no_more_than_one_varargBsF
"	--/

	
l+++++rc\|d}||ddS)Nz
              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.
        rSrTs  rtest_function_not_at_column_0z.ClinicParserTest.test_function_not_at_column_0OrVrc`|d}d}|||dS)Nzr
            module foo
            foo.bar
               *vararg1: object
            	*vararg2: object
        z-Tab characters are illegal in the Clinic DSL.rrs   rtest_indent_stack_no_tabsz*ClinicParserTest.test_indent_stack_no_tabscs=--/

>

c3rc\|d}|d|dS)Nzc
            module foo
            foo.bar
              a: object
             b: object
        zIllegal outdentrrs  r!test_indent_stack_illegal_outdentz2ClinicParserTest.test_indent_stack_illegal_outdentms9--/

	


'-----rct}t|d_fdjd<t	jd}||jdS)NFc&tddS)NflagT)setattr)rsr<lambda>z1ClinicParserTest.test_directive.<locals>.<lambda>zs0M0Mrsetflag)rBr
r
directivesrr(rwr)rrrErs   @rtest_directivezClinicParserTest.test_directivevsoLL1'M'M'M'M)$Y''U$$$$$rc|d}|j\}}|jdj}||t
jdS)Nz module os
os.access
   path: "s"r/)rwr)r1r3r2rrG)rrErhr*rHs     rtest_legacy_convertersz'ClinicParserTest.test_legacy_converterssP

?@@ +#F+6dF$899999rcd}d}|D][}||5||}|||dddn#1swxYwY\dS)NRError on line 0:
Annotations must be either a name, a function call, or a string.
)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"rrrrrexpected_failure_messagertrErs     r5test_legacy_converters_non_string_constant_annotationzFClinicParserTest.test_legacy_converters_non_string_constant_annotations
Q	!
	@	@EE**
@
@55e<<  &>???
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@	@	@rcd}d}|D][}||5||}|||dddn#1swxYwY\dS)Nr)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))rrrs     r-test_other_bizarre_things_in_annotations_failz>ClinicParserTest.test_other_bizarre_things_in_annotations_fails
Q	!

	@	@EE**
@
@55e<<  &>???
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@	@	@rcdd}d}||}|||dS)NzhError on line 0:
A '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 *")
        rKrexpected_error_msgrErs    rtest_self_param_placementz*ClinicParserTest.test_self_param_placementsE
(	
--e44011111rcdd}d}||}|||dS)Nz?Error on line 0:
A 'self' parameter cannot be marked optional.
zj
            module foo
            foo.func
                self: self(type="PyObject *") = None
        rKrs    r"test_self_param_cannot_be_optionalz3ClinicParserTest.test_self_param_cannot_be_optionalsE
>	
--e44011111rcdd}d}||}|||dS)NzError on line 0:
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
        rKrs    r#test_defining_class_param_placementz4ClinicParserTest.test_defining_class_param_placementsF
O	
--e44011111rcdd}d}||}|||dS)NzIError on line 0:
A 'defining_class' parameter cannot be marked optional.
zs
            module foo
            foo.func
                cls: defining_class(type="PyObject *") = None
        rKrs    r,test_defining_class_param_cannot_be_optionalz=ClinicParserTest.test_defining_class_param_cannot_be_optionalsF
H	
--e44011111rcd}d}|t|5||ddddS#1swxYwYdS)Nz
            module foo
            class Foo "" ""
            Foo.__init__
                cls: defining_class
                a: object
        z0Slot methods cannot access their defining class.)assertRaisesRegex
ValueErrorr)rrErs   r.test_slot_methods_cannot_access_defining_classz?ClinicParserTest.test_slot_methods_cannot_access_defining_classsA

#
#J
4
4	'	'&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'sAA
Ac`d}|d}|||dS)Nz1Error on line 0:
__new__ must be a class method!
zT
            module foo
            class Foo "" ""
            Foo.__new__
        rKrrrs   rtest_new_must_be_a_class_methodz0ClinicParserTest.test_new_must_be_a_class_methodsG
0	--/


	
011111rc`d}|d}|||dS)NzQError on line 0:
__init__ must be a normal method, not a class or static method!
zn
            module foo
            class Foo "" ""
            @classmethod
            Foo.__init__
        rKrs   r!test_init_must_be_a_normal_methodz2ClinicParserTest.test_init_must_be_a_normal_methodsH
P	--/

	
011111rct}t|}tj|}|||Sr)rBr
rr(rw)rtextrrrEs     rrwzClinicParserTest.parses<LL1T""Urr{rOc||}|j}|t||||Sr)rwr)rr0)rrrrrErs      rrzClinicParserTest.parse_function	sE

4  Q!4555  rc|ttjd|ttjdd}tj5}|t5tj	ddddddn#1swxYwYdddn#1swxYwY|
}|||dS)Nz
<Unspecified>z<Null>z>Error in file "clown.txt" on line 69:
The igloos are melting!
zThe igloos are melting!z	clown.txtE)r@line_number)rrbrunspecifiedNULLrrrrfailr)rrractuals    rtest_scaffoldingz!ClinicParserTest.test_scaffoldingsf011?CCCfk**H555
(	
$
&
&	B&"":..
B
B5%0bBBBB
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B""*****s60CB/#C/B3	3C6B3	7CC

C
N)r{rO):r r!r"r$r+r-r7r;r=rCrIrMrQrUrYr[r_rcrjrmrurrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrwrrr$rrr r sf333
	,	,	,,,,
A
A
A***
*
*
*,,,,
:
:
:,,,:::


(


0


<<<VVV	%	%	%
%
%
%(
(
(
TL
L
L
\!!!,,,&   $   $   $   "   "
 
 
 	6	6	6
6
6
6      DDD(((   
 
 
        ,,,


(   ...%%%:::@@@ 
@
@
@
2
2
2222222 222
'
'
'
2
2
2222!!!!+++++rr ceZdZdZejejddZ	dddZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdS)ClinicExternalTestNrz	clinic.pyT)expect_successctjtjd|jg|ddtjtj5}||r=|jr6|d	g|j
|j|j
}|j}|
|d|cdddS#1swxYwYdS)Nz-Xutf8utf-8r)encodingbufsizerstderrrD)
subprocessPopenr`
executable	clinic_pyPIPEwait
returncoderjoinrrreadr)rrr)procrrs      r_do_testzClinicExternalTest._do_test's-


^Xt~==??


	IIKKK
A$/
A		"''">DK">$+">??@@@[%%''F[%%''FVR(((																		sBC,,C03C0c|j|Srrrr)s  rrz!ClinicExternalTest.expect_success8st}d##rc|j|ddiS)NrFrrs  rryz!ClinicExternalTest.expect_failure;st}d95999rcd}tj|}t|dd5}|}dddn#1swxYwY|t
t|ddt|}||dttdd5}|}dddn#1swxYwY|||dS)Nz
clinic.test.crrr-f-orD)	rfindfileopenr
addCleanupr	rrr)rCLINIC_TESTsourcer
orig_contentsrnew_contentss       r
test_externalz ClinicExternalTest.test_external>sb%!+..
&#
0
0
0	%AFFHHM	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	
'''!!$ff==b!!!
&#
0
0
0	$A6688L	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	
}55555s#A

AA?C  C$'C$ctd}tj5}tj|d}t
|dd5}||dddn#1swxYwYtj|j	}|
|tj|j	}dddn#1swxYwY|||dS)Nz
            /*[clinic input]
            [clinic start generated code]*/
            /*[clinic end generated code: output=da39a3ee5e6b4b0d input=da39a3ee5e6b4b0d]*/
        rrwrr)r
rtemp_dirr'r/rrwritestatst_mtime_nsrr)rcodetmp_dirrr	pre_mtime
post_mtimes       rtest_no_changez!ClinicExternalTest.test_no_changeNsX




!
!	1Wgx00Bb#000
A

















/I###0J
	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	
J/////s63CA8,C8A<	<C?A<	A
CCCctd}td}tj5}tj|d}t
|dd5}||dddn#1swxYwY||}|	|
||d|}||dd	}t
|d
d5}|
}dddn#1swxYwY|	|
|ddddS#1swxYwYdS)NaA
            /*[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.
        rrrrrrrDzP/*[clinic end generated code: output=6c2289b73f32bc19 input=9543a8d2da235301]*/
r)r
rrr'r/rrrryrendswithrrr)	r
invalid_inputfail_msgrrrrchecksum	generateds	         rtest_cli_forcez!ClinicExternalTest.test_cli_forcebs+
 








!
!	:Wgx00Bb#000
'A
&&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
%%b))COOCLL22333%%dB//CS"%%%F
b#000
%AFFHH	
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%OOI..x88999'	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:sZ3E0%B;E0B	E0B	BE0D0$E00D4	4E07D4	8+E00E47E4ctd}d}d}d}d}tj5}||||||||tj|d}tj|5}|||||dd	d
|}	dddn#1swxYwY|D]f}
||
5tj||
}|||	dddn#1swxYwYg|D]f}
||
5tj||
}|	||	dddn#1swxYwYg|D]f}
||
5tj||
}|	||	dddn#1swxYwYg	ddddS#1swxYwYdS)NzR
            /*[clinic input]
            [clinic start generated code]*/
        pass)zfile1.czfile2.c)zfile1.pyzfile2.pyc|D]a}tj||}t|dd5}||dddn#1swxYwYbdS)Nrrr)r'r/rrr)filessrcdirrrr/rs      rcreate_filesz6ClinicExternalTest.test_cli_make.<locals>.create_filess
"
"w||FB//$g666"!GGDMMM"""""""""""""""
"
"sAA	 A		externals)r/-v--make--srcdirrs)
r
rrr'r/rrrrassertNotIn)rc_codepy_codec_filespy_filesr&rext_pathr'rr@r/s            r
test_cli_makez ClinicExternalTest.test_cli_makes

&)	"	"	"

!
!	0WL'6222L7G444w||G[99H#222
OiWi888))$*gNN	
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O$
-
-\\8\44--7<<::DMM$,,,---------------%
0
0\\8\44007<<::D$$T3///000000000000000$
0
0\\8\44007<<(;;D$$T3///000000000000000
0/	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0sAH<&B."H.B2	2H5B2	6H7D
HDHDH<7E?3H?FHFH%7G(H(G,,H/G,0HH	Hctj5}tj|d}t|dd5}|ddddn#1swxYwY|d|}||	|ddddS#1swxYwYdS)NrrrrrrDr()
rrr'r/rrrrrrv)rrrrrs     rtest_cli_verbosez#ClinicExternalTest.test_cli_verboses0


!
!	.Wgx00Bb#000
A














%%dB//CSYY[["---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.s63B?A)B?)A-	-B?0A-	1AB??CCc\|d}|d|dS)Nz-husage: clinic.py)rrrs  r
test_cli_helpz ClinicExternalTest.test_cli_helps0!!$''

(#.....rc	td}d}td}|d}||||||||||}||}|d}t||D]v\}}|	}|
|5|||d|d|dddn#1swxYwYwdS)	Nz
            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:
        )boolbytechardefining_classdoublefildesfloatintlong	long_longobject	Py_buffer
Py_complex
Py_ssize_t
Py_UNICODEPyByteArrayObject
PyBytesObjectrshortsize_tslice_indexstrunicode
unsigned_charunsigned_int
unsigned_longunsigned_long_longunsigned_shorta
            Return converters:
                bool()
                double()
                float()
                init()
                int()
                long()
                NoneType()
                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)r3zexpected converter z, got )r
rrrrremoveprefixremovesuffixrziprr)rpreludeexpected_convertersfinalerlinesr3lines        rtest_cli_convertersz&ClinicExternalTest.test_cli_converterss


<

"!!.11
	
w//555V,,c222w''v&&		$"#6>>		OIt;;==D	22

OOI..E)EETEE














		s0EE		E	cb|dd}d}|||dS)NrSrrzGUsage error: can't specify --converters and a filename at the same timerrs   r%test_cli_fail_converters_and_filenamez8ClinicExternalTest.test_cli_fail_converters_and_filenames=!!.(;;
.		


c3rcZ|}|d|dS)Nr5rrs  rtest_cli_fail_no_filenamez,ClinicExternalTest.test_cli_fail_no_filenames.!!##

(#.....rcf|dddd}d}|||dS)Nrout.czinput.czmoreinput.cz1Usage error: can't use -o with multiple filenamesrrs   r'test_cli_fail_output_and_multiple_filesz:ClinicExternalTest.test_cli_fail_output_and_multiple_filess:!!$MJJA

c3rcdD]V}||5|jdg|R}d}|||dddn#1swxYwYWdS)N))rrb)z
filename.c)optsr)z2Usage error: can't use -o or filenames with --make)rryr)rrerrs    r)test_cli_fail_filename_or_output_and_makez<ClinicExternalTest.test_cli_fail_filename_or_output_and_makes4	(	(D4((
(
()d)(:T:::J

c3'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(	(	(s'AA	A	cd|ddd}d}|||dS)Nr)r*rDz3Usage error: --srcdir must not be empty with --makerrs   r!test_cli_fail_make_without_srcdirz4ClinicExternalTest.test_cli_fail_make_without_srcdir#s8!!(J;;C

c3r)r r!r"r#r'r/rrtoolsdirrrrryrrr r1r3r6r\r^r`rcrfrhr$rrrr#s'GZ0(KHHI-1"$$$:::666 000(&:&:&:P)0)0)0V...///HHHT   ///   
(((     rrz_testclinic is missingceZdZedeeDdZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3S)4ClinicFunctionalTestc#nK|]0}|d|tt|fV1dS)test_N)rgetattr	ac_tester).0r(s  r	<genexpr>zClinicFunctionalTest.<genexpr>0s^LL$//'2J2JLT79d334LLLLLLrc|t5tjdddn#1swxYwY|tjddd|tjgdgdf|tjdddS)NrOr{rOr{zwhatever class)rON)r	TypeErrorroobjects_converterrr9s rtest_objects_converterz+ClinicFunctionalTest.test_objects_converter3s


y
)
)	*	*')))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*4Q::FCCC4R9IJJRQaLbccc4Q77CCCCC
;??c|t5tjddddn#1swxYwY|tjdddS)NrOBytesObject)ry)rrtrobytes_object_converterrr9s rtest_bytes_object_converterz0ClinicFunctionalTest.test_bytes_object_converter:s


y
)
)	0	0,Q///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	09.IIK\]]]]]<AAc|t5tjddddn#1swxYwYt	d}|tj||fdS)NrOsByteArrayObject)rrtrobyte_array_object_converter	bytearrayr)rbyte_arrs  r test_byte_array_object_converterz5ClinicFunctionalTest.test_byte_array_object_converter?s


y
)
)	5	51!444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5/00>xHH8+VVVVVr|c|t5tjddddn#1swxYwY|tjdddS)NrOrM)rM)rrtrounicode_converterrr9s rtest_unicode_converterz+ClinicFunctionalTest.test_unicode_converterEs


y
)
)	+	+'***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+4Y??NNNNNr|c|t5tjddddddn#1swxYwY|tjd|tjdgdd|tjddd	id
ddS)NFz	not a int)TTTrD)FFT)z	not emptyrOr{r)TTF)rrtrobool_converterrr9s rtest_bool_converterz(ClinicFunctionalTest.test_bool_converterJs


y
)
)	@	@$UE;???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@1335GHHH1"b!<<>RSSS1.1a&!LLNabbbbbs>AAc$|t5tjddddn#1swxYwY|t5tjddddn#1swxYwYgd}t	d|D}|tj|gd}t	d|D}|tj||dS)NrOsab)A	

"'?\c34K|]}t|VdSrordrprs  rrqz;ClinicFunctionalTest.test_char_converter.<locals>.<genexpr>W(//AQ//////r)1234567890abcdc34K|]}t|VdSrrrs  rrqz;ClinicFunctionalTest.test_char_converter.<locals>.<genexpr>Zrr)rrtrochar_convertertupler)rcharsrs   rtest_char_converterz(ClinicFunctionalTest.test_char_converterQs


y
)
)	(	($Q'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


y
)
)	,	,$U+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,rrr///////133X>>>ddd///////1598DDDDD!<AA!BB	Bc^ddlm}|t5t	jddddn#1swxYwY|t5t	j|dzdddn#1swxYwY|t5t	jd|dzdddn#1swxYwY|t5t	jgdddn#1swxYwY|t	jd|t	jdd|dzd|t	jdd|dzdzdzd	dS)
Nr)	UCHAR_MAXrrO"8rrrrE{rrr)	_testcapirr
OverflowErrorrounsigned_char_converterrtr)rrs  rtest_unsigned_char_converterz1ClinicFunctionalTest.test_unsigned_char_converter]s''''''


}
-
-	2	2-b111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2


}
-
-	=	=-i!m<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=


}
-
-	@	@-aQ???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@


y
)
)	2	2-b111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2:<<lKKK:1aQOOQZ[[[:1a)a-STATWZAZ[[]hiiiiiGAA	A'BBB0CCC:DD"Dcfddlm}m}|t5tj|dz
dddn#1swxYwY|t5tj|dzdddn#1swxYwY|t5tjgdddn#1swxYwY|tjdd|tjdddS)Nr)SHRT_MINSHRT_MAXrO.r)r)	rrrrrroshort_converterrtr)rrrs   rtest_short_converterz)ClinicFunctionalTest.test_short_converterks00000000


}
-
-	4	4%hl333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4


}
-
-	4	4%hl333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4


y
)
)	*	*%b)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*25998DDD2488'BBBBB5AAA,BBB5CCCc^ddlm}|t5t	jddddn#1swxYwY|t5t	j|dzdddn#1swxYwY|t5t	jd|dzdddn#1swxYwY|t5t	jgdddn#1swxYwY|t	jd|t	jdd|dzd|t	jdd|dzdzdzd	dS)
Nr)	USHRT_MAXrrOrrrErr)	rrrrrounsigned_short_converterrrtr)rrs  rtest_unsigned_short_converterz2ClinicFunctionalTest.test_unsigned_short_convertervs''''''


z
*
*	3	3.r222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3


}
-
-	>	>.y1}===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>


}
-
-	A	A.q)a-@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A


y
)
)	3	3.r222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3;==|LLL;Aq)a-PPR[\\\;Aq9q=TUBUX[B[\\^ijjjjjrcddlm}m}|t5tj|dz
dddn#1swxYwY|t5tj|dzdddn#1swxYwY|t5tjddddddn#1swxYwY|t5tjgdddn#1swxYwY|tjd|tjdddddtdfdS)Nr)INT_MININT_MAXrOr{rE)rr-3)
rrrrrror4rtrr)rrrs   rtest_int_converterz'ClinicFunctionalTest.test_int_converterse........


}
-
-	1	1#GaK000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1


}
-
-	1	1#GaK000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1


y
)
)	-	-#Aq!,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-


y
)
)	(	(#B'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(022LAAA0As;;aCHH=MNNNNNsGAAA,BBB5CCC=DD"%D"c^ddlm}|t5t	jddddn#1swxYwY|t5t	j|dzdddn#1swxYwY|t5t	jd|dzdddn#1swxYwY|t5t	jgdddn#1swxYwY|t	jd|t	jdd|dzd|t	jdd|dzdzdzd	dS)
Nr)UINT_MAXrrOrrrErr)	rrrrrounsigned_int_converterrrtr)rrs  rtest_unsigned_int_converterz0ClinicFunctionalTest.test_unsigned_int_converters&&&&&&


z
*
*	1	1,R000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1


}
-
-	;	;,X\:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;


}
-
-	>	>,Q1===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>


y
)
)	1	1,R000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	19;;\JJJ9!Q1MMyYYY9!QAQR@RUX@XYY[fgggggrcdddlm}m}|t5tj|dz
dddn#1swxYwY|t5tj|dzdddn#1swxYwY|t5tjgdddn#1swxYwY|tjd|tjdddS)Nr)LONG_MINLONG_MAXrOrrr)	rrrrrrolong_converterrtr)rrrs   rtest_long_converterz(ClinicFunctionalTest.test_long_converters00000000


}
-
-	3	3$X\222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3


}
-
-	3	3$X\222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3


y
)
)	)	)$R(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)133U;;;1%88(CCCCCrc^ddlm}|t5t	jddddn#1swxYwY|t5t	j|dzdddn#1swxYwY|t5t	jd|dzdddn#1swxYwY|t5t	jgdddn#1swxYwY|t	jd|t	jdd|dzd|t	jdd|dzdzdzd	dS)
Nr)	ULONG_MAXrrOrrrErr)	rrrrrounsigned_long_converterrrtr)rrs  rtest_unsigned_long_converterz1ClinicFunctionalTest.test_unsigned_long_converters''''''


z
*
*	2	2-b111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2


}
-
-	=	=-i!m<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=


}
-
-	@	@-aQ???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@


y
)
)	2	2-b111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2:<<lKKK:1aQOOQZ[[[:1a)a-STATWZAZ[[]hiiiiircdddlm}m}|t5tj|dz
dddn#1swxYwY|t5tj|dzdddn#1swxYwY|t5tjgdddn#1swxYwY|tjd|tjdddS)Nr)	LLONG_MIN	LLONG_MAXrOrrr)	rrrrrrolong_long_converterrtr)rrrs   rtest_long_long_converterz-ClinicFunctionalTest.test_long_long_converters22222222


}
-
-	9	9))a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9


}
-
-	9	9))a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9


y
)
)	.	.)"---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.688%@@@6u==xHHHHHrc^ddlm}|t5t	jddddn#1swxYwY|t5t	j|dzdddn#1swxYwY|t5t	jd|dzdddn#1swxYwY|t5t	jgdddn#1swxYwY|t	jd|t	jdd|dzd|t	jdd|dzdzdzd	dS)
Nr)
ULLONG_MAXrrOrrrErr)	rrrrrounsigned_long_long_converterrrtr)rrs  r!test_unsigned_long_long_converterz6ClinicFunctionalTest.test_unsigned_long_long_converters((((((


z
*
*	7	722666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7


}
-
-	C	C2:>BBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C


}
-
-	F	F21j1nEEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F


y
)
)	7	722666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7?AA<PPP?1jSTnUUW`aaa?1zTU~YZFZ]`F`aacnooooorchddlm}m}|t5tj|dz
dddn#1swxYwY|t5tj|dzdddn#1swxYwY|t5tjgdddn#1swxYwY|tjd|tjdddddS)NrPY_SSIZE_T_MINPY_SSIZE_T_MAXrOrr{rOr{r)	rrrrrropy_ssize_t_converterrtrrrrs   rtest_py_ssize_t_converterz.ClinicFunctionalTest.test_py_ssize_t_converters<<<<<<<<


}
-
-	?	?*>A+=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?


}
-
-	?	?*>A+=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?


y
)
)	/	/*2...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/799<HHH71dCCZPPPPPrcddlm}m}|t5tjgdddn#1swxYwY|tjd|tjdddd|tj||dz|dz|||f|tj||dz
|dz
|||fdS)NrrrrOr{ri)rrrrrtroslice_index_converterrrs   rtest_slice_index_converterz/ClinicFunctionalTest.test_slice_index_convertersj<<<<<<<<


y
)
)	0	0+B///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	08::LIII8AtDDjQQQ8Z[I[]knr]rss(..I	K	K	K8Z[I[]knr]rss(..I	K	K	K	K	KsAAAcl|t5tjddddn#1swxYwY|t5tjgdddn#1swxYwY|tjddS)Nrr)rrrosize_t_converterrtrr9s rtest_size_t_converterz*ClinicFunctionalTest.test_size_t_converters


z
*
*	+	+&r***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+


y
)
)	+	+&r***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+355u=====rc0|t5tjgdddn#1swxYwY|tjd|tjdddSN)g)@࿩r)rrtrofloat_converterrr9s rtest_float_converterz)ClinicFunctionalTest.test_float_converters


y
)
)	*	*%b)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*244g>>>2488'BBBBBr|c0|t5tjgdddn#1swxYwY|tjd|tjdddSr)rrtrodouble_converterrr9s rtest_double_converterz*ClinicFunctionalTest.test_double_converters


y
)
)	+	+&r***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+355w???3D997CCCCCr|cB|t5tjgdddn#1swxYwY|tjtddtddf|tjtdtdf|tjdd|tjdddS)NrOr{z-1-2jrr
)r)rrtropy_complex_converterrcomplexr9s rtest_py_complex_converterz.ClinicFunctionalTest.test_py_complex_converters/


y
)
)	/	/*2...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/71

FFQRTUHXYYY78H8HIIGT[L\L\K^___7==wGGG7;;UCCCCCr|c|t5tjddddn#1swxYwY|t5tjddddddn#1swxYwY|t5tjddddddn#1swxYwY|tjdddd|tjdddd|tjddd	d
dS)NrOrrrbbrrrccrrr)rrtrorGrrr9s rtest_str_converterz'ClinicFunctionalTest.test_str_converters


y
)
)	'	'#A&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'


y
)
)	3	3#Cc222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3


z
*
*	7	7#C#666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	70dC@@/RRR0dDAA?SSS0dFCCEWXXXXXs3<AA!BBB)CCCc
|t5tjddddn#1swxYwY|tjdddd|t5tjddddddn#1swxYwY|tjddtt
dgd|tjddtt
ddt
dgd	|tjddd
d	dS)NrOrrrrrrrrscc)rrtrostr_converter_encodingrrrr9s rtest_str_converter_encodingz0ClinicFunctionalTest.test_str_converter_encoding
s


y
)
)	0	0,Q///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	09#sCHH/ZZZ


y
)
)	@	@,S'3???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@9#tYPSTWPXPXzEZEZ[[]lmmm9#tYPSTWPXPXZ[]`ad]e]eOfEgEghh-	/	/	/9#tYOOQefffffs!<AAB..B25B2c	|t5tjdddddn#1swxYwY|tjdtgdddS)NrrabcrOr{rE)sabcs)rrtropy_buffer_converterrrr9s rtest_py_buffer_converterz-ClinicFunctionalTest.test_py_buffer_converters


y
)
)	4	4)#s333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	46ui			>R>RSSUnooooo=AAc|tjddd|tjddd|tjddddS)NrOr{rsrr)rrokeywordsr9s r
test_keywordsz"ClinicFunctionalTest.test_keywordssw+Aq116:::+A333V<<<+a1555v>>>>>rc<|t5tjdddddn#1swxYwY|tjddd|tjddddS)NrOr{rrsr)rrtrokeywords_kwonlyrr9s rtest_keywords_kwonlyz)ClinicFunctionalTest.test_keywords_kwonly"s


y
)
)	,	,%a+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,21:::FCCC2Q!<<<fEEEEErcP|tjdd|tjddd|tjdddd|tjddd|tjdddd|tjdd	d
|tjdddddS)NrOrONNr{rOr{NrErrrrrrONrEr)rrokeywords_optr9s rtest_keywords_optz&ClinicFunctionalTest.test_keywords_opt(s
/22ODDD/155|DDD/1a88)DDD/Q777FFF/1:::IFFF/!q999<HHH/!qA>>>	JJJJJrc|tjdd|tjddd|t5tjddddddn#1swxYwY|tjddd|tjdddd|tjdd	d
|tjddddd
dS)NrOrONNNr{rOr{NNrErrrOr{rENr)rONrENrrrr^rOr{rEr&)rrokeywords_opt_kwonlyrrtr9s rtest_keywords_opt_kwonlyz-ClinicFunctionalTest.test_keywords_opt_kwonly1sl6q99;PQQQ6q!<<>PQQQ


y
)
)	3	3)!Q222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	36qA>>>@RSSS6q!qAAA?SSS6a@@@BTUUU6a1JJJLYYYYYs,BBBc|tjdd|t5tjdddddn#1swxYwY|tjddd|tjddd|tjddd	d
dS)NrOrr{rrrErrrr)rrokeywords_kwonly_optrrtr9s rtest_keywords_kwonly_optz-ClinicFunctionalTest.test_keywords_kwonly_opt;s6q99?KKK


y
)
)	0	0)!Q///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	06qA>>>MMM6a@@@,OOO6a1EEEyQQQQQsA%%A),A)c|t5tjddddn#1swxYwY|t5tjdddddn#1swxYwY|tjddd|tjddddS)NrOr{rrsr)rrtroposonly_keywordsrr9s rtest_posonly_keywordsz*ClinicFunctionalTest.test_posonly_keywordsCsJ


y
)
)	*	*&q)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*


y
)
)	1	1&a0000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	13Aq996BBB3A;;;VDDDDDs!<AA!BBBc|t5tjddddn#1swxYwY|t5tjdddddn#1swxYwY|t5tjdddddn#1swxYwY|tjddddS)NrOr{rrrs)rrtroposonly_kwonlyrr9s rtest_posonly_kwonlyz(ClinicFunctionalTest.test_posonly_kwonlyKs


y
)
)	(	($Q'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


y
)
)	+	+$Q***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+


y
)
)	/	/$qA....	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/1!q9996BBBBBs3<AA!BB
B(CCCc`|t5tjddddn#1swxYwY|t5tjddddddn#1swxYwY|t5tjddddddn#1swxYwY|tjdddd|tjdddddS)NrOr{rErrrrr)rrtroposonly_keywords_kwonlyrr9s rtest_posonly_keywords_kwonlyz1ClinicFunctionalTest.test_posonly_keywords_kwonlyTs


y
)
)	1	1-a000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1


y
)
)	7	7-aA666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7


y
)
)	=	=-Q!<<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=:1a1EEEyQQQ:1QGGGSSSSSs3<AA!BBB)C

CCc$|t5tjddddn#1swxYwY|tjddd|tjdddd|tjddddd|tjddd|tjddd	d|t5tjdddd
dddn#1swxYwY|tjddddddS)NrOr{r$rEr%r&r(rrr'rrr^)rrtroposonly_keywords_optrr9s rtest_posonly_keywords_optz.ClinicFunctionalTest.test_posonly_keywords_opt^s


y
)
)	.	.*1---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.71==?QRRR71a@@/RRR71aCC\RRR7Q???ASTTT71BBBOTTT


y
)
)	?	?*Q!qA>>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?7Q!qIII<XXXXXs!<AA4EE Ec&|tjdd|tjddd|tjdddd|tjddddd|t5tjdd	dddn#1swxYwY|tjddd
d|tjddddd|t5tjddddddddS#1swxYwYdS)
NrOr#r{r$rEr%r&r(rrrr^r')rroposonly_opt_keywords_optrrtr9s rtest_posonly_opt_keywords_optz2ClinicFunctionalTest.test_posonly_opt_keywords_optjs;A>>@UVVV;AqAACUVVV;Aq!DDoVVV;Aq!QGGVVV


y
)
)	7	7.qA6666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7;AqAFFFXXX;AqAKKK\ZZZ


y
)
)	C	C.a1BBBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs$C$$C(+C( FF

F
c|t5tjddddn#1swxYwY|t5tjdddddn#1swxYwY|tjddd|tjdddd|tjdddd	d
|t5tjddddddddS#1swxYwYdS)NrOr{rr$rEr5r%r&r9r(r')rrtroposonly_kwonly_optrr9s rtest_posonly_kwonly_optz,ClinicFunctionalTest.test_posonly_kwonly_optvs


y
)
)	,	,(+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,


y
)
)	/	/(A...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/5a1===?QRRR5a1BBBOTTT5a1QGGGVVV


y
)
)	=	=(1Q!<<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=s3<AA!BB
B)EEEcv|tjdd|tjddd|t5tjddddddn#1swxYwY|t5tjdddddn#1swxYwY|tjdddd|tjdddd	
ddS)NrOr#r{r$rErrr%r&r=r()rroposonly_opt_kwonly_optrrtr9s rtest_posonly_opt_kwonly_optz0ClinicFunctionalTest.test_posonly_opt_kwonly_opts9!<<>STTT9!Q??ASTTT


y
)
)	6	6,Q1555	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6


y
)
)	5	5,Q!4444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	59!Q!DDDoVVV9!Q!qIII<XXXXXs$,BBB4CCCc	0|t5tjddddn#1swxYwY|t5tjdddddn#1swxYwY|t5tjdddddn#1swxYwY|t5tjddddddn#1swxYwY|t5tjddddddn#1swxYwY|tjdddd|tjdddd|tjdddd	
d|tjdddd	d
ddS)NrOr{rrErrrOr{rENNr5r&r=rOr{rEr&Nrrr^erOr{rEr&r)rrtroposonly_keywords_kwonly_optrr9s r test_posonly_keywords_kwonly_optz5ClinicFunctionalTest.test_posonly_keywords_kwonly_opts8


y
)
)	5	51!444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5


y
)
)	8	81!Q777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8


y
)
)	:	:1!q9999	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:


y
)
)	;	;1!Q:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;


y
)
)	A	A1Aa@@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A>q!qIIIK`aaa>qAKKKMbccc>q!qANNNPbccc>q!qAQRSSSUdeeeeesW<AA!BB
B(CCC0DDD8EE #E c	j|t5tjddddn#1swxYwY|tjddd|tjddd|t5tjdddddddn#1swxYwY|t5tjdddddn#1swxYwY|tjdddd	|tjddd
d	|tjddddd|tjdddd
d|tjdddddd|tjdddddddS)NrOr{)rOr{NNNrrEr&rrrGr5r^rHr=rr^rJrKrI)rrtroposonly_keywords_opt_kwonly_optrr9s r$test_posonly_keywords_opt_kwonly_optz9ClinicFunctionalTest.test_posonly_keywords_opt_kwonly_opts


y
)
)	9	95a888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9B1aHHJbcccB1JJJLdeee


y
)
)	B	B5aAqAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B


y
)
)	@	@5Q????	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@B1a1MMMOdeeeB1QOOOQfgggB1aaPPPRdeeeB1a1PQRRRTfgggB1aaSTUUUWfgggB1a1PQUVWWWYhiiiiis3<AA4CCC=D  D$'D$c&|tjdd|tjddd|t5tjdddddn#1swxYwY|tjdddd|tjdddd|tjdddd	
d|tjdddd	d|t5tjdddd	ddddS#1swxYwYdS)
NrOr#r{r$rrEr%rr&rOr(r=)rro#posonly_opt_keywords_opt_kwonly_optrrtr9s r(test_posonly_opt_keywords_opt_kwonly_optz=ClinicFunctionalTest.test_posonly_opt_keywords_opt_kwonly_opts"FqIIK`aaaFq!LLN`aaa


y
)
)	B	B9!qAAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BFq!QOOQ`aaaFq!qQQQSbcccFq!QRSTTTVbcccFq!qTUVVVXdeee


y
)
)	F	F9!Q1EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	Fs$,BBB!FF

F
cn|t5tjdddn#1swxYwY|t5tjddddn#1swxYwY|tjdddS)NrOrrO)rrtrokeyword_only_parameterrr9s rtest_keyword_only_parameterz0ClinicFunctionalTest.test_keyword_only_parameters


y
)
)	/	/,...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/


y
)
)	0	0,Q///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	09A>>>EEEEEs;?? BBBc|t5tjdddn#1swxYwY|tjddd|tjddd|tjddddddS)NrOr{)rOr{r$rrEr&)rOr{)rEr&)rrtroposonly_varargrr9s rtest_posonly_varargz(ClinicFunctionalTest.test_posonly_varargs


y
)
)	'	'$&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'1!Q77DDD1!q999:FFF1!Q1==~NNNNNrwcv|t5tjdddn#1swxYwY|t5tjdddddn#1swxYwY|tjddddddSNrOr{rrEr&)rOr{rEr&)rrtrovararg_and_posonlyrr9s rtest_vararg_and_posonlyz,ClinicFunctionalTest.test_vararg_and_posonlys&


y
)
)	+	+(***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+


y
)
)	1	1(a0000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	15aAqAA>RRRRR;?? BB
Bcv|t5tjdddn#1swxYwY|t5tjdddddn#1swxYwY|tjddddddSr^)rrtrovarargrr9s rtest_varargz ClinicFunctionalTest.test_varargs&


y
)
)																	


y
)
)	%	%Q!$$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%)!Q155~FFFFFrbc	|t5tjdddn#1swxYwY|tjddd|tjddddd|tjddddd	d
dS)NrOFr)rOr$Fr{rEr&)rOr_FT)rOr_T)rrtrovararg_with_defaultrr9s rtest_vararg_with_defaultz-ClinicFunctionalTest.test_vararg_with_defaults


y
)
)	,	,)+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,6qEBBBNSSS6q!QBBDYZZZ6q!QTJJJL`aaaaarwc	|tjd|tjdd|tjddd|tjddddd	|tjddddd
ddS)N)r$Nr{r)r$r{rO)rWr{rEr&)r(Nr)r(r)rrovararg_with_only_defaultsr9s rtest_vararg_with_only_defaultsz3ClinicFunctionalTest.test_vararg_with_only_defaultss<>>
KKK<qAAA7KKK<Q!DDDjQQQ<Q1aHHJ^___<Q1a1MMMO`aaaaarc:tjdddddddS)NrOr{rEr&r)kw1kw2)rogh_32092_oobr9s rtest_gh_32092_oobz&ClinicFunctionalTest.test_gh_32092_oobs&q!Qqa888888rc2tjddddS)NrOr{rE)rogh_32092_kw_passr9s rtest_gh_32092_kw_passz*ClinicFunctionalTest.test_gh_32092_kw_passs"1a+++++rcd}tj|}tj|tj|}|||dS)Nz5*A unique string is not referenced by anywhere else.*)r`getrefcountrogh_99233_refcountr)rargarg_refcount_originarg_refcount_afters    rtest_gh_99233_refcountz+ClinicFunctionalTest.test_gh_99233_refcountsVE!oc22#C((( _S11,.@AAAAArcd}|t|5tjddddddS#1swxYwYdS)NzVgh_99240_double_free\(\) argument 2 must be encoded string without null bytes, not strrzb)rrtrogh_99240_double_free)rexpected_errors  rtest_gh_99240_double_freez.ClinicFunctionalTest.test_gh_99240_double_freesr

#
#I~
>
>	7	7*3666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7sAAAN)8r r!r"localsupdatedirrorvr{rrrrrrrrrrrrrrrrrrrr	rrrrr!r*r-r0r3r7r;r?rBrErMrRrUrYr\rarerhrkrqrtr{rr$rrrkrk.s
FHHOOLL #ILLLLLLDDD^^^
WWWOOO
ccc
E
E
Ejjj	C	C	CkkkOOOhhh	D	D	Djjj	I	I	Ippp	Q	Q	Q	K	K	K>>>CCCDDDDDD	Y	Y	Y	g	g	gppp
???
FFFKKKZZZRRREEECCCTTT
Y
Y
Y
C
C
C	=	=	=YYYfff jjj 
F
F
FFFFOOOSSSGGGbbbbbb999,,,BBB77777rrkc$eZdZdZdZdZdZdS)PermutationTestsz#Test permutation support functions.cd}ttgd}ttj|}|||dS)N)r$)rE)r{rErr)rrVrrpermute_left_option_groupsrrrdatars    rtest_permute_left_option_groupsz0PermutationTests.test_permute_left_option_groupssV
C			NN##v8>>??*****rcd}ttgd}ttj|}|||dS)N)r$rWrsrr)rrVrrpermute_right_option_groupsrrs    r test_permute_right_option_groupsz1PermutationTests.test_permute_right_option_groupssV
C			NN##v9$??@@*****rc	ddddd}ddddd}dddd	d}ddd
dd}dddd
d}ddddd}ddddd}ddddd}ddddd}	|||||||||	f	}
|
D]{}|jdi|5|\}}
}}tj||
|}t	|}|||dddn#1swxYwY|dS)Nr$)r$)leftrequiredrightrrr)rr5r5rO)r5r9rP)r5r9)rrr^rJr)rr)r5rr)rr5r)rrrr=)rJr)r=r9r')rrrr^rJ)rrrr^rJr)rvaluesrrrr)remptynoleft1noleft2noleft3noright1noright2noright3
leftandright1
leftandright2rtparamsrrrrpermutationsrs                  rtest_permute_optional_groupsz-PermutationTests.test_permute_optional_groups
sB


FV

K&

K*




R

FR




J	
	


Wgh=	
	3	3F''''
3
328--///hx%=dHeTT|,,  222	
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3	3	3sAB==C	C	N)r r!r"__doc__rrrr$rrrrsL--	+	+	+	+	+	+N3N3N3N3N3rr__main__)/testrrtest.supportrrrtest.support.os_helperrr	textwrapr
unittestrrUreos.pathr'rr`skip_if_missingimports_under_toolrr
rr&r-r6rmrrBrprrrrr	r r_testclinicroImportErrorskipIfrkrr mainr$rr<module>rs
%$$$$$$$"""""";;;;;;;;11111111




8$$$"Z"8,,!!MMM      !!!!!!!!!!!!!!!

G
G
G
G
G(
G
G
G00000000QQQQQQQQFM36222-8-8-8-8-8-8-8-8`c c c c c +c c c L-.-.-.-.-.h-.-.-.`2&2&2&2&2&X2&2&2&h







########:::::H:::z^+^+^+^+^+{^+^+^+BC C C C C C C C L#####IIId"$<==B7B7B7B7B78,B7B7>=B7Jg3g3g3g3g3x(g3g3g3TzHMOOOOOs$#A::A>A>E

EE