U
    iâËdÿ  ã                   @   sÈ   d dl Zd dlmZ d dlmZ d dlmZmZ d dl	Z	d!dd„Z
d"dd	„Zd#d
d„Zd$dd„Zd%dd„Zd&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ƒZed krÄe	 ¡  dS )'é    N)Újit)Útypes)ÚTestCaseÚtagé   c                 C   s*   | j |j kst‚| d | … ||d …< d S ©N©ÚshapeÚAssertionError©ÚsrcÚdestÚk© r   úQ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/tests/test_overlap.pyÚarray_overlap1   s    r   c                 C   s*   | j |j kst‚| |d … |d | …< d S r   r   r   r   r   r   Úarray_overlap2   s    r   c                 C   s:   | j |j kst‚| d d …|d …f |d d …d | …f< d S r   r   r   r   r   r   Úarray_overlap3   s    r   c                 C   s:   | j |j kst‚| d d …d | …f |d d …|d …f< d S r   r   r   r   r   r   Úarray_overlap4   s    r   c                 C   s2   | j |j kst‚| d|d …f |dd | …f< d S ©N.r   r   r   r   r   Úarray_overlap5   s    r   c                 C   s2   | j |j kst‚| dd | …f |d|d …f< d S r   r   r   r   r   r   Úarray_overlap6   s    r   c                 C   s"   | j |j kst‚| |d d d…< d S ©Néÿÿÿÿr   ©r   r   r   r   r   Úarray_overlap11%   s    r   c                 C   s*   | j |j kst‚| d d d… |d d …< d S r   r   r   r   r   r   Úarray_overlap12)   s    r   c                 C   s*   | j |j kst‚| |d d …d d d…f< d S r   r   r   r   r   r   Úarray_overlap13-   s    r   c                 C   s2   | j |j kst‚| d d …d d d…f |d d …< d S r   r   r   r   r   r   Úarray_overlap141   s    r   c                 C   s&   | j |j kst‚| |dd d d…f< d S ©N.r   r   r   r   r   r   Úarray_overlap155   s    r    c                 C   s.   | j |j kst‚| dd d d…f |d d …< d S r   r   r   r   r   r   Úarray_overlap169   s    r!   c                   @   s~   e Zd Zd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d„ Zdd„ Zdd„ Zdd„ ZdS ) ÚTestArrayOverlapFc                    s²   d}dd„ }‡ fdd„}t dd�|ƒ}t|dƒD ]|}|f| }	t d|| ¡ |	¡}
t||
ƒ||
ƒƒD ]D\}}|rštd	|ƒD ]}|||||t|d
�ƒ q|qf|||||i ƒ qfq0d S )Né   c                 s   sV   | j dd�V  | j dd�V  | d d d…   ¡ d d d… }|jjsH|jjrLt‚|V  d S )NÚC)ÚorderÚFr   )ÚcopyÚflagsÚc_contiguousÚf_contiguousr
   )ÚorigÚar   r   r   Úvary_layoutsC   s
    z4TestArrayOverlap.check_overlap.<locals>.vary_layoutsc                    s,   | ||f|Ž |||f|Ž ˆ   ||¡ d S r   )ZassertPreciseEqual)ÚpyfuncÚcfuncÚpydestÚcdestÚkwargs©Úselfr   r   ÚcheckJ   s    z-TestArrayOverlap.check_overlap.<locals>.checkT)Znopythonr   r   )r   )r   ÚrangeÚnpZarangeZreshapeÚzipÚdict)r4   r.   Úmin_ndimÚhave_k_argumentÚNr-   r5   r/   Úndimr	   r+   r0   r1   r   r   r3   r   Úcheck_overlap@   s    
zTestArrayOverlap.check_overlapc                 C   s   | j ||dd� d S )NT)r:   r;   )r>   )r4   r.   r:   r   r   r   Úcheck_overlap_with_k]   s    z%TestArrayOverlap.check_overlap_with_kc                 C   s   | j tdd� d S ©Nr   ©r:   )r?   r   r3   r   r   r   Útest_overlap1`   s    zTestArrayOverlap.test_overlap1c                 C   s   | j tdd� d S r@   )r?   r   r3   r   r   r   Útest_overlap2c   s    zTestArrayOverlap.test_overlap2c                 C   s   | j tdd� d S ©Né   rA   )r?   r   r3   r   r   r   Útest_overlap3f   s    zTestArrayOverlap.test_overlap3c                 C   s   | j tdd� d S rD   )r?   r   r3   r   r   r   Útest_overlap4i   s    zTestArrayOverlap.test_overlap4c                 C   s   | j tdd� d S r@   )r?   r   r3   r   r   r   Útest_overlap5l   s    zTestArrayOverlap.test_overlap5c                 C   s   | j tdd� d S r@   )r?   r   r3   r   r   r   Útest_overlap6o   s    zTestArrayOverlap.test_overlap6c                 C   s   | j tdd� d S r@   )r>   r   r3   r   r   r   Útest_overlap11r   s    zTestArrayOverlap.test_overlap11c                 C   s   | j tdd� d S r@   )r>   r   r3   r   r   r   Útest_overlap12u   s    zTestArrayOverlap.test_overlap12c                 C   s   | j tdd� d S rD   )r>   r   r3   r   r   r   Útest_overlap13x   s    zTestArrayOverlap.test_overlap13c                 C   s   | j tdd� d S rD   )r>   r   r3   r   r   r   Útest_overlap14{   s    zTestArrayOverlap.test_overlap14c                 C   s   | j tdd� d S r@   )r>   r    r3   r   r   r   Útest_overlap15~   s    zTestArrayOverlap.test_overlap15c                 C   s   | j tdd� d S r@   )r>   r!   r3   r   r   r   Útest_overlap16�   s    zTestArrayOverlap.test_overlap16N)F)Ú__name__Ú
__module__Ú__qualname__r>   r?   rB   rC   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   r   r   r   r   r"   >   s   
r"   Ú__main__)r   )r   )r   )r   )r   )r   )Únumpyr7   Znumbar   Z
numba.corer   Znumba.tests.supportr   r   Zunittestr   r   r   r   r   r   r   r   r   r   r    r!   r"   rP   Úmainr   r   r   r   Ú<module>   s&   





G