o
    GXîh¼  ã                   @   s2   d dl Z G dd„ de jƒZedkre  ¡  dS 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   ú=/opt/python-3.10.19/usr/lib/python3.10/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   ƒ d S 1 sw   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   ó   
z;AugAssignTest.testCustomMethods1.<locals>.aug_test.__init__c                 S   s
   | j | S r   r   ©r   r   r   r   r   Ú__radd__H   r!   z;AugAssignTest.testCustomMethods1.<locals>.aug_test.__radd__c                    ó   ˆ | j | ƒS r   r   r"   ©Úaug_testr   r   Ú__add__J   ó   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                    r$   r   r   r"   ©Ú	aug_test3r   r   r,   S   r(   z<AugAssignTest.testCustomMethods1.<locals>.aug_test3.__iadd__Nr-   r   r/   r   r   r0   R   s    r0   c                   @   s   e Zd ZdZdZdS )z3AugAssignTest.testCustomMethods1.<locals>.aug_test4z+Blocks inheritance, and fallback to __add__N)r)   r*   r+   Ú__doc__r,   r   r   r   r   Ú	aug_test4V   s    r2   r   é
   é   r   é   r   é   r   )ZassertIsInstancer   r
   r   r   Ú	TypeError)r   r.   r2   r   r   r   )r&   r0   r   ÚtestCustomMethods1C   s2   
"ÿ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                    ó   ˆ   d¡ d S )Nz__add__ called©Úappendr"   ©Úoutputr   r   r'   z   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__add__c                    r9   )Nz__radd__ calledr:   r"   r<   r   r   r#   |   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__radd__c                    ó   ˆ   d¡ | S )Nz__iadd__ calledr:   r"   r<   r   r   r,   ~   ó   
z:AugAssignTest.testCustomMethods2.<locals>.testall.__iadd__c                    r9   )Nz__sub__ calledr:   r"   r<   r   r   Ú__sub__‚   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__sub__c                    r9   )Nz__rsub__ calledr:   r"   r<   r   r   Ú__rsub__„   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__rsub__c                    r>   )Nz__isub__ calledr:   r"   r<   r   r   Ú__isub__†   r?   z:AugAssignTest.testCustomMethods2.<locals>.testall.__isub__c                    r9   )Nz__mul__ calledr:   r"   r<   r   r   Ú__mul__Š   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__mul__c                    r9   )Nz__rmul__ calledr:   r"   r<   r   r   Ú__rmul__Œ   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__rmul__c                    r>   )Nz__imul__ calledr:   r"   r<   r   r   Ú__imul__Ž   r?   z:AugAssignTest.testCustomMethods2.<locals>.testall.__imul__c                    r9   )Nz__matmul__ calledr:   r"   r<   r   r   Ú
__matmul__’   r(   z<AugAssignTest.testCustomMethods2.<locals>.testall.__matmul__c                    r9   )Nz__rmatmul__ calledr:   r"   r<   r   r   Ú__rmatmul__”   r(   z=AugAssignTest.testCustomMethods2.<locals>.testall.__rmatmul__c                    r>   )Nz__imatmul__ calledr:   r"   r<   r   r   Ú__imatmul__–   r?   z=AugAssignTest.testCustomMethods2.<locals>.testall.__imatmul__c                    r>   )Nz__floordiv__ calledr:   r"   r<   r   r   Ú__floordiv__š   r?   z>AugAssignTest.testCustomMethods2.<locals>.testall.__floordiv__c                    r>   )Nz__ifloordiv__ calledr:   r"   r<   r   r   Ú__ifloordiv__   r?   z?AugAssignTest.testCustomMethods2.<locals>.testall.__ifloordiv__c                    r>   )Nz__rfloordiv__ calledr:   r"   r<   r   r   Ú__rfloordiv__    r?   z?AugAssignTest.testCustomMethods2.<locals>.testall.__rfloordiv__c                    r>   )Nz__truediv__ calledr:   r"   r<   r   r   Ú__truediv__¤   r?   z=AugAssignTest.testCustomMethods2.<locals>.testall.__truediv__c                    r>   )Nz__rtruediv__ calledr:   r"   r<   r   r   Ú__rtruediv__§   r?   z>AugAssignTest.testCustomMethods2.<locals>.testall.__rtruediv__c                    r>   )Nz__itruediv__ calledr:   r"   r<   r   r   Ú__itruediv__ª   r?   z>AugAssignTest.testCustomMethods2.<locals>.testall.__itruediv__c                    r9   )Nz__mod__ calledr:   r"   r<   r   r   Ú__mod__®   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__mod__c                    r9   )Nz__rmod__ calledr:   r"   r<   r   r   Ú__rmod__°   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__rmod__c                    r>   )Nz__imod__ calledr:   r"   r<   r   r   Ú__imod__²   r?   z:AugAssignTest.testCustomMethods2.<locals>.testall.__imod__c                    r9   )Nz__pow__ calledr:   r"   r<   r   r   Ú__pow__¶   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__pow__c                    r9   )Nz__rpow__ calledr:   r"   r<   r   r   Ú__rpow__¸   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__rpow__c                    r>   )Nz__ipow__ calledr:   r"   r<   r   r   Ú__ipow__º   r?   z:AugAssignTest.testCustomMethods2.<locals>.testall.__ipow__c                    r9   )Nz__or__ calledr:   r"   r<   r   r   Ú__or__¾   r(   z8AugAssignTest.testCustomMethods2.<locals>.testall.__or__c                    r9   )Nz__ror__ calledr:   r"   r<   r   r   Ú__ror__À   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__ror__c                    r>   )Nz__ior__ calledr:   r"   r<   r   r   Ú__ior__Â   r?   z9AugAssignTest.testCustomMethods2.<locals>.testall.__ior__c                    r9   )Nz__and__ calledr:   r"   r<   r   r   Ú__and__Æ   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__and__c                    r9   )Nz__rand__ calledr:   r"   r<   r   r   Ú__rand__È   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__rand__c                    r>   )Nz__iand__ calledr:   r"   r<   r   r   Ú__iand__Ê   r?   z:AugAssignTest.testCustomMethods2.<locals>.testall.__iand__c                    r9   )Nz__xor__ calledr:   r"   r<   r   r   Ú__xor__Î   r(   z9AugAssignTest.testCustomMethods2.<locals>.testall.__xor__c                    r9   )Nz__rxor__ calledr:   r"   r<   r   r   Ú__rxor__Ð   r(   z:AugAssignTest.testCustomMethods2.<locals>.testall.__rxor__c                    r>   )Nz__ixor__ calledr:   r"   r<   r   r   Ú__ixor__Ò   r?   z:AugAssignTest.testCustomMethods2.<locals>.testall.__ixor__c                    r9   )Nz__rshift__ calledr:   r"   r<   r   r   Ú
__rshift__Ö   r(   z<AugAssignTest.testCustomMethods2.<locals>.testall.__rshift__c                    r9   )Nz__rrshift__ calledr:   r"   r<   r   r   Ú__rrshift__Ø   r(   z=AugAssignTest.testCustomMethods2.<locals>.testall.__rrshift__c                    r>   )Nz__irshift__ calledr:   r"   r<   r   r   Ú__irshift__Ú   r?   z=AugAssignTest.testCustomMethods2.<locals>.testall.__irshift__c                    r9   )Nz__lshift__ calledr:   r"   r<   r   r   Ú
__lshift__Þ   r(   z<AugAssignTest.testCustomMethods2.<locals>.testall.__lshift__c                    r9   )Nz__rlshift__ calledr:   r"   r<   r   r   Ú__rlshift__à   r(   z=AugAssignTest.testCustomMethods2.<locals>.testall.__rlshift__c                    r>   )Nz__ilshift__ calledr:   r"   r<   r   r   Ú__ilshift__â   r?   z=AugAssignTest.testCustomMethods2.<locals>.testall.__ilshift__N)*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]   r^   r_   r`   ra   rb   rc   r   r<   r   r   Útestally   sP    rd   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_selfrd   r   r   r<   r   ÚtestCustomMethods2v   sZ   m(Øz AugAssignTest.testCustomMethods2N)
r)   r*   r+   r   r   r   r   r   r8   rf   r   r   r   r   r      s    3r   Ú__main__)ZunittestZTestCaser   r)   Úmainr   r   r   r   Ú<module>   s     Aÿ