
    <e@                     R   d dl Z 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	  ej
        d          Zd dlmZm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j         j!        Z" e#d
          Z$ e#d          Z%dZ&dZ'dZ( G d d          Z) G d de*          Z+ G d d          Z, G d d          Z- G d de*          Z. G d d          Z/ G d de*          Z0 G d d          Z1 G d d           Z2 G d! d"e*          Z3 G d# d$          Z4 G d% d&e#          Z5 G d' d(e#          Z6 G d) d*          Z7 G d+ d,          Z8 G d- d.e#          Z9 G d/ d0          Z: G d1 d2e;          Z< G d3 d4e;          Z= G d5 d6          Z> G d7 d8          Z? G d9 d:e;          Z@ G d; d<eA          ZB G d= d>eC          ZD G d? d@e jE                  ZF G dA dBe jE                  ZG G dC dDe jE                  ZH G dE dFe jE                  ZI G dG dH          ZJ G dI dJe jE                  ZK G dK dLe jE                  ZL G dM dNe jE                  ZM G dO dPe jE                  ZN G dQ dRe jE                  ZO G dS dTe jE                  ZP G dU dVe jE                  ZQ G dW dXe jE                  ZR G dY dZe jE                  ZS G d[ d\e jE                  ZT G d] d^e jE                  ZU G d_ d`e jE                  ZVeWdak    r e jX                     dS dS )b    N)support)import_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dS )Indexc                     dS Nc    selfs    2/usr/lib/python3.11/test/test_capi/test_getargs.py	__index__zIndex.__index__<       r    N__name__
__module____qualname__r$   r    r&   r#   r   r   ;   #            r&   r   c                       e Zd Zd ZdS )IndexIntSubclassc                     dS r   r    r!   s    r#   r$   zIndexIntSubclass.__index__@   r%   r&   Nr'   r    r&   r#   r-   r-   ?   r+   r&   r-   c                       e Zd Zd ZdS )BadIndexc                     dS N      ?r    r!   s    r#   r$   zBadIndex.__index__D       sr&   Nr'   r    r&   r#   r0   r0   C   #            r&   r0   c                       e Zd Zd ZdS )	BadIndex2c                     dS NTr    r!   s    r#   r$   zBadIndex2.__index__H       tr&   Nr'   r    r&   r#   r7   r7   G   #            r&   r7   c                       e Zd Zd ZdS )	BadIndex3c                     dS r9   r    r!   s    r#   r$   zBadIndex3.__index__L   r:   r&   Nr'   r    r&   r#   r=   r=   K   r;   r&   r=   c                       e Zd Zd ZdS )Intc                     dS r   r    r!   s    r#   __int__zInt.__int__Q   r%   r&   Nr(   r)   r*   rB   r    r&   r#   r@   r@   P   r+   r&   r@   c                       e Zd Zd ZdS )IntSubclassc                     dS r   r    r!   s    r#   rB   zIntSubclass.__int__U   r%   r&   NrC   r    r&   r#   rE   rE   T   r+   r&   rE   c                       e Zd Zd ZdS )BadIntc                     dS r2   r    r!   s    r#   rB   zBadInt.__int__Y   r4   r&   NrC   r    r&   r#   rH   rH   X   r5   r&   rH   c                       e Zd Zd ZdS )BadInt2c                     dS r9   r    r!   s    r#   rB   zBadInt2.__int__]   r:   r&   NrC   r    r&   r#   rK   rK   \   r;   r&   rK   c                       e Zd Zd ZdS )BadInt3c                     dS r9   r    r!   s    r#   rB   zBadInt3.__int__a   r:   r&   NrC   r    r&   r#   rN   rN   `   r;   r&   rN   c                       e Zd Zd ZdS )Floatc                     dS N      @r    r!   s    r#   	__float__zFloat.__float__f   r:   r&   Nr(   r)   r*   rU   r    r&   r#   rQ   rQ   e   r;   r&   rQ   c                       e Zd ZdS )FloatSubclassNr(   r)   r*   r    r&   r#   rX   rX   i           Dr&   rX   c                       e Zd Zd ZdS )FloatSubclass2c                     dS rS   r    r!   s    r#   rU   zFloatSubclass2.__float__m   r:   r&   NrV   r    r&   r#   r\   r\   l   r;   r&   r\   c                       e Zd Zd ZdS )BadFloatc                     dS )Ni  r    r!   s    r#   rU   zBadFloat.__float__q   r4   r&   NrV   r    r&   r#   r_   r_   p   r5   r&   r_   c                       e Zd Zd ZdS )	BadFloat2c                      t          d          S rS   rX   r!   s    r#   rU   zBadFloat2.__float__u       T"""r&   NrV   r    r&   r#   rb   rb   t   #        # # # # #r&   rb   c                       e Zd Zd ZdS )	BadFloat3c                      t          d          S rS   rd   r!   s    r#   rU   zBadFloat3.__float__y   re   r&   NrV   r    r&   r#   rh   rh   x   rf   r&   rh   c                       e Zd Zd ZdS )Complexc                     dS N      @      ?r    r!   s    r#   __complex__zComplex.__complex__~       yr&   Nr(   r)   r*   ro   r    r&   r#   rk   rk   }   #            r&   rk   c                       e Zd ZdS )ComplexSubclassNrY   r    r&   r#   rt   rt      rZ   r&   rt   c                       e Zd Zd ZdS )ComplexSubclass2c                     dS rm   r    r!   s    r#   ro   zComplexSubclass2.__complex__   rp   r&   Nrq   r    r&   r#   rv   rv      rr   r&   rv   c                       e Zd Zd ZdS )
BadComplexc                     dS )Ng      ?r    r!   s    r#   ro   zBadComplex.__complex__   r:   r&   Nrq   r    r&   r#   ry   ry      r;   r&   ry   c                       e Zd Zd ZdS )BadComplex2c                      t          d          S rm   rt   r!   s    r#   ro   zBadComplex2.__complex__       y)))r&   Nrq   r    r&   r#   r|   r|      #        * * * * *r&   r|   c                       e Zd Zd ZdS )BadComplex3c                      t          d          S rm   r~   r!   s    r#   ro   zBadComplex3.__complex__   r   r&   Nrq   r    r&   r#   r   r      r   r&   r   c                       e Zd ZdS )TupleSubclassNrY   r    r&   r#   r   r      rZ   r&   r   c                       e Zd ZdS )DictSubclassNrY   r    r&   r#   r   r      rZ   r&   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )Unsigned_TestCasec                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"          |d           |                     d |d                     |                     t$           |t$                               |                     t"          |t$          dz              |                     d |d                     |                     t"          |t&                     d S )Nr   )	getargs_bQ	@r      *   )r   r   assertRaises	TypeErrorassertEqualr   r-   r0   assertWarnsDeprecationWarningr7   r=   r@   rE   rH   rK   rN   OverflowErrorr	   
VERY_LARGE)r"   r   s     r#   test_bzUnsigned_TestCase.test_b   s   '''''')Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111-B777IIaLL)))IIi$8$8999-IMBBBYYr]]+++-J?????   ;,C33C7:C7c                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"           |d                     |                     d |d                     |                     t"           |t"                               |                     d |t"          dz                        |                     d |d                     |                     t"          t$          z   |t$                               d S )Nr   )	getargs_Br   r   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r	   r   )r"   r   s     r#   test_BzUnsigned_TestCase.test_B   s   '''''')Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111IIbMM222IIaLL)))IIi$8$8999IIik22333YYr]]+++Z/:1F1FGGGGGr   c                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"           |d                     |                     d |d                     |                     t"           |t"                               |                     d |t"          dz                        |                     d |d                     |                     t$          t"          z   |t$                               d S )Nr   )	getargs_Hr   r   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r
   r   )r"   r   s     r#   test_HzUnsigned_TestCase.test_H   s   '''''')Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111IIbMM222IIaLL)))IIi$8$8999IIik22333YYr]]+++i/:1F1FGGGGGr   c                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"           |d                     |                     d |d                     |                     t"           |t"                               |                     d |t"          dz                        |                     d |d                     |                     t$          t"          z   |t$                               d S )Nr   )	getargs_Ir   r   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r   r   )r"   r   s     r#   test_IzUnsigned_TestCase.test_I   s   '''''')Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii0011199R==111IIaLL)))99X#6#6777IIhqj11222YYr]]+++h.		*0E0EFFFFFr   c                 H   ddl m} |                     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 |t          dz                        |                     d |d                     |                     t           t          z   |t                                d S )Nr   )	getargs_kr   r   r   r   )r   r   r   r   r   r   r-   r0   r7   r=   r@   rE   rH   rK   rN   r   r   )r"   r   s     r#   test_kzUnsigned_TestCase.test_k   s2   '''''' 	)Y555)Y888II&6&8&899:::)Y

;;;)Y	<<<IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111IIbMM222IIaLL)))IIi$8$8999IIik22333YYr]]+++i/:1F1FGGGGGr&   N)r(   r)   r*   r   r   r   r   r   r    r&   r#   r   r      sp        @ @ @0H H H0H H H2G G G2H H H H Hr&   r   c                   &    e Zd Zd Zd Zd Zd ZdS )Signed_TestCasec                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"          |t$          dz
             |                     t$           |t$                               |                     t&           |t&                               |                     t"          |t&          dz              |                     d |d                     |                     t"          |t(                     d S )Nr   )	getargs_hr   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r   r   r   r   )r"   r   s     r#   test_hzSigned_TestCase.test_h     '''''')Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111-HQJ???99X#6#677799X#6#6777-HQJ???YYr]]+++-J?????r   c                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"          |t$          dz
             |                     t$           |t$                               |                     t&           |t&                               |                     t"          |t&          dz              |                     d |d                     |                     t"          |t(                     d S )Nr   )	getargs_ir   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r   r   r   r   )r"   r   s     r#   test_izSigned_TestCase.test_i1  s   '''''')Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111-GAI>>>))G"4"4555))G"4"4555-GAI>>>YYr]]+++-J?????r   c                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"          |t$          dz
             |                     t$           |t$                               |                     t&           |t&                               |                     t"          |t&          dz              |                     d |d                     |                     t"          |t(                     d S )Nr   )	getargs_lr   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r   r   r   r   )r"   r   s     r#   test_lzSigned_TestCase.test_lI  r   r   c                    ddl m} |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"          |t$          dz
             |                     t$           |t$                               |                     t&           |t&                               |                     t"          |t&          dz              |                     d |d                     |                     t"          |t(                     d S )Nr   )	getargs_nr   r   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r   r   r   r   )r"   r   s     r#   test_nzSigned_TestCase.test_na  s   '''''' 	)Y555YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111-N14DEEE>)B)BCCC>)B)BCCC-N14DEEEYYr]]+++-J?????r   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dS )LongLong_TestCasec                    ddl m} |                     t          |d           |                     t          |d           |                     d |t                                           |                     d |t                                           |                     t          |t                                 |                     t                    5  |                     d |t                                           d d d            n# 1 swxY w Y   |                     d |t                                           |                     t          |t                                 |                     d |t                                           |                     t          |t                                 |                     t          |t                                 |                     d |t!                                           |                     t"          |t$          dz
             |                     t$           |t$                               |                     t&           |t&                               |                     t"          |t&          dz              |                     d |d                     |                     t"          |t(                     d S )Nr   )	getargs_Lr   Hellor   r   r   )r   r   r   r   r   r   r-   r0   r   r   r7   r=   r@   rE   rH   rK   rN   r   	LLONG_MIN	LLONG_MAXr   )r"   r   s     r#   test_LzLongLong_TestCase.test_L|  s   '''''' 	)Y555)Y888YYuww//000II&6&8&899:::)Y

;;;011 	8 	8Q		)++ 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111-IaK@@@IIi$8$8999IIi$8$8999-IaK@@@YYr]]+++-J?????s   ,DDDc                     ddl m} |                     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 |t          dz                        |                     d |d                     |                     t           t          z   |t                                d S )Nr   )	getargs_Kr   r   r   )r   r   r   r   r   r   r-   r0   r7   r=   r@   rE   rH   rK   rN   
ULLONG_MAXr   )r"   r   s     r#   test_KzLongLong_TestCase.test_K  s   '''''')Y555)Y888II&6&8&899:::)Y

;;;)Y	<<<IIikk22333)Y666IIkmm44555)Y999)Y		:::IIgii00111YYz%:%:;;;IIaLL)))IIjl33444YYr]]+++j0))J2G2GHHHHHr&   N)r(   r)   r*   r   r   r    r&   r#   r   r   {  s:        @ @ @4I I I I Ir&   r   c                   F    e Zd Zd Zd Zej        d             Zd Zd Z	dS )Float_TestCasec                     |                      ||           |                      t          j        d|          t          j        d|                     d S )Nr   )r   mathcopysign)r"   actualexpecteds      r#   assertEqualWithSignz"Float_TestCase.assertEqualWithSign  sL    ***q&114=H3M3MNNNNNr&   c                    ddl m} |                      |d          d           |                      |d          d           |                     t          |d           |                      |t                                d           |                      |t          d                    d           |                      |t          d                    d           |                     t          |t                                 | 	                    t                    5  |                      |t                                d           d d d            n# 1 swxY w Y   |                      |t          d                    d           |                      |t                                d           |                     t          |t                                 t          t           t           t            t"          t"           fD ]!}|                      ||          |           "t           t$          k     rT|                      |t$                    t"                     |                      |t$                     t"                      t          t&          k    rI|                      |t&                    d	           |                      |t&                     d
           |                      |d	          d	           |                      |d
          d
            |t*                    }|                     ||           d S )Nr   	getargs_frT            @      @              @     X@               )r   r   r   r   r   rQ   rX   r\   r_   r   r   rb   rh   r   r@   r   r   INFr   r   r   NANassertNotEqual)r"   r   xrs       r#   test_fzFloat_TestCase.test_f  s0   ''''''4$///1s+++)Y888577++T222=#5#566<<<>##6#677===)Y

;;;011 	; 	;YYy{{33T:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;9S>>22C888577++T222)Y666G8WwhcTB 	. 	.AYYq\\1----WYYw//555YYx003$777W$$YYw%7%7===$$YYx%8%8$???  3555  4$777IcNNAq!!!!!   &,EE"%E"c                     ddl m} |                      |d          t                     |                      |d          t                      d S )Nr   r   gnGgn)r   r   r   r   )r"   r   s     r#   test_f_roundingzFloat_TestCase.test_f_rounding  s\    ''''''=117;;;>22WH=====r&   c                    ddl m} |                      |d          d           |                      |d          d           |                     t          |d           |                      |t                                d           |                      |t          d                    d           |                      |t          d                    d           |                     t          |t                                 | 	                    t                    5  |                      |t                                d           d d d            n# 1 swxY w Y   |                      |t          d                    d           |                      |t                                d           |                     t          |t                                 t          t           t           t            t"          t"           fD ]!}|                      ||          |           "|                     t$          |d	t&          z             |                     t$          |d
t&          z             |                      |d          d           |                      |d          d            |t*                    }|                     ||           d S )Nr   )	getargs_drT   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   rQ   rX   r\   r_   r   r   rb   rh   r   r@   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88577++T222=#5#566<<<>##6#677===)Y

;;;011 	; 	;YYy{{33T:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;9S>>22C888577++T222)Y666G8WwhcTB 	. 	.AYYq\\1-----A{NCCC-BODDD  3555  4$777IcNNAq!!!!!r   c                 ~   ddl m} |                      |d          d           |                      |d          d           |                      |d          d           |                      |t                                d           |                      |t	          d                    d           |                      |t          d                    d           |                     t          |t                                 | 	                    t                    5  |                      |t                                d           d d d            n# 1 swxY w Y   |                      |t          d                    d           |                      |t                                d	           |                     t          |t                                 t          t           t           t            t"          t"           fD ]`}t%          |d
          }|                      ||          |           t%          d
|          }|                      ||          |           a|                      |t%          dd
                    j        d           |                      |t%          dd
                    j        d           |                      |t%          d
d                    j        d           |                      |t%          d
d                    j        d           d S )Nr   )	getargs_Drn   rT   r   r   y      @        y      @      ?y     X@        r3   r   r   )r   r   r   rk   rt   rv   r   r   ry   r   r   r|   r   r   r@   r   r   r   complexr   realimag)r"   r   r   cs       r#   test_DzFloat_TestCase.test_D  s=   ''''''9--y9994'2221v...799--y999?9#=#=>>	JJJ#3I#>#>??KKK)Y
===011 	B 	BYY{}}55yAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B;y#9#9::IFFF577++W555)Y666G8WwhcTB 	. 	.A3AYYq\\1---QAYYq\\1----  73+<+<!=!=!BCHHH  74+=+=!>!>!CTJJJ  73+<+<!=!=!BCHHH  73+=+=!>!>!CTJJJJJs   ),E!!E%(E%N)
r(   r)   r*   r   r   r   requires_IEEE_754r   r   r   r    r&   r#   r   r     sw        O O O" " "8 > > >
" " "0K K K K Kr&   r   c                       e Zd ZdZd ZdS )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dS )Boolean_TestCasec                    ddl m} |                     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 |dg                     |                     d |ddi                     |                     d |t          j                             |                     t          |t                                 d S )Nr   )	getargs_pFr   y                 r    r   Tr3   y              ?r   r      )r   r   r   unittestTestCaser   r   r   )r"   r   s     r#   test_pzBoolean_TestCase.test_p  sb   ''''''IIe,,---IIdOO,,,IIaLL)))IIcNN+++IIbMM***IIbMM***IIbMM***IIbMM***IIbMM***IIdOO,,,IIaLL)))IIcNN+++IIbMM***IIcNN+++IIdOO,,,IIqcNN+++IIqe,,---IIh&788999-y'))DDDDDr&   N)r(   r)   r*   r   r    r&   r#   r   r     s(        E E E E Er&   r   c                       e Zd Zd Zd ZdS )Tuple_TestCasec                    ddl m}  |dd          }|                     |d           |                     t	          |          t
                      |dgdR  }|                     |d           |                     t	          |          t
                      |ddg }|                     |d           |                     t	          |          t
                      |t          ddg           }|                     |d           |                     t	          |          t
                      |            }|                     |d           |                     t	          |          t
          t	          d           f            |d	 }|                     |d           |                     t	          |          t
          t	          d           f           d S )
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_args'  s   &&&&&&hq!nnf%%%d3ii'''hq"6"""i(((d3ii'''hAf%%%d3ii'''hq!f--.f%%%d3ii'''hjjc:&&&d3ii%d!4555hmc:&&&d3ii%d!455555r&   c                     ddl m}  |dd          }|                     |d            G d d          }|                     t          |d |                       d S )Nr   )getargs_tupler   r   r   c                       e Zd Zd Zd ZdS )&Tuple_TestCase.test_tuple.<locals>.seqc                     dS )Nr   r    r!   s    r#   __len__z.Tuple_TestCase.test_tuple.<locals>.seq.__len__J  s    qr&   c                     t           r   )
ValueError)r"   ns     r#   __getitem__z2Tuple_TestCase.test_tuple.<locals>.seq.__getitem__L  s      r&   N)r(   r)   r*   r  r  r    r&   r#   seqr	  I  s2          ! ! ! ! !r&   r  )r   r  r   r   r   )r"   r  r  r  s       r#   
test_tuplezTuple_TestCase.test_tupleB  s    ++++++mAv&&g&&&	! 	! 	! 	! 	! 	! 	! 	!
 	)]Assuu=====r&   N)r(   r)   r*   r  r  r    r&   r#   r   r   &  s2        6 6 66> > > > >r&   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )Keywords_TestCasec           	      ^   ddl m}  |dd          }|                     |ddd           |                     t	          |          t
                      |d
ddiddd}|                     |dddd	           |                     t	          |          t
                      |d
i t          ddd          }|                     |ddd           |                     t	          |          t
                      |            }|                     |i d f           |                     t	          |          t
          t	          d           f            |d
i i }|                     |i d f           |                     t	          |          t
          t	          d           f           d S )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_kwargsQ  s   ((((((j1"""AA..///d3ii&&&j1111aa 0 011AAA66777d3ii&&&j::<aa(8(899::AA..///d3ii&&&jllcB:&&&d3ii$T

!3444j2cB:&&&d3ii$T

!344444r&   c           	      T    |                      t          ddddd          d           d S )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_argsh  s:    UAy'2>>+	 	 	 	 	r&   c           	      V    |                      t          ddddd          d           d S )Nr   r   r  r  r#  )arg4arg5r$  r%  r!   s    r#   test_mixed_argsz!Keywords_TestCase.test_mixed_argso  s=    UAywRHHH+	 	 	 	 	r&   c           	      V    |                      t          ddddd          d           d S )Nr   r   r  r  r#  )arg1arg2arg3r(  r)  r$  r%  r!   s    r#   test_keyword_argsz#Keywords_TestCase.test_keyword_argsv  s>    %aigTVWWW+	 	 	 	 	r&   c                 R    |                      t          ddd          d           d S )Nr   r   r#  )r,  r-  r)  )
r   r   r   r   r   r   r   r   r   r#  r%  r!   s    r#   test_optional_argsz$Keywords_TestCase.test_optional_args}  s9    %ab9991	 	 	 	 	r&   c                     	 t          d           |                     d           d S # t          $ r.}|                     t	          |          d           Y d }~d S 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  s    	;%((((
 II9:::::	  	O 	O 	OCMO O O O O O O O O	Os   ) 
A!#AA!c                     	 t          dddddd           |                     d           d S # t          $ r.}|                     t	          |          d           Y d }~d S d }~ww xY w)	Nr   r   r  r  r#  o   r3  z,function takes at most 5 arguments (6 given)r4  r7  s     r#   test_too_many_argsz$Keywords_TestCase.test_too_many_args  s    	;U1Ywr#>>> II9:::::  	W 	W 	WSXX'UVVVVVVVVV	Ws   - 
A%#A  A%c                     	 t          dddd           |                     d           d S # t          $ r.}|                     t	          |          d           Y d }~d S d }~ww xY w)Nr   r   r#    )r)  arg666r3  z9'arg666' is an invalid keyword argument for this functionr4  r7  s     r#   test_invalid_keywordz&Keywords_TestCase.test_invalid_keyword  s    	;U1"C8888 II9:::::  	d 	d 	dSXX'bccccccccc	ds   , 
A$#AA$c                     	 t          di ddi |                     d           d S # t          $ r.}|                     t	          |          d           Y d }~d S d }~ww xY w)N)r   r   r  r     r#  r3  6   '' is an invalid keyword argument for this functionr4  r7  s     r#   test_surrogate_keywordz(Keywords_TestCase.test_surrogate_keyword  s    	;LLh^LLL II9:::::  	d 	d 	dSXX'bccccccccc	ds   ' 
A#AAN)r(   r)   r*   r  r&  r*  r/  r1  r9  r<  r@  rD  r    r&   r#   r  r  P  s        5 5 5.        ; ; ;; ; ;; ; ;; ; ; ; ;r&   r  c                   J    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S )KeywordOnly_TestCasec                 N    |                      t          dd          d           d S )Nr   r   r   r   r   r   r   r!   s    r#   r&  z)KeywordOnly_TestCase.test_positional_args  s4     A&&	 	 	 	 	r&   c                 R    |                      t          ddd          d           d S )Nr   r   r   keyword_onlyr   rI  r!   s    r#   r*  z$KeywordOnly_TestCase.test_mixed_args  s9     AA666	 	 	 	 	r&   c                 R    |                      t          ddd          d           d S )Nr   r   r   )requiredoptionalrL  r   rI  r!   s    r#   r/  z&KeywordOnly_TestCase.test_keyword_args  s9     !aaHHH	 	 	 	 	r&   c                     |                      t          dd          d           |                      t          dd          d           d S )Nr   r   )rN  rO  rH  r   )rN  rL  r   r   r   rI  r!   s    r#   r1  z'KeywordOnly_TestCase.test_optional_args  sd     !a888	 	 	 	 !!<<<	 	 	 	 	r&   c                    |                      t          d          d           |                      t          d          d           |                     t          d          5  t          d           d d d            n# 1 swxY w Y   |                     t          d          5  t          d           d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   )rN  z7function missing required argument 'required' \(pos 1\)r   )rO  r   rK  )r   r   assertRaisesRegexr   r!   s    r#   r9  z'KeywordOnly_TestCase.test_required_args  sl    ##	 	 	 	 !,,,	 	 	
 ##IFH H 	- 	- !,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- ##IFH H 	1 	1 a0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s$   #B  BB&CCCc                    |                      t          d          5  t          ddd           d d d            n# 1 swxY w Y   |                      t          d          5  t          dddd           d d d            d S # 1 swxY w Y   d S )Nz9function takes at most 2 positional arguments \(3 given\)r   r   r   z.function takes at most 3 arguments \(4 given\)r  rK  rT  r   r   r!   s    r#   r<  z'KeywordOnly_TestCase.test_too_many_args  s   ##IHJ J 	* 	* Aq)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ##I=? ? 	: 	: Aqq9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   :>> BBBc                     |                      t          d          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nz:'monster' is an invalid keyword argument for this functionr   r   r>  )monsterrV  r!   s    r#   r@  z)KeywordOnly_TestCase.test_invalid_keyword  s    ##IHJ J 	4 	4 As3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   <A A c                     |                      t          d          5  t          di ddi d d d            d S # 1 swxY w Y   d S )NrC  r   r   rB  r#  r   rV  r!   s    r#   rD  z+KeywordOnly_TestCase.test_surrogate_keyword  s    ##IGI I 	9 	9 88(B888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   8<<c                 V    G d dt                     }|                     t          d          5  t          d
i  |d          di d d d            n# 1 swxY w Y   |                     t          d          5  t          d
i  |d          d	i d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )<KeywordOnly_TestCase.test_weird_str_subclass.<locals>.BadStrc                     dS r9   r    r"   others     r#   __eq__zCKeywordOnly_TestCase.test_weird_str_subclass.<locals>.BadStr.__eq__  s    tr&   c                 <    t                               |           dz  S )Nr   r6  __hash__r!   s    r#   rc  zEKeywordOnly_TestCase.test_weird_str_subclass.<locals>.BadStr.__hash__  s    ||D))A--r&   Nr(   r)   r*   r`  rc  r    r&   r#   BadStrr\    s2          . . . . .r&   re  *invalid keyword argument for this functionr   r   rL  r   rX  r>  r   r6  rT  r   r   r"   re  s     r#   test_weird_str_subclassz,KeywordOnly_TestCase.test_weird_str_subclass  s   	. 	. 	. 	. 	.S 	. 	. 	. ##I8: : 	F 	F EE&&*@*@!)DEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F ##I8: : 	C 	C BB&&*;*;S)ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C#   AAA9BB"%B"c                 V    G d dt                     }|                     t          d          5  t          d
i  |d          di d d d            n# 1 swxY w Y   |                     t          d          5  t          d
i  |d          d	i d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )=KeywordOnly_TestCase.test_weird_str_subclass2.<locals>.BadStrc                     dS )NFr    r^  s     r#   r`  zDKeywordOnly_TestCase.test_weird_str_subclass2.<locals>.BadStr.__eq__  s    ur&   c                 6    t                               |           S r   rb  r!   s    r#   rc  zFKeywordOnly_TestCase.test_weird_str_subclass2.<locals>.BadStr.__hash__   s    ||D)))r&   Nrd  r    r&   r#   re  rm    s2          * * * * *r&   re  rf  r   r   rL  r   rX  r>  r   rg  rh  s     r#   test_weird_str_subclass2z-KeywordOnly_TestCase.test_weird_str_subclass2  s   	* 	* 	* 	* 	*S 	* 	* 	*
 ##I8: : 	F 	F EE&&*@*@!)DEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F ##I8: : 	C 	C BB&&*;*;S)ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Crj  N)r(   r)   r*   r&  r*  r/  r1  r9  r<  r@  rD  ri  rp  r    r&   r#   rF  rF    s              	 	 	1 1 1$: : :4 4 49 9 9
C C CC C C C Cr&   rF  c                   8    e Zd ZddlmZ d Zd Zd Zd Z	d Z
dS )	"PositionalOnlyAndKeywords_TestCaser   )$getargs_positional_only_and_keywordsc                 \    |                      |                     ddd          d           d S )Nr   r   r   r   r   getargsr!   s    r#   r&  z7PositionalOnlyAndKeywords_TestCase.test_positional_args  s.    aA..	:::::r&   c                 ^    |                      |                     ddd          d           d S )Nr   r   r   keywordr   ru  r!   s    r#   r*  z2PositionalOnlyAndKeywords_TestCase.test_mixed_args  s0    aA66	BBBBBr&   c                     |                      |                     dd          d           |                      |                     dd          d           d S )Nr   r   rH  r   rx  rQ  ru  r!   s    r#   r1  z5PositionalOnlyAndKeywords_TestCase.test_optional_args  sR    a++Z888a33Z@@@@@r&   c                 z   |                      |                     d          d           |                     t          d          5  |                                  d d d            n# 1 swxY w Y   |                     t          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )Nr   rS  9function takes at least 1 positional argument \(0 given\)r   rx  )r   rv  rT  r   r!   s    r#   r9  z5PositionalOnlyAndKeywords_TestCase.test_required_args  s8   a+666##IHJ J 	 	LLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##IHJ J 	$ 	$LLL###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   A&&A*-A*B00B47B4c                     |                      t          d          5   | j        di ddi d d d            d S # 1 swxY w Y   d S )Nz3'' is an invalid keyword argument for this functionr   r   r   r>  r   )rT  r   rv  r!   s    r#   test_empty_keywordz5PositionalOnlyAndKeywords_TestCase.test_empty_keyword%  s    ##IAC C 	, 	,DL++"c+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   9= =N)r(   r)   r*   r   rs  rv  r&  r*  r1  r9  r~  r    r&   r#   rr  rr  
  sw        IIIIII; ; ;C C CA A A
	$ 	$ 	$, , , , ,r&   rr  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )Bytes_TestCasec                    ddl m} |                     t          |d           |                      |d          d           |                      |t          d                    d           |                     t          |t          d                     |                     t          |d           |                     t          |d           |                     t          |d            d S )Nr   )	getargs_cs   abc   aa   s)r   r  r   r   r   	bytearray
memoryview)r"   r  s     r#   test_czBytes_TestCase.test_c,  s    '''''')Y7774"---9T??33R888)Y
40@0@AAA)Y444)Y333)Y55555r&   c                    ddl m} |                     t          |d           |                      |d          d           |                     t
          |d           |                     t          |t          d                     |                     t          |t          d                     |                     t          |d            d S )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_y6  s    '''''')Y	:::8,,h777*i;;;)Y	,0G0GHHH)Y
=0I0IJJJ)Y55555r&   c                    ddl m} |                     t          |d           |                      |d          d           |                      |d          d           |                      |t          d                    d           |                      |t          d                    d           |                     t          |d            d S )Nr   )getargs_y_starr  r  r  r  r  )r   r  r   r   r   r  r  )r"   r  s     r#   test_y_starzBytes_TestCase.test_y_star?  s    ,,,,,,)^Y???118<<<	22I>>>	,(?(?@@,OOO
=(A(ABBMRRR)^T:::::r&   c                    ddl m} |                     t          |d           |                      |d          d           |                      |d          d           |                     t          |t          d                     |                     t          |t          d                     |                     t          |d            d S )Nr   )getargs_y_hashr  r  r  r  r  )r   r  r   r   r   r  r  )r"   r  s     r#   test_y_hashzBytes_TestCase.test_y_hashH  s    ,,,,,,)^Y???118<<<	22I>>>)^Y|5L5LMMM)^Z5N5NOOO)^T:::::r&   c                    ddl m} |                     t          |d           |                     t          |d           |                     t          |d           |                     t          |t	          d                     t          d          }|                      ||          d           |                     |t          d                     t          d          }|                      |t	          |                    d	           |                     |t          d	                     |                     t          |d            d S )
Nr   )getargs_w_starr  r  r  r  s	   [ytearra]r  s
   [emoryvie])r   r  r   r   r  r  r   )r"   r  bufs      r#   test_w_starzBytes_TestCase.test_w_starQ  s6   ,,,,,,)^Y???)^X>>>)^Y???)^Z5I5IJJJ%%,,l;;;i55666&&
388-HHHi66777)^T:::::r&   N)r(   r)   r*   r  r  r  r  r  r    r&   r#   r  r  +  s_        6 6 66 6 6; ; ;; ; ;; ; ; ; ;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dS )String_TestCasec                 P   ddl m} |                     t          |d           |                      |d          d           |                      |d          d           |                      |d          d	           |                     t          |d
           |                     t          |t          d
                     |                     t          |t          d
                     |                     t          |d           |                     t          |d            d S )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_Cb  s   '''''')Y6663,,,8,,f555<00':::)Y555)Y	$@@@)Y
40@0@AAA)Y333)Y55555r&   c                    ddl m} |                      |d          d           |                     t          |d           |                     t
          |d           |                     t
          |t          d                     |                     t
          |t          d                     |                     t
          |d            d S )	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_sn  s    ''''''9--~>>>*i:::)Y999)Y	,0G0GHHH)Y
=0I0IJJJ)Y55555r&   c                    ddl m} |                      |d          d           |                      |d          d           |                      |d          d           |                      |t          d                    d           |                      |t	          d	                    d	           |                     t          |d            d S )
Nr   )getargs_s_starr  r  r  r  r  r  r  )r   r  r   r  r  r   r   )r"   r  s     r#   test_s_starzString_TestCase.test_s_starw  s    ,,,,,,	22NCCC119===118<<<	,(?(?@@,OOO
=(A(ABBMRRR)^T:::::r&   c                    ddl m} |                      |d          d           |                      |d          d           |                      |d          d           |                     t          |t          d                     |                     t          |t          d	                     |                     t          |d            d S )
Nr   )getargs_s_hashr  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    ,,,,,,	22NCCC119===118<<<)^Y|5L5LMMM)^Z5N5NOOO)^T:::::r&   c                    ddl m} ddl m} t          ddg          }|                     t
          ||d           |                     t
          ||d           |                     t
          ||d           |                     t
          ||d	           |                     t
          ||d           |                     t
          ||d           |                    d
           d S )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00000111111A+'93FFF+'93"EEE+'93%HHH+':CJJJ+':C2FFF+':C5III

1r&   c                    ddl m} |                      |d          d           |                     t          |d           |                     t
          |d           |                     t
          |t          d                     |                     t
          |t          d                     |                      |d                      d S )	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99)Y	,0G0GHHH)Y
=0I0IJJJ))D//*****r&   c                    ddl m} |                      |d          d           |                      |d          d           |                      |d          d           |                      |t          d                    d           |                      |t	          d	                    d	           |                      |d                      d S )
Nr   )getargs_z_starr  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    ,,,,,,	22NCCC119===118<<<	,(?(?@@,OOO
=(A(ABBMRRR..../////r&   c                    ddl m} |                      |d          d           |                      |d          d           |                      |d          d           |                     t          |t          d                     |                     t          |t          d	                     |                      |d                      d S )
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_hash  s    ,,,,,,	22NCCC119===118<<<)^Y|5L5LMMM)^Z5N5NOOO..../////r&   c                 Z   ddl m} |                      |d          d           |                      |dd          d           |                     t          |dd           |                     t
          |dd           |                     t          |d	d           |                     t          |t          d
          d           |                     t          |t          d          d           |                     t          |d d           |                     t          |dd           d S )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8*EEE,j)WMMM+z9fEEE)Z8DDD)Z<1H1H(SSS)ZM1J1JHUUU)Zx@@@)Z8DDDDDr&   c                    ddl m} |                      |d          d           |                      |dd          d           |                     t          |dd           |                     t
          |dd           |                      |d	d          d	           |                      |t          d
          d          d
           |                     t          |t          d          d           |                     t          |d d           |                     t          |dd           |                     t          |dd           |                     t          |t          d          d           d S )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  so   ((((((I..???Ix88*EEE,j)WMMM+z9fEEEHh77BBBIl$;$;XFFUUU)ZM1J1JHUUU)Zx@@@)Z8DDD)ZHEEE)Z91E1ExPPPPPr&   c                    ddl m} |                      |d          d           |                      |dd          d           |                     t          |dd           |                     t
          |dd           |                     t          |d	d           |                     t          |t          d
          d           |                     t          |t          d          d           |                     t          |d d           |                      |dd          d           t          d          }|                      |dd|          d           |                     |t          d                     t          d          }|                      |dd|          d           |                     |t          d                     t          d          }|                     t          |dd|           |                     |t          d                     t                      }|                     t          |dd|           d S )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  s7   ------33^DDDH==zJJJ,oy'RRR+	6JJJ)_hIII)_i6M6MxXXX)_j6O6OQYZZZ)_dHEEE8<<iHHHHcBBJOOOi(9::;;;HcBBJOOOi77888*oy(CPPPi//000kk*oy(CPPPPPr&   c                 J   ddl m} |                      |d          d           |                      |dd          d           |                     t          |dd           |                     t
          |dd           |                      |d	d          d	           |                      |t          d
          d          d
           |                     t          |t          d          d           |                     t          |d d           |                      |dd          d           |                      |dd          d           |                      |t          d          d          d           t          d          }|                      |dd|          d           |                     |t          d                     t          d          }|                      |dd|          d           |                     |t          d                     t          d          }|                     t          |dd|           |                     |t          d                     t                      }|                     t          |dd|           d S )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3^DDDH==zJJJ,oy'RRR+	6JJJ8<<hGGG<)@)@(KK\ZZZ)_j6O6OQYZZZ)_dHEEE8<<iHHHH==yIII9)=)=xHH)TTTHcBBJOOOi(9::;;;HcBBJOOOi77888*oy(CPPPi//000kk*oy(CPPPPPr&   c                    ddl m} |                     t                    5  |                      |d          d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d            d d d            n# 1 swxY w Y   t          j                    5  t          j        dt                     |                     t          |d           d d d            d S # 1 swxY w Y   d S )	Nr   )	getargs_ur  r  r  r  r  error)r   r  r   r   r   r   r  r   r  r  warningscatch_warningssimplefilter)r"   r  s     r#   test_uzString_TestCase.test_u  s   ''''''011 	> 	>YYy119===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>011 	? 	?j)X>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?011 	> 	>iH===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>011 	M 	MiIl4K4KLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M011 	O 	OiJ}4M4MNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O011 	: 	:iD999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:$&& 	H 	H!'+=>>>0)YGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs}    AAA2BB"B C))C-0C-*EEE)*FF#&F#G--G14G17IIIc                    ddl m} |                     t                    5  |                      |d          d           d d d            n# 1 swxY w Y   |                     t                    5  |                      |d          d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d            d d d            n# 1 swxY w Y   t          j
                    5  t          j        dt                     |                     t          |d           d d d            d S # 1 swxY w Y   d S )	Nr   )getargs_u_hashr  r  r  r  r  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  sI   ,,,,,,011 	C 	C^^I66	BBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C011 	A 	A^^H55x@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A011 	C 	CiBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C011 	R 	Ri<9P9PQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R011 	T 	TiM9R9RSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T011 	? 	?i>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?$&& 	M 	M!'+=>>>0.)LLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms}    AAA2 BB"%B"C,,C03C0*EEE,*F""F&)F&G00G47G47IIIc                    ddl m} |                     t                    5  |                      |d          d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  | 
                     |d                      d d d            n# 1 swxY w Y   t          j                    5  t          j        dt                     |                     t          |d           d d d            d S # 1 swxY w Y   d S )	Nr   )	getargs_Zr  r  r  r  r  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'  s   ''''''011 	> 	>YYy119===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>011 	? 	?j)X>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?011 	> 	>iH===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>011 	M 	MiIl4K4KLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M011 	O 	OiJ}4M4MNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O011 	/ 	/iioo...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/$&& 	H 	H!'+=>>>0)YGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs}    AAA2BB"B C))C-0C-*EEE)*FF#&F#G//G36G37IIIc                    ddl m} |                     t                    5  |                      |d          d           d d d            n# 1 swxY w Y   |                     t                    5  |                      |d          d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |d           d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  |                     t          |t          d                     d d d            n# 1 swxY w Y   |                     t                    5  | 	                     |d                      d d d            n# 1 swxY w Y   t          j                    5  t          j        dt                     |                     t          |d           d d d            d S # 1 swxY w Y   d S )	Nr   )getargs_Z_hashr  r  r  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:  sO   ,,,,,,011 	C 	C^^I66	BBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C011 	A 	A^^H55x@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A011 	C 	CiBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C011 	R 	Ri<9P9PQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R011 	T 	TiM9R9RSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T011 	4 	4nnT22333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4$&& 	M 	M!'+=>>>0.)LLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms}    AAA2 BB"%B"C,,C03C0*EEE,*F""F&)F&G22G69G67IIIc                 L    ddl m} |                     t          |dd           d S )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_argsM  s5    111111)%8#uEEEE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  a  sp       
6 
6 
66 6 6; ; ;; ; ;  "+ + +0 0 00 0 0
E 
E 
EQ Q QQ Q Q0Q Q Q4 )H H *)H$ )M M *)M$ )H H *)H$ )M M *)M$F F F F Fr&   r  c                        e Zd Zd Zd Zd ZdS )Object_TestCasec                 h   ddl m} d}|                      ||          |           |                     t          |t          d                     |                     t          |d           |                     t          |d            |                     t          |t          |                     d S )Nr   )	getargs_Sr  r  r6  )r   r  r   r   r   r  r  )r"   r  objs      r#   test_SzObject_TestCase.test_SS  s    ''''''iinnc***)Y	,0G0GHHH)Y666)Y555)Y
3@@@@@r&   c                 h   ddl m} t          d          }|                      ||          |           |                     t
          |d           |                     t
          |d           |                     t
          |d            |                     t
          |t          |                     d S )Nr   )	getargs_Yr  r  r6  )r   r  r  r   r   r   r  )r"   r  r  s      r#   test_YzObject_TestCase.test_Y\  s    ''''''%%iinnc***)Y999)Y666)Y555)Y
3@@@@@r&   c                    ddl m} d}|                      ||          |           |                     t          |d           |                     t          |t          d                     |                     t          |d            d S )Nr   )	getargs_Ur6  r  r  )r   r  r   r   r   r  )r"   r  r  s      r#   test_UzObject_TestCase.test_Ue  s    ''''''iinnc***)Y999)Y	,0G0GHHH)Y55555r&   N)r(   r)   r*   r  r  r  r    r&   r#   r  r  R  sG        A A AA A A6 6 6 6 6r&   r  c                       e Zd Zd ZdS )Test6012c                 d    |                      t                              dd          d           d S )Nr   Worldr   )r   r   
argparsingr!   s    r#   testzTest6012.testp  s.    --gw??CCCCCr&   N)r(   r)   r*   r  r    r&   r#   r  r  o  s(        D D D D Dr&   r  c                   H    e Zd Z ej        e          d             Zd ZdS )SkipitemTestcategoryc                 V   d}d}ddi}ddg}t          dd          D ]
}t          |          }|dv r|d	z   }	 t                              ||||           d
}n9# t          $ r}	d}
t          |	          |
k    }Y d}	~	nd}	~	wt          $ r d
}Y nw xY wd|z   }	 t                              ||||           d
}n?# t          $ r2}	d                    |          }
t          |	          |
k    }Y d}	~	nd}	~	ww xY wd                    ||||          }|                     |||           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.

        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  r6  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_skipitemw  s   6 a:r3 #	C #	CAAA
 G|| WF)227FH& & &#(   1 1 1>$'FFaK       ) ) )#(   ) "FlO-22;#X/ / /$ - - -7>>vFF #A!-HHNq,(8I: I:  MM,(8'BBBBG#	C #	Cs5   A
B$A>>BBB99
C5(C00C5c           
         t           j        }d}d}ddi}ddg}d}t          j        D ]}dD ]}||z   }	|                     |	          5  d	|	z   d
z   }
|	|v r ||||
|           nA|                     t          d          5   ||||
|           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          t          dd                    D ]}d|z   }	d	|	z   d
z   }
|                     |	          5  |dv r ||||
|           nA|                     t          d          5   ||||
|           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nr    r  r  r   r  )
zs#zs*zz#zz*zu#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subTestrT  r  mapr  r  )r"   parser  r  r	  r
  	supportedr   c2fr  s              r#   test_skipitem_with_suffixz&SkipitemTest.test_skipitem_with_suffix  s   2a:P	% 
	R 
	RA 	R 	RF\\\++ R R&)AgmOI~~k6?HMMMM!33K$AC C R R!E+vQQQR R R R R R R R R R R R R R RR R R R R R R R R R R R R R R	R S%C..)) 		N 		NAaA!AgmOQ'' N N99E+vIIII// =? ? N Nk6?HMMMN N N N N N N N N N N N N N N	N N N N N N N N N N N N N N N		N 		Nsl   7B1?B	B1BB1!B"B11B58B5/E'5EE'EE'EE''E+	.E+	N)r(   r)   r*   r   ignore_warningsr   r  r  r    r&   r#   r  r  t  s]         %_$.@AAABC BC BABCHN N N N Nr&   r  c                        e Zd Zd Zd Zd ZdS )ParseTupleAndKeywords_Testc           	      X   |                      t          t          j        di dg            |                      t          t          j        di dd           |                      t          t          j        di ddgdz             |                      t          t          j        di ddg           d S )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b"b	* 	* 	**i&Hb"b	* 	* 	**i&Hb"rdRi	1 	1 	1*i&Hb"rd	, 	, 	, 	, 	,r&   c           	      l   |                      t          t          j        di ddg           |                      t          t          j        di dddg           |                      t          t          j        dddid	dg           |                      t          t          j        ddd
ddddg           |                      t          t          j        dddiddg           |                      t          t          j        ddd
ddddg           |                      t          t          j        di dddg           |                      t          t          j        di ddg           |                      t          t          j        di ddg           |                      t          t          j        di dddg           d S )Nr   z||Or  r   z|O|Or  r    r   z$$Or   r  z$O$Oz$|Oz$O|Oz|Oz|OOz|$Or   )r   r  r   r  r!   s    r#   test_bad_usez'ParseTupleAndKeywords_Test.test_bad_use  s    	+y'IEC5	2 	2 	2+y'I "fsCj	: 	: 	:+y'IsAhu	6 	6 	6+y'IAA..c
	D 	D 	D+y'IsAhu	6 	6 	6+y'IAA..c
	D 	D 	D+y'ID3*	6 	6 	6+y'IEC5	2 	2 	2+y'Ib%"	/ 	/ 	/+y'Ib%#r	4 	4 	4 	4 	4r&   c                    t           j        } |di dg d            |dddidg d           |                     t          d          5   |dddidg d           d d d            n# 1 swxY w Y    |di d	g d           |                     t          d
          5   |di d	g d           d d d            n# 1 swxY w Y    |dddidg d           |                     t          d          5   |dddidg d           d d d            n# 1 swxY w Y    |di dg d           |                     t          d
          5   |di dg d           d d d            n# 1 swxY w Y   |                     t          d          5   |di dg d           d d d            n# 1 swxY w Y   |                     t          d          5   |di d	g d           d d d            d S # 1 swxY w Y   d S )Nr   OOO)r   r   r  r   r  r   z:function takes at least 2 positional arguments \(1 given\)r   zO|OOr|  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  rT  r   r  )r"   r  s     r#   test_positional_onlyz/ParseTupleAndKeywords_Test.test_positional_only  s   2iUMMM222fsAh}}}555##ILN N 	8 	8E$a%777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	dB...##IKM M 	1 	1E"b&---000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	fsAh666##IKM M 	9 	9E$a&---888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	dB///##IKM M 	2 	2E"b'===111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 ##K1QRR 	4 	4E$G]]]333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4##KAA 	3 	3E$FMMM222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3sl   
A))A-0A-B<<C C 4DDD	E&&E*-E*F))F-0F-G--G14G1N)r(   r)   r*   r!  r#  r&  r    r&   r#   r  r    sA        	, 	, 	,4 4 403 3 3 3 3r&   r  c                       e Zd Z e                                d  ee          D                         ej        e	          d             Z
 ej        e	          d             ZdS )Test_testcapic              #      K   | ]E}|                     d           |                    d          ,|t          t          |          fV  FdS )test__codeN)
startswithendswithgetattrr   ).0names     r#   	<genexpr>zTest_testcapi.<genexpr>  st       L Lw//L48MM'4J4JLT79d334 L L L L L Lr&   r  c                 8    t                                            d S r   )r   test_u_coder!   s    r#   r3  zTest_testcapi.test_u_code       r&   c                 8    t                                            d S r   )r   test_Z_coder!   s    r#   r6  zTest_testcapi.test_Z_code$  r4  r&   N)r(   r)   r*   localsupdatedirr   r   r  r   r3  r6  r    r&   r#   r(  r(    s        
FHHOO L L #IL L L L L L %_$.@AAA    BA  %_$.@AAA    BA     r&   r(  __main__)Yr   r   r  sysr  r  r   test.supportr   r   import_moduler   r   r   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-   r0   r7   r=   r@   rE   rH   rK   rN   rQ   rX   r\   r_   rb   rh   rk   r   rt   rv   ry   r|   r   r  r   r  r   r   r   r   r   r   r   r   r   r  rF  rr  r  r  r  r  r  r  r(  r(   mainr    r&   r#   <module>rD     s	      



        & & & & & & ( ( ( ( ( ('M'44	 < < < < < < < <@ 	'
< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < n$eElleEll 		
           s                        
           #                     c   
       	 	 	 	 	E 	 	 	    U          # # # # # # # ## # # # # # # #
       	 	 	 	 	g 	 	 	    w          * * * * * * * ** * * * *' * * *
	 	 	 	 	E 	 	 		 	 	 	 	4 	 	 	zH zH zH zH zH) zH zH zHx`@ `@ `@ `@ `@h' `@ `@ `@F0I 0I 0I 0I 0I) 0I 0I 0IfVK VK VK VK VKX& VK VK VKr" " " " " " " "
E E E E Ex( E E E4(> (> (> (> (>X& (> (> (>TU; U; U; U; U;) U; U; U;n`C `C `C `C `C8, `C `C `CF, , , , ,): , , ,B3; 3; 3; 3; 3;X& 3; 3; 3;lnF nF nF nF nFh' nF nF nFb6 6 6 6 6h' 6 6 6:D D D D Dx  D D D
eN eN eN eN eN8$ eN eN eNP<3 <3 <3 <3 <3!2 <3 <3 <3~         H%       zHMOOOOO r&   