U
    iâË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rÀe ¡  dS )é    )ÚjitN)ÚMemoryLeakMixinc                 C   s&   t t| ƒƒD ]}| |  d7  < q| S )Né   )ÚrangeÚlen)ÚaÚi© r	   úX/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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   )ÚnpZ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   r3   ç      ð?r2   )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   r8   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   r5   )r   r8   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   r8   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   r7   )r   r8   r-   r(   r.   r	   r	   r
   Útest_unpack5{   s    þzTestChainedAssign.test_unpack5c                 C   s   d}d}|   t||g¡ d S )N)r3   r   )r3   r7   )r-   r)   )r/   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   ÚtestingZassert_allclose)r/   ZpyfuncZargcasesZcfuncr0   Za1Za2r	   r	   r
   r-   ‡   s
    

z TestChainedAssign._test_templateN)Ú__name__Ú
__module__Ú__qualname__r1   r4   r6   r9   r:   r<   r=   r>   r?   r-   r	   r	   r	   r
   r*   I   s   r*   Ú__main__)Znumbar   ZunittestÚnumpyr   r@   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