a
    ze                     @   sf  d dl Z d dlZd dlZd dlZd dlmZ e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 dZ%G dd de&Z'G dd dZ(G dd dZ)G dd de&Z*G dd dZ+G dd de&Z,G dd dZ-G dd dZ.G dd  d e&Z/G d!d" d"Z0G d#d$ d$eZ1G d%d& d&eZ2G d'd( d(Z3G d)d* d*Z4G d+d, d,eZ5G d-d. d.Z6G d/d0 d0e7Z8G d1d2 d2e7Z9G d3d4 d4Z:G d5d6 d6Z;G d7d8 d8e7Z<G d9d: d:e=Z>G d;d< d<e?Z@G d=d> d>e jAZBG d?d@ d@e jAZCG dAdB dBe jAZDG dCdD dDe jAZEG dEdF dFZFG dGdH dHe jAZGG dIdJ dJe jAZHG dKdL dLe jAZIG dMdN dNe jAZJG dOdP dPe jAZKG dQdR dRe jAZLG dSdT dTe jAZMG dUdV dVe jAZNG dWdX dXe jAZOG dYdZ dZe jAZPG d[d\ d\e jAZQG d]d^ d^e jAZReSd_krbe T  dS )`    N)support	_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                   @   s   e Zd Zdd ZdS )Indexc                 C   s   dS Nc    selfr   r   (/usr/lib/python3.9/test/test_getargs2.py	__index__9   s    zIndex.__index__N__name__
__module____qualname__r   r   r   r   r   r   8   s   r   c                   @   s   e Zd Zdd ZdS )IndexIntSubclassc                 C   s   dS r   r   r   r   r   r   r   =   s    zIndexIntSubclass.__index__Nr    r   r   r   r   r$   <   s   r$   c                   @   s   e Zd Zdd ZdS )BadIndexc                 C   s   dS N      ?r   r   r   r   r   r   A   s    zBadIndex.__index__Nr    r   r   r   r   r%   @   s   r%   c                   @   s   e Zd Zdd ZdS )	BadIndex2c                 C   s   dS NTr   r   r   r   r   r   E   s    zBadIndex2.__index__Nr    r   r   r   r   r(   D   s   r(   c                   @   s   e Zd Zdd ZdS )	BadIndex3c                 C   s   dS r)   r   r   r   r   r   r   I   s    zBadIndex3.__index__Nr    r   r   r   r   r*   H   s   r*   c                   @   s   e Zd Zdd ZdS )Intc                 C   s   dS r   r   r   r   r   r   __int__N   s    zInt.__int__Nr!   r"   r#   r,   r   r   r   r   r+   M   s   r+   c                   @   s   e Zd Zdd ZdS )IntSubclassc                 C   s   dS r   r   r   r   r   r   r,   R   s    zIntSubclass.__int__Nr-   r   r   r   r   r.   Q   s   r.   c                   @   s   e Zd Zdd ZdS )BadIntc                 C   s   dS r&   r   r   r   r   r   r,   V   s    zBadInt.__int__Nr-   r   r   r   r   r/   U   s   r/   c                   @   s   e Zd Zdd ZdS )BadInt2c                 C   s   dS r)   r   r   r   r   r   r,   Z   s    zBadInt2.__int__Nr-   r   r   r   r   r0   Y   s   r0   c                   @   s   e Zd Zdd ZdS )BadInt3c                 C   s   dS r)   r   r   r   r   r   r,   ^   s    zBadInt3.__int__Nr-   r   r   r   r   r1   ]   s   r1   c                   @   s   e Zd Zdd ZdS )Floatc                 C   s   dS N      @r   r   r   r   r   	__float__c   s    zFloat.__float__Nr!   r"   r#   r5   r   r   r   r   r2   b   s   r2   c                   @   s   e Zd ZdS )FloatSubclassNr!   r"   r#   r   r   r   r   r7   f   s   r7   c                   @   s   e Zd Zdd ZdS )FloatSubclass2c                 C   s   dS r3   r   r   r   r   r   r5   j   s    zFloatSubclass2.__float__Nr6   r   r   r   r   r9   i   s   r9   c                   @   s   e Zd Zdd ZdS )BadFloatc                 C   s   dS )Ni  r   r   r   r   r   r5   n   s    zBadFloat.__float__Nr6   r   r   r   r   r:   m   s   r:   c                   @   s   e Zd Zdd ZdS )	BadFloat2c                 C   s   t dS r3   r7   r   r   r   r   r5   r   s    zBadFloat2.__float__Nr6   r   r   r   r   r;   q   s   r;   c                   @   s   e Zd Zdd ZdS )	BadFloat3c                 C   s   t dS r3   r<   r   r   r   r   r5   v   s    zBadFloat3.__float__Nr6   r   r   r   r   r=   u   s   r=   c                   @   s   e Zd Zdd ZdS )Complexc                 C   s   dS N      @      ?r   r   r   r   r   __complex__{   s    zComplex.__complex__Nr!   r"   r#   rA   r   r   r   r   r>   z   s   r>   c                   @   s   e Zd ZdS )ComplexSubclassNr8   r   r   r   r   rC   ~   s   rC   c                   @   s   e Zd Zdd ZdS )ComplexSubclass2c                 C   s   dS r?   r   r   r   r   r   rA      s    zComplexSubclass2.__complex__NrB   r   r   r   r   rD      s   rD   c                   @   s   e Zd Zdd ZdS )
BadComplexc                 C   s   dS )Ng      ?r   r   r   r   r   rA      s    zBadComplex.__complex__NrB   r   r   r   r   rE      s   rE   c                   @   s   e Zd Zdd ZdS )BadComplex2c                 C   s   t dS r?   rC   r   r   r   r   rA      s    zBadComplex2.__complex__NrB   r   r   r   r   rF      s   rF   c                   @   s   e Zd Zdd ZdS )BadComplex3c                 C   s   t dS r?   rG   r   r   r   r   rA      s    zBadComplex3.__complex__NrB   r   r   r   r   rH      s   rH   c                   @   s   e Zd ZdS )TupleSubclassNr8   r   r   r   r   rI      s   rI   c                   @   s   e Zd ZdS )DictSubclassNr8   r   r   r   r   rJ      s   rJ   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Unsigned_TestCasec                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|d | d|d | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_bQ	@r      *   )r   rL   assertRaises	TypeErrorassertEqualr   r$   r%   assertWarnsDeprecationWarningr(   r*   r+   r.   r/   r0   r1   OverflowErrorr   
VERY_LARGE)r   rL   r   r   r   test_b   s*    002zUnsigned_TestCase.test_bc                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|d | d|d | t|t | d|td  | d|d | tt@ |t d S )Nr   )	getargs_BrM   r   rN   rO   rP   )r   rY   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   r   rW   )r   rY   r   r   r   test_B   s*    002zUnsigned_TestCase.test_Bc                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|d | d|d | t|t | d|td  | d|d | tt@ |t d S )Nr   )	getargs_HrM   r   rN   rO   rP   )r   r[   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   r   rW   )r   r[   r   r   r   test_H   s*    002zUnsigned_TestCase.test_Hc                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|d | d|d | t|t | d|td  | d|d | tt@ |t d S )Nr   )	getargs_IrM   r   rN   rO   rP   )r   r]   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   r   rW   )r   r]   r   r   r   test_I   s*    002zUnsigned_TestCase.test_Ic                 C   s.  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  | d|d | tt@ |t d S )Nr   )	getargs_krM   rO   rN   rP   )r   r_   rQ   rR   r   rS   r$   r%   r(   r*   r+   r.   r/   r0   r1   r	   rW   )r   r_   r   r   r   test_k  s$    zUnsigned_TestCase.test_kN)r!   r"   r#   rX   rZ   r\   r^   r`   r   r   r   r   rK      s
   rK   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Signed_TestCasec                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|td  | t|t | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_hrM   r   rN   rP   )r   rb   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   rV   r   r   rW   )r   rb   r   r   r   test_h  s*    002zSigned_TestCase.test_hc                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|td  | t|t | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_irM   r   rN   rP   )r   rd   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   rV   r   r
   rW   )r   rd   r   r   r   test_i8  s*    002zSigned_TestCase.test_ic                 C   s  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s.0    Y  | d|t  | t|td  | t|t | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_lrM   r   rN   rP   )r   rf   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   rV   r   r   rW   )r   rf   r   r   r   test_lR  s*    002zSigned_TestCase.test_lc                 C   sV  ddl m} | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t|t  | d|t  | t|t  | t|t  | d|t  | t|td  | t|t | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_nrM   r   rN   rP   )r   rh   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   rV   r   r   rW   )r   rh   r   r   r   test_nl  s&    0zSigned_TestCase.test_nN)r!   r"   r#   rc   re   rg   ri   r   r   r   r   ra     s   ra   c                   @   s   e Zd Zdd Zdd ZdS )LongLong_TestCasec                 C   s  ddl m} | t|d | t|d | d|t  | d|t  | t|t  | t	" | d|t
  W d    n1 s0    Y  | d|t  | t	" | d|t  W d    n1 s0    Y  | d|t  | t|t  | t	" | d|t  W d    n1 s<0    Y  | d|t  | t|td  | t|t | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_LrM   Hellor   rN   rP   )r   rk   rQ   rR   rS   r   r$   r%   rT   rU   r(   r*   r+   r.   r/   r0   r1   rV   	LLONG_MIN	LLONG_MAXrW   )r   rk   r   r   r   test_L  s,    002zLongLong_TestCase.test_Lc                 C   s  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  | d|d | tt@ |t d S )Nr   )	getargs_KrM   rN   rP   )r   rp   rQ   rR   r   rS   r$   r%   r(   r*   r+   r.   r/   r0   r1   
ULLONG_MAXrW   )r   rp   r   r   r   test_K  s"    zLongLong_TestCase.test_KN)r!   r"   r#   ro   rr   r   r   r   r   rj     s   rj   c                   @   s:   e Zd Zdd Zdd Zejdd Zdd Zd	d
 Z	dS )Float_TestCasec                 C   s,   |  || |  td|td| d S )NrN   )rS   mathcopysign)r   actualZexpectedr   r   r   assertEqualWithSign  s    z"Float_TestCase.assertEqualWithSignc                 C   s  ddl m} | |dd | |dd | t|d | |t d | |tdd | |tdd | t|t  | 	t
" | |t d W d    n1 s0    Y  | |tdd | |t d | t|t  tt tt tt fD ]}| ||| qttk rR| |tt | |t t  ttkr~| |td	 | |t d
 | |d	d	 | |d
d
 |t}| || d S )Nr   	getargs_fr4            @      @              @     X@               )r   ry   rS   rQ   rR   r2   r7   r9   r:   rT   rU   r;   r=   r   r+   r   r   INFr   r   rw   NANassertNotEqual)r   ry   xrr   r   r   test_f  s2    0

zFloat_TestCase.test_fc                 C   s2   ddl m} | |dt | |dt  d S )Nr   rx   gnGgn)r   ry   rS   r   )r   ry   r   r   r   test_f_rounding  s    zFloat_TestCase.test_f_roundingc                 C   s  ddl m} | |dd | |dd | t|d | |t d | |tdd | |tdd | t|t  | 	t
" | |t d W d    n1 s0    Y  | |tdd | |t d | t|t  tt tt tt fD ]}| ||| q| t|d	t>  | t|d
t>  | |dd | |dd |t}| || d S )Nr   )	getargs_dr4   rz   r{   r|   r}   r~   rN   rO   r   r   )r   r   rS   rQ   rR   r2   r7   r9   r:   rT   rU   r;   r=   r   r+   r   r   r   rV   DBL_MAX_EXPrw   r   r   )r   r   r   r   r   r   r   test_d  s*    0zFloat_TestCase.test_dc                 C   s  ddl m} | |dd | |dd | |dd | |t d | |tdd | |tdd | t|t  | 	t
" | |t d W d    n1 s0    Y  | |tdd | |t d	 | t|t  tt tt tt fD ]:}t|d
}| ||| td
|}| ||| q| |tdd
jd | |tdd
jd | |td
djd | |td
djd d S )Nr   )	getargs_Dr@   r4   r|   rz   y      @        y      @      ?y     X@        r'   r   r   )r   r   rS   r>   rC   rD   rQ   rR   rE   rT   rU   rF   rH   r   r+   r   r   r   complexrw   realimag)r   r   r   cr   r   r   test_D  s,    0

zFloat_TestCase.test_DN)
r!   r"   r#   rw   r   r   Zrequires_IEEE_754r   r   r   r   r   r   r   rs     s   
rs   c                   @   s   e Zd Zdd ZdS )Paradoxc                 C   s   t d S N)NotImplementedErrorr   r   r   r   __bool__  s    zParadox.__bool__N)r!   r"   r#   r   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )Boolean_TestCasec                 C   sH  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   rN   Tr'   y              ?r   rN      )r   r   rS   unittestTestCaserQ   r   r   )r   r   r   r   r   test_p  s(    zBoolean_TestCase.test_pN)r!   r"   r#   r   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd Zdd ZdS )Tuple_TestCasec                 C   s  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_argsrN   r   rN   r   r      rN   r   r   )r   Nr   )r   r   rS   assertIstypetuplerI   assertIn)r   r   retr   r   r   	test_args4  s&    
zTuple_TestCase.test_argsc                 C   sF   ddl m} |dd}| |d G dd d}| t|d|  d S )Nr   )getargs_tuplerN   r   r   c                   @   s   e Zd Zdd Zdd ZdS )z&Tuple_TestCase.test_tuple.<locals>.seqc                 S   s   dS )Nr   r   r   r   r   r   __len__W  s    z.Tuple_TestCase.test_tuple.<locals>.seq.__len__c                 S   s   t d S r   )
ValueError)r   nr   r   r   __getitem__Y  s    z2Tuple_TestCase.test_tuple.<locals>.seq.__getitem__N)r!   r"   r#   r   r   r   r   r   r   seqV  s   r   )r   r   rS   rQ   rR   )r   r   r   r   r   r   r   
test_tupleO  s
    
zTuple_TestCase.test_tupleN)r!   r"   r#   r   r   r   r   r   r   r   3  s   r   c                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )Keywords_TestCasec                 C   s  ddl m} |ddd}| |ddd | t|t |f ddiddd}| |dddd	 | t|t |f i tddd}| |ddd | t|t | }| |i d f | t|ttd f |f i i }| |i d f | t|ttd f d S )
Nr   )
get_kwargsrN   r   abr   r   )r   r   )r   r   r   )r   r   rS   r   r   dictrJ   r   )r   r   r   r   r   r   test_kwargs^  s     zKeywords_TestCase.test_kwargsc                 C   s   |  tdddddd d S )Nr   r   rz   )            	   
   
rN   r   r   rz   r   r   r   r   r   r   rS   r   r   r   r   r   test_positional_argsu  s    z&Keywords_TestCase.test_positional_argsc              	   C   s   |  tddddddd d S )Nr   r   r   r   r   )arg4arg5r   r   r   r   r   r   test_mixed_args|  s    z!Keywords_TestCase.test_mixed_argsc              	   C   s   |  tddddddd d S )Nr   r   r   r   r   )arg1arg2Zarg3r   r   r   r   r   r   r   r   test_keyword_args  s    z#Keywords_TestCase.test_keyword_argsc                 C   s   |  tddddd d S )Nr   r   r   )r   r   r   )
rN   r   r   rO   rO   rO   rO   rO   rO   r   r   r   r   r   r   test_optional_args  s    z$Keywords_TestCase.test_optional_argsc              
   C   sR   zt dd W n4 tyB } z| t|d W Y d }~nd }~0 0 | d d S )Nr   )r   z1function missing required argument 'arg2' (pos 2)!TypeError should have been raisedr   rR   rS   strZfailr   errr   r   r   test_required_args  s    z$Keywords_TestCase.test_required_argsc              
   C   sZ   zt dddddd W n4 tyJ } z| t|d W Y d }~nd }~0 0 | d d S )	Nr   r   r   r   r   o   z,function takes at most 5 arguments (6 given)r   r   r   r   r   r   test_too_many_args  s
    &z$Keywords_TestCase.test_too_many_argsc              
   C   sX   zt ddddd W n4 tyH } z| t|d W Y d }~nd }~0 0 | d d S )Nr   r   r     )r   Zarg666z9'arg666' is an invalid keyword argument for this functionr   r   r   r   r   r   test_invalid_keyword  s
    &z&Keywords_TestCase.test_invalid_keywordc              
   C   sZ   zt di ddi W n4 tyJ } z| t|d W Y d }~nd }~0 0 | d d S )N)r   r   r   r      r   6   '' is an invalid keyword argument for this functionr   r   r   r   r   r   test_surrogate_keyword  s
    &z(Keywords_TestCase.test_surrogate_keywordN)r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ]  s   
	r   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )KeywordOnly_TestCasec                 C   s   |  tddd d S )NrN   r   rN   r   rO   rS   r   r   r   r   r   r     s    z)KeywordOnly_TestCase.test_positional_argsc                 C   s   |  tddddd d S )NrN   r   r   keyword_onlyr   r   r   r   r   r   r     s    z$KeywordOnly_TestCase.test_mixed_argsc                 C   s   |  tddddd d S )NrN   r   r   )requiredoptionalr   r   r   r   r   r   r   r     s    z&KeywordOnly_TestCase.test_keyword_argsc                 C   s,   |  tdddd |  tdddd d S )NrN   r   )r   r   r   r   )r   r   rN   rO   r   r   r   r   r   r   r     s    

z'KeywordOnly_TestCase.test_optional_argsc                 C   s   |  tdd |  tddd | td tdd W d    n1 sN0    Y  | td tdd W d    n1 s0    Y  d S )	NrN   rN   rO   rO   )r   z7function missing required argument 'required' \(pos 1\)r   )r   r   r   )rS   r   assertRaisesRegexrR   r   r   r   r   r     s     (z'KeywordOnly_TestCase.test_required_argsc                 C   sx   |  td tddd W d    n1 s.0    Y  |  td  tddddd W d    n1 sj0    Y  d S )Nz9function takes at most 2 positional arguments \(3 given\)rN   r   r   z.function takes at most 3 arguments \(4 given\)r   r   r   rR   r   r   r   r   r   r     s    *z'KeywordOnly_TestCase.test_too_many_argsc                 C   s>   |  td tdddd W d    n1 s00    Y  d S )Nz:'monster' is an invalid keyword argument for this functionrN   r   r   )Zmonsterr   r   r   r   r   r     s    z)KeywordOnly_TestCase.test_invalid_keywordc                 C   sB   |  td" tdi ddi W d    n1 s40    Y  d S )Nr   rN   r   r   r   )rN   r   r   r   r   r   r   r     s    z+KeywordOnly_TestCase.test_surrogate_keywordN)r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r     s   	r   c                   @   s@   e Zd ZddlmZ dd Zdd Zdd Zd	d
 Z	dd Z
dS )"PositionalOnlyAndKeywords_TestCaser   )$getargs_positional_only_and_keywordsc                 C   s   |  | dddd d S )NrN   r   r   r   rS   getargsr   r   r   r   r     s    z7PositionalOnlyAndKeywords_TestCase.test_positional_argsc                 C   s   |  | jddddd d S )NrN   r   r   keywordr   r   r   r   r   r   r     s    z2PositionalOnlyAndKeywords_TestCase.test_mixed_argsc                 C   s.   |  | ddd |  | jdddd d S )NrN   r   r   r   r   r   r   r   r   r   r   r     s    z5PositionalOnlyAndKeywords_TestCase.test_optional_argsc                 C   s   |  | dd | td |   W d    n1 s<0    Y  | td | jdd W d    n1 st0    Y  d S )NrN   r   9function takes at least 1 positional argument \(0 given\)r   r   )rS   r   r   rR   r   r   r   r   r     s    &z5PositionalOnlyAndKeywords_TestCase.test_required_argsc                 C   sD   |  td$ | jdi ddi W d    n1 s60    Y  d S )Nz3'' is an invalid keyword argument for this functionrN   r   r   r   )rN   r   )r   rR   r   r   r   r   r   test_empty_keyword  s    z5PositionalOnlyAndKeywords_TestCase.test_empty_keywordN)r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r     s   r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Bytes_TestCasec                 C   s~   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   rQ   rR   rS   	bytearray
memoryview)r   r   r   r   r   test_c  s    zBytes_TestCase.test_cc                 C   sn   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   rQ   rR   rS   r   r   r   )r   r   r   r   r   test_y(  s    zBytes_TestCase.test_yc                 C   st   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   rQ   rR   rS   r   r   )r   r   r   r   r   test_y_star1  s    zBytes_TestCase.test_y_starc                 C   sp   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   rQ   rR   rS   r   r   )r   r   r   r   r   test_y_hash:  s    zBytes_TestCase.test_y_hashc                 C   s   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   rQ   rR   r   r   rS   )r   r   bufr   r   r   test_w_starC  s    zBytes_TestCase.test_w_starN)r!   r"   r#   r   r   r   r   r   r   r   r   r   r     s
   
			r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS ) String_TestCasec                 C   s   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   rQ   rR   rS   r   r   )r   r   r   r   r   test_CT  s    zString_TestCase.test_Cc                 C   sn   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  rS   rQ   r   rR   r   r   )r   r  r   r   r   test_s`  s    zString_TestCase.test_sc                 C   sv   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  rS   r   r   rQ   rR   )r   r  r   r   r   test_s_stari  s    zString_TestCase.test_s_starc                 C   sr   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	  rS   rQ   rR   r   r   )r   r	  r   r   r   test_s_hashr  s    zString_TestCase.test_s_hashc                 C   sn   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  rS   rQ   r   rR   r   r   assertIsNone)r   r  r   r   r   test_z{  s    zString_TestCase.test_zc                 C   sv   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  rS   r   r   r  )r   r  r   r   r   test_z_star  s    zString_TestCase.test_z_starc                 C   sr   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  rS   rQ   rR   r   r   r  )r   r  r   r   r   test_z_hash  s    zString_TestCase.test_z_hashc                 C   s   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  rS   rQ   UnicodeEncodeErrorLookupErrorrR   r   r   )r   r  r   r   r   test_es  s    zString_TestCase.test_esc                 C   s   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  rS   rQ   r  r  r   rR   r   )r   r  r   r   r   test_et  s    zString_TestCase.test_etc                 C   sF  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  rS   rQ   r  r  rR   r   r   r   )r   r  r   r   r   r   test_es_hash  s*    zString_TestCase.test_es_hashc                 C   sr  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#  rS   rQ   r  r  r   rR   r   r   )r   r#  r   r   r   r   test_et_hash  s.    zString_TestCase.test_et_hashc                 C   sn   ddl m} | |dd | t|d | t|d | t|td | t|td | t|d  d S )Nr   )	getargs_ur   r  r   r   r   )r   r%  rS   rQ   r   rR   r   r   )r   r%  r   r   r   test_u  s    zString_TestCase.test_uc                 C   sp   ddl m} | |dd | |dd | t|d | t|td | t|td | t|d  d S )Nr   )getargs_u_hashr   r  r   r   r   )r   r'  rS   rQ   rR   r   r   )r   r'  r   r   r   test_u_hash  s    zString_TestCase.test_u_hashc                 C   sn   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)  rS   rQ   r   rR   r   r   r  )r   r)  r   r   r   test_Z  s    zString_TestCase.test_Zc                 C   sp   ddl m} | |dd | |dd | t|d | t|td | t|td | |d  d S )Nr   )getargs_Z_hashr   r  r   r   r   )r   r+  rS   rQ   rR   r   r   r  )r   r+  r   r   r   test_Z_hash  s    zString_TestCase.test_Z_hashN)r!   r"   r#   r  r  r  r
  r  r  r  r  r  r"  r$  r&  r(  r*  r,  r   r   r   r   r   S  s   									r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Object_TestCasec                 C   sd   ddl m} d}| ||| | t|td | t|d | t|d  | t|t| d S )Nr   )	getargs_Sr   r   r   )r   r.  r   rQ   rR   r   r   )r   r.  objr   r   r   test_S  s    zObject_TestCase.test_Sc                 C   sd   ddl m} td}| ||| | t|d | t|d | t|d  | t|t| d S )Nr   )	getargs_Yr   r   r   )r   r1  r   r   rQ   rR   r   )r   r1  r/  r   r   r   test_Y  s    zObject_TestCase.test_Yc                 C   sR   ddl m} d}| ||| | t|d | t|td | t|d  d S )Nr   )	getargs_Ur   r   r   )r   r3  r   rQ   rR   r   )r   r3  r/  r   r   r   test_U  s    zObject_TestCase.test_UN)r!   r"   r#   r0  r2  r4  r   r   r   r   r-    s   		r-  c                   @   s   e Zd Zdd ZdS )Test6012c                 C   s   |  tddd d S )Nrl   ZWorldrN   )rS   r   Z
argparsingr   r   r   r   test%  s    zTest6012.testN)r!   r"   r#   r6  r   r   r   r   r5  $  s   r5  c                   @   s   e Zd Zdd Zdd ZdS )SkipitemTestc                 C   s"  d}d}ddi}ddg}t ddD ]}t|}|dv r8q"|d	 }zt|||| d
}W nH ty }	 zd}
t|	|
k}W Y d }	~	nd }	~	0  ty   d
}Y n0 d| }zt|||| d
}W n: ty }	 z"d|}
t|	|
k}W Y d }	~	n
d }	~	0 0 d||||}| ||| q"d S )Nr   r   r   rN   r          z()e|$iFz(argument 1 (impossible<bad format char>)|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_keywordsSystemErrorr   rR   formatr   )r   empty_tupletuple_1dict_bkeywordsr;  r   rA  Zwhen_not_skippeder   optional_formatZwhen_skippedmessager   r   r   test_skipitem+  s@     

"zSkipitemTest.test_skipitemc                 C   s|  t j}d}d}ddi}ddg}d}tjD ]}dD ]}|| }	| j|	dn d	|	 d
 }
|	|v rn||||
| n:| td ||||
| W d    n1 s0    Y  W d    q01 s0    Y  q0q(ttt	ddD ]}d| }	d	|	 d
 }
| j|	df |dv r||||
| n<| td ||||
| W d    n1 sL0    Y  W d    q1 sl0    Y  qd S )Nr   r8  r   rN   r   )
zs#zs*zz#zz*zu#zZ#zy#zy*zw#zw*z#*)rA  r<  r;  zimpossible<bad format char>r9     rF  st)
r   r?  stringascii_lettersZsubTestr   r@  mapr>  r=  )r   parserB  rC  rD  rE  Z	supportedr   c2frG  r   r   r   test_skipitem_with_suffixo  s6    
N
z&SkipitemTest.test_skipitem_with_suffixN)r!   r"   r#   rI  rR  r   r   r   r   r7  )  s   Dr7  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )ParseTupleAndKeywords_Testc              	   C   sd   |  ttjdi dg  |  ttjdi dd |  ttjdi ddgd  |  ttjdi ddg d S )Nr   rP   r   )rQ   rR   r   r?  r   r   r   r   r   test_parse_tuple_and_keywords  s    




z8ParseTupleAndKeywords_Test.test_parse_tuple_and_keywordsc              	   C   s  |  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   rN   z$$Or   r   z$O$Oz$|Oz$O|Oz|Oz|OOz|$Or   )rQ   r@  r   r?  r   r   r   r   test_bad_use  s<    












z'ParseTupleAndKeywords_Test.test_bad_usec                 C   s  t j}|di dg d |dddidg d | td& |dddidg d W d    n1 sf0    Y  |di d	g d | td
" |di d	g d W d    n1 s0    Y  |dddidg d | td& |dddidg d W d    n1 s0    Y  |di dg d | td
" |di dg d W d    n1 sb0    Y  | td" |di dg d W d    n1 s0    Y  | td" |di d	g d W d    n1 s0    Y  d S )Nr   Z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?  r   rR   r@  )r   rO  r   r   r   test_positional_only  s4    40622z/ParseTupleAndKeywords_Test.test_positional_onlyN)r!   r"   r#   rT  rU  rV  r   r   r   r   rS    s   rS  c                   @   s&   e Zd Ze dd eeD  dS )Test_testcapic                 c   s0   | ](}| d r|dr|tt|fV  qdS )Ztest__codeN)
startswithendswithgetattrr   ).0namer   r   r   	<genexpr>  s   zTest_testcapi.<genexpr>N)r!   r"   r#   localsupdatedirr   r   r   r   r   rW    s   rW  __main__)Ur   rt   rL  sysr6  r   import_moduler   r   r   ZLARGErW   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   
float_infomax_expr   floatr   r   rn   rm   rq   r   intr$   r%   r(   r*   r+   r.   r/   r0   r1   r2   r7   r9   r:   r;   r=   r>   r   rC   rD   rE   rF   rH   r   rI   r   rJ   r   rK   ra   rj   rs   r   r   r   r   r   r   r   r   r-  r5  r7  rS  rW  r!   mainr   r   r   r   <module>   sx   
 H i5Y*WH!6 5f?
