a
    
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re	  dS )'    N)jit)types)TestCasetag   c                 C   s*   | j |j ksJ | d |  ||d < d S Nshapesrcdestk r   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/numba/tests/test_overlap.pyarray_overlap1   s    r   c                 C   s*   | j |j ksJ | |d  |d | < d S r   r   r
   r   r   r   array_overlap2   s    r   c                 C   s:   | j |j ksJ | 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J | 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J | 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J | 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J | |d d d< d S Nr   r   r   r   r   r   array_overlap11%   s    r   c                 C   s*   | j |j ksJ | d d d |d d < d S r   r   r   r   r   r   array_overlap12)   s    r   c                 C   s*   | j |j ksJ | |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J | 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J | |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J | 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\}}|rt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rLJ |V  d S )NC)orderFr   )copyflagsc_contiguousf_contiguous)origar   r   r   vary_layoutsC   s
    z4TestArrayOverlap.check_overlap.<locals>.vary_layoutsc                    s4   | ||fi | |||fi |   || 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)r3   r-   min_ndimhave_k_argumentNr,   r4   r.   ndimr	   r*   r/   r0   r   r   r2   r   check_overlap@   s    
zTestArrayOverlap.check_overlapc                 C   s   | j ||dd d S )NT)r9   r:   )r=   )r3   r-   r9   r   r   r   check_overlap_with_k]   s    z%TestArrayOverlap.check_overlap_with_kc                 C   s   | j tdd d S Nr   r9   )r>   r   r2   r   r   r   test_overlap1`   s    zTestArrayOverlap.test_overlap1c                 C   s   | j tdd d S r?   )r>   r   r2   r   r   r   test_overlap2c   s    zTestArrayOverlap.test_overlap2c                 C   s   | j tdd d S N   r@   )r>   r   r2   r   r   r   test_overlap3f   s    zTestArrayOverlap.test_overlap3c                 C   s   | j tdd d S rC   )r>   r   r2   r   r   r   test_overlap4i   s    zTestArrayOverlap.test_overlap4c                 C   s   | j tdd d S r?   )r>   r   r2   r   r   r   test_overlap5l   s    zTestArrayOverlap.test_overlap5c                 C   s   | j tdd d S r?   )r>   r   r2   r   r   r   test_overlap6o   s    zTestArrayOverlap.test_overlap6c                 C   s   | j tdd d S r?   )r=   r   r2   r   r   r   test_overlap11r   s    zTestArrayOverlap.test_overlap11c                 C   s   | j tdd d S r?   )r=   r   r2   r   r   r   test_overlap12u   s    zTestArrayOverlap.test_overlap12c                 C   s   | j tdd d S rC   )r=   r   r2   r   r   r   test_overlap13x   s    zTestArrayOverlap.test_overlap13c                 C   s   | j tdd d S rC   )r=   r   r2   r   r   r   test_overlap14{   s    zTestArrayOverlap.test_overlap14c                 C   s   | j tdd d S r?   )r=   r   r2   r   r   r   test_overlap15~   s    zTestArrayOverlap.test_overlap15c                 C   s   | j tdd d S r?   )r=   r    r2   r   r   r   test_overlap16   s    zTestArrayOverlap.test_overlap16N)F)__name__
__module____qualname__r=   r>   rA   rB   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r   r   r   r   r!   >   s   
r!   __main__)r   )r   )r   )r   )r   )r   )numpyr6   Znumbar   Z
numba.corer   Znumba.tests.supportr   r   Zunittestr   r   r   r   r   r   r   r   r   r   r   r    r!   rO   mainr   r   r   r   <module>   s&   





G