
    dafs                     x   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z	  ej                  d      Zd dlmZmZ 	 d dlZdZd	Zd d
lmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" ejF                  jH                  Z% e&d      Z' e&d      Z(dZ)dZ*dZ+dZ G d d      Z, G d de-      Z. G d d      Z/ G d d      Z0 G d de-      Z1 G d d      Z2 G d de-      Z3 G d d      Z4 G d  d!      Z5 G d" d#e-      Z6 G d$ d%      Z7 G d& d'e&      Z8 G d( d)e&      Z9 G d* d+      Z: G d, d-      Z; G d. d/e&      Z< G d0 d1      Z= G d2 d3e>      Z? G d4 d5e>      Z@ G d6 d7      ZA G d8 d9      ZB G d: d;e>      ZC G d< d=eD      ZE G d> d?eF      ZG eH eId@            dddA   ZJ eHd@      dddA   ZK G dB dCe j                        ZM G dD dEe j                        ZN G dF dGe j                        ZO G dH dIe j                        ZP G dJ dK      ZQ G dL dMe j                        ZR G dN dOe j                        ZS G dP dQe j                        ZT G dR dSe j                        ZU G dT dUe j                        ZV G dV dWe j                        ZW G dX dYe j                        ZX G dZ d[e j                        ZY G d\ d]e j                        ZZ G d^ d_e j                        Z[ G d` dae j                        Z\ G db dce j                        Z]e^ddk(  r e j                          yy# e$ r eZY w xY w)e    N)support)import_helper)script_helper)warnings_helper	_testcapi)getargs_keywordsgetargs_keyword_onlyil   B$$HH! `? )	UCHAR_MAX	USHRT_MAXUINT_MAX	ULONG_MAXINT_MAXINT_MINLONG_MINLONG_MAXPY_SSIZE_T_MINPY_SSIZE_T_MAXSHRT_MINSHRT_MAXFLT_MINFLT_MAXDBL_MINDBL_MAXinfnanl    l         l    c                       e Zd Zd Zy)Indexc                      yNc    selfs    6/root/Python-3.12.4/Lib/test/test_capi/test_getargs.py	__index__zIndex.__index__C           N__name__
__module____qualname__r%   r!   r'   r$   r   r   B       r'   r   c                       e Zd Zd Zy)IndexIntSubclassc                      yr   r!   r"   s    r$   r%   zIndexIntSubclass.__index__G   r&   r'   Nr(   r!   r'   r$   r.   r.   F   r,   r'   r.   c                       e Zd Zd Zy)BadIndexc                      yN      ?r!   r"   s    r$   r%   zBadIndex.__index__K       r'   Nr(   r!   r'   r$   r1   r1   J       r'   r1   c                       e Zd Zd Zy)	BadIndex2c                      yNTr!   r"   s    r$   r%   zBadIndex2.__index__O       r'   Nr(   r!   r'   r$   r8   r8   N       r'   r8   c                       e Zd Zd Zy)	BadIndex3c                      yr:   r!   r"   s    r$   r%   zBadIndex3.__index__S   r;   r'   Nr(   r!   r'   r$   r>   r>   R   r<   r'   r>   c                       e Zd Zd Zy)Intc                      yr   r!   r"   s    r$   __int__zInt.__int__X   r&   r'   Nr)   r*   r+   rC   r!   r'   r$   rA   rA   W   r,   r'   rA   c                       e Zd Zd Zy)IntSubclassc                      yr   r!   r"   s    r$   rC   zIntSubclass.__int__\   r&   r'   NrD   r!   r'   r$   rF   rF   [   r,   r'   rF   c                       e Zd Zd Zy)BadIntc                      yr3   r!   r"   s    r$   rC   zBadInt.__int__`   r5   r'   NrD   r!   r'   r$   rI   rI   _   r6   r'   rI   c                       e Zd Zd Zy)BadInt2c                      yr:   r!   r"   s    r$   rC   zBadInt2.__int__d   r;   r'   NrD   r!   r'   r$   rL   rL   c   r<   r'   rL   c                       e Zd Zd Zy)BadInt3c                      yr:   r!   r"   s    r$   rC   zBadInt3.__int__h   r;   r'   NrD   r!   r'   r$   rO   rO   g   r<   r'   rO   c                       e Zd Zd Zy)Floatc                      yN      @r!   r"   s    r$   	__float__zFloat.__float__m   r;   r'   Nr)   r*   r+   rV   r!   r'   r$   rR   rR   l   r<   r'   rR   c                       e Zd Zy)FloatSubclassNr)   r*   r+   r!   r'   r$   rY   rY   p       r'   rY   c                       e Zd Zd Zy)FloatSubclass2c                      yrT   r!   r"   s    r$   rV   zFloatSubclass2.__float__t   r;   r'   NrW   r!   r'   r$   r]   r]   s   r<   r'   r]   c                       e Zd Zd Zy)BadFloatc                      y)Ni  r!   r"   s    r$   rV   zBadFloat.__float__x   r5   r'   NrW   r!   r'   r$   r`   r`   w   r6   r'   r`   c                       e Zd Zd Zy)	BadFloat2c                     t        d      S rT   rY   r"   s    r$   rV   zBadFloat2.__float__|       T""r'   NrW   r!   r'   r$   rc   rc   {       #r'   rc   c                       e Zd Zd Zy)	BadFloat3c                     t        d      S rT   re   r"   s    r$   rV   zBadFloat3.__float__   rf   r'   NrW   r!   r'   r$   ri   ri      rg   r'   ri   c                       e Zd Zd Zy)Complexc                      yN      @      ?r!   r"   s    r$   __complex__zComplex.__complex__       r'   Nr)   r*   r+   rp   r!   r'   r$   rl   rl          r'   rl   c                       e Zd Zy)ComplexSubclassNrZ   r!   r'   r$   ru   ru      r[   r'   ru   c                       e Zd Zd Zy)ComplexSubclass2c                      yrn   r!   r"   s    r$   rp   zComplexSubclass2.__complex__   rq   r'   Nrr   r!   r'   r$   rw   rw      rs   r'   rw   c                       e Zd Zd Zy)
BadComplexc                      y)Ng      ?r!   r"   s    r$   rp   zBadComplex.__complex__   r;   r'   Nrr   r!   r'   r$   rz   rz      r<   r'   rz   c                       e Zd Zd Zy)BadComplex2c                     t        d      S rn   ru   r"   s    r$   rp   zBadComplex2.__complex__       y))r'   Nrr   r!   r'   r$   r}   r}          *r'   r}   c                       e Zd Zd Zy)BadComplex3c                     t        d      S rn   r   r"   s    r$   rp   zBadComplex3.__complex__   r   r'   Nrr   r!   r'   r$   r   r      r   r'   r   c                       e Zd Zy)TupleSubclassNrZ   r!   r'   r$   r   r      r[   r'   r   c                       e Zd Zy)DictSubclassNrZ   r!   r'   r$   r   r      r[   r'   r   s	   noncontigc                   *    e Zd Zd Zd Zd Zd Zd Zy)Unsigned_TestCasec                 L   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j                  t"        |d       | j	                  d |d             | j	                  t$         |t$                     | j                  t"        |t$        dz          | j	                  d |d             | j                  t"        |t&               y # 1 sw Y   hxY w)Nr   )	getargs_bQ	@r       *   )r   r   assertRaises	TypeErrorassertEqualr   r.   r1   assertWarnsDeprecationWarningr8   r>   rA   rF   rI   rL   rO   OverflowErrorr
   
VERY_LARGE)r#   r   s     r$   test_bzUnsigned_TestCase.test_b   s   ')Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01-B7IaL)Ii$89-IMBYr]+-J?	8 	8s   !HH#c                 p   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j	                  t"         |d             | j	                  d |d             | j	                  t"         |t"                     | j	                  d |t"        dz                | j	                  d |d             | j	                  t"        t$        z   |t$                     y # 1 sw Y   zxY w)Nr   )	getargs_Br   r    r   r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r
   r   )r#   r   s     r$   test_BzUnsigned_TestCase.test_B   s   ')Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01IbM2IaL)Ii$89Iik23Yr]+Z/:1FG	8 	8   !H++H5c                 p   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j	                  t"         |d             | j	                  d |d             | j	                  t"         |t"                     | j	                  d |t"        dz                | j	                  d |d             | j	                  t$        t"        z   |t$                     y # 1 sw Y   zxY w)Nr   )	getargs_Hr   r    r   r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   r   )r#   r   s     r$   test_HzUnsigned_TestCase.test_H   s   ')Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01IbM2IaL)Ii$89Iik23Yr]+i/:1FG!	8 	8r   c                 p   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j	                  t"         |d             | j	                  d |d             | j	                  t"         |t"                     | j	                  d |t"        dz                | j	                  d |d             | j	                  t$        t"        z   |t$                     y # 1 sw Y   zxY w)Nr   )	getargs_Ir   r    r   r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   r   )r#   r   s     r$   test_IzUnsigned_TestCase.test_I   s   ')Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi019R=1IaL)9X#67Ihqj12Yr]+h.	*0EF!	8 	8r   c                    ddl m} | j                  t        |d       | j                  t        |t	                      | j                  d |t                            | j                  t        |t                      | j                  t        |t                      | j                  d |t                            | j                  t        |t                      | j                  d |t                            | j                  t        |t                      | j                  t        |t                      | j                  d |t                            | j                  t         |d             | j                  d |d             | j                  t         |t                     | j                  d |t        dz                | j                  d |d             | j                  t         t        z   |t                      y )Nr   )	getargs_kr   r   r   r   )r   r   r   r   r   r   r.   r1   r8   r>   rA   rF   rI   rL   rO   r   r   )r#   r   s     r$   test_kzUnsigned_TestCase.test_k  ss   ' 	)Y5)Y8I&6&89:)Y
;)Y	<Iik23)Y6Ikm45)Y9)Y	:Igi01IbM2IaL)Ii$89Iik23Yr]+i/:1FGr'   N)r)   r*   r+   r   r   r   r   r   r!   r'   r$   r   r      s     @0H0H2G2Hr'   r   c                   $    e Zd Zd Zd Zd Zd Zy)Signed_TestCasec                 j   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j                  t"        |t$        dz
         | j	                  t$         |t$                     | j	                  t&         |t&                     | j                  t"        |t&        dz          | j	                  d |d             | j                  t"        |t(               y # 1 sw Y   wxY w)Nr   )	getargs_hr   r    r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   r   r   r   )r#   r   s     r$   test_hzSigned_TestCase.test_h"     ')Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01-HQJ?9X#679X#67-HQJ?Yr]+-J?	8 	8   !H((H2c                 j   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j                  t"        |t$        dz
         | j	                  t$         |t$                     | j	                  t&         |t&                     | j                  t"        |t&        dz          | j	                  d |d             | j                  t"        |t(               y # 1 sw Y   wxY w)Nr   )	getargs_ir   r    r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   r   r   r   )r#   r   s     r$   test_izSigned_TestCase.test_i:  s   ')Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01-GAI>)G"45)G"45-GAI>Yr]+-J?	8 	8r   c                 j   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j                  t"        |t$        dz
         | j	                  t$         |t$                     | j	                  t&         |t&                     | j                  t"        |t&        dz          | j	                  d |d             | j                  t"        |t(               y # 1 sw Y   wxY w)Nr   )	getargs_lr   r    r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   r   r   r   )r#   r   s     r$   test_lzSigned_TestCase.test_lR  r   r   c                 j   ddl m} | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j                  t"        |t$        dz
         | j	                  t$         |t$                     | j	                  t&         |t&                     | j                  t"        |t&        dz          | j	                  d |d             | j                  t"        |t(               y # 1 sw Y   wxY w)Nr   )	getargs_nr   r    r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   r   r   r   )r#   r   s     r$   test_nzSigned_TestCase.test_nj  s   ' 	)Y5Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01-N14DE>)BC>)BC-N14DEYr]+-J?	8 	8r   N)r)   r*   r+   r   r   r   r   r!   r'   r$   r   r   !  s    @0@0@0@r'   r   c                       e Zd Zd Zd Zy)LongLong_TestCasec                    ddl m} | j                  t        |d       | j                  t        |d       | j	                  d |t                            | j	                  d |t                            | j                  t        |t                      | j                  t              5  | j	                  d |t                            d d d        | j	                  d |t                            | j                  t        |t                      | j	                  d |t                            | j                  t        |t                      | j                  t        |t                      | j	                  d |t!                            | j                  t"        |t$        dz
         | j	                  t$         |t$                     | j	                  t&         |t&                     | j                  t"        |t&        dz          | j	                  d |d             | j                  t"        |t(               y # 1 sw Y   wxY w)Nr   )	getargs_Lr   Hellor    r   r   )r   r   r   r   r   r   r.   r1   r   r   r8   r>   rA   rF   rI   rL   rO   r   	LLONG_MIN	LLONG_MAXr   )r#   r   s     r$   test_LzLongLong_TestCase.test_L  s   ' 	)Y5)Y8Yuw/0I&6&89:)Y
;01 	8Q	)+ 67	8Iik23)Y6Ikm45)Y9)Y	:Igi01-IaK@Ii$89Ii$89-IaK@Yr]+-J?	8 	8s   )!H??I	c                    ddl m} | j                  t        |d       | j                  t        |t	                      | j                  d |t                            | j                  t        |t                      | j                  t        |t                      | j                  d |t                            | j                  t        |t                      | j                  d |t                            | j                  t        |t                      | j                  t        |t                      | j                  d |t                            | j                  t         |t                     | j                  d |d             | j                  d |t        dz                | j                  d |d             | j                  t         t        z   |t                      y )Nr   )	getargs_Kr   r   r   )r   r   r   r   r   r   r.   r1   r8   r>   rA   rF   rI   rL   rO   
ULLONG_MAXr   )r#   r   s     r$   test_KzLongLong_TestCase.test_K  s]   ')Y5)Y8I&6&89:)Y
;)Y	<Iik23)Y6Ikm45)Y9)Y	:Igi01Yz%:;IaL)Ijl34Yr]+j0)J2GHr'   N)r)   r*   r+   r   r   r!   r'   r$   r   r     s    @4Ir'   r   c                   H    e Zd Zd Zd Zej                  d        Zd Zd Z	y)Float_TestCasec                     | j                  ||       | j                  t        j                  d|      t        j                  d|             y )Nr   )r   mathcopysign)r#   actualexpecteds      r$   assertEqualWithSignz"Float_TestCase.assertEqualWithSign  s8    *q&14==H3MNr'   c                 <   ddl m} | j                   |d      d       | j                   |d      d       | j                  t        |d       | j                   |t                     d       | j                   |t        d            d       | j                   |t        d            d       | j                  t        |t                      | j                  t              5  | j                   |t                     d       d d d        | j                   |t        d            d       | j                   |t                     d       | j                  t        |t                      t        t         t         t          t"        t"         fD ]  }| j                   ||      |        t         t$        k  rB| j                   |t$              t"               | j                   |t$               t"                t        t&        kD  r9| j)                   |t&              d	       | j)                   |t&               d
       | j)                   |d	      d	       | j)                   |d
      d
        |t*              }| j-                  ||       y # 1 sw Y   xY w)Nr   	getargs_frU            @      @              @     X@               )r   r   r   r   r   rR   rY   r]   r`   r   r   rc   ri   r   rA   r   r   INFr   r   r   NANassertNotEqual)r#   r   xrs       r$   test_fzFloat_TestCase.test_f  s   '4$/1s+)Y857+T2=#56<>##67=)Y
;01 	;Yy{3T:	;9S>2C857+T2)Y6G8WwhcTB 	.AYq\1-	.WYw/5Yx03$7W$$Yw%7=$$Yx%8$?  35  4$7cNAq!#	; 	;s   $!JJc                     ddl m} | j                   |d      t               | j                   |d      t                y )Nr   r   gnGgn)r   r   r   r   )r#   r   s     r$   test_f_roundingzFloat_TestCase.test_f_rounding  s1    '=17;>2WH=r'   c                    ddl m} | j                   |d      d       | j                   |d      d       | j                  t        |d       | j                   |t                     d       | j                   |t        d            d       | j                   |t        d            d       | j                  t        |t                      | j                  t              5  | j                   |t                     d       d d d        | j                   |t        d            d       | j                   |t                     d       | j                  t        |t                      t        t         t         t          t"        t"         fD ]  }| j                   ||      |        | j                  t$        |d	t&        z         | j                  t$        |d
t&        z         | j)                   |d      d       | j)                   |d      d        |t*              }| j-                  ||       y # 1 sw Y   5xY w)Nr   )	getargs_drU   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   rR   rY   r]   r`   r   r   rc   ri   r   rA   r   r   r   r   DBL_MAX_EXPr   r   r   )r#   r   r   r   s       r$   test_dzFloat_TestCase.test_d  s   '4$/1s+)Y857+T2=#56<>##67=)Y
;01 	;Yy{3T:	;9S>2C857+T2)Y6G8WwhcTB 	.AYq\1-	.-A{NC-BOD  35  4$7cNAq!	; 	;s   $!H88Ic                 8   ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t                     d       | j                   |t	        d            d       | j                   |t        d            d       | j                  t        |t                      | j                  t              5  | j                   |t                     d       d d d        | j                   |t        d            d       | j                   |t                     d	       | j                  t        |t                      t        t         t         t          t"        t"         fD ]J  }t%        |d
      }| j                   ||      |       t%        d
|      }| j                   ||      |       L | j'                   |t%        dd
            j(                  d       | j'                   |t%        dd
            j(                  d       | j'                   |t%        d
d            j*                  d       | j'                   |t%        d
d            j*                  d       y # 1 sw Y   xY w)Nr   )	getargs_Dro   rU   r   r   y      @        y      @      ?y     X@        r4   r   r   )r   r   r   rl   ru   rw   r   r   rz   r   r   r}   r   r   rA   r   r   r   complexr   realimag)r#   r   r   cs       r$   test_DzFloat_TestCase.test_D  s   '9-y94'21v.79-y9?9#=>	J#3I#>?K)Y
=01 	BY{}5yA	B;y#9:IF57+W5)Y6G8WwhcTB 	.A3AYq\1-QAYq\1-		.
 	  73+<!=!B!BCH  74+=!>!C!CTJ  73+<!=!B!BCH  73+=!>!C!CTJ	B 	Bs   %!JJN)
r)   r*   r+   r   r   r   requires_IEEE_754r   r   r   r!   r'   r$   r   r     s2    O"8 > >
"0Kr'   r   c                       e Zd ZdZd Zy)ParadoxzThis statement is false.c                     t         N)NotImplementedErrorr"   s    r$   __bool__zParadox.__bool__  s    !!r'   N)r)   r*   r+   __doc__r   r!   r'   r$   r   r     s
    "r'   r   c                       e Zd Zd Zy)Boolean_TestCasec                    ddl m} | j                  d |d             | j                  d |d              | j                  d |d             | j                  d |d             | j                  d |d             | j                  d |d             | j                  d |d             | j                  d |g              | j                  d |i              | j                  d |d	             | j                  d |d             | j                  d |d
             | j                  d |d             | j                  d |d             | j                  d |d             | j                  d |dg             | j                  d |ddi             | j                  d |t        j                               | j                  t        |t                      y )Nr   )	getargs_pFr   y                 r!   r   Tr4   y              ?r   r      )r   r   r   unittestTestCaser   r   r   )r#   r   s     r$   test_pzBoolean_TestCase.test_p  s   'Ie,-IdO,IaL)IcN+IbM*IbM*IbM*IbM*IbM*IdO,IaL)IcN+IbM*IcN+IdO,IqcN+Iqe,-Ih&7&789-y')Dr'   N)r)   r*   r+   r   r!   r'   r$   r   r     s    Er'   r   c                       e Zd Zd Zd Zy)Tuple_TestCasec                    ddl m}  |dd      }| j                  |d       | j                  t	        |      t
                |dgd }| j                  |d       | j                  t	        |      t
                |ddg }| j                  |d       | j                  t	        |      t
                |t        ddg       }| j                  |d       | j                  t	        |      t
                |       }| j                  |d       | j                  t	        |      t
        t	        d       f        |d	 }| j                  |d       | j                  t	        |      t
        t	        d       f       y )
Nr   )get_argsr   r   r   r   r      r   r   r   )r!   Nr!   )r   r   r   assertIstypetupler   assertIn)r#   r   rets      r$   	test_argszTuple_TestCase.test_args0  s*   &q!nf%d3i'q"6"i(d3i'Af%d3i'q!f-.f%d3i'jc:&d3i%d!45mc:&d3i%d!45r'   c                     ddl m}  |dd      }| j                  |d        G d d      }| j                  t        |d |              y )Nr   )getargs_tupler   r   r  c                       e Zd Zd Zd Zy)&Tuple_TestCase.test_tuple.<locals>.seqc                      y)Nr   r!   r"   s    r$   __len__z.Tuple_TestCase.test_tuple.<locals>.seq.__len__S  s    r'   c                     t         r   )
ValueError)r#   ns     r$   __getitem__z2Tuple_TestCase.test_tuple.<locals>.seq.__getitem__U  s      r'   N)r)   r*   r+   r  r  r!   r'   r$   seqr  R  s    !r'   r  )r   r	  r   r   r   )r#   r	  r  r  s       r$   
test_tuplezTuple_TestCase.test_tupleK  sC    +Av&g&	! 	!
 	)]Asu=r'   N)r)   r*   r+   r  r  r!   r'   r$   r   r   /  s    66>r'   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)Keywords_TestCasec           	         ddl m}  |dd      }| j                  |ddd       | j                  t	        |      t
                |d
ddiddd}| j                  |dddd	       | j                  t	        |      t
                |d
i t        ddd      }| j                  |ddd       | j                  t	        |      t
                |       }| j                  |i d f       | j                  t	        |      t
        t	        d       f        |d
i i }| j                  |i d f       | j                  t	        |      t
        t	        d       f       y )Nr   )
get_kwargsr   r   abr  r   )r  r   r  r  r   r!   )r   r  r   r  r  dictr   r  )r#   r  r  s      r$   test_kwargszKeywords_TestCase.test_kwargsZ  s$   (1"AA./d3i&111aa 01AAA67d3i&:<aa(89:AA./d3i&lcB:&d3i$T
!342cB:&d3i$T
!34r'   c           	      B    | j                  t        ddddd      d       y )Nr   r   r   )            	   
   
r   r   r   r   r   r!  r#  r$  r%  r&  r   r   r"   s    r$   test_positional_argsz&Keywords_TestCase.test_positional_argsq  s#    UAy'2>+	r'   c           	      D    | j                  t        ddddd      d       y )Nr   r   r  r"  r&  )arg4arg5r'  r(  r"   s    r$   test_mixed_argsz!Keywords_TestCase.test_mixed_argsx  s#    UAywRH+	r'   c           	      D    | j                  t        ddddd      d       y )Nr   r   r  r"  r&  )arg1arg2arg3r+  r,  r'  r(  r"   s    r$   test_keyword_argsz#Keywords_TestCase.test_keyword_args  s$    %aigTVW+	r'   c                 @    | j                  t        ddd      d       y )Nr   r   r&  )r/  r0  r,  )
r   r   r   r   r   r   r   r   r   r&  r(  r"   s    r$   test_optional_argsz$Keywords_TestCase.test_optional_args  s    %ab91	r'   c                     	 t        d       | j                  d       y # t        $ r%}| j                  t	        |      d       Y d }~y d }~ww xY w)Nr   )r/  !TypeError should have been raisedz1function missing required argument 'arg2' (pos 2)r   failr   r   strr#   errs     r$   test_required_argsz$Keywords_TestCase.test_required_args  sQ    	;%(
 II9:	  	OCMO O	Os     	AA		Ac                     	 t        dddddd       | j                  d       y # t        $ r%}| j                  t	        |      d       Y d }~y d }~ww xY w)	Nr   r   r  r"  r&  o   r6  z,function takes at most 5 arguments (6 given)r7  r:  s     r$   test_too_many_argsz$Keywords_TestCase.test_too_many_args  sT    	;U1Ywr#> II9:  	WSX'UVV	Ws   $ 	AAAc                     	 t        dddd       | j                  d       y # t        $ r%}| j                  t	        |      d       Y d }~y d }~ww xY w)Nr   r   r&    )r,  arg666r6  z9'arg666' is an invalid keyword argument for this functionr7  r:  s     r$   test_invalid_keywordz&Keywords_TestCase.test_invalid_keyword  sP    	;U1"C8 II9:  	dSX'bcc	ds   # 	AAAc                     	 t        di ddi | j                  d       y # t        $ r%}| j                  t	        |      d       Y d }~y d }~ww xY w)N)r   r   r  r"     r&  r6  6   '' is an invalid keyword argument for this functionr7  r:  s     r$   test_surrogate_keywordz(Keywords_TestCase.test_surrogate_keyword  sQ    	;Lh^L II9:  	dSX'bcc	ds   ! 	AA

AN)r)   r*   r+   r  r)  r-  r2  r4  r<  r?  rC  rG  r!   r'   r$   r  r  Y  s/    5.;;;;r'   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)KeywordOnly_TestCasec                 <    | j                  t        dd      d       y )Nr   r   r   r   r   r   r	   r"   s    r$   r)  z)KeywordOnly_TestCase.test_positional_args  s     A&	r'   c                 @    | j                  t        ddd      d       y )Nr   r   r   keyword_onlyr  rL  r"   s    r$   r-  z$KeywordOnly_TestCase.test_mixed_args  s     AA6	r'   c                 @    | j                  t        ddd      d       y )Nr   r   r   )requiredoptionalrO  r  rL  r"   s    r$   r2  z&KeywordOnly_TestCase.test_keyword_args  s     !aaH	r'   c                 x    | j                  t        dd      d       | j                  t        dd      d       y )Nr   r   )rQ  rR  rK  r   )rQ  rO  r   r   r   rL  r"   s    r$   r4  z'KeywordOnly_TestCase.test_optional_args  s:     !a8	 	 !!<	r'   c                 N   | j                  t        d      d       | j                  t        d      d       | j                  t        d      5  t        d       d d d        | j                  t        d      5  t        d       d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)	Nr   r   r   r   )rQ  z7function missing required argument 'required' \(pos 1\)r   )rR  r   rN  )r   r	   assertRaisesRegexr   r"   s    r$   r<  z'KeywordOnly_TestCase.test_required_args  s     #	 	 !,	
 ##IFH 	- !,	- ##IFH 	1 a0	1 	1		- 	-	1 	1s   B9BBB$c                     | j                  t        d      5  t        ddd       d d d        | j                  t        d      5  t        dddd       d d d        y # 1 sw Y   8xY w# 1 sw Y   y xY w)Nz9function takes at most 2 positional arguments \(3 given\)r   r   r   z.function takes at most 3 arguments \(4 given\)r   rN  rW  r   r	   r"   s    r$   r?  z'KeywordOnly_TestCase.test_too_many_args  st    ##IHJ 	* Aq)	* ##I=? 	: Aqq9	: 	:		* 	*	: 	:s   AA(A%(A1c                 v    | j                  t        d      5  t        ddd       d d d        y # 1 sw Y   y xY w)Nz:'monster' is an invalid keyword argument for this functionr   r   rA  )monsterrY  r"   s    r$   rC  z)KeywordOnly_TestCase.test_invalid_keyword  s7    ##IHJ 	4 As3	4 	4 	4s   /8c                 t    | j                  t        d      5  t        di ddi d d d        y # 1 sw Y   y xY w)NrF  rE  r&  r   rY  r"   s    r$   rG  z+KeywordOnly_TestCase.test_surrogate_keyword  s:    ##IGI 	9 8(B8	9 	9 	9s   .7c                     G d dt               }| j                  t        d      5  t        di  |d      di d d d        | j                  t        d      5  t        di  |d      di d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)	Nc                       e Zd Zd Zd Zy)<KeywordOnly_TestCase.test_weird_str_subclass.<locals>.BadStrc                      yr:   r!   r#   others     r$   __eq__zCKeywordOnly_TestCase.test_weird_str_subclass.<locals>.BadStr.__eq__  s    r'   c                 2    t         j                  |       dz  S )Nr   r9  __hash__r"   s    r$   rf  zEKeywordOnly_TestCase.test_weird_str_subclass.<locals>.BadStr.__hash__  s    ||D)A--r'   Nr)   r*   r+   rc  rf  r!   r'   r$   BadStrr_    s    .r'   rh  *invalid keyword argument for this functionrO  r   r[  rA  r   r9  rW  r   r	   r#   rh  s     r$   test_weird_str_subclassz,KeywordOnly_TestCase.test_weird_str_subclass  s    	.S 	. ##I8: 	F E&*@!)DE	F ##I8: 	C B&*;S)AB	C 	C	F 	F	C 	C   A5B5A>B
c                     G d dt               }| j                  t        d      5  t        di  |d      di d d d        | j                  t        d      5  t        di  |d      di d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)	Nc                       e Zd Zd Zd Zy)=KeywordOnly_TestCase.test_weird_str_subclass2.<locals>.BadStrc                      y)NFr!   ra  s     r$   rc  zDKeywordOnly_TestCase.test_weird_str_subclass2.<locals>.BadStr.__eq__  s    r'   c                 ,    t         j                  |       S r   re  r"   s    r$   rf  zFKeywordOnly_TestCase.test_weird_str_subclass2.<locals>.BadStr.__hash__	  s    ||D))r'   Nrg  r!   r'   r$   rh  rp    s    *r'   rh  ri  rO  r   r[  rA  r   rj  rk  s     r$   test_weird_str_subclass2z-KeywordOnly_TestCase.test_weird_str_subclass2  s    	*S 	*
 ##I8: 	F E&*@!)DE	F ##I8: 	C B&*;S)AB	C 	C	F 	F	C 	Crm  N)r)   r*   r+   r)  r-  r2  r4  r<  r?  rC  rG  rl  rs  r!   r'   r$   rI  rI    s6    	1$:49
CCr'   rI  c                   6    e Zd ZddlmZ d Zd Zd Zd Z	d Z
y)	"PositionalOnlyAndKeywords_TestCaser   )$getargs_positional_only_and_keywordsc                 J    | j                  | j                  ddd      d       y )Nr   r   r   r  r   getargsr"   s    r$   r)  z7PositionalOnlyAndKeywords_TestCase.test_positional_args  s    aA.	:r'   c                 L    | j                  | j                  ddd      d       y )Nr   r   r   keywordr  rx  r"   s    r$   r-  z2PositionalOnlyAndKeywords_TestCase.test_mixed_args  s!    aA6	Br'   c                     | j                  | j                  dd      d       | j                  | j                  dd      d       y )Nr   r   rK  r   r{  rT  rx  r"   s    r$   r4  z5PositionalOnlyAndKeywords_TestCase.test_optional_args  s:    a+Z8a3Z@r'   c                 6   | j                  | j                  d      d       | j                  t        d      5  | j                          d d d        | j                  t        d      5  | j                  d       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nr   rV  9function takes at least 1 positional argument \(0 given\)r   r{  )r   ry  rW  r   r"   s    r$   r<  z5PositionalOnlyAndKeywords_TestCase.test_required_args#  s    a+6##IHJ 	LLN	 ##IHJ 	$LLL#	$ 	$		 		$ 	$s   B'BBBc                     | j                  t        d      5   | j                  di ddi d d d        y # 1 sw Y   y xY w)Nz3'' is an invalid keyword argument for this functionr   rA  r   )rW  r   ry  r"   s    r$   test_empty_keywordz5PositionalOnlyAndKeywords_TestCase.test_empty_keyword.  s@    ##IAC 	,DLL+"c+	, 	, 	,s   5>N)r)   r*   r+   r   rv  ry  r)  r-  r4  r<  r  r!   r'   r$   ru  ru    s     I;CA
	$,r'   ru  c                   *    e Zd Zd Zd Zd Zd Zd Zy)Bytes_TestCasec                 z   ddl m} | j                  t        |d       | j	                   |d      d       | j	                   |t        d            d       | j                  t        |t        d             | j                  t        |d       | j                  t        |d       | j                  t        |d        y )Nr   )	getargs_cs   abc   aa   s)r   r  r   r   r   	bytearray
memoryview)r#   r  s     r$   test_czBytes_TestCase.test_c5  s    ')Y74"-9T?3R8)Y
40@A)Y4)Y3)Y5r'   c                 J   ddl m} | j                  t        |d       | j	                   |d      d       | j                  t
        |d       | j                  t        |t        d             | j                  t        |t        d             | j                  t        |d        y )Nr   )	getargs_y   abcé   bytes   nul: 	   bytearray
   memoryview)r   r  r   r   r   r  r  r  )r#   r  s     r$   test_yzBytes_TestCase.test_y?  s~    ')Y	:8,h7*i;)Y	,0GH)Y
=0IJ)Y5r'   c                    ddl m} | j                  t        |d       | j	                   |d      d       | j	                   |d      d       | j	                   |t        d            d       | j	                   |t        d            d       | j                  t        |d        | j                  t        |t               | j                  t        |t               y )Nr   )getargs_y_starr  r  r  r  r  )
r   r  r   r   r   r  r  BufferErrorNONCONTIG_WRITABLENONCONTIG_READONLY)r#   r  s     r$   test_y_starzBytes_TestCase.test_y_starH  s    ,)^Y?18<	2I>	,(?@,O
=(ABMR)^T:+~7IJ+~7IJr'   c                    ddl m} | j                  t        |d       | j	                   |d      d       | j	                   |d      d       | j                  t        |t        d             | j                  t        |t        d             | j                  t        |d        | j                  t        |t               | j                  t        |t               y )Nr   )getargs_y_hashr  r  r  r  r  )	r   r  r   r   r   r  r  r  r  )r#   r  s     r$   test_y_hashzBytes_TestCase.test_y_hashS  s    ,)^Y?18<	2I>)^Y|5LM)^Z5NO)^T:)^5GH)^5GHr'   c                 ~   ddl m} | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |t	        d             t        d      }| j                   ||      d       | j                  |t        d             t        d      }| j                   |t	        |            d	       | j                  |t        d	             | j                  t        |d        | j                  t        |t               | j                  t        |t               y )
Nr   )getargs_w_starr  r  r  r  s	   [ytearra]r  s
   [emoryvie])	r   r  r   r   r  r  r   r  r  )r#   r  bufs      r$   test_w_starzBytes_TestCase.test_w_star_  s    ,)^Y?)^X>)^Y?)^Z5IJ%,l;i56&
38-Hi67)^T:)^5GH)^5GHr'   N)r)   r*   r+   r  r  r  r  r  r!   r'   r$   r  r  4  s    66	K
IIr'   r  c                      e 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 ej                          d        Z ej                          d        Z ej                          d        Z ej                          d        Zd Zy)String_TestCasec                    ddl m} | j                  t        |d       | j	                   |d      d       | j	                   |d      d       | j	                   |d      d	       | j                  t        |d
       | j                  t        |t        d
             | j                  t        |t        d
             | j                  t        |d       | j                  t        |d        y )Nr   )	getargs_Cabcr  r  u   €i   u   🐍i r  )r   r  r   r   r   r  r  )r#   r  s     r$   test_CzString_TestCase.test_Cr  s    ')Y63,8,f5<0':)Y5)Y	$@)Y
40@A)Y3)Y5r'   c                 J   ddl m} | j                   |d      d       | j                  t        |d       | j                  t
        |d       | j                  t
        |t        d             | j                  t
        |t        d             | j                  t
        |d        y )	Nr   )	getargs_sr     abcénul: r  r  r  )r   r  r   r   r  r   r  r  )r#   r  s     r$   test_szString_TestCase.test_s~  s~    '9-~>*i:)Y9)Y	,0GH)Y
=0IJ)Y5r'   c                    ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d	            d	       | j                  t        |d        | j                  t        |t               | j                  t        |t               y )
Nr   )getargs_s_starr  r  r  r  r  r  r  )
r   r  r   r  r  r   r   r  r  r  )r#   r  s     r$   test_s_starzString_TestCase.test_s_star  s    ,	2NC19=18<	,(?@,O
=(ABMR)^T:+~7IJ+~7IJr'   c                    ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                  t        |t        d             | j                  t        |t        d	             | j                  t        |d        | j                  t        |t               | j                  t        |t               y )
Nr   )getargs_s_hashr  r  r  r  r  r  r  )	r   r  r   r   r   r  r  r  r  )r#   r  s     r$   test_s_hashzString_TestCase.test_s_hash  s    ,	2NC19=18<)^Y|5LM)^Z5NO)^T:)^5GH)^5GHr'   c                    ddl m} ddl m} t        ddg      }| j	                  t
        ||d       | j	                  t
        ||d       | j	                  t
        ||d       | j	                  t
        ||d	       | j	                  t
        ||d       | j	                  t
        ||d       |j                  d
       y )Nr   )getargs_s_hash_int)getargs_s_hash_int2r   r   r  r   )r   )r  r   )r   r  r  r  r   SystemErrorappend)r#   r  r  r  s       r$   test_s_hash_intzString_TestCase.test_s_hash_int  s    01A+'93F+'93"E+'93%H+':CJ+':C2F+':C5I

1r'   c                 J   ddl m} | j                   |d      d       | j                  t        |d       | j                  t
        |d       | j                  t
        |t        d             | j                  t
        |t        d             | j                   |d              y )	Nr   )	getargs_zr  r  r  r  r  r  )	r   r  r   r   r  r   r  r  assertIsNone)r#   r  s     r$   test_zzString_TestCase.test_z  s~    '9-~>*i:)Y9)Y	,0GH)Y
=0IJ)D/*r'   c                    ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d	            d	       | j                   |d              | j                  t        |t               | j                  t        |t               y )
Nr   )getargs_z_starr  r  r  r  r  r  r  )
r   r  r   r  r  r  r   r  r  r  )r#   r  s     r$   test_z_starzString_TestCase.test_z_star  s    ,	2NC19=18<	,(?@,O
=(ABMR../+~7IJ+~7IJr'   c                    ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                  t        |t        d             | j                  t        |t        d	             | j                   |d              | j                  t        |t               | j                  t        |t               y )
Nr   )getargs_z_hashr  r  r  r  r  r  r  )
r   r  r   r   r   r  r  r  r  r  )r#   r  s     r$   test_z_hashzString_TestCase.test_z_hash  s    ,	2NC19=18<)^Y|5LM)^Z5NO../)^5GH)^5GHr'   c                    ddl m} | j                   |d      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                  t        |d	d       | j                  t        |t        d
      d       | j                  t        |t        d      d       | j                  t        |d d       | j                  t        |dd       y )Nr   )
getargs_esr  r  latin1   abcasciispamr  r  r  r  )	r   r  r   r   UnicodeEncodeErrorLookupErrorr   r  r  )r#   r  s     r$   test_eszString_TestCase.test_es  s    (I.?Ix8*E,j)WM+z9fE)Z8D)Z<1H(S)ZM1JHU)Zx@)Z8Dr'   c                 \   ddl m} | j                   |d      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                   |d	d      d	       | j                   |t        d
      d      d
       | j                  t        |t        d      d       | j                  t        |d d       | j                  t        |dd       | j                  t        |dd       | j                  t        |t        d      d       y )Nr   )
getargs_etr  r  r  r  r  r  r  r  r  r  r  )	r   r  r   r   r  r  r  r   r  )r#   r  s     r$   test_etzString_TestCase.test_et  s    (I.?Ix8*E,j)WM+z9fEHh7BIl$;XFU)ZM1JHU)Zx@)Z8D)ZHE)Z91ExPr'   c                    ddl m} | j                   |d      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                  t        |d	d       | j                  t        |t        d
      d       | j                  t        |t        d      d       | j                  t        |d d       | j                   |dd      d       t        d      }| j                   |dd|      d       | j                  |t        d             t        d      }| j                   |dd|      d       | j                  |t        d             t        d      }| j                  t        |dd|       | j                  |t        d             t               }| j                  t        |dd|       y )Nr   )getargs_es_hashr  r  r  r  r  r  r  r  r  r  r     xxxxxxxx   abc xxx   xxxxx   abc    xxxx)
r   r  r   r   r  r  r   r  r  r  )r#   r  r  s      r$   test_es_hashzString_TestCase.test_es_hash  s   -3^DH=zJ,oy'R+	6J)_hI)_i6MxX)_j6OQYZ)_dHE8<iHHcBJOi(9:;HcBJOi78*oy(CPi/0k*oy(CPr'   c                 &   ddl m} | j                   |d      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                   |d	d      d	       | j                   |t        d
      d      d
       | j                  t        |t        d      d       | j                  t        |d d       | j                   |dd      d       | j                   |dd      d       | j                   |t        d      d      d       t        d      }| j                   |dd|      d       | j                  |t        d             t        d      }| j                   |dd|      d       | j                  |t        d             t        d      }| j                  t        |dd|       | j                  |t        d             t               }| j                  t        |dd|       y )Nr   )getargs_et_hashr  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  s      r$   test_et_hashzString_TestCase.test_et_hash  s   -3^DH=zJ,oy'R+	6J8<hG<)@(K\Z)_j6OQYZ)_dHE8<iHH=yI9)=xH)THcBJOi(9:;HcBJOi78*oy(CPi/0k*oy(CPr'   c                 D   ddl m} | j                  t              5  | j	                   |d      d       d d d        | j                  t              5  | j                  t        |d       d d d        | j                  t              5  | j                  t        |d       d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                  t        |d        d d d        y # 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   y xY w)Nr   )	getargs_ur  r  r  r  r  )
r   r  r   r   r   r   r  r   r  r  )r#   r  s     r$   test_uzString_TestCase.test_u  sc   '01 	>Yy19=	>01 	?j)X>	?01 	>iH=	>01 	MiIl4KL	M01 	OiJ}4MN	O01 	:iD9	: 	:	> 	>	? 	?	> 	>	M 	M	O 	O	: 	:G   EE&E2<!E>:!F
8FE#&E/2E;>F
FFc                 F   ddl m} | j                  t              5  | j	                   |d      d       d d d        | j                  t              5  | j	                   |d      d       d d d        | j                  t              5  | j                  t        |d       d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                  t        |d        d d d        y # 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   y xY w)Nr   )getargs_u_hashr  r  r  r  r  )	r   r  r   r   r   r   r   r  r  )r#   r  s     r$   test_u_hashzString_TestCase.test_u_hash+  sr   ,01 	C^I6	B	C01 	A^H5x@	A01 	CiB	C01 	Ri<9PQ	R01 	TiM9RS	T01 	?i>	? 	?	C 	C	A 	A	C 	C	R 	R	T 	T	? 	?G   EE'E3=!E?;!F9FE$'E03E<?FFF c                 D   ddl m} | j                  t              5  | j	                   |d      d       d d d        | j                  t              5  | j                  t        |d       d d d        | j                  t              5  | j                  t        |d       d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                   |d              d d d        y # 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   y xY w)Nr   )	getargs_Zr  r  r  r  r  )r   r  r   r   r   r   r  r   r  r  r  )r#   r  s     r$   test_ZzString_TestCase.test_Z;  sc   '01 	>Yy19=	>01 	?j)X>	?01 	>iH=	>01 	MiIl4KL	M01 	OiJ}4MN	O01 	/io.	/ 	/	> 	>	? 	?	> 	>	M 	M	O 	O	/ 	/r  c                 F   ddl m} | j                  t              5  | j	                   |d      d       d d d        | j                  t              5  | j	                   |d      d       d d d        | j                  t              5  | j                  t        |d       d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                  t        |t        d             d d d        | j                  t              5  | j                   |d              d d d        y # 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   y xY w)Nr   )getargs_Z_hashr  r  r  r  r  )
r   r  r   r   r   r   r   r  r  r  )r#   r  s     r$   test_Z_hashzString_TestCase.test_Z_hashK  ss   ,01 	C^I6	B	C01 	A^H5x@	A01 	CiB	C01 	Ri<9PQ	R01 	TiM9RS	T01 	4nT23	4 	4	C 	C	A 	A	C 	C	R 	R	T 	T	4 	4r  c                 @    ddl m} | j                  t        |dd       y )Nr   )gh_99240_clear_argsr  z b)r   r  r   r   )r#   r  s     r$   test_gh_99240_clear_argsz(String_TestCase.test_gh_99240_clear_args[  s    1)%8#uEr'   N)r)   r*   r+   r  r  r  r  r  r  r  r  r  r  r  r  r   requires_legacy_unicode_capir  r  r  r  r  r!   r'   r$   r  r  q  s    
66	K
I"+	K
I
EQQ0Q4 *W))+: ,: *W))+? ,? *W))+/ ,/ *W))+4 ,4Fr'   r  c                       e Zd Zd Zd Zd Zy)Object_TestCasec                     ddl m} d}| j                   ||      |       | j                  t        |t        d             | j                  t        |d       | j                  t        |d        | j                  t        |t        |             y )Nr   )	getargs_Sr  r  r9  )r   r  r  r   r   r  r  )r#   r  objs      r$   test_SzObject_TestCase.test_Sa  sm    'inc*)Y	,0GH)Y6)Y5)Y
3@r'   c                     ddl m} t        d      }| j                   ||      |       | j	                  t
        |d       | j	                  t
        |d       | j	                  t
        |d        | j	                  t
        |t        |             y )Nr   )	getargs_Yr  r  r9  )r   r  r  r  r   r   r  )r#   r  r  s      r$   test_YzObject_TestCase.test_Yj  sm    '%inc*)Y9)Y6)Y5)Y
3@r'   c                     ddl m} d}| j                   ||      |       | j                  t        |d       | j                  t        |t        d             | j                  t        |d        y )Nr   )	getargs_Ur9  r  r  )r   r  r  r   r   r  )r#   r  r  s      r$   test_UzObject_TestCase.test_Us  sW    'inc*)Y9)Y	,0GH)Y5r'   N)r)   r*   r+   r  r  r  r!   r'   r$   r  r  `  s    AA6r'   r  c                       e Zd Zd Zy)Test6012c                 P    | j                  t        j                  dd      d       y )Nr   Worldr   )r   r   
argparsingr"   s    r$   testzTest6012.test~  s    --gw?Cr'   N)r)   r*   r+   r  r!   r'   r$   r  r  }  s    Dr'   r  c                   D    e Zd Z ej                  e      d        Zd Zy)SkipitemTest)categoryc                    d}d}ddi}ddg}t        dd      D ]y  }t        |      }|dv r|d	z   }	 t        j                  ||||       d
}d|z   }	 t        j                  ||||       d
}dj                  ||||      }| j                  |||       { y# t        $ r}	d}
t        |	      |
k(  }Y d}	~	hd}	~	wt        $ r d
}Y xw xY w# t        $ r)}	dj                  |      }
t        |	      |
k(  }Y d}	~	d}	~	ww xY w)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.

        r!   r   r  r   r         z()e|$iFz(argument 1 (impossible<bad format char>)N|z!impossible<bad format char>: '{}'ztest_skipitem_parity: detected mismatch between convertsimple and skipitem for format unit '{}' ({}), not skipped {}, skipped {})	rangechrr   parse_tuple_and_keywordsr  r9  r   formatr  )r#   empty_tupletuple_1dict_bkeywordsr  r   r	  when_not_skippeder  optional_formatwhen_skippedmessages                 r$   test_skipitemzSkipitemTest.test_skipitem  s:   6 a:r3 #	CAAA
 G| WF)227FH&#(  "FlO-22;#X/$
HHNq,(8I:  MM,(8'BG#	C  1>$'FaK  )#( )  -7>>vF #A!-s5   BC	CB44CC	C:C55C:c           
         t         j                  }d}d}ddi}ddg}d}t        j                  D ]k  }dD ]d  }||z   }	| j	                  |	      5  d	|	z   d
z   }
|	|v r ||||
|       n*| j                  t        d      5   ||||
|       d d d        d d d        f m t        t        t        dd            D ]d  }d|z   }	d	|	z   d
z   }
| j	                  |	      5  |dv r ||||
|       n*| j                  t        d      5   ||||
|       d d d        d d d        f y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   -xY w# 1 sw Y   xY w)Nr!   r  r  r   r  )zs#zs*zz#zz*zy#zy*zw#zw*z#*)r	  r  r  zimpossible<bad format char>r     r  st)
r   r  stringascii_letterssubTestrW  r  mapr  r  )r#   parser
  r  r  r  	supportedr   c2fr  s              r$   test_skipitem_with_suffixz&SkipitemTest.test_skipitem_with_suffix  s   22a:D	%% 
	RA 	RF\\\+ R&)AgmOI~k6?HM!33K$AC R!+vQRR R	R
	R S%C.) 		NAaA!AgmOQ' N9+vI// =? Nk6?HMN	N N		N	R RR R N N	N NsH   /D+=D		D+'E D8ED($D++D58E=EE	N)r)   r*   r+   r   ignore_warningsr   r  r  r!   r'   r$   r  r    s0     %_$$.@ABC BBCHNr'   r  c                   $    e Zd Zd Zd Zd Zd Zy)ParseTupleAndKeywords_Testc           	      N   | j                  t        t        j                  di dg        | j                  t        t        j                  di dd       | j                  t        t        j                  di ddgdz         | j                  t        t        j                  di ddg       y )Nr!   r   r   )r   r   r   r  r  r"   s    r$   test_parse_tuple_and_keywordsz8ParseTupleAndKeywords_Test.test_parse_tuple_and_keywords  s    )Y%G%Gb"b	**i&H&Hb"b	**i&H&Hb"rdRi	1*i&H&Hb"rd	,r'   c           	         t         j                  }| j                   |dddiddg      d       | j                   |di ddg      t        f       | j                   |di ddd	g      d       | j                   |dd	d
iddd	g      d       | j                   |ddd
dddd	g      d       | j                   |dd	d
iddd	g      t        d
f       | j	                  t
        d      5   |di ddg       d d d        | j	                  t
        d      5   |dd	diddg       d d d        | j	                  t
        d      5   |ddd
iddd	g       d d d        y # 1 sw Y   exY w# 1 sw Y   DxY w# 1 sw Y   y xY w)Nr!   r  r   Or   |Or   OOr  r   r  |OOz&function missing required argument 'a'z"'b' is an invalid keyword argumentz>argument for function given by name \('a'\) and position \(1\)zO|O)r   r  r   NULLrW  r   r#   r  s     r$   
test_basicz%ParseTupleAndKeywords_Test.test_basic  s   22rC8S3%8$?r2tcU3dW=vr4#s<fEtc1Xtc3Z@&Ir#3TC:FOrC8US#J?$K##I8: 	&"b#u%	& ##I46 	-"sAhse,	- ##I&( 	5 $a%#s4	5 	5	& 	&	- 	-	5 	5s$   'EE$?E0E!$E-0E9c           	      V   | j                  t        t        j                  di ddg       | j                  t        t        j                  di dddg       | j                  t        t        j                  dddid	dg       | j                  t        t        j                  ddd
ddddg       | j                  t        t        j                  dddiddg       | j                  t        t        j                  ddd
ddddg       | j                  t        t        j                  di dddg       | j                  t        t        j                  di ddg       | j                  t        t        j                  di ddg       | j                  t        t        j                  di dddg       y )Nr   z||Or  r   z|O|Or  r!   r   z$$Or   r  z$O$Oz$|Oz$O|Or'  r)  z|$Or   )r   r  r   r  r"   s    r$   test_bad_usez'ParseTupleAndKeywords_Test.test_bad_use  s    	+y'I'IEC5	2+y'I'I "fsCj	:+y'I'IsAhu	6+y'I'IAA.c
	D+y'I'IsAhu	6+y'I'IAA.c
	D+y'I'ID3*	6+y'I'IEC5	2+y'I'Ib%"	/+y'I'Ib%#r	4r'   c           	      &   t         j                  }| j                   |di dg d      d       | j                   |dddidg d      d       | j                  t        d      5   |dddidg d       d d d        | j                   |di d	g d      d
t
        t
        f       | j                  t        d      5   |di d	g d       d d d        | j                   |dddidg d      d       | j                  t        d      5   |dddidg d       d d d        | j                   |di dg d      d
t
        t
        f       | j                  t        d      5   |di dg d       d d d        | j                  t        d      5   |di dg d       d d d        | j                  t        d      5   |di d	g d       d d d        y # 1 sw Y   XxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)Nr  OOO)r   r   r  r   r  r   z:function takes at least 2 positional arguments \(1 given\)r   zO|OOr   r  r!   zOO$Oz9function takes exactly 2 positional arguments \(1 given\)zO|O$OzEmpty parameter name after \$zO|$OOzEmpty keyword)r   r  r   )r   r  r   rW  r   r*  r  r+  s     r$   test_positional_onlyz/ParseTupleAndKeywords_Test.test_positional_only$  s	   22y"e]CYOvQxF	R##ILN 	8$a%7	8 	tR?T4	*##IKM 	1"b&-0	1 	vQxG"	$##IKM 	9$a&-8	9 	tR-@T4	*##IKM 	2"b'=1	2 ##K1QR 	4$G]3	4##KA 	3$FM2	3 	3)	8 	8
	1 	1
	9 	9
	2 	2	4 	4	3 	3sH   #G	9GG#G/G;2H	GG #G,/G8;HHN)r)   r*   r+   r$  r,  r.  r1  r!   r'   r$   r"  r"    s    	,5*403r'   r"  c                       e Zd Z e       j	                  d  ee      D               d Z ej                  e
du d      d        Zy)Test_testcapic              #      K   | ]8  }|j                  d       r%|j                  d      r|t        t        |      f : yw)test__codeN)
startswithendswithgetattrr   ).0names     r$   	<genexpr>zTest_testcapi.<genexpr>B  s=      Lw/DMM'4J 79d34 Ls   >A c           	      f   t         j                  }| j                   |di ddg      d       | j                   |di dg d      d        |di d	dg       | j                  t        d
      5   |di ddg       d d d        | j                  t        d      5   |di ddg       d d d        | j                  t        d      5   |di ddg       d d d        | j                  t        d      5   |di ddg       d d d        dD ]c  }| j                  t              5   |di d|z   dz   dg       d d d        | j                  t        d      5   |di d|z   dz   dg       d d d        e y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   xY w)N)r  z(OOO)r  r  )r   r   r   zO(OO)Or  )r   r   r   r   z(iii)z.argument 1 must be sequence of length 2, not 3z(ii)z.argument 1 must be sequence of length 2, not 1)r   z+argument 1 must be 2-item sequence, not intr   z-argument 1 must be 2-item sequence, not bytes)s   ab)esetzes#zet#))r  ()z.argument 1 must be sequence of length 1, not 0)r!   )r   r  r   rW  r   r   r  )r#   r  r  s      r$   test_nested_tuplezTest_testcapi.test_nested_tupleF  s   22|R3%@)L~r8_M%	'lB#/##I@B 	3,FSE2	3 ##I@B 	.'2vu-	. ##I=? 	+$FSE*	+ ##I?A 	/(B.	/ * 	7A"";/ ;iS1Ws]SE:;''	DF 7eRq367 7	7	3 	3	. 	.	+ 	+	/ 	/
; ;7 7sH   ,E+E7F-FFF'+E47F FFF$	'F0	Nzneeds _testinternalcapic                 \    t        j                  dd      \  }}}| j                  |d       y )Nz-caa  if True:
            from test import support
            script = '''if True:
                import _testinternalcapi
                _testinternalcapi.gh_119213_getargs(spam='eggs')
                '''
            config = dict(
                allow_fork=False,
                allow_exec=False,
                allow_threads=True,
                allow_daemon_threads=False,
                use_main_obmalloc=False,
                gil=2,
                check_multi_interp_extensions=True,
            )
            rc = support.run_in_subinterp_with_config(script, **config)
            assert rc == 0

            # The crash is different if the interpreter was not destroyed first.
            #interpid = _testinternalcapi.create_interpreter()
            #rc = _testinternalcapi.exec_interpreter(interpid, script)
            #assert rc == 0
            r   )r   assert_python_okr   )r#   rcoutr;  s       r$   test_gh_119213zTest_testcapi.test_gh_119213b  s1    $55d = C. 	Qr'   )r)   r*   r+   localsupdatedirr   rB  r   skipIf_testinternalcapirG  r!   r'   r$   r3  r3  A  sR    
HOO L #IL L78 X__&$.0IJ  K r'   r3  __main__)`r   r   r  sysr  r   test.supportr   r   r   import_moduler   r   r	   rL  ImportErrorr*  LARGEr   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
float_infomax_expr   floatr   r   r   r   r   r   intr.   r1   r8   r>   rA   rF   rI   rL   rO   rR   rY   r]   r`   rc   ri   rl   r   ru   rw   rz   r}   r   r  r   r  r   r  r  r  r  r   r   r   r   r   r   r   r   r  rI  ru  r  r  r  r  r  r"  r3  r)   mainr!   r'   r$   <module>rX     s]      
  & & ('M''4	 <D 	'
< < < < < nn$$ElEl 		
 s    
 #   c 
 	E 	U  # ## #
 	g 	w  * **' *
	E 		4 	  	, 782> -dd3 zH)) zHx`@h'' `@F0I)) 0IfVKX&& VKr" "
Ex(( E4(>X&& (>TU;)) U;n`C8,, `CF,):): ,B:IX&& :IzlFh'' lF^6h'' 6:Dx   D
eN8$$ eNPT3!2!2 T3n: H%% : z zHMMO _+  s   L. .L98L9