o
    g                      @   s  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	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Z0G dd  d Z1G d!d" d"e)Z2G d#d$ d$Z3G d%d& d&e"Z4G d'd( d(e"Z5G d)d* d*Z6G d+d, d,Z7G d-d. d.e"Z8G d/d0 d0Z9G d1d2 d2e:Z;G d3d4 d4e:Z<G d5d6 d6Z=G d7d8 d8Z>G d9d: d:e:Z?G d;d< d<e@ZAG d=d> d>eBZCG d?d@ d@e jDZEG dAdB dBe jDZFG dCdD dDe jDZGG dEdF dFe jDZHG dGdH dHZIG dIdJ dJe jDZJG dKdL dLe jDZKG dMdN dNe jDZLG dOdP dPe jDZMG dQdR dRe jDZNG dSdT dTe jDZOG dUdV dVe jDZPG dWdX dXe jDZQG dYdZ dZe jDZRG d[d\ d\e jDZSG d]d^ d^e jDZTG d_d` d`e jDZUeVdakre W  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d ZdS )Indexc                 C      dS Nc    selfr   r   H/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test_getargs2.py	__index__;      zIndex.__index__N__name__
__module____qualname__r#   r   r   r   r"   r   :       r   c                   @   r   )IndexIntSubclassc                 C   r   r   r   r    r   r   r"   r#   ?   r$   zIndexIntSubclass.__index__Nr%   r   r   r   r"   r*   >   r)   r*   c                   @   r   )BadIndexc                 C   r   N      ?r   r    r   r   r"   r#   C   r$   zBadIndex.__index__Nr%   r   r   r   r"   r+   B   r)   r+   c                   @   r   )	BadIndex2c                 C   r   NTr   r    r   r   r"   r#   G   r$   zBadIndex2.__index__Nr%   r   r   r   r"   r.   F   r)   r.   c                   @   r   )	BadIndex3c                 C   r   r/   r   r    r   r   r"   r#   K   r$   zBadIndex3.__index__Nr%   r   r   r   r"   r0   J   r)   r0   c                   @   r   )Intc                 C   r   r   r   r    r   r   r"   __int__P   r$   zInt.__int__Nr&   r'   r(   r2   r   r   r   r"   r1   O   r)   r1   c                   @   r   )IntSubclassc                 C   r   r   r   r    r   r   r"   r2   T   r$   zIntSubclass.__int__Nr3   r   r   r   r"   r4   S   r)   r4   c                   @   r   )BadIntc                 C   r   r,   r   r    r   r   r"   r2   X   r$   zBadInt.__int__Nr3   r   r   r   r"   r5   W   r)   r5   c                   @   r   )BadInt2c                 C   r   r/   r   r    r   r   r"   r2   \   r$   zBadInt2.__int__Nr3   r   r   r   r"   r6   [   r)   r6   c                   @   r   )BadInt3c                 C   r   r/   r   r    r   r   r"   r2   `   r$   zBadInt3.__int__Nr3   r   r   r   r"   r7   _   r)   r7   c                   @   r   )Floatc                 C   r   N      @r   r    r   r   r"   	__float__e   r$   zFloat.__float__Nr&   r'   r(   r;   r   r   r   r"   r8   d   r)   r8   c                   @      e Zd ZdS )FloatSubclassNr&   r'   r(   r   r   r   r"   r>   h       r>   c                   @   r   )FloatSubclass2c                 C   r   r9   r   r    r   r   r"   r;   l   r$   zFloatSubclass2.__float__Nr<   r   r   r   r"   rA   k   r)   rA   c                   @   r   )BadFloatc                 C   r   )Ni  r   r    r   r   r"   r;   p   r$   zBadFloat.__float__Nr<   r   r   r   r"   rB   o   r)   rB   c                   @   r   )	BadFloat2c                 C      t dS r9   r>   r    r   r   r"   r;   t      zBadFloat2.__float__Nr<   r   r   r   r"   rC   s   r)   rC   c                   @   r   )	BadFloat3c                 C   rD   r9   rE   r    r   r   r"   r;   x   rF   zBadFloat3.__float__Nr<   r   r   r   r"   rG   w   r)   rG   c                   @   r   )Complexc                 C   r   N      @      ?r   r    r   r   r"   __complex__}   r$   zComplex.__complex__Nr&   r'   r(   rK   r   r   r   r"   rH   |   r)   rH   c                   @   r=   )ComplexSubclassNr?   r   r   r   r"   rM      r@   rM   c                   @   r   )ComplexSubclass2c                 C   r   rI   r   r    r   r   r"   rK      r$   zComplexSubclass2.__complex__NrL   r   r   r   r"   rN      r)   rN   c                   @   r   )
BadComplexc                 C   r   )Ng      ?r   r    r   r   r"   rK      r$   zBadComplex.__complex__NrL   r   r   r   r"   rO      r)   rO   c                   @   r   )BadComplex2c                 C   rD   rI   rM   r    r   r   r"   rK      rF   zBadComplex2.__complex__NrL   r   r   r   r"   rP      r)   rP   c                   @   r   )BadComplex3c                 C   rD   rI   rQ   r    r   r   r"   rK      rF   zBadComplex3.__complex__NrL   r   r   r   r"   rR      r)   rR   c                   @   r=   )TupleSubclassNr?   r   r   r   r"   rS      r@   rS   c                   @   r=   )DictSubclassNr?   r   r   r   r"   rT      r@   rT   c                   @   4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Unsigned_TestCasec                 C   sR  ddl m} | t|d | d|t  | d|t  | t|t  | t	 | d|t
  W d    n1 s@w   Y  | d|t  | t|t  | d|t  | t|t  | t|t  | d|t  | t|d | d|d | t|t | t|td  | d|d | t|t d S )Nr   )	getargs_bQ	@r      *   )r   rW   assertRaises	TypeErrorassertEqualr   r*   r+   assertWarnsDeprecationWarningr.   r0   r1   r4   r5   r6   r7   OverflowErrorr   
VERY_LARGE)r!   rW   r   r   r"   test_b   s(   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 s@w   Y  | 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_BrX   r   rY   rZ   r[   )r   rd   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   r   rb   )r!   rd   r   r   r"   test_B   s(   zUnsigned_TestCase.test_Bc                 C   \  ddl m} | t|d | d|t  | d|t  | t|t  | t	 | d|t
  W d    n1 s@w   Y  | 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_HrX   r   rY   rZ   r[   )r   rg   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   r	   rb   )r!   rg   r   r   r"   test_H   (   zUnsigned_TestCase.test_Hc                 C   rf   )Nr   )	getargs_IrX   r   rY   rZ   r[   )r   rj   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   r
   rb   )r!   rj   r   r   r"   test_I   ri   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_krX   rZ   rY   r[   )r   rl   r\   r]   r   r^   r*   r+   r.   r0   r1   r4   r5   r6   r7   r   rb   )r!   rl   r   r   r"   test_k   s$   zUnsigned_TestCase.test_kN)r&   r'   r(   rc   re   rh   rk   rm   r   r   r   r"   rV      s    rV   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Signed_TestCasec                 C   V  ddl m} | t|d | d|t  | d|t  | t|t  | t	 | d|t
  W d    n1 s@w   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_hrX   r   rY   r[   )r   rp   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   ra   r   r   rb   )r!   rp   r   r   r"   test_h  (   zSigned_TestCase.test_hc                 C   ro   )Nr   )	getargs_irX   r   rY   r[   )r   rs   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   ra   r   r   rb   )r!   rs   r   r   r"   test_i0  rr   zSigned_TestCase.test_ic                 C   ro   )Nr   )	getargs_lrX   r   rY   r[   )r   ru   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   ra   r   r   rb   )r!   ru   r   r   r"   test_lH  rr   zSigned_TestCase.test_lc                 C   ro   )Nr   )	getargs_nrX   r   rY   r[   )r   rw   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   ra   r   r   rb   )r!   rw   r   r   r"   test_n`  s(   zSigned_TestCase.test_nN)r&   r'   r(   rq   rt   rv   rx   r   r   r   r"   rn     s
    rn   c                   @      e Zd Zdd Zdd ZdS )LongLong_TestCasec                 C   sd  ddl m} | t|d | t|d | d|t  | d|t  | t|t  | t	 | d|t
  W d    n1 sGw   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_LrX   Hellor   rY   r[   )r   r{   r\   r]   r^   r   r*   r+   r_   r`   r.   r0   r1   r4   r5   r6   r7   ra   	LLONG_MIN	LLONG_MAXrb   )r!   r{   r   r   r"   test_L{  s*   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_KrX   rY   r[   )r   r   r\   r]   r   r^   r*   r+   r.   r0   r1   r4   r5   r6   r7   
ULLONG_MAXrb   )r!   r   r   r   r"   test_K  s"   zLongLong_TestCase.test_KN)r&   r'   r(   r   r   r   r   r   r"   rz   z  s    rz   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 )NrY   )r^   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 s[w   Y  | |tdd | |t d | t|t  tt tt tt fD ]
}| ||| qttk r| |tt | |t t  ttkr| |td	 | |t d
 | |d	d	 | |d
d
 |t}| || d S )Nr   	getargs_fr:            @      @              @     X@               )r   r   r^   r\   r]   r8   r>   rA   rB   r_   r`   rC   rG   r   r1   r   r   INFr   r   r   NANassertNotEqual)r!   r   xrr   r   r"   test_f  s4   zFloat_TestCase.test_fc                 C   s2   ddl m} | |dt | |dt  d S )Nr   r   gnGgn)r   r   r^   r   )r!   r   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 s[w   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_dr:   r   r   r   r   r   rY   rZ   r   r   )r   r   r^   r\   r]   r8   r>   rA   rB   r_   r`   rC   rG   r   r1   r   r   r   ra   DBL_MAX_EXPr   r   r   )r!   r   r   r   r   r   r"   test_d  s,   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 s\w   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_DrJ   r:   r   r   y      @        y      @      ?y     X@        r-   r   r   )r   r   r^   rH   rM   rN   r\   r]   rO   r_   r`   rP   rR   r   r1   r   r   r   complexr   realimag)r!   r   r   cr   r   r"   test_D  s.   

zFloat_TestCase.test_DN)
r&   r'   r(   r   r   r   Zrequires_IEEE_754r   r   r   r   r   r   r"   r     s    
r   c                   @   s   e Zd Z	 dd ZdS )Paradoxc                 C      t N)NotImplementedErrorr    r   r   r"   __bool__  r$   zParadox.__bool__N)r&   r'   r(   r   r   r   r   r"   r     s    r   c                   @   r   )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   rY   Tr-   y              ?r   rY      )r   r   r^   unittestTestCaser\   r   r   )r!   r   r   r   r"   test_p  s(   zBoolean_TestCase.test_pN)r&   r'   r(   r   r   r   r   r"   r     r)   r   c                   @   ry   )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_argsrY   r   rY   r   r      rY   r   r   )r   Nr   )r   r   r^   assertIstypetuplerS   assertIn)r!   r   retr   r   r"   	test_args&  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_tuplerY   r   r   c                   @   ry   )z&Tuple_TestCase.test_tuple.<locals>.seqc                 S   r   )Nr   r   r    r   r   r"   __len__I  r$   z.Tuple_TestCase.test_tuple.<locals>.seq.__len__c                 S   r   r   )
ValueError)r!   nr   r   r"   __getitem__K  r$   z2Tuple_TestCase.test_tuple.<locals>.seq.__getitem__N)r&   r'   r(   r   r   r   r   r   r"   seqH  s    r   )r   r   r^   r\   r]   )r!   r   r   r   r   r   r"   
test_tupleA  s
   
zTuple_TestCase.test_tupleN)r&   r'   r(   r   r   r   r   r   r"   r   %  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 |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_kwargsrY   r   abr   r   )r   r   )r   r   r   r   )r   r   r^   r   r   dictrT   r   )r!   r   r   r   r   r"   test_kwargsP  s    zKeywords_TestCase.test_kwargsc                 C   s   |  tdddddd d S )Nr   r   r   )            	   
   
rY   r   r   r   r   r   r   r   r   r   r^   r   r    r   r   r"   test_positional_argsg  s   z&Keywords_TestCase.test_positional_argsc              	   C      |  tddddddd d S )Nr   r   r   r   r   )arg4arg5r   r   r    r   r   r"   test_mixed_argsn     z!Keywords_TestCase.test_mixed_argsc              	   C   r   )Nr   r   r   r   r   )arg1arg2Zarg3r   r   r   r   r    r   r   r"   test_keyword_argsu  r   z#Keywords_TestCase.test_keyword_argsc                 C      |  tddddd d S )Nr   r   r   )r   r   r   )
rY   r   r   rZ   rZ   rZ   rZ   rZ   rZ   r   r   r    r   r   r"   test_optional_args|     z$Keywords_TestCase.test_optional_argsc              
   C   sT   zt dd W n ty" } z| t|d W Y d }~d S d }~ww | d d S )Nr   )r   z1function missing required argument 'arg2' (pos 2)!TypeError should have been raisedr   r]   r^   strZfailr!   errr   r   r"   test_required_args  s   z$Keywords_TestCase.test_required_argsc              
   C   s\   zt dddddd W n ty& } z| t|d W Y d }~d S d }~ww | 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     z$Keywords_TestCase.test_too_many_argsc              
   C   sZ   z
t ddddd W n ty% } z| t|d W Y d }~d S d }~ww | 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   s\   zt di ddi W n ty& } z| t|d W Y d }~d S d }~ww | 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  r   z(Keywords_TestCase.test_surrogate_keywordN)r&   r'   r(   r   r   r   r   r   r   r   r   r   r   r   r   r"   r   O  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 )NrY   r   rY   r   rZ   r^   r   r    r   r   r"   r     s   z)KeywordOnly_TestCase.test_positional_argsc                 C   r   )NrY   r   r   keyword_onlyr   r   r    r   r   r"   r     r   z$KeywordOnly_TestCase.test_mixed_argsc                 C   r   )NrY   r   r   )requiredoptionalr   r   r   r    r   r   r"   r     r   z&KeywordOnly_TestCase.test_keyword_argsc                 C   s,   |  tdddd |  tdddd d S )NrY   r   )r   r   r   r   )r   r   rY   rZ   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 s'w   Y  | td tdd W d    d S 1 sCw   Y  d S )	NrY   rY   rZ   rZ   )r   z7function missing required argument 'required' \(pos 1\)r   )r   r   r   )r^   r   assertRaisesRegexr]   r    r   r   r"   r     s$   "z'KeywordOnly_TestCase.test_required_argsc                 C   sz   |  td tddd W d    n1 sw   Y  |  td tddddd W d    d S 1 s6w   Y  d S )Nz9function takes at most 2 positional arguments \(3 given\)rY   r   r   z.function takes at most 3 arguments \(4 given\)r   r   r   r]   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    d S 1 sw   Y  d S )Nz:'monster' is an invalid keyword argument for this functionrY   r   r   )Zmonsterr   r    r   r   r"   r     s
   "z)KeywordOnly_TestCase.test_invalid_keywordc                 C   sD   |  td tdi ddi W d    d S 1 sw   Y  d S )Nr   rY   r   r   r   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 )NrY   r   r   r   r^   getargsr    r   r   r"   r     s   z7PositionalOnlyAndKeywords_TestCase.test_positional_argsc                 C   s   |  | jddddd d S )NrY   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 )NrY   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w   Y  | td | jdd W d    d S 1 s;w   Y  d S )NrY   r   9function takes at least 1 positional argument \(0 given\)r   r   )r^   r   r   r]   r    r   r   r"   r     s   
"z5PositionalOnlyAndKeywords_TestCase.test_required_argsc                 C   sF   |  td | jdi ddi W d    d S 1 sw   Y  d S )Nz3'' is an invalid keyword argument for this functionrY   r   r   r   r   )r   r]   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                   @   rU   )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   r\   r]   r^   	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  r\   r]   r^   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  r\   r]   r^   r  r  )r!   r  r   r   r"   test_y_star#  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  r\   r]   r^   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  r\   r]   r  r  r^   )r!   r  bufr   r   r"   test_w_star5  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ejdd Zejdd Zejdd Zej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  r\   r]   r^   r  r  )r!   r  r   r   r"   test_CF  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  r^   r\   r   r]   r  r  )r!   r  r   r   r"   test_sR     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  r^   r  r  r\   r]   )r!   r  r   r   r"   test_s_star[     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!  r^   r\   r]   r  r  )r!   r!  r   r   r"   test_s_hashd     zString_TestCase.test_s_hashc                 C   s.   ddl m} | t|d | jt|dd d S )Nr   )getargs_s_hash_intr  r[   )r   )r   r$  r\   SystemError)r!   r$  r   r   r"   test_s_hash_intm  s   zString_TestCase.test_s_hash_intc                 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'  r^   r\   r   r]   r  r  assertIsNone)r!   r'  r   r   r"   test_zt  r  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*  r^   r  r  r(  )r!   r*  r   r   r"   test_z_star}  r   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,  r^   r\   r]   r  r  r(  )r!   r,  r   r   r"   test_z_hash  r#  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.  r^   r\   UnicodeEncodeErrorLookupErrorr]   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/  r0  r1  r2  r	  r  r  r  r
  )	r   r6  r^   r\   r3  r4  r  r]   r  )r!   r6  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/  r0  r1  r2  r	  r  r  r  r
     xxxxxxxx   abc xxx   xxxxx   abc    xxxx)
r   r8  r^   r\   r3  r4  r]   r  r  r   )r!   r8  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/  r0  r1  r2  r	  r  r  r  r
  r9  r:  r;  r<  r=  )
r   r?  r^   r\   r3  r4  r  r]   r  r   )r!   r?  r  r   r   r"   test_et_hash  s.   zString_TestCase.test_et_hashc                 C   sl  ddl m} | t | |dd W d    n1 sw   Y  | t | t|d W d    n1 s:w   Y  | t | t|d W d    n1 sVw   Y  | t | t|td W d    n1 stw   Y  | t | t|t	d W d    n1 sw   Y  | t | t|d  W d    d S 1 sw   Y  d S )Nr   )	getargs_ur  r  r	  r  r  )
r   rA  r_   r`   r^   r\   r   r]   r  r  )r!   rA  r   r   r"   test_u  &   "zString_TestCase.test_uc                 C   sn  ddl m} | t | |dd W d    n1 sw   Y  | t | |dd W d    n1 s;w   Y  | t | t|d W d    n1 sWw   Y  | t | t|td W d    n1 suw   Y  | t | t|td W d    n1 sw   Y  | t | t|d  W d    d S 1 sw   Y  d S )Nr   )getargs_u_hashr  r  r	  r  r  )	r   rD  r_   r`   r^   r\   r]   r  r  )r!   rD  r   r   r"   test_u_hash  &   "zString_TestCase.test_u_hashc                 C   sl  ddl m} | t | |dd W d    n1 sw   Y  | t | t|d W d    n1 s:w   Y  | t | t|d W d    n1 sVw   Y  | t | t|td W d    n1 stw   Y  | t | t|t	d W d    n1 sw   Y  | t | 
|d  W d    d S 1 sw   Y  d S )Nr   )	getargs_Zr  r  r	  r  r  )r   rG  r_   r`   r^   r\   r   r]   r  r  r(  )r!   rG  r   r   r"   test_Z  rC  zString_TestCase.test_Zc                 C   sn  ddl m} | t | |dd W d    n1 sw   Y  | t | |dd W d    n1 s;w   Y  | t | t|d W d    n1 sWw   Y  | t | t|td W d    n1 suw   Y  | t | t|td W d    n1 sw   Y  | t | 	|d  W d    d S 1 sw   Y  d S )Nr   )getargs_Z_hashr  r  r	  r  r  )
r   rI  r_   r`   r^   r\   r]   r  r  r(  )r!   rI  r   r   r"   test_Z_hash  rF  zString_TestCase.test_Z_hashN)r&   r'   r(   r  r  r  r"  r&  r)  r+  r-  r5  r7  r>  r@  r   Zrequires_legacy_unicode_capirB  rE  rH  rJ  r   r   r   r"   r  E  s*    						


r  c                   @   $   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   rM  r   r\   r]   r  r  )r!   rM  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   rP  r  r   r\   r]   r  )r!   rP  rN  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   rR  r   r\   r]   r  )r!   rR  rN  r   r   r"   test_U/  s   zObject_TestCase.test_UN)r&   r'   r(   rO  rQ  rS  r   r   r   r"   rL    s    		rL  c                   @   r   )Test6012c                 C   s   |  tddd d S )Nr|   ZWorldrY   )r^   r   Z
argparsingr    r   r   r"   test:  s   zTest6012.testN)r&   r'   r(   rU  r   r   r   r"   rT  9  r)   rT  c                   @   s(   e Zd Zejeddd Zdd ZdS )SkipitemTestcategoryc                 C   s$  	 d}d}ddi}ddg}t ddD ]}}t|}|dv rq|d	 }zt|||| d
}W n$ tyG }	 zd}
t|	|
k}W Y d }	~	nd }	~	w tyQ   d
}Y nw d| }zt|||| d
}W n ty }	 zd|}
t|	|
k}W Y d }	~	nd }	~	ww d||||}| ||| qd S )Nr   r   r   rY   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_keywordsr%  r   r]   formatr   )r!   empty_tupletuple_1dict_bkeywordsr\  r   ra  Zwhen_not_skippeder  optional_formatZwhen_skippedmessager   r   r"   test_skipitemA  sP   
zSkipitemTest.test_skipitemc                 C   sv  t j}d}d}ddi}ddg}d}tjD ]P}dD ]K}|| }	| j|	d7 d	|	 d
 }
|	|v r7||||
| n| td ||||
| W d    n1 sOw   Y  W d    q1 s^w   Y  qqttt	ddD ]K}d| }	d	|	 d
 }
| j|	d1 |dv r||||
| n| td ||||
| W d    n1 sw   Y  W d    qm1 sw   Y  qmd S )Nr   rY  r   rY   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>rZ     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_suffix  sF   
z&SkipitemTest.test_skipitem_with_suffixN)r&   r'   r(   r   ignore_warningsr`   ri  rr  r   r   r   r"   rV  >  s    

DrV  c                   @   rK  )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   r[   r   )r\   r]   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   rY   z$$Or   r   z$O$Oz$|Oz$O|Oz|Oz|OOz|$Or   )r\   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 s3w   Y  |di d	g d | td
 |di d	g d W d    n1 s[w   Y  |dddidg d | td |dddidg d W d    n1 sw   Y  |di dg d | td
 |di dg d W d    n1 sw   Y  | td |di dg d W d    n1 sw   Y  | td |di d	g d W d    d S 1 sw   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   r]   r%  )r!   ro  r   r   r"   test_positional_only  s@   "z/ParseTupleAndKeywords_Test.test_positional_onlyN)r&   r'   r(   ru  rv  rw  r   r   r   r"   rt    s    rt  c                   @   sN   e Zd Ze dd eeD  eje	ddd Z
eje	ddd ZdS )	Test_testcapic                 c   s2    | ]}| 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>rW  c                 C      t   d S r   )r   test_u_coder    r   r   r"   r       zTest_testcapi.test_u_codec                 C   r  r   )r   test_Z_coder    r   r   r"   r    r  zTest_testcapi.test_Z_codeN)r&   r'   r(   localsupdatedirr   r   rs  r`   r  r  r   r   r   r"   rx    s    


rx  __main__)Xr   r   rl  sysrU  r   Ztest.supportr   r   import_moduler   r   r   ZLARGErb   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*   r+   r.   r0   r1   r4   r5   r6   r7   r8   r>   rA   rB   rC   rG   rH   r   rM   rN   rO   rP   rR   r   rS   r   rT   r   rV   rn   rz   r   r   r   r   r   r   r   r   r  rL  rT  rV  rt  rx  r&   mainr   r   r   r"   <module>   s~    
 H|c3Y*WH!6 Xh?
