
    ܙd]                        d dl mZ d dlZd dlZd dlZd dlmZ ed             Zed             Z	ed             Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Z G d deej                  Zedk    r ej                     dS dS )    )jitN)MemoryLeakMixinc                 d    t          t          |                     D ]}| |xx         dz  cc<   | S )N   )rangelen)ais     ?lib/python3.11/site-packages/numba/tests/test_chained_assign.pyincr      s9    3q66]]  	!	H    c                 2    | dxx         dz  cc<   | d         S Nr   r    r	   s    r   inc1r      s     aDDDAIDDDQ4Kr   c                 H    | dxx         dz  cc<   | d         | d         dz   fS r   r   r   s    r   inc2r      s-    aDDDAIDDDQ41>r   c                 8    t          |           x}x}}||z   |z   S N)r   )r	   xyzs       r   chain1r      s%    AAAq519r   c                 p    t          j        d          }| x|d<   x}|d<   |d         |d         z   |dz  z   S )N   r   r   )npzeros)vr	   r   s      r   chain2r       sA    
AAaD1qtQ4!A$;!a%  r   c                     | |}}||dz  z   S Nr   r   )r   r   r	   bs       r   unpack1r$   $   s    aqAq1u9r   c                 n    t          |           t          |          fx\  }}\  }}||dz  z   ||dz  z   fS r"   r   r   r   r	   r#   cds         r   unpack2r*   )   s@    q''477""DAq41aq1u9a!a%ir   c                     t          |           t          |          fx}\  }}t          |           t          |          fx\  }}}|d         |dz  z   |z   |d         z   |d         |z   |dz  z   |d         z   fS Nr   r   r   r&   )r   r   r	   r#   r(   r)   efs           r   chain3r/   .   s    q''477##AAq''477##FQQaD1q5L1qt#qtax!a%'7!A$'>??r   c                 6    t          |           \  }}||dz  z   S r"   r   )r   r	   r#   s      r   unpack3r2   4   s    77DAqq1u9r   c                 P    t          |           x\  }}\  }}||dz  z   ||dz  z   fS r"   r1   )r   r	   r#   r(   r)   s        r   unpack4r4   9   s5    q''DAq41aq1u9a!a%ir   c                     t          |           x}\  }}t          |           x\  }}}|d         |dz  z   |z   |d         z   |d         |z   |dz  z   |d         z   fS r,   r1   )r   r	   r#   r(   r)   r-   r.   s          r   unpack5r6   >   si    AwwA1AwwDAq1aD1q5L1qt#qtax!a%'7!A$'>??r   c                 L    | |f|dz   | dz   fc\  }}\  }}||dz  z   |dz  |z   fS )Nr   r   r   r'   s         r   unpack6r8   D   s@    Va!eQU^NFQFQq1u9a!eair   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestChainedAssignc                     t          j        d          gt          j        dt           j                  gg}|                     t          |           d S )Nr      )dtype)r   arangedouble_test_templater   selfargss     r   test_chain1zTestChainedAssign.test_chain1J   sK    Yq\\NYq	***+
 	FD)))))r   c                 H    dgdgg}|                      t          |           d S )N         @)r@   r    rA   s     r   test_chain2zTestChainedAssign.test_chain2Q   s1    CE
 	FD)))))r   c                 L    ddgddgg}|                      t          |           d S )Nr   rG         ?rF   )r@   r$   rA   s     r   test_unpack1zTestChainedAssign.test_unpack1X   s5    H!H
 	GT*****r   c                     t          j        dg          t          j        dg          gt          j        dg          t          j        dg          gg}|                     t          |           d S )Nr   g      @       @r<   )r   arrayr@   r*   rA   s     r   test_unpack2zTestChainedAssign.test_unpack2_   s_    Xqc]]BHcUOO,Xse__bhsmm,
 	GT*****r   c                     t          j        dg          t          j        dg          gt          j        dg          t          j        dg          gg}|                     t          |           d S )Nr   g      ?g      ?r   )r   rN   r@   r/   rA   s     r   test_chain3zTestChainedAssign.test_chain3f   s_    Xqc]]BHcUOO,Xse__bhsmm,
 	FD)))))r   c                     t          j        dg          gt          j        dg          gg}|                     t          |           d S Nr   rJ   )r   rN   r@   r2   rA   s     r   test_unpack3zTestChainedAssign.test_unpack3m   F    Xqc]]OXse__
 	GT*****r   c                     t          j        dg          gt          j        dg          gg}|                     t          |           d S rS   )r   rN   r@   r4   rA   s     r   test_unpack4zTestChainedAssign.test_unpack4t   rU   r   c                     t          j        dg          gt          j        dg          gg}|                     t          |           d S )Nr   rM   )r   rN   r@   r6   rA   s     r   test_unpack5zTestChainedAssign.test_unpack5{   rU   r   c                 H    d}d}|                      t          ||g           d S )N)rG   r   )rG   rM   )r@   r8   )rB   args1args2s      r   test_unpack6zTestChainedAssign.test_unpack6   s,    GeU^44444r   c                     t          |          }|D ]P}t          j        |          }t          j        |          }t          j                             ||  ||            Qd S r   )r   copydeepcopyr   testingassert_allclose)rB   pyfuncargcasescfuncrC   a1a2s          r   r@   z TestChainedAssign._test_template   so    F 	@ 	@Dt$$Bt$$BJ&&vvr{EE2J????	@ 	@r   N)__name__
__module____qualname__rD   rH   rK   rO   rQ   rT   rW   rY   r]   r@   r   r   r   r:   r:   I   s        * * ** * *+ + ++ + +* * *+ + ++ + ++ + +5 5 5
@ @ @ @ @r   r:   __main__)numbar   unittestnumpyr   r_   numba.tests.supportr   r   r   r   r   r    r$   r*   r/   r2   r4   r6   r8   TestCaser:   rh   mainr   r   r   <module>rr      s               / / / / / /   
      
  
! ! !  
     
@ @ @  
     
@ @ @     
C@ C@ C@ C@ C@): C@ C@ C@L zHMOOOOO r   