U
    ,d]                     @   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re  dS )    )jitN)MemoryLeakMixinc                 C   s&   t t| D ]}| |  d7  < q| S )N   )rangelen)ai r	   C/tmp/pip-unpacked-wheel-eu7e0c37/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    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    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      )Zdtype)r   Z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         @)r.   r   r/   r	   r	   r
   test_chain2Q   s    zTestChainedAssign.test_chain2c                 C   s    ddgddgg}|  t| d S )Nr   r4         ?r3   )r.   r   r/   r	   r	   r
   test_unpack1X   s    zTestChainedAssign.test_unpack1c                 C   s@   t dgt dggt dgt dggg}| t| d S )Nr   g      @       @r,   )r   arrayr.   r!   r/   r	   r	   r
   test_unpack2_   s    zTestChainedAssign.test_unpack2c                 C   s@   t dgt dggt dgt dggg}| t| d S )Nr   g      ?g      ?r   )r   r9   r.   r%   r/   r	   r	   r
   test_chain3f   s    zTestChainedAssign.test_chain3c                 C   s,   t dggt dggg}| t| d S Nr   r6   )r   r9   r.   r'   r/   r	   r	   r
   test_unpack3m   s    zTestChainedAssign.test_unpack3c                 C   s,   t dggt dggg}| t| d S r<   )r   r9   r.   r(   r/   r	   r	   r
   test_unpack4t   s    zTestChainedAssign.test_unpack4c                 C   s,   t dggt dggg}| t| d S )Nr   r8   )r   r9   r.   r)   r/   r	   r	   r
   test_unpack5{   s    zTestChainedAssign.test_unpack5c                 C   s   d}d}|  t||g d S )N)r4   r   )r4   r8   )r.   r*   )r0   Zargs1Z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   ZtestingZassert_allclose)r0   ZpyfuncZargcasesZcfuncr1   Za1Za2r	   r	   r
   r.      s
    

z TestChainedAssign._test_templateN)__name__
__module____qualname__r2   r5   r7   r:   r;   r=   r>   r?   r@   r.   r	   r	   r	   r
   r+   I   s   r+   __main__)Znumbar   ZunittestZnumpyr   rA   Znumba.tests.supportr   r   r   r   r   r   r   r!   r%   r'   r(   r)   r*   ZTestCaser+   rC   mainr	   r	   r	   r
   <module>   s,   


F