o
    8ήc]                     @   s   d dl mZ d dlZd dlZd dlZd dlmZ edd Zedd Z	e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G dd deejZedkrbe  dS dS )    )jitN)MemoryLeakMixinc                 C   s&   t t| D ]
}| |  d7  < q| S )N   )rangelen)ai r	   F/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/test_chained_assign.pyinc   s   r   c                 C   s   | d  d7  < | d S Nr   r   r	   r   r	   r	   r
   inc1   s   r   c                 C   s$   | d  d7  < | d | d d fS r   r	   r   r	   r	   r
   inc2   s   r   c                 C   s   t |  } }}|| | S N)r   )r   xyzr	   r	   r
   chain1   s   r   c                 C   s6   t d}|  |d<  }|d< |d |d  |d  S )N   r   r   )npzeros)vr   r   r	   r	   r
   chain2   s   
r   c                 C   s   | |}}||d  S Nr   r	   )r   r   r   br	   r	   r
   unpack1$   s   
r   c                 C   s4   t | t |f \}}\}}||d  ||d  fS r   r   r   r   r   r   cdr	   r	   r
   unpack2)   s   r!   c                 C   sh   t | t |f }\}}t | t |f \}}}|d |d  | |d  |d | |d  |d  fS Nr   r   r   r   )r   r   r   r   r   r    efr	   r	   r
   chain3.   s   8r%   c                 C   s   t | \}}||d  S r   r   )r   r   r   r	   r	   r
   unpack34   s   r'   c                 C   s,   t |  \}}\}}||d  ||d  fS r   r&   )r   r   r   r   r    r	   r	   r
   unpack49   s   r(   c                 C   sX   t |  }\}}t |  \}}}|d |d  | |d  |d | |d  |d  fS r"   r&   )r   r   r   r   r    r#   r$   r	   r	   r
   unpack5>   s   8r)   c                 C   s:   | |f|d | d f\}}\}}||d  |d | fS )Nr   r   r	   r   r	   r	   r
   unpack6D   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S )TestChainedAssignc                 C   s.   t dgt jdt jdgg}| t| d S )Nr      )dtype)r   arangedouble_test_templater   selfargsr	   r	   r
   test_chain1J   s   
zTestChainedAssign.test_chain1c                 C   s   dgdgg}|  t| d S )N         @)r0   r   r1   r	   r	   r
   test_chain2Q   s   zTestChainedAssign.test_chain2c                 C   s    ddgddgg}|  t| d S )Nr   r6         ?r5   )r0   r   r1   r	   r	   r
   test_unpack1X   s   zTestChainedAssign.test_unpack1c                 C   @   t dgt dggt dgt dggg}| t| d S )Nr   g      @       @r,   )r   arrayr0   r!   r1   r	   r	   r
   test_unpack2_      zTestChainedAssign.test_unpack2c                 C   r:   )Nr   g      ?g      ?r   )r   r<   r0   r%   r1   r	   r	   r
   test_chain3f   r>   zTestChainedAssign.test_chain3c                 C   ,   t dggt dggg}| t| d S Nr   r8   )r   r<   r0   r'   r1   r	   r	   r
   test_unpack3m      zTestChainedAssign.test_unpack3c                 C   r@   rA   )r   r<   r0   r(   r1   r	   r	   r
   test_unpack4t   rC   zTestChainedAssign.test_unpack4c                 C   r@   )Nr   r;   )r   r<   r0   r)   r1   r	   r	   r
   test_unpack5{   rC   zTestChainedAssign.test_unpack5c                 C   s   d}d}|  t||g d S )N)r6   r   )r6   r;   )r0   r*   )r2   args1args2r	   r	   r
   test_unpack6   s   zTestChainedAssign.test_unpack6c                 C   s@   t |}|D ]}t|}t|}tj|| ||  qd S r   )r   copydeepcopyr   testingassert_allclose)r2   pyfuncargcasescfuncr3   a1a2r	   r	   r
   r0      s   

z TestChainedAssign._test_templateN)__name__
__module____qualname__r4   r7   r9   r=   r?   rB   rD   rE   rH   r0   r	   r	   r	   r
   r+   I   s    r+   __main__)numbar   unittestnumpyr   rI   numba.tests.supportr   r   r   r   r   r   r   r!   r%   r'   r(   r)   r*   TestCaser+   rR   mainr	   r	   r	   r
   <module>   s0    


F