a ze@sfddlZddlZddlZddlZddlmZedZddlmZm Z dZ dZ ddlm Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZejjZedZ ed Z!d Z"d Z#d Z$Gd ddZ%Gddde&Z'GdddZ(GdddZ)Gddde&Z*GdddZ+Gddde&Z,GdddZ-GdddZ.Gdd d e&Z/Gd!d"d"Z0Gd#d$d$eZ1Gd%d&d&eZ2Gd'd(d(Z3Gd)d*d*Z4Gd+d,d,eZ5Gd-d.d.Z6Gd/d0d0e7Z8Gd1d2d2e7Z9Gd3d4d4Z:Gd5d6d6Z;Gd7d8d8e7ZGd;d<dd>ejAZBGd?d@d@ejAZCGdAdBdBejAZDGdCdDdDejAZEGdEdFdFZFGdGdHdHejAZGGdIdJdJejAZHGdKdLdLejAZIGdMdNdNejAZJGdOdPdPejAZKGdQdRdRejAZLGdSdTdTejAZMGdUdVdVejAZNGdWdXdXejAZOGdYdZdZejAZPGd[d\d\ejAZQGd]d^d^ejAZReSd_krbeTdS)`N)support _testcapi)getargs_keywordsgetargs_keyword_onlyilB$$HH!`?) UCHAR_MAX USHRT_MAXUINT_MAX ULONG_MAXINT_MAXINT_MINLONG_MINLONG_MAXPY_SSIZE_T_MINPY_SSIZE_T_MAXSHRT_MINSHRT_MAXFLT_MINFLT_MAXDBL_MINDBL_MAXinfnanlllc@seZdZddZdS)IndexcCsdSNcselfrrF/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_getargs2.py __index__9szIndex.__index__N__name__ __module__ __qualname__rrrrrr8src@seZdZddZdS)IndexIntSubclasscCsdSrrrrrrr=szIndexIntSubclass.__index__Nr rrrrr$<sr$c@seZdZddZdS)BadIndexcCsdSN?rrrrrrAszBadIndex.__index__Nr rrrrr%@sr%c@seZdZddZdS) BadIndex2cCsdSNTrrrrrrEszBadIndex2.__index__Nr rrrrr(Dsr(c@seZdZddZdS) BadIndex3cCsdSr)rrrrrrIszBadIndex3.__index__Nr rrrrr*Hsr*c@seZdZddZdS)IntcCsdSrrrrrr__int__Nsz Int.__int__Nr!r"r#r,rrrrr+Msr+c@seZdZddZdS) IntSubclasscCsdSrrrrrrr,RszIntSubclass.__int__Nr-rrrrr.Qsr.c@seZdZddZdS)BadIntcCsdSr&rrrrrr,VszBadInt.__int__Nr-rrrrr/Usr/c@seZdZddZdS)BadInt2cCsdSr)rrrrrr,ZszBadInt2.__int__Nr-rrrrr0Ysr0c@seZdZddZdS)BadInt3cCsdSr)rrrrrr,^szBadInt3.__int__Nr-rrrrr1]sr1c@seZdZddZdS)FloatcCsdSN@rrrrr __float__cszFloat.__float__Nr!r"r#r5rrrrr2bsr2c@s eZdZdS) FloatSubclassNr!r"r#rrrrr7fsr7c@seZdZddZdS)FloatSubclass2cCsdSr3rrrrrr5jszFloatSubclass2.__float__Nr6rrrrr9isr9c@seZdZddZdS)BadFloatcCsdS)Nirrrrrr5nszBadFloat.__float__Nr6rrrrr:msr:c@seZdZddZdS) BadFloat2cCstdSr3r7rrrrr5rszBadFloat2.__float__Nr6rrrrr;qsr;c@seZdZddZdS) BadFloat3cCstdSr3r<rrrrr5vszBadFloat3.__float__Nr6rrrrr=usr=c@seZdZddZdS)ComplexcCsdSN@?rrrrr __complex__{szComplex.__complex__Nr!r"r#rArrrrr>zsr>c@s eZdZdS)ComplexSubclassNr8rrrrrC~srCc@seZdZddZdS)ComplexSubclass2cCsdSr?rrrrrrAszComplexSubclass2.__complex__NrBrrrrrDsrDc@seZdZddZdS) BadComplexcCsdS)Ng?rrrrrrAszBadComplex.__complex__NrBrrrrrEsrEc@seZdZddZdS) BadComplex2cCstdSr?rCrrrrrAszBadComplex2.__complex__NrBrrrrrFsrFc@seZdZddZdS) BadComplex3cCstdSr?rGrrrrrAszBadComplex3.__complex__NrBrrrrrHsrHc@s eZdZdS) TupleSubclassNr8rrrrrIsrIc@s eZdZdS) DictSubclassNr8rrrrrJsrJc@s4eZdZddZddZddZddZd d Zd S) Unsigned_TestCasecCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|d|d|d|t|t|t|td|d|d|t|tdS)Nr) getargs_bQ @r*)rrL assertRaises TypeError assertEqualrr$r% assertWarnsDeprecationWarningr(r*r+r.r/r0r1 OverflowErrorr VERY_LARGE)rrLrrrtest_bs*  0 0 2zUnsigned_TestCase.test_bcCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|d|d|d|t|t|d|td|d|d|tt@|tdS)Nr) getargs_BrMrrNrOrP)rrYrQrRrSrr$r%rTrUr(r*r+r.r/r0r1rrW)rrYrrrtest_Bs*  0 0 2zUnsigned_TestCase.test_BcCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|d|d|d|t|t|d|td|d|d|tt@|tdS)Nr) getargs_HrMrrNrOrP)rr[rQrRrSrr$r%rTrUr(r*r+r.r/r0r1rrW)rr[rrrtest_Hs*  0 0 2zUnsigned_TestCase.test_HcCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|d|d|d|t|t|d|td|d|d|tt@|tdS)Nr) getargs_IrMrrNrOrP)rr]rQrRrSrr$r%rTrUr(r*r+r.r/r0r1rrW)rr]rrrtest_Is*  0 0 2zUnsigned_TestCase.test_IcCs.ddlm}|t|d|t|t|d|t|t|t|t|t|d|t |t|t |d|t |t|t |t|t |d|t|t|d|d|d|t|t|d|td|d|d|tt@|tdS)Nr) getargs_krMrOrNrP)rr_rQrRrrSr$r%r(r*r+r.r/r0r1r rW)rr_rrrtest_ks$ zUnsigned_TestCase.test_kN)r!r"r#rXrZr\r^r`rrrrrKs rKc@s,eZdZddZddZddZddZd S) Signed_TestCasecCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|td|t|t|t|t|t|td|d|d|t|tdS)Nr) getargs_hrMrrNrP)rrbrQrRrSrr$r%rTrUr(r*r+r.r/r0r1rVrrrW)rrbrrrtest_hs*  0 0 2zSigned_TestCase.test_hcCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|td|t|t|t|t|t|td|d|d|t|tdS)Nr) getargs_irMrrNrP)rrdrQrRrSrr$r%rTrUr(r*r+r.r/r0r1rVr r rW)rrdrrrtest_i8s*  0 0 2zSigned_TestCase.test_icCsddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s.0Y|d|t|t|td|t|t|t|t|t|td|d|d|t|tdS)Nr) getargs_lrMrrNrP)rrfrQrRrSrr$r%rTrUr(r*r+r.r/r0r1rVr r rW)rrfrrrtest_lRs*  0 0 2zSigned_TestCase.test_lcCsVddlm}|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t|t |d|t |t|t|t|t|d|t|t|td|t|t|t|t|t|td|d|d|t|tdS)Nr) getargs_nrMrrNrP)rrhrQrRrSrr$r%rTrUr(r*r+r.r/r0r1rVrrrW)rrhrrrtest_nls&  0zSigned_TestCase.test_nN)r!r"r#rcrergrirrrrrasrac@seZdZddZddZdS)LongLong_TestCasecCsddlm}|t|d|t|d|d|t|d|t|t|t|t "|d|t Wdn1s0Y|d|t |t "|d|t Wdn1s0Y|d|t |t|t|t "|d|tWdn1s<0Y|d|t|t|td|t|t|t|t|t|td|d|d|t|tdS)Nr) getargs_LrMHellorrNrP)rrkrQrRrSrr$r%rTrUr(r*r+r.r/r0r1rV LLONG_MIN LLONG_MAXrW)rrkrrrtest_Ls,  0 0 2zLongLong_TestCase.test_LcCsddlm}|t|d|t|t|d|t|t|t|t|t|d|t |t|t |d|t |t|t |t|t |d|t|t|t|d|d|d|td|d|d|tt@|tdS)Nr) getargs_KrMrNrP)rrprQrRrrSr$r%r(r*r+r.r/r0r1 ULLONG_MAXrW)rrprrrtest_Ks" zLongLong_TestCase.test_KN)r!r"r#rorrrrrrrjsrjc@s:eZdZddZddZejddZddZd d Z d S) Float_TestCasecCs,||||td|td|dS)NrN)rSmathcopysign)ractualZexpectedrrrassertEqualWithSigns z"Float_TestCase.assertEqualWithSigncCsddlm}||dd||dd|t|d||td||tdd||tdd|t|t| t "||t dWdn1s0Y||t dd||t d|t|ttt tt tt fD]}||||q ttkrR||tt||t t ttkr~||td ||t d ||d d ||d d |t}|||dS) Nr getargs_fr4@@@X@)rryrSrQrRr2r7r9r:rTrUr;r=rr+rrINFrrrwNANassertNotEqual)rryxrrrrtest_fs2  0  zFloat_TestCase.test_fcCs2ddlm}||dt||dt dS)NrrxgnGgn)rryrSr)rryrrrtest_f_roundings zFloat_TestCase.test_f_roundingcCsddlm}||dd||dd|t|d||td||tdd||tdd|t|t| t "||t dWdn1s0Y||t dd||t d|t|ttt tt tt fD]}||||q |t|d t>|t|d t>||d d ||d d |t}|||dS) Nr) getargs_dr4rzr{r|r}r~rNrOrr)rrrSrQrRr2r7r9r:rTrUr;r=rr+rrrrV DBL_MAX_EXPrwrr)rrrrrrrtest_ds*  0zFloat_TestCase.test_dcCsddlm}||dd||dd||dd||td||tdd||tdd|t|t| t "||t dWdn1s0Y||t dd||t d |t|ttt tt tt fD]:}t|d }||||td |}||||q||td d jd ||td d jd ||td d jd ||td d jd dS) Nr) getargs_Dr@r4r|rzy@y@?yX@r'rr)rrrSr>rCrDrQrRrErTrUrFrHrr+rrrcomplexrwrealimag)rrrcrrrtest_Ds,  0  zFloat_TestCase.test_DN) r!r"r#rwrrZrequires_IEEE_754rrrrrrrrss  rsc@seZdZdZddZdS)ParadoxzThis statement is false.cCstdSN)NotImplementedErrorrrrr__bool__szParadox.__bool__N)r!r"r#__doc__rrrrrrsrc@seZdZddZdS)Boolean_TestCasecCsHddlm}|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|g|d|i|d|d |d|d|d|d |d|d |d|d |d|d |d|dg|d|ddi|d|tj|t|tdS)Nr) getargs_pFryrrNTr'y?rrN)rrrSunittestTestCaserQrr)rrrrrtest_ps( zBoolean_TestCase.test_pN)r!r"r#rrrrrrsrc@seZdZddZddZdS)Tuple_TestCasecCs ddlm}|dd}||d|t|t|dgdR}||d|t|t|ddg}||d|t|t|tddg}||d|t|t|}||d|t|ttdf|d }||d|t|ttdfdS) Nr)get_argsrNrrNrrrNrr)rNr)rrrSassertIstypetuplerIassertIn)rrretrrr test_args4s&         zTuple_TestCase.test_argscCsFddlm}|dd}||dGddd}|t|d|dS)Nr) getargs_tuplerNrrc@seZdZddZddZdS)z&Tuple_TestCase.test_tuple..seqcSsdS)Nrrrrrr__len__Wsz.Tuple_TestCase.test_tuple..seq.__len__cSstdSr) ValueError)rnrrr __getitem__Ysz2Tuple_TestCase.test_tuple..seq.__getitem__N)r!r"r#rrrrrrseqVsr)rrrSrQrR)rrrrrrr test_tupleOs    zTuple_TestCase.test_tupleN)r!r"r#rrrrrrr3src@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)Keywords_TestCasecCsddlm}|ddd}||ddd|t|t|fddiddd}||dddd |t|t|fitddd}||ddd|t|t|}||idf|t|ttdf|fii}||idf|t|ttdfdS) Nr) get_kwargsrNrabrr)rr)rrr)rrrSrrdictrJr)rrrrrr test_kwargs^s   zKeywords_TestCase.test_kwargscCs|tdddddddS)Nrrrz) rNrrrzrrrrrrrSrrrrrtest_positional_argsusz&Keywords_TestCase.test_positional_argsc Cs|tddddddddS)Nrrrrr)arg4arg5rrrrrrtest_mixed_args|sz!Keywords_TestCase.test_mixed_argsc Cs|tddddddddS)Nrrrrr)arg1arg2Zarg3rrrrrrrrtest_keyword_argssz#Keywords_TestCase.test_keyword_argscCs|tddddddS)Nrrr)rrr) rNrrrOrOrOrOrOrOrrrrrrtest_optional_argss z$Keywords_TestCase.test_optional_argsc CsRztddWn4tyB}z|t|dWYd}~nd}~00|ddS)Nr)rz1function missing required argument 'arg2' (pos 2)!TypeError should have been raisedrrRrSstrZfailrerrrrrtest_required_argssz$Keywords_TestCase.test_required_argsc CsZztddddddWn4tyJ}z|t|dWYd}~nd}~00|ddS) Nrrrrroz,function takes at most 5 arguments (6 given)rrrrrrtest_too_many_argss &z$Keywords_TestCase.test_too_many_argsc CsXztdddddWn4tyH}z|t|dWYd}~nd}~00|ddS)Nrrr)rZarg666z9'arg666' is an invalid keyword argument for this functionrrrrrrtest_invalid_keywords &z&Keywords_TestCase.test_invalid_keywordc CsZztdiddiWn4tyJ}z|t|dWYd}~nd}~00|ddS)N)rrrrr6'' is an invalid keyword argument for this functionrrrrrrtest_surrogate_keywords &z(Keywords_TestCase.test_surrogate_keywordN) r!r"r#rrrrrrrrrrrrrr]s  rc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)KeywordOnly_TestCasecCs|tddddS)NrNrrNrrOrSrrrrrrsz)KeywordOnly_TestCase.test_positional_argscCs|tddddddS)NrNrr keyword_onlyrrrrrrrs z$KeywordOnly_TestCase.test_mixed_argscCs|tddddddS)NrNrr)requiredoptionalrrrrrrrrs z&KeywordOnly_TestCase.test_keyword_argscCs,|tdddd|tdddddS)NrNr)rrrr)rrrNrOrrrrrrrs  z'KeywordOnly_TestCase.test_optional_argscCs|tdd|tddd|tdtddWdn1sN0Y|tdtddWdn1s0YdS) NrNrNrOrO)rz7function missing required argument 'required' \(pos 1\)r)rrr)rSrassertRaisesRegexrRrrrrrs (z'KeywordOnly_TestCase.test_required_argscCsx|tdtdddWdn1s.0Y|td tdddddWdn1sj0YdS)Nz9function takes at most 2 positional arguments \(3 given\)rNrrz.function takes at most 3 arguments \(4 given\)rrrrRrrrrrrs*z'KeywordOnly_TestCase.test_too_many_argscCs>|tdtddddWdn1s00YdS)Nz:'monster' is an invalid keyword argument for this functionrNrr)Zmonsterrrrrrrsz)KeywordOnly_TestCase.test_invalid_keywordcCsB|td"tdiddiWdn1s40YdS)NrrNrrr)rNrrrrrrrsz+KeywordOnly_TestCase.test_surrogate_keywordN) r!r"r#rrrrrrrrrrrrrs  rc@s@eZdZddlmZddZddZddZd d Z d d Z d S)"PositionalOnlyAndKeywords_TestCaser)$getargs_positional_only_and_keywordscCs||dddddS)NrNrrrrSgetargsrrrrrsz7PositionalOnlyAndKeywords_TestCase.test_positional_argscCs||jddddddS)NrNrrkeywordrrrrrrrsz2PositionalOnlyAndKeywords_TestCase.test_mixed_argscCs.||ddd||jdddddS)NrNrrrrrrrrrrrsz5PositionalOnlyAndKeywords_TestCase.test_optional_argscCs||dd|td|Wdn1s<0Y|td|jddWdn1st0YdS)NrNr9function takes at least 1 positional argument \(0 given\)rr)rSrrrRrrrrr s&z5PositionalOnlyAndKeywords_TestCase.test_required_argscCsD|td$|jdiddiWdn1s60YdS)Nz3'' is an invalid keyword argument for this functionrNrrr)rNr)rrRrrrrrtest_empty_keywordsz5PositionalOnlyAndKeywords_TestCase.test_empty_keywordN) r!r"r#rrrrrrrrrrrrrs   rc@s4eZdZddZddZddZddZd d Zd S) Bytes_TestCasecCs~ddlm}|t|d||dd||tdd|t|td|t|d|t|d|t|ddS)Nr) getargs_csabcaas)rrrQrRrS bytearray memoryview)rrrrrtest_cs zBytes_TestCase.test_ccCsnddlm}|t|d||dd|t|d|t|td|t|td|t|ddS)Nr) getargs_yabcébytesnul: bytearray memoryview)rrrQrRrSrrr)rrrrrtest_y(s zBytes_TestCase.test_ycCstddlm}|t|d||dd||dd||tdd||tdd|t|ddS)Nr)getargs_y_starrrrrr)rrrQrRrSrr)rrrrr test_y_star1s zBytes_TestCase.test_y_starcCspddlm}|t|d||dd||dd|t|td|t|td|t|ddS)Nr)getargs_y_hashrrrrr)rrrQrRrSrr)rrrrr test_y_hash:s zBytes_TestCase.test_y_hashcCsddlm}|t|d|t|d|t|d|t|tdtd}|||d||tdtd}||t|d ||td |t|ddS) Nr)getargs_w_starrrrrs [ytearra]rs [emoryvie])rrrQrRrrrS)rrbufrrr test_w_starCs zBytes_TestCase.test_w_starN)r!r"r#rrrrrrrrrrs     rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) String_TestCasecCsddlm}|t|d||dd||dd||dd |t|d |t|td |t|td |t|d|t|ddS) Nr) getargs_Cabcrru€i u🐍i r)rrrQrRrSrr)rrrrrtest_CTs zString_TestCase.test_CcCsnddlm}||dd|t|d|t|d|t|td|t|td|t|ddS) Nr) getargs_srabcénul:rrr)rrrSrQrrRrr)rrrrrtest_s`s zString_TestCase.test_scCsvddlm}||dd||dd||dd||tdd||td d |t|ddS) Nr)getargs_s_starrrrrrrr)rrrSrrrQrR)rrrrr test_s_staris zString_TestCase.test_s_starcCsrddlm}||dd||dd||dd|t|td|t|td |t|ddS) Nr)getargs_s_hashrrrrrrr)rr rSrQrRrr)rr rrr test_s_hashrs zString_TestCase.test_s_hashcCsnddlm}||dd|t|d|t|d|t|td|t|td||ddS) Nr) getargs_zrrrrrr) rr rSrQrrRrr assertIsNone)rr rrrtest_z{s zString_TestCase.test_zcCsvddlm}||dd||dd||dd||tdd||td d ||ddS) Nr)getargs_z_starrrrrrrr)rrrSrrr )rrrrr test_z_stars zString_TestCase.test_z_starcCsrddlm}||dd||dd||dd|t|td|t|td ||ddS) Nr)getargs_z_hashrrrrrrr)rrrSrQrRrrr )rrrrr test_z_hashs zString_TestCase.test_z_hashcCsddlm}||dd||ddd|t|dd|t|dd|t|d d|t|td d|t|td d|t|dd|t|d ddS) Nr) getargs_esrrlatin1abcasciispamrrrr) rrrSrQUnicodeEncodeError LookupErrorrRrr)rrrrrtest_ess zString_TestCase.test_escCsddlm}||dd||ddd|t|dd|t|dd||d dd ||td dd |t|td d|t|dd|t|d d|t|d d|t|td ddS)Nr) getargs_etrrrrrrrrrrr) rrrSrQrrrrRr)rrrrrtest_ets zString_TestCase.test_etcCsFddlm}||dd||ddd|t|dd|t|dd|t|d d|t|td d|t|td d|t|dd||d dd td}||dd|d||tdtd}||dd|d||tdtd}|t |dd|||tdt}|t |dd|dS)Nr)getargs_es_hashrrrrrrrrrrrxxxxxxxxabcxxxxxxxxabcxxxx) rrrSrQrrrRrrr)rrrrrr test_es_hashs* zString_TestCase.test_es_hashcCsrddlm}||dd||ddd|t|dd|t|dd||d dd ||td dd |t|td d|t|dd||d dd ||d dd ||td dd td}||dd|d||tdtd}||dd|d||tdtd}|t |dd|||tdt}|t |dd|dS)Nr)getargs_et_hashrrrrrrrrrrrrrr r!r") rr$rSrQrrrrRrr)rr$rrrr test_et_hashs. zString_TestCase.test_et_hashcCsnddlm}||dd|t|d|t|d|t|td|t|td|t|ddS)Nr) getargs_urrrrr)rr&rSrQrrRrr)rr&rrrtest_us zString_TestCase.test_ucCspddlm}||dd||dd|t|d|t|td|t|td|t|ddS)Nr)getargs_u_hashrrrrr)rr(rSrQrRrr)rr(rrr test_u_hashs zString_TestCase.test_u_hashcCsnddlm}||dd|t|d|t|d|t|td|t|td||ddS)Nr) getargs_Zrrrrr) rr*rSrQrrRrrr )rr*rrrtest_Zs zString_TestCase.test_ZcCspddlm}||dd||dd|t|d|t|td|t|td||ddS)Nr)getargs_Z_hashrrrrr)rr,rSrQrRrrr )rr,rrr test_Z_hashs zString_TestCase.test_Z_hashN)r!r"r#rrr r rrrrrr#r%r'r)r+r-rrrrrSs           rc@s$eZdZddZddZddZdS)Object_TestCasecCsdddlm}d}|||||t|td|t|d|t|d|t|t|dS)Nr) getargs_Srrr)rr/rrQrRrr)rr/objrrrtest_Ss zObject_TestCase.test_ScCsdddlm}td}|||||t|d|t|d|t|d|t|t|dS)Nr) getargs_Yrrr)rr2rrrQrRr)rr2r0rrrtest_Ys zObject_TestCase.test_YcCsRddlm}d}|||||t|d|t|td|t|ddS)Nr) getargs_Urrr)rr4rrQrRr)rr4r0rrrtest_Us  zObject_TestCase.test_UN)r!r"r#r1r3r5rrrrr.s  r.c@seZdZddZdS)Test6012cCs|tddddS)NrlZWorldrN)rSrZ argparsingrrrrtest%sz Test6012.testN)r!r"r#r7rrrrr6$sr6c@seZdZddZddZdS) SkipitemTestc Cs"d}d}ddi}ddg}tddD]}t|}|dvr8q"|d }zt||||d }WnHty} zd } t| | k}WYd } ~ nd } ~ 0tyd }Yn0d |} zt||| |d } Wn:ty} z"d|} t| | k} WYd } ~ n d } ~ 00d||| |} || || q"d S)aB If this test failed, you probably added a new "format unit" in Python/getargs.c, but neglected to update our poor friend skipitem() in the same file. (If so, shame on you!) With a few exceptions**, this function brute-force tests all printable ASCII*** characters (32 to 126 inclusive) as format units, checking to see that PyArg_ParseTupleAndKeywords() return consistent errors both when the unit is attempted to be used and when it is skipped. If the format unit doesn't exist, we'll get one of two specific error messages (one for used, one for skipped); if it does exist we *won't* get that error--we'll get either no error or some other error. If we get the specific "does not exist" error for one test and not for the other, there's a mismatch, and the test fails. ** Some format units have special funny semantics and it would be difficult to accommodate them here. Since these are all well-established and properly skipped in skipitem() we can get away with not testing them--this test is really intended to catch *new* format units. *** Python C source files must be ASCII. Therefore it's impossible to have non-ASCII format units. rrrrNr z()e|$iFz(argument 1 (impossible)N|z!impossible: '{}'ztest_skipitem_parity: detected mismatch between convertsimple and skipitem for format unit '{}' ({}), not skipped {}, skipped {}) rangechrrparse_tuple_and_keywords SystemErrorrrRformatr)r empty_tupletuple_1dict_bkeywordsr<rrBZwhen_not_skippederoptional_formatZ when_skippedmessagerrr test_skipitem+s@    "zSkipitemTest.test_skipitemc Cs|tj}d}d}ddi}ddg}d}tjD]}dD]}||} |j| dnd | d } | |vrn|||| |n:|td |||| |Wdn1s0YWdq01s0Yq0q(ttt d d D]}d|} d | d } |j| df|dvr|||| |n<|td |||| |Wdn1sL0YWdq1sl0YqdS)Nrr9rrNr) zs#zs*zz#zz*zu#zZ#zy#zy*zw#zw*z#*)rBr=r<zimpossibler:rGst) rr@string ascii_lettersZsubTestrrAmapr?r>) rparserCrDrErFZ supportedrc2frHrrrtest_skipitem_with_suffixos6  N  z&SkipitemTest.test_skipitem_with_suffixN)r!r"r#rJrSrrrrr8)sDr8c@s$eZdZddZddZddZdS)ParseTupleAndKeywords_Testc Csd|ttjdidg|ttjdidd|ttjdiddgd|ttjdiddgdS)NrrPr)rQrRrr@rrrrrtest_parse_tuple_and_keywordss     z8ParseTupleAndKeywords_Test.test_parse_tuple_and_keywordsc Cs|ttjdiddg|ttjdidddg|ttjdddid dg|ttjddd d d ddg|ttjdddid dg|ttjddd d dddg|ttjdidddg|ttjdiddg|ttjdiddg|ttjdidddgdS)Nrz||Orrz|O|OrrrNz$$Orrz$O$Oz$|Oz$O|Oz|Oz|OOz|$Or)rQrArr@rrrr test_bad_uses<                z'ParseTupleAndKeywords_Test.test_bad_usecCstj}|didgd|dddidgd|td&|dddidgdWdn1sf0Y|did gd|td "|d id gdWdn1s0Y|dddid gd|td &|dddid gdWdn1s0Y|didgd|td "|d idgdWdn1sb0Y|td"|didgdWdn1s0Y|td"|did gdWdn1s0YdS)NrZOOO)rrrrrrz:function takes at least 2 positional arguments \(1 given\)rzO|OOrrzOO$Oz9function takes exactly 2 positional arguments \(1 given\)zO|O$OzEmpty parameter name after \$zO|$OOz Empty keyword)rrr)rr@rrRrA)rrPrrrtest_positional_onlys440622z/ParseTupleAndKeywords_Test.test_positional_onlyN)r!r"r#rUrVrWrrrrrTs rTc@s&eZdZeddeeDdS) Test_testcapiccs0|](}|dr|dr|tt|fVqdS)Ztest__codeN) startswithendswithgetattrr).0namerrr szTest_testcapi.N)r!r"r#localsupdatedirrrrrrrXs rX__main__)UrrtrMsysr7r import_modulerrrZLARGErWrrrr r r r r rrrrrrrr float_infomax_exprfloatrrrnrmrqrintr$r%r(r*r+r.r/r0r1r2r7r9r:r;r=r>rrCrDrErFrHrrIrrJrrKrarjrsrrrrrrrrr.r6r8rTrXr!mainrrrrsx   Hi5Y*WH!65f?