
    ;e                     b    d dl Z  G d de j                  Zedk    r e j                     dS dS )    Nc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	AugAssignTestc                     d}|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|                      |d           d S )N                     @assertEqualselfxs     */usr/lib/python3.11/test/test_augassign.py	testBasiczAugAssignTest.testBasic   s}    	Q	Q	a	Q	a	Q	Q	Q	Q	QC         c                 L    |                      t          t          ddd           d S )Nz	x, b += 3z<test>exec)assertRaisesSyntaxErrorcompile)r   s    r   test_with_unpackingz!AugAssignTest.test_with_unpacking   s$    +wXvNNNNNr   c                    dg}|dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |                      |d         d           d S )Nr   r   r   r   r	   r
   r   r   r   s     r   
testInListzAugAssignTest.testInList   s    C	!		!		!
	!		!
	!		!		!		!		!	1s#####r   c                    ddi}|dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |dxx         dz  cc<   |                      |d         d           d S )Nr   r   r   r   r	   r
   r   r   r   s     r   
testInDictzAugAssignTest.testInDict&   s    F	!		!		!
	!		!
	!		!		!		!		!	1s#####r   c                 
   ddg}|ddgz  }|dz  }|                      |g d           g d}|}|ddxx         dz  cc<   |ddxx         dgz  cc<   |                      |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   ys      r   testSequenceszAugAssignTest.testSequences4   s    qE	aU
	Q444555II	!A#!	!A#1#OOO,,,Qr   c                     G fdd           G d d          } G fdd           G d d          } d	          }|}|d
z  }|                      |           |                     ||u           |                     |j        d            |d          }|}|d
z  }|                     ||u            |                     |j        d            d          }|}|d
z  }|                      |           |                     ||u           |                     |j        d            |d          }|                     t
                    5  |d
z  }d d d            d S # 1 swxY w Y   d S )Nc                   &    e Zd Zd Zd Z fdZdS )2AugAssignTest.testCustomMethods1.<locals>.aug_testc                     || _         d S Nval)r   values     r   __init__z;AugAssignTest.testCustomMethods1.<locals>.aug_test.__init__F   s     r   c                     | j         |z   S r'   r(   r   r)   s     r   __radd__z;AugAssignTest.testCustomMethods1.<locals>.aug_test.__radd__H   s    x#~%r   c                 *     | j         |z             S r'   r(   )r   r)   aug_tests     r   __add__z:AugAssignTest.testCustomMethods1.<locals>.aug_test.__add__J   s    x3///r   N)__name__
__module____qualname__r+   r.   r1   )r0   s   r   r0   r%   E   sL        ! ! !& & &0 0 0 0 0 0 0r   r0   c                       e Zd Zd ZdS )3AugAssignTest.testCustomMethods1.<locals>.aug_test2c                 $    | j         |z   | _         | S r'   r(   r-   s     r   __iadd__z<AugAssignTest.testCustomMethods1.<locals>.aug_test2.__iadd__N   s    8c>r   Nr2   r3   r4   r8    r   r   	aug_test2r6   M   s#            r   r;   c                       e Zd Z fdZdS )3AugAssignTest.testCustomMethods1.<locals>.aug_test3c                 *     | j         |z             S r'   r(   )r   r)   	aug_test3s     r   r8   z<AugAssignTest.testCustomMethods1.<locals>.aug_test3.__iadd__S   s     yC000r   Nr9   )r?   s   r   r?   r=   R   s.        1 1 1 1 1 1 1r   r?   c                       e Zd ZdZdZdS )3AugAssignTest.testCustomMethods1.<locals>.aug_test4z+Blocks inheritance, and fallback to __add__N)r2   r3   r4   __doc__r8   r:   r   r   	aug_test4rA   V   s        ==HHHr   rC   r   
      r      r
      r   )assertIsInstancer    r   r)   r   	TypeError)r   r;   rC   r   r!   r0   r?   s        @@r   testCustomMethods1z AugAssignTest.testCustomMethods1C   sU   	0 	0 	0 	0 	0 	0 	0 	0 	0 	0	 	 	 	 	 	 	 	
	1 	1 	1 	1 	1 	1 	1 	1 	1 	1	 	 	 	 		 	 	 	 HQKK	Ra***
######IaLL	RQ###IaLL	Ra+++
######IaLLy)) 	 	GA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   E..E25E2c                    g  G fdd          } |            }|dz    d|z    |dz  }|dz
   d|z
   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz   d|z   |dz  }|dz	   d|z	   |dz  }|dz   d|z   |dz  }|                      d                                           d S )Nc                      e Zd Z fdZ fdZ fdZ fdZ fdZ fdZ fdZ	 fdZ
 fd	Z fd
Z fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ fdZ  fdZ! fd Z" fd!Z# fd"Z$ fd#Z% fd$Z& fd%Z' fd&Z( fd'Z)d(S ))1AugAssignTest.testCustomMethods2.<locals>.testallc                 2                         d           d S )Nz__add__ calledappendr   r)   outputs     r   r1   z9AugAssignTest.testCustomMethods2.<locals>.testall.__add__z       ./////r   c                 2                         d           d S )Nz__radd__ calledrO   rQ   s     r   r.   z:AugAssignTest.testCustomMethods2.<locals>.testall.__radd__|       /00000r   c                 2                         d           | S )Nz__iadd__ calledrO   rQ   s     r   r8   z:AugAssignTest.testCustomMethods2.<locals>.testall.__iadd__~       /000r   c                 2                         d           d S )Nz__sub__ calledrO   rQ   s     r   __sub__z9AugAssignTest.testCustomMethods2.<locals>.testall.__sub__   rS   r   c                 2                         d           d S )Nz__rsub__ calledrO   rQ   s     r   __rsub__z:AugAssignTest.testCustomMethods2.<locals>.testall.__rsub__   rU   r   c                 2                         d           | S )Nz__isub__ calledrO   rQ   s     r   __isub__z:AugAssignTest.testCustomMethods2.<locals>.testall.__isub__   rW   r   c                 2                         d           d S )Nz__mul__ calledrO   rQ   s     r   __mul__z9AugAssignTest.testCustomMethods2.<locals>.testall.__mul__   rS   r   c                 2                         d           d S )Nz__rmul__ calledrO   rQ   s     r   __rmul__z:AugAssignTest.testCustomMethods2.<locals>.testall.__rmul__   rU   r   c                 2                         d           | S )Nz__imul__ calledrO   rQ   s     r   __imul__z:AugAssignTest.testCustomMethods2.<locals>.testall.__imul__   rW   r   c                 2                         d           d S )Nz__matmul__ calledrO   rQ   s     r   
__matmul__z<AugAssignTest.testCustomMethods2.<locals>.testall.__matmul__       122222r   c                 2                         d           d S )Nz__rmatmul__ calledrO   rQ   s     r   __rmatmul__z=AugAssignTest.testCustomMethods2.<locals>.testall.__rmatmul__       233333r   c                 2                         d           | S )Nz__imatmul__ calledrO   rQ   s     r   __imatmul__z=AugAssignTest.testCustomMethods2.<locals>.testall.__imatmul__       2333r   c                 2                         d           | S )Nz__floordiv__ calledrO   rQ   s     r   __floordiv__z>AugAssignTest.testCustomMethods2.<locals>.testall.__floordiv__       3444r   c                 2                         d           | S )Nz__ifloordiv__ calledrO   rQ   s     r   __ifloordiv__z?AugAssignTest.testCustomMethods2.<locals>.testall.__ifloordiv__       4555r   c                 2                         d           | S )Nz__rfloordiv__ calledrO   rQ   s     r   __rfloordiv__z?AugAssignTest.testCustomMethods2.<locals>.testall.__rfloordiv__   rr   r   c                 2                         d           | S )Nz__truediv__ calledrO   rQ   s     r   __truediv__z=AugAssignTest.testCustomMethods2.<locals>.testall.__truediv__   rl   r   c                 2                         d           | S )Nz__rtruediv__ calledrO   rQ   s     r   __rtruediv__z>AugAssignTest.testCustomMethods2.<locals>.testall.__rtruediv__   ro   r   c                 2                         d           | S )Nz__itruediv__ calledrO   rQ   s     r   __itruediv__z>AugAssignTest.testCustomMethods2.<locals>.testall.__itruediv__   ro   r   c                 2                         d           d S )Nz__mod__ calledrO   rQ   s     r   __mod__z9AugAssignTest.testCustomMethods2.<locals>.testall.__mod__   rS   r   c                 2                         d           d S )Nz__rmod__ calledrO   rQ   s     r   __rmod__z:AugAssignTest.testCustomMethods2.<locals>.testall.__rmod__   rU   r   c                 2                         d           | S )Nz__imod__ calledrO   rQ   s     r   __imod__z:AugAssignTest.testCustomMethods2.<locals>.testall.__imod__   rW   r   c                 2                         d           d S )Nz__pow__ calledrO   rQ   s     r   __pow__z9AugAssignTest.testCustomMethods2.<locals>.testall.__pow__   rS   r   c                 2                         d           d S )Nz__rpow__ calledrO   rQ   s     r   __rpow__z:AugAssignTest.testCustomMethods2.<locals>.testall.__rpow__   rU   r   c                 2                         d           | S )Nz__ipow__ calledrO   rQ   s     r   __ipow__z:AugAssignTest.testCustomMethods2.<locals>.testall.__ipow__   rW   r   c                 2                         d           d S )Nz__or__ calledrO   rQ   s     r   __or__z8AugAssignTest.testCustomMethods2.<locals>.testall.__or__   s    o.....r   c                 2                         d           d S )Nz__ror__ calledrO   rQ   s     r   __ror__z9AugAssignTest.testCustomMethods2.<locals>.testall.__ror__   rS   r   c                 2                         d           | S )Nz__ior__ calledrO   rQ   s     r   __ior__z9AugAssignTest.testCustomMethods2.<locals>.testall.__ior__   s    .///r   c                 2                         d           d S )Nz__and__ calledrO   rQ   s     r   __and__z9AugAssignTest.testCustomMethods2.<locals>.testall.__and__   rS   r   c                 2                         d           d S )Nz__rand__ calledrO   rQ   s     r   __rand__z:AugAssignTest.testCustomMethods2.<locals>.testall.__rand__   rU   r   c                 2                         d           | S )Nz__iand__ calledrO   rQ   s     r   __iand__z:AugAssignTest.testCustomMethods2.<locals>.testall.__iand__   rW   r   c                 2                         d           d S )Nz__xor__ calledrO   rQ   s     r   __xor__z9AugAssignTest.testCustomMethods2.<locals>.testall.__xor__   rS   r   c                 2                         d           d S )Nz__rxor__ calledrO   rQ   s     r   __rxor__z:AugAssignTest.testCustomMethods2.<locals>.testall.__rxor__   rU   r   c                 2                         d           | S )Nz__ixor__ calledrO   rQ   s     r   __ixor__z:AugAssignTest.testCustomMethods2.<locals>.testall.__ixor__   rW   r   c                 2                         d           d S )Nz__rshift__ calledrO   rQ   s     r   
__rshift__z<AugAssignTest.testCustomMethods2.<locals>.testall.__rshift__   rf   r   c                 2                         d           d S )Nz__rrshift__ calledrO   rQ   s     r   __rrshift__z=AugAssignTest.testCustomMethods2.<locals>.testall.__rrshift__   ri   r   c                 2                         d           | S )Nz__irshift__ calledrO   rQ   s     r   __irshift__z=AugAssignTest.testCustomMethods2.<locals>.testall.__irshift__   rl   r   c                 2                         d           d S )Nz__lshift__ calledrO   rQ   s     r   
__lshift__z<AugAssignTest.testCustomMethods2.<locals>.testall.__lshift__   rf   r   c                 2                         d           d S )Nz__rlshift__ calledrO   rQ   s     r   __rlshift__z=AugAssignTest.testCustomMethods2.<locals>.testall.__rlshift__   ri   r   c                 2                         d           | S )Nz__ilshift__ calledrO   rQ   s     r   __ilshift__z=AugAssignTest.testCustomMethods2.<locals>.testall.__ilshift__   rl   r   N)*r2   r3   r4   r1   r.   r8   rY   r[   r]   r_   ra   rc   re   rh   rk   rn   rq   rt   rv   rx   rz   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rR   s   r   testallrM   y   s       0 0 0 0 01 1 1 1 1    0 0 0 0 01 1 1 1 1    0 0 0 0 01 1 1 1 1    3 3 3 3 34 4 4 4 4                            0 0 0 0 01 1 1 1 1    0 0 0 0 01 1 1 1 1    / / / / /0 0 0 0 0    0 0 0 0 01 1 1 1 1    0 0 0 0 01 1 1 1 1    3 3 3 3 34 4 4 4 4    3 3 3 3 34 4 4 4 4      r   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)	test_selfr   r   rR   s      @r   testCustomMethods2z AugAssignTest.testCustomMethods2v   s   k	 k	 k	 k	 k	 k	 k	 k	 k	 k	Z GII	A	A	Q	A	A	Q	A	A	Q	A	A	Q	A	A	Q	Q	Q	a	A	A	Q	Q	Q	a	A	A	Q	A	A	Q	A	A	Q	Q	Q	a	Q	Q	af ('P JLLQ(	 (	 (	 (	 (	r   N)
r2   r3   r4   r   r   r   r   r"   rJ   r   r:   r   r   r   r      s        ! ! !O O O$ $ $$ $ $     0 0 0fM M M M Mr   r   __main__)unittestTestCaser   r2   mainr:   r   r   <module>r      sl    } } } } }H% } } }~	 zHMOOOOO r   