a
    ze                     @   s.   d dl Z G dd de jZedkr*e   dS )    Nc                   @   sD   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S )AugAssignTestc                 C   sd   d}|d7 }|d9 }|dC }|d8 }|d }|d; }|dM }|dO }|dN }|d }|  |d d S )N                     @assertEqualselfx r   )/usr/lib/python3.9/test/test_augassign.py	testBasic   s    zAugAssignTest.testBasicc                 C   s   |  ttddd d S )Nz	x, b += 3z<test>exec)assertRaisesSyntaxErrorcompile)r   r   r   r   test_with_unpacking   s    z!AugAssignTest.test_with_unpackingc                 C   s   dg}|d  d7  < |d  d9  < |d  dC  < |d  d8  < |d  d  < |d  d;  < |d  dM  < |d  dO  < |d  dN  < |d  d  < |  |d d d S )Nr   r   r   r   r   r   r   r	   r   r   r   r   
testInList   s    zAugAssignTest.testInListc                 C   s   ddi}|d  d7  < |d  d9  < |d  dC  < |d  d8  < |d  d  < |d  d;  < |d  dM  < |d  dO  < |d  dN  < |d  d  < |  |d d d S )Nr   r   r   r   r   r   r   r	   r   r   r   r   
testInDict&   s    zAugAssignTest.testInDictc                 C   s   ddg}|ddg7 }|d9 }|  |g d g d}|}|dd  d9  < |dd  dg7  < |  |g d | ||u  d S )Nr   r   r      )r   r   r   r   r   r   r   r   )r   r   r   )r   r   r   r   r   )r
   
assertTrue)r   r   yr   r   r   testSequences4   s    zAugAssignTest.testSequencesc                    s.  G  fddd G dd d }G fddd G dd d} d	}|}|d
7 }|  |  | ||u | |jd |d}|}|d
7 }| ||u  | |jd d}|}|d
7 }|  | | ||u | |jd |d}| t |d
7 }W d    n1 s 0    Y  d S )Nc                       s(   e Zd Zdd Zdd Z fddZdS )z2AugAssignTest.testCustomMethods1.<locals>.aug_testc                 S   s
   || _ d S Nval)r   valuer   r   r   __init__F   s    z;AugAssignTest.testCustomMethods1.<locals>.aug_test.__init__c                 S   s
   | j | S r   r   r   r   r   r   r   __radd__H   s    z;AugAssignTest.testCustomMethods1.<locals>.aug_test.__radd__c                    s    | j | S r   r   r!   aug_testr   r   __add__J   s    z:AugAssignTest.testCustomMethods1.<locals>.aug_test.__add__N)__name__
__module____qualname__r    r"   r%   r   r#   r   r   r$   E   s   r$   c                   @   s   e Zd Zdd ZdS )z3AugAssignTest.testCustomMethods1.<locals>.aug_test2c                 S   s   | j | | _ | S r   r   r!   r   r   r   __iadd__N   s    z<AugAssignTest.testCustomMethods1.<locals>.aug_test2.__iadd__Nr&   r'   r(   r)   r   r   r   r   	aug_test2M   s   r+   c                       s   e Zd Z fddZdS )z3AugAssignTest.testCustomMethods1.<locals>.aug_test3c                    s    | j | S r   r   r!   	aug_test3r   r   r)   S   s    z<AugAssignTest.testCustomMethods1.<locals>.aug_test3.__iadd__Nr*   r   r,   r   r   r-   R   s   r-   c                   @   s   e Zd ZdZdS )z3AugAssignTest.testCustomMethods1.<locals>.aug_test4Nr*   r   r   r   r   	aug_test4V   s   r.   r   
      r      r      r   )ZassertIsInstancer   r
   r   r   	TypeError)r   r+   r.   r   r   r   )r$   r-   r   testCustomMethods1C   s0    z AugAssignTest.testCustomMethods1c                    sh  g  G  fddd}| }|d  d|  |d7 }|d  d|  |d8 }|d  d|  |d9 }|d  d|  |d }|d  d|  |d }|d  d|  |d }|d  d|  |d; }|d  d|  |dC }|dB  d|B  |dO }|d@  d|@  |dM }|dA  d|A  |dN }|d?  d|?  |dL }|d>  d|>  |dK }|   d  d S )Nc                       s  e Zd Z fddZ fddZ fddZ fddZ fd	d
Z fddZ fddZ	 fddZ
 fddZ fddZ fddZ fddZ fddZ fddZ fddZ fdd Z fd!d"Z fd#d$Z fd%d&Z fd'd(Z fd)d*Z fd+d,Z fd-d.Z fd/d0Z fd1d2Z fd3d4Z fd5d6Z fd7d8Z fd9d:Z fd;d<Z  fd=d>Z! fd?d@Z" fdAdBZ# fdCdDZ$ fdEdFZ% fdGdHZ& fdIdJZ' fdKdLZ( fdMdNZ)dOS )Pz1AugAssignTest.testCustomMethods2.<locals>.testallc                    s     d d S )Nz__add__ calledappendr!   outputr   r   r%   z   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__add__c                    s     d d S )Nz__radd__ calledr5   r!   r7   r   r   r"   |   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__radd__c                    s     d | S )Nz__iadd__ calledr5   r!   r7   r   r   r)   ~   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__iadd__c                    s     d d S )Nz__sub__ calledr5   r!   r7   r   r   __sub__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__sub__c                    s     d d S )Nz__rsub__ calledr5   r!   r7   r   r   __rsub__   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__rsub__c                    s     d | S )Nz__isub__ calledr5   r!   r7   r   r   __isub__   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__isub__c                    s     d d S )Nz__mul__ calledr5   r!   r7   r   r   __mul__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__mul__c                    s     d d S )Nz__rmul__ calledr5   r!   r7   r   r   __rmul__   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__rmul__c                    s     d | S )Nz__imul__ calledr5   r!   r7   r   r   __imul__   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__imul__c                    s     d d S )Nz__matmul__ calledr5   r!   r7   r   r   
__matmul__   s    z<AugAssignTest.testCustomMethods2.<locals>.testall.__matmul__c                    s     d d S )Nz__rmatmul__ calledr5   r!   r7   r   r   __rmatmul__   s    z=AugAssignTest.testCustomMethods2.<locals>.testall.__rmatmul__c                    s     d | S )Nz__imatmul__ calledr5   r!   r7   r   r   __imatmul__   s    
z=AugAssignTest.testCustomMethods2.<locals>.testall.__imatmul__c                    s     d | S )Nz__floordiv__ calledr5   r!   r7   r   r   __floordiv__   s    
z>AugAssignTest.testCustomMethods2.<locals>.testall.__floordiv__c                    s     d | S )Nz__ifloordiv__ calledr5   r!   r7   r   r   __ifloordiv__   s    
z?AugAssignTest.testCustomMethods2.<locals>.testall.__ifloordiv__c                    s     d | S )Nz__rfloordiv__ calledr5   r!   r7   r   r   __rfloordiv__   s    
z?AugAssignTest.testCustomMethods2.<locals>.testall.__rfloordiv__c                    s     d | S )Nz__truediv__ calledr5   r!   r7   r   r   __truediv__   s    
z=AugAssignTest.testCustomMethods2.<locals>.testall.__truediv__c                    s     d | S )Nz__rtruediv__ calledr5   r!   r7   r   r   __rtruediv__   s    
z>AugAssignTest.testCustomMethods2.<locals>.testall.__rtruediv__c                    s     d | S )Nz__itruediv__ calledr5   r!   r7   r   r   __itruediv__   s    
z>AugAssignTest.testCustomMethods2.<locals>.testall.__itruediv__c                    s     d d S )Nz__mod__ calledr5   r!   r7   r   r   __mod__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__mod__c                    s     d d S )Nz__rmod__ calledr5   r!   r7   r   r   __rmod__   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__rmod__c                    s     d | S )Nz__imod__ calledr5   r!   r7   r   r   __imod__   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__imod__c                    s     d d S )Nz__pow__ calledr5   r!   r7   r   r   __pow__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__pow__c                    s     d d S )Nz__rpow__ calledr5   r!   r7   r   r   __rpow__   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__rpow__c                    s     d | S )Nz__ipow__ calledr5   r!   r7   r   r   __ipow__   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__ipow__c                    s     d d S )Nz__or__ calledr5   r!   r7   r   r   __or__   s    z8AugAssignTest.testCustomMethods2.<locals>.testall.__or__c                    s     d d S )Nz__ror__ calledr5   r!   r7   r   r   __ror__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__ror__c                    s     d | S )Nz__ior__ calledr5   r!   r7   r   r   __ior__   s    
z9AugAssignTest.testCustomMethods2.<locals>.testall.__ior__c                    s     d d S )Nz__and__ calledr5   r!   r7   r   r   __and__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__and__c                    s     d d S )Nz__rand__ calledr5   r!   r7   r   r   __rand__   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__rand__c                    s     d | S )Nz__iand__ calledr5   r!   r7   r   r   __iand__   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__iand__c                    s     d d S )Nz__xor__ calledr5   r!   r7   r   r   __xor__   s    z9AugAssignTest.testCustomMethods2.<locals>.testall.__xor__c                    s     d d S )Nz__rxor__ calledr5   r!   r7   r   r   __rxor__   s    z:AugAssignTest.testCustomMethods2.<locals>.testall.__rxor__c                    s     d | S )Nz__ixor__ calledr5   r!   r7   r   r   __ixor__   s    
z:AugAssignTest.testCustomMethods2.<locals>.testall.__ixor__c                    s     d d S )Nz__rshift__ calledr5   r!   r7   r   r   
__rshift__   s    z<AugAssignTest.testCustomMethods2.<locals>.testall.__rshift__c                    s     d d S )Nz__rrshift__ calledr5   r!   r7   r   r   __rrshift__   s    z=AugAssignTest.testCustomMethods2.<locals>.testall.__rrshift__c                    s     d | S )Nz__irshift__ calledr5   r!   r7   r   r   __irshift__   s    
z=AugAssignTest.testCustomMethods2.<locals>.testall.__irshift__c                    s     d d S )Nz__lshift__ calledr5   r!   r7   r   r   
__lshift__   s    z<AugAssignTest.testCustomMethods2.<locals>.testall.__lshift__c                    s     d d S )Nz__rlshift__ calledr5   r!   r7   r   r   __rlshift__   s    z=AugAssignTest.testCustomMethods2.<locals>.testall.__rlshift__c                    s     d | S )Nz__ilshift__ calledr5   r!   r7   r   r   __ilshift__   s    
z=AugAssignTest.testCustomMethods2.<locals>.testall.__ilshift__N)*r&   r'   r(   r%   r"   r)   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r   r7   r   r   testally   sN   r]   r   a  __add__ called
__radd__ called
__iadd__ called
__sub__ called
__rsub__ called
__isub__ called
__mul__ called
__rmul__ called
__imul__ called
__matmul__ called
__rmatmul__ called
__imatmul__ called
__truediv__ called
__rtruediv__ called
__itruediv__ called
__floordiv__ called
__rfloordiv__ called
__ifloordiv__ called
__mod__ called
__rmod__ called
__imod__ called
__pow__ called
__rpow__ called
__ipow__ called
__or__ called
__ror__ called
__ior__ called
__and__ called
__rand__ called
__iand__ called
__xor__ called
__rxor__ called
__ixor__ called
__rshift__ called
__rrshift__ called
__irshift__ called
__lshift__ called
__rlshift__ called
__ilshift__ called
)r
   
splitlines)Z	test_selfr]   r   r   r7   r   testCustomMethods2v   sV    mz AugAssignTest.testCustomMethods2N)
r&   r'   r(   r   r   r   r   r   r4   r_   r   r   r   r   r      s   3r   __main__)ZunittestZTestCaser   r&   mainr   r   r   r   <module>   s
     A